package com.ho.flow.service;


import com.ho.business.entity.DeviceTypeCol;
import com.ho.business.vo.DeviceTypeList;
import com.ho.business.vo.req.deviceModel.SynchronousReqVo;
import com.ho.common.tools.util.PageResult;
import com.ho.flow.vo.DeviceColDefine;
import com.ho.flow.vo.req.AlarmConfig.DeviceColDefineReqVo;
import com.ho.flow.vo.req.devicecoldefine.DeviceColDefineDeleteVO;
import com.ho.flow.vo.req.devicecoldefine.DeviceColDefineModifyVO;
import com.ho.flow.vo.req.devicecoldefine.DeviceColDefineReqVO;
import com.ho.flow.vo.req.devicecoldefine.DeviceColDefineSyncVO;

import java.util.List;

/**
 * @author gyan
 * @DateTime: 2023/2/1 16:39
 *
 *   @Description 针对表【device_col_define】的数据库操作Service
 *
 */
public interface DeviceColDefineService {

    PageResult<DeviceColDefine> selectPage(DeviceColDefineReqVo definePageReq);

    List<DeviceColDefine> selectList(DeviceColDefineReqVo definePageReq);

    DeviceColDefine selectById(Integer id);

    List<DeviceColDefine> selectByIdList(List<Integer> ids, String deviceType);

    DeviceColDefine selectByIdAndDeviceTypeId(Integer id,Integer deviceTypeId);

    DeviceColDefine selectByColAndDeviceType(String Col,String deviceType);

    int insertList(List<DeviceColDefineReqVO> list);

    int addDeviceColDefine(DeviceColDefineReqVO vo);

    int modifyDeviceColDefine(DeviceColDefineModifyVO vo);

    int deleteDeviceColDefine(DeviceColDefineDeleteVO vo);


    int syncNewDeviceColDefine(SynchronousReqVo vo);


    int deviceColDefine(List<DeviceTypeCol> deviceTypeCols);

    void syncAlarmConfigList(DeviceTypeList deviceTypeList);

    /**
     * 同步数据
     * @param definePageReq
     * @return
     */
    int syncDeviceColDefine(DeviceColDefineSyncVO definePageReq);
}
