package com.fs.live.service;

import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fs.live.domain.LiveData;
import com.fs.live.vo.ColumnsConfigVo;
import com.fs.live.vo.RecentLiveDataVo;
import com.fs.live.vo.TrendDataVO;

/**
 * 直播数据Service接口
 *
 * @author fs
 * @date 2025-03-05
 */
public interface ILiveDataService extends IService<LiveData>{
    /**
     * 查询直播数据
     *
     * @param liveId 直播数据主键
     * @return 直播数据
     */
    LiveData selectLiveDataByLiveId(Long liveId);

    /**
     * 查询直播数据列表
     *
     * @param liveData 直播数据
     * @return 直播数据集合
     */
    List<LiveData> selectLiveDataList(LiveData liveData);

    /**
     * 新增直播数据
     *
     * @param liveData 直播数据
     * @return 结果
     */
    int insertLiveData(LiveData liveData);

    /**
     * 修改直播数据
     *
     * @param liveData 直播数据
     * @return 结果
     */
    int updateLiveData(LiveData liveData);

    /**
     * 批量删除直播数据
     *
     * @param liveIds 需要删除的直播数据主键集合
     * @return 结果
     */
    int deleteLiveDataByLiveIds(Long[] liveIds);

    /**
     * 删除直播数据信息
     *
     * @param liveId 直播数据主键
     * @return 结果
     */
    int deleteLiveDataByLiveId(Long liveId);

    /**
     * 查询所有正在直播的直播间iD
     * @return
     */
    List<Long> getAllLiveIds();

    /**
     * 查询近期直播数据
     */
    List<RecentLiveDataVo> getRecentLive();

    /**
     * 查询直播top榜数据
     * @return
     */
    List<RecentLiveDataVo> getLiveTop(String rankType);

    /**
     * 查询直播趋势数据
     * @param type
     * @param selectedDate
     * @return
     */
    TrendDataVO getTrendData(String type, String selectedDate,String category);

    /**
     * @param  userId 当前登录用户id
     * 查询表格字段配置
     * @return
     */
    /*List<ColumnsConfigVo> getColumnsConfig(String userId);*/

    void saveColumnsConfig(String userId, List<ColumnsConfigVo> columns);
}
