package com.iailab.module.data.channel.modbus.service;

import com.iailab.framework.common.pojo.PageResult;
import com.iailab.module.data.channel.modbus.dto.ChannelModbusTagDTO;
import com.iailab.module.data.channel.modbus.entity.ChannelModBusTagEntity;
import com.iailab.module.data.channel.modbus.vo.ModBusTagImportExcelVO;
import com.iailab.module.data.channel.modbus.vo.ModBusTagPageReqVO;
import com.iailab.module.data.channel.tag.vo.TagImportRespVO;

import java.util.List;

/**
 * @author lirm
 * @Description
 * @createTime 2024年08月27日
 */
public interface ChannelModbusTagService {
    /**
     * 分页查询tag
     *
     * @param reqVO
     */
    PageResult<ChannelModBusTagEntity> queryPage(ModBusTagPageReqVO reqVO);
    
    /**
     * 查询tag详情
     * @param id
     *
     */
    ChannelModBusTagEntity info(String id);

    /**
     * 添加tag
     *
     * @param channelModBusTagEntity
     */
    void add(ChannelModBusTagEntity channelModBusTagEntity);

    /**
     * 修改tag
     *
     * @param channelModBusTagEntity
     */
    void update(ChannelModBusTagEntity channelModBusTagEntity);

    /**
     * 删除tag
     * @param id
     *
     */
    void delete(String id);

    /**
     * 查询全部
     *
     */
    List<ChannelModbusTagDTO> selectAll();

    List<ChannelModBusTagEntity> getByDevice(String device);

    /**
     * listByIds
     *
     * @param ids
     * @return
     */
    List<ChannelModBusTagEntity> listByIds(List<String> ids);

    /**
     * 通过deviceName删除
     *
     */
    void deleteByDeviceName(String name);

    TagImportRespVO importModBusTagList(List<ModBusTagImportExcelVO> importTags, boolean isUpdateSupport, String device);
}