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

import com.baomidou.mybatisplus.extension.service.IService;
import com.qmth.distributed.print.business.bean.params.CourseTargetParam;
import com.qmth.distributed.print.business.bean.result.CourseDimensionTree;
import com.qmth.distributed.print.business.bean.result.CourseTargetResult;
import com.qmth.distributed.print.business.bean.result.report.PaperStructDimensionResult;
import com.qmth.distributed.print.business.entity.CourseTarget;
import com.qmth.teachcloud.common.entity.SysUser;

import java.util.List;

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

    /**
     * 查询课程目标集合
     *
     * @param teachCourseId 教学课程id
     * @return 目标集合
     */
    List<CourseTargetResult> findCourseTargetList(Long teachCourseId);

    /**
     * 查询知识点树
     *
     * @param teachCourseId 教学课程id
     * @return 课程知识点树
     */
    List<CourseDimensionTree> findDimensionTree(Long teachCourseId);

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

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

    /**
     * 查询题库试卷结构（知识点）
     *
     * @param teachCourseId 教学课程id
     * @param paperNumber   试卷编号
     * @return 试卷结构
     */
    List<PaperStructDimensionResult> findTikuPaperStruct(Long teachCourseId, String paperNumber);
}