package com.yanzhu.jh.video.mapper;

import com.yanzhu.jh.video.domain.SurProjectVideoConfig;
import com.yanzhu.jh.video.domain.SurProjectVideoPassage;

import java.util.List;

/**
 * 视频配置Mapper接口
 * 
 * @author JiangYuQi
 * @date 2023-08-25
 */
public interface SurProjectVideoConfigMapper 
{
    /**
     * 查询视频配置
     * 
     * @param id 视频配置主键
     * @return 视频配置
     */
    public SurProjectVideoConfig selectSurProjectVideoConfigById(Long id);

    /**
     * 查询视频配置
     *
     * @param videoDvrNumber 设备编号
     * @return 视频配置
     */
    public SurProjectVideoConfig selectSurProjectVideoConfigByDvrNumber(String videoDvrNumber);

    /**
     * 查询视频配置列表
     * 
     * @param surProjectVideoConfig 视频配置
     * @return 视频配置集合
     */
    public List<SurProjectVideoConfig> selectSurProjectVideoConfigList(SurProjectVideoConfig surProjectVideoConfig);

    /**
     * 新增视频配置
     * 
     * @param surProjectVideoConfig 视频配置
     * @return 结果
     */
    public int insertSurProjectVideoConfig(SurProjectVideoConfig surProjectVideoConfig);

    /**
     * 修改视频配置
     * 
     * @param surProjectVideoConfig 视频配置
     * @return 结果
     */
    public int updateSurProjectVideoConfig(SurProjectVideoConfig surProjectVideoConfig);

    /**
     * 删除视频配置
     * 
     * @param id 视频配置主键
     * @return 结果
     */
    public int deleteSurProjectVideoConfigById(Long id);

    /**
     * 批量删除视频配置
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSurProjectVideoConfigByIds(Long[] ids);

    /**
     * 批量删除视频通道
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSurProjectVideoPassageByVideoIds(Long[] ids);
    
    /**
     * 批量新增视频通道
     * 
     * @param surProjectVideoPassageList 视频通道列表
     * @return 结果
     */
    public int batchSurProjectVideoPassage(List<SurProjectVideoPassage> surProjectVideoPassageList);
    

    /**
     * 通过视频配置主键删除视频通道信息
     * 
     * @param id 视频配置ID
     * @return 结果
     */
    public int deleteSurProjectVideoPassageByVideoId(Long id);

    /**
     * 修改视频通道状态
     *
     * @param surProjectVideoPassage 视频通道
     * @return 结果
     */
    public int updateProjectVideoPassageState(SurProjectVideoPassage surProjectVideoPassage);
}
