package cn.iocoder.yudao.module.iot.service.devicemodelattribute;

import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.module.iot.controller.admin.devicemodelattribute.vo.*;
import cn.iocoder.yudao.module.iot.dal.dataobject.devicemodelattribute.DeviceModelAttributeDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;

/**
 * 采集设备模型-点位管理 Service 接口
 *
 * @author 内蒙必硕
 */
public interface DeviceModelAttributeService {

    /**
     * 创建采集设备模型-点位管理
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createDeviceModelAttribute(@Valid DeviceModelAttributeSaveReqVO createReqVO);

    /**
     * 更新采集设备模型-点位管理
     *
     * @param updateReqVO 更新信息
     */
    void updateDeviceModelAttribute(@Valid DeviceModelAttributeSaveReqVO updateReqVO);

    /**
     * 删除采集设备模型-点位管理
     *
     * @param id 编号
     */
    void deleteDeviceModelAttribute(List<Long> idList );

    /**
     * 获得采集设备模型-点位管理
     *
     * @param id 编号
     * @return 采集设备模型-点位管理
     */
    DeviceModelAttributeDO getDeviceModelAttribute(Long id);

    /**
     * 获得采集设备模型-点位管理分页
     *
     * @param pageReqVO 分页查询
     * @return 采集设备模型-点位管理分页
     */
    PageResult<DeviceModelAttributeRespVO> getDeviceModelAttributePage(DeviceModelAttributePageReqVO pageReqVO);

    List<Map<String, Object>>  operationAnalysisDetails(Long deviceId, Long modelId,String collectionStartTime, String collectionEndTime);

    List<DeviceModelAttributeDO> getDeviceModelAttributeList(Long id);
    /**
     * 导入设备采集点位列表
     * 【对应 UserService 的 importUserList 方法】
     */
    DeviceModelAttributeImportRespVO importAttributeList(List<DeviceModelAttributeImportExcelVO> importAttributes, Long deviceModelId, boolean isUpdateSupport);



}