package com.ym.mec.biz.dal.dao;

import com.ym.mec.biz.dal.dto.StudentManageVipGroupDto;
import com.ym.mec.biz.dal.dto.StudentVipGroupDetailDto;
import com.ym.mec.biz.dal.dto.StudentVipGroupShowListDto;
import com.ym.mec.biz.dal.dto.VipGroupManageDetailDto;
import com.ym.mec.biz.dal.entity.CourseSchedule;
import com.ym.mec.biz.dal.entity.VipGroup;
import com.ym.mec.common.dal.BaseDAO;

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

public interface VipGroupDao extends BaseDAO<Long, VipGroup> {

    /**
     * @Author: Joburgess
     * @Date: 2019/9/20
     * 获取对应学生vip课
     */
	List<StudentManageVipGroupDto> findStudentVipGroups(Long userID);

	/**
	 * @Author: Joburgess
	 * @Date: 2019/9/23
	 * 学生端获取vip课列表
	 */
	List<StudentVipGroupShowListDto> findVipGroups(Map<String,Object> params);

	/**
	 * @Author: Joburgess
	 * @Date: 2019/9/23
	 * 统计vip数
	 */
	int countVipGorups(Map<String,Object> params);

	/**
	 * @Author: Joburgess
	 * @Date: 2019/9/23
	 * 获取小课详情
	 */
	VipGroupManageDetailDto getVipGroupBaseInfo(Long vipGroupId);

	/**
	 * @Author: Joburgess
	 * @Date: 2019/9/23
	 * 获取小课考勤记录
	 */
    List<CourseSchedule> findVipGroupAttendances(Map<String,Object> params);

    /**
     * @Author: Joburgess
     * @Date: 2019/9/23
     * 统计小课考勤记录数
     */
    int countVipGroupAttendance(Map<String,Object> params);

    /**
     * @Author: Joburgess
     * @Date: 2019/9/23
     * 获取vip课详情
     */
    StudentVipGroupDetailDto getVipGroupDetail(Long vipGroupId);

}