package com.schoolinout.system.service;

import com.schoolinout.system.domain.Clazz;
import com.schoolinout.system.domain.dto.AddClassDto;
import com.schoolinout.system.domain.vo.OptionVo;

import java.util.List;

/**
 * 班级管理Service接口
 *
 * @author sakura
 * @date 2024-01-03
 */
public interface IClazzService {
    /**
     * 查询班级管理
     *
     * @param id 班级管理主键
     * @return 班级管理
     */
    public Clazz selectClazzById(Long id);

    public List<OptionVo> selectClazzOptionList(Long schoolId);

    /**
     * 查询班级管理列表
     *
     * @param clazz 班级管理
     * @return 班级管理集合
     */
    public List<Clazz> selectClazzList(Clazz clazz);

    /**
     * 新增班级管理
     *
     * @param clazz 班级管理
     * @return 结果
     */
    public int insertClazz(Clazz clazz);

    /**
     * 修改班级管理
     *
     * @param clazz 班级管理
     * @return 结果
     */
    public int updateClazz(AddClassDto form);

    /**
     * 批量删除班级管理
     *
     * @param ids 需要删除的班级管理主键集合
     * @return 结果
     */
    public int deleteClazzByIds(Long[] ids);

    /**
     * 删除班级管理信息
     *
     * @param id 班级管理主键
     * @return 结果
     */
    public int deleteClazzById(Long id);

    public int saveClassAndRelation(AddClassDto form);

    public void handlerClassTeacherRelation(AddClassDto form, Long classId, List<Long> newTeacherIds);
}
