package com.yx.face.service;

import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.yx.face.boot.restful.RestDTO;
import com.yx.face.model.dto.FaceDeviceDTO;
import com.yx.face.model.excel.FaceLogVoExcel;
import com.yx.face.model.query.FaceServerLogQu;
import com.yx.face.model.query.QueryUser;
import com.yx.face.model.search.FaceDeviceSearch;
import com.yx.face.model.search.FaceServerLogSearch;
import com.yx.face.model.vo.FaceDeviceVO;
import com.yx.face.model.vo.FaceLogVO;
import com.yx.face.model.vo.FacePassVO;

import java.io.InputStream;
import java.util.List;
import java.util.Map;

public interface FaceService {


    Boolean authFaceDevice(Integer deviceId);

    Boolean stopFaceDevice(Integer deviceId);

    Boolean addFaceDevice(FaceDeviceDTO deviceDTO);


    Boolean modifyFaceDevice(FaceDeviceDTO deviceDTO);

    Boolean deleteDevice(Integer deviceId);

    PageInfo<FaceDeviceVO> getFaceDevices(RestDTO<FaceDeviceSearch> dto);


    PageInfo<FacePassVO> getFacePasses(RestDTO<QueryUser> dto);


    PageInfo<FaceLogVO> getFaceLogs(RestDTO<FaceServerLogSearch> dto);


    Map<String, Object> queryFaceSuccess(String taskId);

    List<FaceLogVoExcel> getFaceLogsExcel(FaceServerLogSearch dto);

    List<FaceDeviceVO> getFaceDeviceList(JSONObject adminId);

    /**
     * 设备图片上传
     * @param file
     * @param adminId
     * @return
     */
    String addFaceDeviceLogImg(InputStream file, Integer adminId);

    Boolean issuedAll(Integer type, Integer adminId, String sn) ;

    String getLogo(Integer userId);

    Boolean doReboot(String sn);

    FaceLogVO getDetails(FaceServerLogQu id, Integer userId);

    void uploadExcel(List<Object> datas);
}
