package com.fdkankan.platform.goods.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fdkankan.platform.agent.request.RequestAgent;
import com.fdkankan.platform.agent.vo.ResponseAgentCamera;
import com.fdkankan.platform.goods.entity.CameraDetail;
import com.fdkankan.platform.goods.entity.CameraDetailNumEntity;
import com.fdkankan.platform.user.request.RequestCamera;
import com.fdkankan.platform.user.vo.ResponseCamera;

import java.util.HashMap;
import java.util.List;

/**
 * <p>
 * 相机子表 服务类
 * </p>
 *
 * @author 
 * @since 2021-12-24
 */
public interface ICameraDetailService extends IService<CameraDetail> {

    Integer getCountByAgentId(String agentId);

    Page<ResponseAgentCamera> getPageByAgentId(RequestAgent param);

    List<CameraDetail> getListByAgentId(String agentId);

    Page<ResponseCamera> getPageByUserAndType(RequestCamera param, Long userId);

    List<ResponseCamera> getListByUserAndType(Integer cameraType, Long userId);


    List<CameraDetailNumEntity> getTypeNumByUser(Integer type, Long userId);

    ResponseCamera getByChildName(Long userId, RequestCamera param);

    HashMap<String, Object> getCameraDetailDeadline(Long userId, RequestCamera param);

    Integer getDeadLineNumber(Long userId);

    boolean unbind(Long cameraId);

    CameraDetail getByCameraId(Long valueOf);

    boolean bind(Long userId, Long cameraId);

    CameraDetail updateCameraDetailByCameraIdAndSpace(Long cameraId, Long space);

    Long getSumBalanceByUserId(Long userId);

    boolean updateCameraBalance(Long cameraId, int body, Integer points);

    List<CameraDetail> getListByUserId(Long id, Long cameraType);

    Page<ResponseCamera> queryListByParams(RequestCamera param);

    Page<ResponseCamera>  queryCompanyCameraListByParams(RequestCamera param);

    Page<ResponseCamera> cameraList(RequestCamera param);

    void updateCompanyId(Long companyId);

}
