package com.yida.data.school.classSchedule.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yida.data.common.core.entity.classschedule.EduClassSchedule;
import com.yida.data.common.core.entity.classschedule.EduClassScheduleTime;
import com.yida.data.school.dto.classSchedule.ClassSchedulePageDTO;
import com.yida.data.school.dto.classSchedule.DownloadTemplateDTO;
import com.yida.data.school.vo.classSchedule.ClassSchedulePageInfoVO;
import com.yida.data.school.vo.classSchedule.ClassScheduleTimeVO;
import java.util.List;
import javax.servlet.http.HttpServletResponse;

/**
 * 课程表管理 Service接口
 *
 * @author wjm
 * @date 2021-08-13 16:53:48
 */
public interface EduClassScheduleService extends IService<EduClassSchedule> {

    /**
     * 分页查询课程表
     *
     * @param dto
     * @return
     */
    IPage<ClassSchedulePageInfoVO> listClassSchedulePage(ClassSchedulePageDTO dto);

    /**
     * 保存课程表
     *
     * @param classSchedule
     */
    void saveClassSchedule(EduClassSchedule classSchedule);

    /**
     * 保存课程表时间
     *
     * @param classGradeId
     * @param timeList
     */
    void saveClassTime(Long classGradeId, List<EduClassScheduleTime> timeList);

    /**
     * 停用或启用课程表
     */
    void updateClassScheduleStatus(Long classScheduleId);

    void delClassScheduleBatch(List<Long> ids);

    /**
     * 获取课程表时间安排
     */
    ClassScheduleTimeVO listClassScheduleTime(Long classScheduleId);

    /**
     * 下载导入模板
     */
    void downloadTemplate(DownloadTemplateDTO dto, HttpServletResponse response);

    /**
     * @param file
     * @param scheduleId
     */
    void importTime(String path, Long scheduleId, Integer type);
}
