package org.dromara.system.mapper;

import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import org.dromara.system.domain.FormalTeacherClass;
import org.dromara.system.domain.bo.FormalTeacherClassBo;
import org.dromara.system.domain.vo.FormalTeacherClassVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;

import java.util.List;

/**
 * 老师-班级（学科）(审核通过之后数据)Mapper接口
 *
 * @author Lion Li
 * @date 2023-08-16
 */
public interface FormalTeacherClassMapper extends BaseMapperPlus<FormalTeacherClass, FormalTeacherClassVo> {
    /**
     * 查询老师-班级（学科）(审核通过之后数据)
     *
     * @param id 老师-班级（学科）(审核通过之后数据)主键
     * @return 老师-班级（学科）(审核通过之后数据)
     */
    public FormalTeacherClass selectFormalTeacherClassById(Long id);

    /**
     * 查询老师-班级（学科）(审核通过之后数据)列表
     *
     * @param formalTeacherClass 老师-班级（学科）(审核通过之后数据)
     * @return 老师-班级（学科）(审核通过之后数据)集合
     */
    public List<FormalTeacherClassVo> selectFormalTeacherClassList(FormalTeacherClass formalTeacherClass);

    /**
     * 新增老师-班级（学科）(审核通过之后数据)
     *
     * @param formalTeacherClass 老师-班级（学科）(审核通过之后数据)
     * @return 结果
     */
    public int insertFormalTeacherClass(FormalTeacherClassBo formalTeacherClass);

    /**
     * 修改老师-班级（学科）(审核通过之后数据)
     *
     * @param formalTeacherClass 老师-班级（学科）(审核通过之后数据)
     * @return 结果
     */
    public int updateFormalTeacherClass(FormalTeacherClass formalTeacherClass);

    /**
     * 删除老师-班级（学科）(审核通过之后数据)
     *
     * @param id 老师-班级（学科）(审核通过之后数据)主键
     * @return 结果
     */
    public int deleteFormalTeacherClassById(Long id);

    /**
     * 批量删除老师-班级（学科）(审核通过之后数据)
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteFormalTeacherClassByIds(Long[] ids);

    @InterceptorIgnore(tenantLine = "true")
    public List<FormalTeacherClassVo> getTeacherClass(String teacherId);

    void deleteFormalTeacherClassByTeacherId(Long userId);

    List<FormalTeacherClassVo> queryMapperList(FormalTeacherClassBo formalTeacherClass);
}
