package com.bonus.sgzb.material.mapper;

import com.bonus.sgzb.material.domain.*;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @Author ma_sh
 * @create 2024/7/4 16:28
 * iot设备管理mapper层
 */
@Mapper
public interface IotMachineMapper {

    /**
     * 根据iotCode查询iotCode是否存在
     * @param iotDto
     * @return
     */
    IotVo selectIotCode(IotDto iotDto);

    /**
     * 根据qrCode查询qrCode是否存在
     * @param qrCode
     * @return
     */
    int selectQrCode(String qrCode);

    /**
     * 添加iot设备
     * @param iotDto
     * @return
     */
    int add(IotDto iotDto);

    /**
     * 修改iot设备
     * @param iotDto
     * @return
     */
    int update(IotDto iotDto);

    /**
     * 根据iotCode查询iotCode是否存在
     * @param iotDto
     * @return
     */
    List<IotVo> getIotList(IotDto iotDto);

    /**
     * 根据iotId查询iotId是否存在
     * @param iotId
     * @return
     */
    IotVo selectById(Long iotId);

    /**
     * 根据iotId删除iot设备
     * @param iotId
     * @return
     */
    int deleteById(Long iotId);

    /**
     * 绑定iot设备
     * @param iotDto
     * @return
     */
    int bind(IotDto iotDto);

    /**
     * 更新绑定状态
     * @param iotDto
     * @return
     */
    int updateBindStatus(IotDto iotDto);

    /**
     * 解绑iot设备
     * @param iotDto
     * @return
     */
    int unbind(IotDto iotDto);

    /**
     * 更新解绑状态
     * @param iotDto
     * @return
     */
    int updateUnBindStatus(IotDto iotDto);

    /**
     * 根据类型id查询设备绑定列表
     * @param iotDto
     * @return
     */
    List<IotVo> getTypeList(IotDto iotDto);


    /**
     * 查询设备类型
     * @return
     */
    List<IotTypeVo> selectList();

    /**
     * 根据iotTypeId查询设备编码
     * @param iotTypeId
     * @return
     */
    List<IotCodeVo> selectCodeList(String iotTypeId);

    /**
     * 根据iotTypeId查询设备编码
     * @param iotDto
     * @return
     */
    List<IotRecordVo> getRecordList(IotDto iotDto);

    List<IotVo> selectListByTypeId(Long typeId);
}
