package com.lesingle.edu.service;

import com.lesingle.edu.dto.request.CourseUsageQuery;
import com.lesingle.edu.dto.response.CoursePackageVO;
import com.lesingle.edu.dto.response.CourseUsageStatsVO;
import com.lesingle.edu.dto.response.CourseUsageVO;
import com.lesingle.edu.dto.response.TeacherDashboardResponse;
import com.lesingle.edu.dto.response.TeacherLessonTrendVO;
import com.lesingle.edu.dto.response.TeacherLessonVO;
import com.lesingle.edu.dto.response.TeacherWeeklyStatsResponse;

import java.util.List;

/**
 * 教师统计服务接口
 */
public interface TeacherStatsService {

    /**
     * 获取教师仪表盘统计数据
     */
    TeacherDashboardResponse getDashboard(Long teacherId, Long tenantId);

    /**
     * 获取今日课程
     */
    List<TeacherLessonVO> getTodayLessons(Long teacherId);

    /**
     * 获取推荐课程
     */
    List<CoursePackageVO> getRecommendedCourses(Long tenantId);

    /**
     * 获取本周统计
     */
    TeacherWeeklyStatsResponse getWeeklyStats(Long teacherId);

    /**
     * 获取授课趋势
     */
    List<TeacherLessonTrendVO> getLessonTrend(Long teacherId, int months);

    /**
     * 获取课程使用统计（旧版）
     */
    List<CourseUsageVO> getCourseUsage(Long tenantId);

    /**
     * 获取课程使用统计（增强版）
     * @param tenantId 租户 ID
     * @param teacherId 教师 ID
     * @param query 查询参数
     * @return 课程使用统计列表
     */
    List<CourseUsageStatsVO> getCourseUsageStats(Long tenantId, Long teacherId, CourseUsageQuery query);
}
