package net.northking.cctp.device.api.activity.service;

import net.northking.cctp.common.db.Pagination;
import net.northking.cctp.common.http.QueryByPage;
import net.northking.cctp.device.db.entity.CdDeviceUsageLog;
import net.northking.cctp.device.dto.device.CdMobileDeviceExitDto;
import net.northking.cctp.device.dto.device.DeviceLockDto;
import net.northking.cctp.device.dto.device.DeviceLogDto;
import net.northking.cctp.device.dto.device.DeviceInfoDto;
import net.northking.cctp.device.dto.pcDevice.CdDeviceRemoteDto;
import net.northking.cctp.device.dto.pcDevice.CdPcDeviceExitDto;
import net.northking.cctp.device.dto.pcDevice.CdPcDeviceRemoteDto;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
import java.util.Set;


public interface DeviceActivityApiService {

    DeviceInfoDto getInfoFromToken(String token);

    Boolean checkToken(DeviceLockDto dto);

    Pagination<CdDeviceUsageLog> getUsageLog(QueryByPage<DeviceLogDto> dto);

    DeviceInfoDto pubGetInfo(String uuid);

    List<Map<String,Object>> checkDeviceStatus(List<String> deviceIds);

    List<Map<String,Object>> queryDeviceInfo(Set<String> deviceList);

    Map<String,Object> queryMobDevicePlatform(List<String> deviceIds);

    List<Map<String,String>> deviceListApply(Map<String,Object> map,HttpServletRequest request);

    String queryDeviceToken(String deviceId);

    CdPcDeviceRemoteDto scriptPcDevice(CdDeviceRemoteDto dto, String projectId, HttpServletRequest request);

    DeviceInfoDto scriptMobDevice(CdDeviceRemoteDto dto, String projectId, HttpServletRequest request);

    void releaseDeviceList(Map<String,Object> map);

    String releasePcDevice(CdPcDeviceExitDto dto);

    String releaseMobDevice(CdMobileDeviceExitDto dto);

    Map<String,List<String>> queryDeviceType(List<String> deviceIds);
}
