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

import com.qmth.distributed.print.business.bean.result.BasicTeachClazzResult;
import com.qmth.teachcloud.common.entity.BasicTeachClazz;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qmth.teachcloud.common.entity.SysUser;

import java.util.List;

/**
 * <p>
 * 基础教学班表 服务类
 * </p>
 *
 * @author CaoZixuan
 * @since 2024-02-22
 */
public interface BasicTeachClazzService extends IService<BasicTeachClazz> {

    /**
     * 查询或新增教学班
     *
     * @param requestUser    请求人
     * @param examId         考试id
     * @param teachClazzName 教学班名称
     * @param courseCode     课程编号
     * @return 教学班
     */
    BasicTeachClazz findOrCreateBasicTeachClazz(SysUser requestUser, Long examId, String courseCode, String teachClazzName);

    /**
     * 查询所有加血版
     *
     * @param examId     考试id
     * @param courseCode 课程编号
     * @param clazzName  班级名称
     * @return 教学班结果
     */
    List<BasicTeachClazzResult> findAllTeachClazz(Long examId, String courseCode, String clazzName);

    /**
     * 根据基础班id删除空闲的班级（该班级已经没有学生了）
     *
     * @param basicTeachClazzId 基础班级id
     */
    void deleteFreeClazz(Long basicTeachClazzId);
}
