package com.dcsoft.system.camera.service;

import java.util.List;

import com.dcsoft.system.artemis.vo.ChannelVo;
import com.dcsoft.system.artemis.vo.DeviceVo;
import com.dcsoft.system.artemis.vo.VideoStreamVo;
import com.dcsoft.system.camera.domain.TbCamera;
import com.dcsoft.system.domain.vo.SysAuthTree;

/**
 * 视频配置Service接口
 *
 * @author nichun
 * @date 2023-08-10
 */
public interface ITbCameraService
{
    /**
     * 查询视频配置
     *
     * @param id 视频配置主键
     * @return 视频配置
     */
    public TbCamera selectTbCameraById(Long id);

    /**
     * 查询视频配置列表
     *
     * @param tbCamera 视频配置
     * @return 视频配置集合
     */
    public List<TbCamera> selectTbCameraList(TbCamera tbCamera);

    /**
     * 新增视频配置
     *
     * @param tbCamera 视频配置
     * @return 结果
     */
    public int insertTbCamera(TbCamera tbCamera);

    /**
     * 修改视频配置
     *
     * @param tbCamera 视频配置
     * @return 结果
     */
    public int updateTbCamera(TbCamera tbCamera);

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

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

    List<SysAuthTree> selectTree();

    List<TbCamera> queryCameraList(List<String> collect);

    void saveCamera(List<ChannelVo> deviceVos);

    void saveVideoStream(List<VideoStreamVo> videoStreamList);
}
