package com.ym.mec.biz.service;

import com.ym.mec.biz.dal.dto.DemoGroupApplyDto;
import com.ym.mec.biz.dal.dto.EducationDemoGroupListDto;
import com.ym.mec.biz.dal.dto.TeacherManageDemoGroupListDto;
import com.ym.mec.biz.dal.entity.DemoGroup;
import com.ym.mec.biz.dal.page.StudentDemoGroupQueryInfo;
import com.ym.mec.biz.dal.page.TeacherManageDemoGroupQueryInfo;
import com.ym.mec.common.page.PageInfo;
import com.ym.mec.common.page.QueryInfo;
import com.ym.mec.common.service.BaseService;
import org.hibernate.validator.constraints.EAN;

import java.util.List;

public interface DemoGroupService extends BaseService<Long, DemoGroup> {

    /**
     * @Author: Joburgess
     * @Date: 2019/9/25
     * 试听课申请
     */
    void demoGroupApply(DemoGroupApplyDto demoGroupApplyDto);

    /**
     * @Author: Joburgess
     * @Date: 2019/9/25
     * 获取试听课列表
     */
    PageInfo queryStudentDemoGroups(StudentDemoGroupQueryInfo queryInfo);

    /**
     * @Author: Joburgess
     * @Date: 2019/9/25
     * 试听课订阅
     */
    void demoGroupSubscribe(Long demoGroupId,Long coursePlanId);

    /**
     * @Author: Joburgess
     * @Date: 2019/9/26
     * 根据教师编号获取试听课信息
     */
    DemoGroup getDemoGroupByTeacherId();

    /**
     * @Author: Joburgess
     * @Date: 2019/9/26
     * 获取教师试听课安排
     */
    PageInfo findTeacherDemoGroups(TeacherManageDemoGroupQueryInfo queryInfo);

    /**
     * @Author: Joburgess
     * @Date: 2019/9/27
     *
     */
    List<EducationDemoGroupListDto> findDemoGroupStartClassTimesWithWeekByTeacherId(Long teacherID);

}