package com.qmth.distributed.print.business.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.qmth.distributed.print.business.bean.dto.CourseWeightFormDto;
import com.qmth.distributed.print.business.bean.params.CourseWeightParam;
import com.qmth.distributed.print.business.bean.result.CourseWeightResult;
import com.qmth.distributed.print.business.entity.CourseWeight;
import com.qmth.teachcloud.common.entity.SysUser;

import java.util.List;

/**
 * <p>
 * 课程权重设置 服务类
 * </p>
 *
 * @author CaoZixuan
 * @since 2024-02-22
 */
public interface CourseWeightService extends IService<CourseWeight> {

    /**
     * 查询课程权重
     *
     * @param teachCourseId 教学课程id
     * @return 课程权重信息
     */
    CourseWeightResult findCourseWeight(Long teachCourseId);

    /**
     * 查询课程权重(report)
     *
     * @param teachCourseId 教学课程id
     * @return 课程权重信息
     */
    CourseWeightResult findCourseWeightReport(Long teachCourseId);

    /**
     * 保存课程权重
     *
     * @param courseWeightParam 课程权重参数
     * @param requestUser       请求人
     */
    void saveCourseWeight(CourseWeightParam courseWeightParam, SysUser requestUser);

    /**
     * 删除课程权重设置
     *
     * @param teachCourseId 教学课程id
     */
    void deleteCourseWeight(Long teachCourseId);

    /**
     * 获取课程权重表单数据
     *
     * @param teachCourseId 教学课程id
     * @return 课程权重表单平铺数据
     */
    List<CourseWeightFormDto> findCourseWeightForm(Long teachCourseId);
}