package com.pm.subsystem.mapper;

import com.pm.common.config.PageData;

import java.util.List;

/**
 * 视频监控设备Mapper接口
 *
 * @author lxf
 * @date 2025-06-03
 */
public interface VideoDeviceMapper
{
    /**
     * 查询摄像机设备
     */
    public PageData selectCameraById(Long id);

    /**
     * 查询摄像机设备列表
     */
    public List<PageData> selectCameraList(PageData pd);

    /**
     * 新增摄像机设备
     */
    public int insertCamera(PageData pd);

    /**
     * 修改摄像机设备
     */
    public int updateCamera(PageData pd);

    /**
     * 删除摄像机设备
     */
    public int deleteCameraById(Long id);

    /**
     * 批量删除摄像机设备
     */
    public int deleteCameraByIds(Long[] ids);

    /**
     * 查询联动规则列表
     */
    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 List<PageData> selectRecordingFileList(PageData pd);

    /**
     * 新增录像文件记录
     */
    public int insertRecordingFile(PageData pd);

    /**
     * 查询预置位列表
     */
    public List<PageData> selectPresetList(PageData pd);

    /**
     * 新增预置位
     */
    public int insertPreset(PageData pd);

    /**
     * 删除预置位
     */
    public int deletePresetById(Long id);

    /**
     * 查询云台控制记录
     */
    public List<PageData> selectPtzControlList(PageData pd);

    /**
     * 新增云台控制记录
     */
    public int insertPtzControl(PageData pd);

    /**
     * 查询摄像机统计数据
     */
    public PageData selectCameraStatistics(PageData pd);
}