package com.ruoyi.hezhi.service;

import com.ruoyi.hezhi.domain.TbTeacherCourse;
import com.ruoyi.hezhi.domain.vo.CourseCardVO;

import java.util.List;
import java.util.Map;

/**
 * 老师课程关联Service接口
 *
 * @author ruoyi
 * @date 2024-09-14
 */
public interface ITbTeacherCourseService
{
    /**
     * 查询老师课程关联
     *
     * @param teacherCourseId 老师课程关联主键
     * @return 老师课程关联
     */
    public TbTeacherCourse selectTbTeacherCourseByTeacherCourseId(Long teacherCourseId);

    /**
     * 查询老师课程关联列表
     *
     * @param tbTeacherCourse 老师课程关联
     * @return 老师课程关联集合
     */
    public List<TbTeacherCourse> selectTbTeacherCourseList(TbTeacherCourse tbTeacherCourse);

    /**
     * 新增老师课程关联
     *
     * @param tbTeacherCourse 老师课程关联
     * @return 结果
     */
    public int insertTbTeacherCourse(TbTeacherCourse tbTeacherCourse);

    /**
     * 修改老师课程关联
     *
     * @param tbTeacherCourse 老师课程关联
     * @return 结果
     */
    public int updateTbTeacherCourse(TbTeacherCourse tbTeacherCourse);

    /**
     * 批量删除老师课程关联
     *
     * @param teacherCourseIds 需要删除的老师课程关联主键集合
     * @return 结果
     */
    public int deleteTbTeacherCourseByTeacherCourseIds(Long[] teacherCourseIds);

    /**
     * 删除老师课程关联信息
     *
     * @param teacherCourseId 老师课程关联主键
     * @return 结果
     */
    public int deleteTbTeacherCourseByTeacherCourseId(Long teacherCourseId);

    /**
     * 查询教师课程列表
     * @param teacherId 教师id
     * @param isSpeak 是否主讲（0-否，1-是）
     * @return
     */
    public List<CourseCardVO> selectTeacherCourseList(Long teacherId, Integer isSpeak);

    /**
     * 查询课程下教师列表
     *
     * @param params 参数
     * @return ok
     */
    public List<Map<String, Object>> getTeacherList(Map<String, Object> params);
}
