package com.fs.company.mapper;

import com.fs.company.domain.CourseWatchLogStatistics;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * @description:
 * @author: Guos
 * @time: 2025/11/10 上午10:13
 */
public interface CourseWatchLogStatisticsMapper {

    /**
     * 插入新的课程观看统计记录
     */
    int insert(CourseWatchLogStatistics record);

    /**
     * 根据主键更新记录
     */
    int updateByPrimaryKey(CourseWatchLogStatistics record);

    /**
     * 根据主键删除记录
     */
    int deleteByPrimaryKey(Long id);

    /**
     * 根据主键查询记录
     */
    CourseWatchLogStatistics selectByPrimaryKey(Long id);

    /**
     * 根据公司员工ID查询记录
     */
    List<CourseWatchLogStatistics> selectByCompanyUserId(Long companyUserId);

    /**
     * 根据统计时间范围查询记录
     */
    List<CourseWatchLogStatistics> selectByStatisticsTimeRange(@Param("startTime") Date startTime,
                                                            @Param("endTime") Date endTime);
    /**
     * 获取需要更新的数据
     * @return
     */
    List<CourseWatchLogStatistics> getNeedUpdateData(@Param("statisticsTime") Date statisticsTime);

    /**
     * 按照公司、部门更新之前先删除数据
     * @param deptId
     * @param statisticsTime
     */
    Integer deleteByStatisticsTimeAndDeptId(@Param("userId")Long userId,
                                            @Param("deptId") Long deptId,
                                            @Param("statisticsTime") Date statisticsTime);
}
