package com.ruoyi.app.mapper;

import java.util.List;

import com.ruoyi.app.model.Monitor;

/**
 * 监控设备Mapper接口
 * 
 * @author coede
 * @date 2025-03-19
 */
public interface MonitorMapper 
{
    /**
     * 查询监控设备
     * 
     * @param id 监控设备主键
     * @return 监控设备
     */
    public Monitor selectMonitorById(Long id);

    /**
     * 查询监控设备列表
     * 
     * @param monitor 监控设备
     * @return 监控设备集合
     */
    public List<Monitor> selectMonitorList(Monitor monitor);

    /**
     * 校验设备名称是否唯一
     *
     * @param monitorName 设备名称
     * @return 结果
     */
    public Monitor checkMonitorNameUnique(String monitorName);

    /**
     * 新增监控设备
     * 
     * @param monitor 监控设备
     * @return 结果
     */
    public int insertMonitor(Monitor monitor);

    /**
     * 批量新增监控设备
     *
     * @param list 监控设备
     * @return 结果
     */
    public int insertMonitorBatch(List<Monitor> list);

    /**
     * 修改监控设备
     * 
     * @param monitor 监控设备
     * @return 结果
     */
    public int updateMonitor(Monitor monitor);

    /**
     * 删除监控设备
     * 
     * @param id 监控设备主键
     * @return 结果
     */
    public int deleteMonitorById(Long id);

    /**
     * 批量删除监控设备
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMonitorByIds(Long[] ids);

    /**
     * 清空监控设备
     *
     * @return 结果
     */
    public int deleteAllMonitor();

    /**
     * 根据区域ID统计设备数量
     *
     * @param regionId 区域ID
     * @return 结果
     */
    public int countMonitorByRegion(Long regionId);
}
