package com.fs.live.service;

import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fs.live.domain.LiveWatchLog;
import com.fs.live.vo.LiveWatchLogListVO;

/**
 * 直播看课记录Service接口
 * 
 * @author fs
 * @date 2025-12-12
 */
public interface ILiveWatchLogService extends IService<LiveWatchLog>{
    /**
     * 查询直播看课记录
     * 
     * @param logId 直播看课记录主键
     * @return 直播看课记录
     */
    LiveWatchLog selectLiveWatchLogByLogId(Long logId);

    /**
     * 查询直播看课记录列表
     * 
     * @param liveWatchLog 直播看课记录
     * @return 直播看课记录集合
     */
    List<LiveWatchLog> selectLiveWatchLogList(LiveWatchLog liveWatchLog);

    /**
     * 新增直播看课记录
     * 
     * @param liveWatchLog 直播看课记录
     * @return 结果
     */
    int insertLiveWatchLog(LiveWatchLog liveWatchLog);

    /**
     * 修改直播看课记录
     * 
     * @param liveWatchLog 直播看课记录
     * @return 结果
     */
    int updateLiveWatchLog(LiveWatchLog liveWatchLog);

    /**
     * 批量删除直播看课记录
     * 
     * @param logIds 需要删除的直播看课记录主键集合
     * @return 结果
     */
    int deleteLiveWatchLogByLogIds(Long[] logIds);

    /**
     * 删除直播看课记录信息
     * 
     * @param logId 直播看课记录主键
     * @return 结果
     */
    int deleteLiveWatchLogByLogId(Long logId);

    /**
     * 查询列表信息
     * @param liveWatchLog
     * @return
     */
    List<LiveWatchLogListVO> selectLiveWatchLogListInfo(LiveWatchLog liveWatchLog);

    /**
     * 批量更新直播看课记录
     * @param liveWatchLogs 需要更新的直播看课记录列表
     * @return 更新的记录数
     */
    int batchUpdateLiveWatchLog(List<LiveWatchLog> liveWatchLogs);

    /**
     * 查询直播看课记录并缓存1小时
     * @param logId 直播看课记录主键
     * @return 直播看课记录
     */
    List<LiveWatchLog> selectLiveWatchLogByLogIdWithCache(LiveWatchLog logId);
}
