package com.pm.subsystem.mapper;

import java.util.List;
import com.pm.common.config.PageData;

/**
 * 入侵报警系统Mapper接口
 *
 * @author lxf
 * @date 2025-06-03
 */
public interface IntrusionAlarmMapper
{
    // ==================== 报警点管理 ====================
    /**
     * 查询报警点
     */
    public PageData selectAlarmPointById(Long id);

    /**
     * 查询报警点列表
     */
    public List<PageData> selectAlarmPointList(PageData pd);

    /**
     * 新增报警点
     */
    public int insertAlarmPoint(PageData pd);

    /**
     * 修改报警点
     */
    public int updateAlarmPoint(PageData pd);

    /**
     * 删除报警点
     */
    public int deleteAlarmPointById(Long id);

    /**
     * 批量删除报警点
     */
    public int deleteAlarmPointByIds(Long[] ids);

    // ==================== 报警记录管理 ====================
    /**
     * 查询报警记录
     */
    public PageData selectAlarmById(Long id);

    /**
     * 查询报警记录列表
     */
    public List<PageData> selectAlarmList(PageData pd);

    /**
     * 新增报警记录
     */
    public int insertAlarm(PageData pd);

    /**
     * 修改报警记录
     */
    public int updateAlarm(PageData pd);

    /**
     * 删除报警记录
     */
    public int deleteAlarmById(Long id);

    /**
     * 批量删除报警记录
     */
    public int deleteAlarmByIds(Long[] ids);

    // ==================== 防区管理 ====================
    /**
     * 查询防区
     */
    public PageData selectZoneById(Long id);

    /**
     * 查询防区列表
     */
    public List<PageData> selectZoneList(PageData pd);

    /**
     * 新增防区
     */
    public int insertZone(PageData pd);

    /**
     * 修改防区
     */
    public int updateZone(PageData pd);

    /**
     * 删除防区
     */
    public int deleteZoneById(Long id);

    /**
     * 查询防区设备列表
     */
    public List<PageData> selectZoneDeviceList(PageData pd);

    // ==================== 联动规则管理 ====================
    /**
     * 查询联动规则列表
     */
    public List<PageData> selectLinkageRuleList(PageData pd);

    /**
     * 查询联动规则详情
     */
    public PageData selectLinkageRuleById(Long id);

    /**
     * 新增联动规则
     */
    public int insertLinkageRule(PageData pd);

    /**
     * 修改联动规则
     */
    public int updateLinkageRule(PageData pd);

    /**
     * 删除联动规则
     */
    public int deleteLinkageRuleById(Long id);

    /**
     * 查询联动执行记录
     */
    public List<PageData> selectLinkageRecordList(PageData pd);

    /**
     * 新增联动执行记录
     */
    public int insertLinkageRecord(PageData pd);

    // ==================== 统计查询 ====================
    /**
     * 查询报警统计数据
     */
    public PageData selectAlarmStatistics(PageData pd);

    /**
     * 查询报警趋势数据
     */
    public List<PageData> selectAlarmTrend(PageData pd);

    /**
     * 查询实时状态
     */
    public PageData selectRealTimeStatus(PageData pd);

    // ==================== 维护记录 ====================
    /**
     * 查询维护记录列表
     */
    public List<PageData> selectMaintenanceRecordList(PageData pd);

    /**
     * 新增维护记录
     */
    public int insertMaintenanceRecord(PageData pd);
}