package com.ruoyi.course.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.course.domain.*;
import com.ruoyi.course.domain.req.ReqClaTimeCount;
import com.ruoyi.course.domain.req.ReqSearchClaTime;
import com.ruoyi.course.domain.res.*;
import com.ruoyi.course.domain.time.ClaTimeCalendarItem;
import com.ruoyi.course.domain.time.ClaTimeItem;
import com.ruoyi.course.domain.time.StudentOrderItem;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * <p>
 * 排课信息 Mapper 接口
 * </p>
 *
 *
 *
 */
public interface ScClaTimeMapper extends BaseMapper<ScClaTime> {

    /**
     * 获取排课信息
     *
     * @param searchClaTime
     * @return
     */
    List<RespClaTimeCalendar> selectListForCalendar(ReqSearchClaTime searchClaTime);



    List<ClaTimeCalendarItem> getCourseList(@Param("date")String date,
                                            @Param("courseTimeId")Long courseTimeId,
                                            @Param("deptId")Long deptId
    );
    ClaTimeCalendarItem getCourseDetail(@Param("courseTimeId")Long courseTimeId);

   List<RespStuBook>  getCourseBookStudent(Long courseTimeId);

    List<ClaTimeItem> getCourseCountByStoreManager(@Param("staffId")Long staffId, @Param("beginTime")String beginTime, @Param("endTime")String endTime);
    List<StudentOrderItem> getStudentsBySaleStaff(Long staffId);
    List<RespOrderForApp> myDealOrder(@Param("staffId")Long staffId, @Param("beginTime")String beginTime, @Param("endTime")String endTime);
    List<RespOrderForApp> getOrdersForStore(@Param("deptId")Long deptId, @Param("beginTime")String beginTime, @Param("endTime")String endTime);

    List<RespBook> getBookListForTeacher(@Param("teacherId")Long teacherId,
                                         @Param("beginTime")String beginTime,
                                         @Param("endTime")String endTime);
    List<RespBook> getBookListForManager(@Param("deptId")Long deptId,
                                         @Param("beginTime")String beginTime,
                                         @Param("endTime")String endTime);
    }
