package com.ho.business.service;

import com.ho.business.entity.*;
import com.ho.business.vo.req.deviceModel.*;
import com.ho.business.vo.req.deviceModel.DeviceCol;
import com.ho.business.vo.resp.deviceModel.DeviceModelRespVo;
import com.ho.business.vo.resp.deviceModel.ModelDeviceColRespVo;
import com.ho.common.tools.util.PageResult;

import java.util.List;

/**
 * @author gyan
 * @desc: TODO
 * @DateTime: 2023/3/7 17:45
 */
public interface ModelDeviceColService {



    List<ModelDeviceColRespVo> page(DeviceColSelectReqVo vo);

    void addBatch(ModelDeviceColAddReqVo vo);

    void deleteBatch(DeviceModelDeleteReqVo vo);

    List<ModelDeviceCol> selectByDeviceIds(List<Integer> ids,String deviceType);

    List<ModelDeviceCol> selectByModelIds(List<Integer> ids,String deviceType);

    ModelDeviceCol selectByModelId(String deviceType,Integer modelColId);

    List<ModelDeviceCol> selectList(DeviceColSelectReqVo vo);

    List<DeviceModelRespVo> selectDevice(DeviceColSelectReqVo vo);

    List<DeviceModelRespVo> selectModel(String deviceType, String modelType);

    List<ModelType> getModelType();

    List<ModelDevice> getDeviceType(String modelType);

    void add(ModelDeviceColAddVo vo);

    List<ModelDeviceCol> selectByModelType(List<Integer> collect, String type);

    /**
     * 批量插入
     * @param list
     * @return
     */
    int insertList(List<ModelDeviceCol> list);

    /**
     * 根据设备类型查模型映射关系
     * @param list
     * @return
     */
    List<ModelDeviceCol> selectByDeviceTypeList(List<String> list);

    /**
     * 一键同步，按设备类型按个同步
     * @param vo
     */
    void synchronousAdd(SynchronousReqVo vo);

    /**
     * 一键同步，不区分设备类型
     * @param vo
     */
    void synchronousAddNew(SynchronousReqVo vo);

    List<ModelDeviceCol> selectDeviceColsByIds(List<Integer> modelColIdList,List<String> deviceTypeList);
}
