package com.fs.live.service;


import com.fs.live.domain.LiveVideo;

import java.util.List;

/**
 * 直播视频Service接口
 *
 * @author fs
 * @date 2025-01-17
 */
public interface ILiveVideoService
{
    /**
     * 查询直播视频
     *
     * @param videoId 直播视频主键
     * @return 直播视频
     */
    public LiveVideo selectLiveVideoByVideoId(Long videoId);

    /**
     * 查询企业直播视频
     * @param videoId       视频ID
     * @param companyId     企业ID
     * @param companyUserId 企业用户ID
     * @return LiveVideo
     */
    LiveVideo selectLiveVideoByVideoIdAndCompanyIdAndCompanyUserId(Long videoId, Long companyId, Long companyUserId);

    /**
     * 查询直播视频列表
     *
     * @param liveVideo 直播视频
     * @return 直播视频集合
     */
    public List<LiveVideo> selectLiveVideoList(LiveVideo liveVideo);

    /**
     * 新增直播视频
     *
     * @param liveVideo 直播视频
     * @return 结果
     */
    public int insertLiveVideo(LiveVideo liveVideo);

    /**
     * 修改直播视频
     *
     * @param liveVideo 直播视频
     * @return 结果
     */
    public int updateLiveVideo(LiveVideo liveVideo);

    /**
     * 批量删除直播视频
     *
     * @param videoIds 需要删除的直播视频主键集合
     * @return 结果
     */
    public int deleteLiveVideoByVideoIds(Long[] videoIds);

    /**
     * 删除直播视频信息
     *
     * @param videoId 直播视频主键
     * @return 结果
     */
    public int deleteLiveVideoByVideoId(Long videoId);

    List<LiveVideo> listByLiveId(Long liveId, Integer type);

    /**
     * 根据直播ID查询视频
     * @param liveId 直播ID
     * @return liveVideo
     */
    LiveVideo selectLiveVideoByLiveId(Long liveId);

    void saveOrUpdate(LiveVideo liveVideo);

    List<LiveVideo> selectLiveVideosByLiveId(Long existLiveId);

    LiveVideo selectLiveVideoByLiveIdAndType(Long id, int i);

    void updateFinishStatus(String string);
}
