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

import com.baomidou.mybatisplus.extension.service.IService;
import com.qmth.distributed.print.business.bean.params.ObeCourseTargetExpectValueParam;
import com.qmth.distributed.print.business.bean.params.ObeCourseTargetParam;
import com.qmth.distributed.print.business.bean.result.ObeCourseTargetResult;
import com.qmth.distributed.print.business.bean.result.report.PaperStructDimensionResult;
import com.qmth.distributed.print.business.entity.ObeCourseTarget;
import com.qmth.teachcloud.common.entity.SysUser;

import java.util.List;

/**
 * <p>
 * 课程目标表 服务类
 * </p>
 *
 * @author CaoZixuan
 * @since 2024-02-22
 */
public interface ObeCourseTargetService extends IService<ObeCourseTarget> {

    /**
     * 查询课程目标集合
     *
     * @param obeCourseOutlineId 课程大纲id
     * @return 目标集合
     */
    List<ObeCourseTargetResult> findCourseTargetList(Long obeCourseOutlineId);

    /**
     * 保存课程目标
     *
     * @param obeCourseTargetParam 课程目标参数
     * @param requestUser          请求人
     */
    void saveCourseTarget(ObeCourseTargetParam obeCourseTargetParam, SysUser requestUser);

    /**
     * 删除课程目标
     *
     * @param id 课程目标id
     */
    void deleteCourseTarget(Long id);

    /**
     * 查询题库试卷结构（知识点）
     *
     * @param obeCourseOutlineId 课程大纲id
     * @param paperNumber        试卷编号
     * @param examId             考试id
     * @return 试卷结构
     */
    List<PaperStructDimensionResult> findTikuPaperStruct(Long obeCourseOutlineId, String paperNumber, Long examId);

    /**
     * 设置预期值
     *
     * @param obeCourseTargetExpectValueParam 课程大纲参数
     * @param requestUser                     请求人
     */
    void settingExpectValue(ObeCourseTargetExpectValueParam obeCourseTargetExpectValueParam, SysUser requestUser);

}