package top.continew.admin.business.service;

import com.baomidou.mybatisplus.extension.service.IService;
import top.continew.admin.business.enums.AssignmentsTypeEnum;
import top.continew.admin.business.model.entity.CoursesDO;
import top.continew.admin.business.model.req.CoursesReq;
import top.continew.admin.business.model.resp.AssignmentsResp;
import top.continew.admin.business.model.resp.CoursesResp;
import top.continew.starter.extension.crud.model.query.PageQuery;
import top.continew.starter.extension.crud.model.resp.PageResp;

import java.util.List;

/**
 * 课程业务接口
 *
 * @author 张波
 * @since 2024/10/22 11:58
 */
public interface CoursesService extends IService<CoursesDO> {

    /**
     * 创建课程
     *
     * @param req 参数
     */
    void add(CoursesReq req);

    /**
     * 分页查询课程列表
     *
     * @param role      角色（学生/老师）
     * @param pageQuery 分页查询条件
     * @return 课程列表
     */
    PageResp<CoursesResp> list(String db, String role, PageQuery pageQuery);

    /**
     * 查询课程里作业列表
     *
     * @param coursesId 课程ID
     * @param type      类型（作业/考试）
     * @param role      角色（学生/老师）
     * @return 作业名称以及完成度
     */
    List<AssignmentsResp> assignmentsList(Long coursesId, AssignmentsTypeEnum type, String role);
}
