package org.example.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.example.entity.Terminal;

import java.util.List;

/**
 * 设备Mapper接口
 */
@Mapper
public interface TerminalMapper {
    
    /**
     * 查询设备列表
     */
    List<Terminal> findList(@Param("terminalType") String terminalType,
                            @Param("deptCode") String deptCode,
                            @Param("wardCode") String wardCode,
                            @Param("isOnline") Integer isOnline,
                            @Param("terminalDesc") String terminalDesc);
    
    /**
     * 根据ID查询设备
     */
    Terminal findById(@Param("id") Long id);
    
    /**
     * 获取所有不重复的设备类型
     */
    List<String> findAllTerminalTypes();
    
    /**
     * 获取所有不重复的所属科室
     */
    List<String> findAllDeptCode();
    
    /**
     * 根据科室获取病区列表
     */
    List<String> findWardsByDept(@Param("deptCode") String deptCode);
    
    /**
     * 新增设备
     */
    int insert(Terminal terminal);
    
    /**
     * 检查IP地址是否已存在
     */
    int checkIpExists(@Param("ipAddress") String ipAddress);
    
    /**
     * 获取指定前缀的设备编码数量（用于生成编码）
     */
    int countByTerminalNumberPrefix(@Param("prefix") String prefix);
}
