package com.dora.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;
import java.util.Map;

/**
 * 视频观看统计Mapper接口
 */
@Mapper
public interface VideoViewStatMapper {

    /**
     * 根据视频创建者ID统计观看次数
     */
    Integer countViewsByOwnerId(@Param("ownerId") Long ownerId);

    /**
     * 根据视频ID统计观看次数
     */
    Integer countViewsByVideoId(@Param("videoId") Long videoId);

    /**
     * 统计今日视频观看次数
     */
    Long countTodayViews(@Param("today") LocalDateTime today);

    /**
     * 插入观看记录
     */
    int insertViewRecord(Map<String, Object> params);

    /**
     * 更新视频播放次数
     */
    Integer updateVideoViewCount(@Param("videoId") Long videoId);

    /**
     * 检查用户是否已观看过该视频
     */
    Integer checkUserViewedVideo(@Param("videoId") Long videoId, @Param("userId") Long userId);

    /**
     * 更新已有观看记录的观看时间
     */
    Integer updateViewTime(@Param("videoId") Long videoId, @Param("userId") Long userId);
} 