package com.yida.data.device.camera.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yida.data.common.core.entity.CurrentUser;
import com.yida.data.common.core.entity.camera.EduCamera;
import com.yida.data.device.dto.camera.CameraDTO;
import com.yida.data.device.dto.camera.ListCameraDTO;
import com.yida.data.device.dto.camera.ListCameraSetDTO;
import com.yida.data.device.dto.camera.ListGroupDTO;
import com.yida.data.device.vo.camera.ListCameraVO;

import javax.servlet.http.HttpServletResponse;

/**
 * @author ccl
 */
public interface EduCameraService extends IService<EduCamera> {

    /**
     * 分页查询设备列表
     *
     * @param listCameraDTO 设备列表请求类
     * @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.yida.data.device.vo.camera.ListCameraVO>
     * @author ZYJ
     * @date 2022/4/28 15:45
     */
    Page<ListCameraVO> listCamera(ListCameraDTO listCameraDTO);

    /**
     * 新增或修改设备
     *
     * @param dto
     */
    void saveOrUpCamera(CameraDTO dto);

    /**
     * 批量分组
     *
     * @param dto
     */
    void listGroup(ListGroupDTO dto);

    /**
     * 注销设备
     *
     * @param id 设备id
     */
    void removeCamera(Long id);

    /**
     * 批量设置摄像头转码
     *
     * @param dto
     */
    void listCameraSet(ListCameraSetDTO dto);

    /**
     * 查询详情
     *
     * @param id
     */
    ListCameraVO findCamera(Long id);

    /**
     * 下载模板
     *
     * @param response
     */
    void downloadTemplate(HttpServletResponse response);

    /**
     * 批量上传设备
     *
     * @param uploadMultipartFile
     * @param currentUser
     */
    void batchUpIcCard(String uploadMultipartFile, CurrentUser currentUser);
}
