package com.yonge.cooleshow.biz.dal.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yonge.cooleshow.auth.api.entity.SysUser;
import com.yonge.cooleshow.biz.dal.dto.search.VideoGroupSearch;
import com.yonge.cooleshow.biz.dal.dto.search.VideoLessonGroupSearch;
import com.yonge.cooleshow.biz.dal.dto.search.VideoLessonSearch;
import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroup;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yonge.cooleshow.biz.dal.vo.*;

/**
 * VideoLessonGroupService服务类
 *
 * @author yzp
 * @version v1.0
 * @date 2022-03-25 23:46:28
 **/
public interface VideoLessonGroupService extends IService<VideoLessonGroup> {
    IPage<VideoLessonGroupVo> selectPage(IPage<VideoLessonGroupVo> page, VideoLessonGroupSearch query);

    VideoLessonGroup selectGroup(Long groupId);

    void updateGroup(VideoLessonGroupUpVo lessonGroupUpVo);

    void updateGroup(VideoLessonExamineVo examineVo);

    void deleteGroup(Long id);

    void add(VideoLessonVo lessonVo, SysUser sysUser);

    IPage<VideoLessonStudentDetailVo> selectStudentPage(IPage<VideoLessonStudentDetailVo> page, VideoLessonSearch search);

    IPage<VideoLessonTeacherVo> selectTeacherPage(IPage<VideoLessonTeacherVo> page, VideoLessonSearch search);

    IPage<VideoLessonPurchaseVo> selectPurchaseStudent(IPage<VideoLessonPurchaseVo> page, VideoLessonSearch search);

    VideoLessonStudentVo selectVideoLesson(Long groupId);

    void update(VideoLessonVo lessonVo, SysUser sysUser);

    IPage<LessonGroupVo> selectLessonGroup(IPage<LessonGroupVo> page, VideoLessonGroupSearch query);

    IPage<VideoLessonAuthGroup> queryGroupList(IPage<VideoLessonAuthGroup> page, VideoGroupSearch query);

    IPage<LessonGroupVo> selectLessonGroupById(IPage<LessonGroupVo> page, VideoLessonGroupSearch query);
}