package cn.iocoder.yudao.module.base.service;

import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCourse;
import cn.iocoder.yudao.module.base.vo.DlDriveSchoolCourseNewVO;
import cn.iocoder.yudao.module.base.vo.DlDriveSchoolCourseVO;
import cn.iocoder.yudao.module.course.entity.SchoolCourseScheme;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 驾校课程Service
 *
 * @author pqz
 */
public interface DlDriveSchoolCourseService extends IService<DlDriveSchoolCourse> {

    /**
     * 分页查询驾校课程
     *
     * @param pageReqVO DlDriveSchoolCourseVO
     * @param page      分页参数
     * @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.base.vo.DlDriveSchoolCourseVO>
     * @author PQZ
     * @date 22:04 2025/1/16
     **/
    IPage<DlDriveSchoolCourseVO> queryListPage(DlDriveSchoolCourseVO pageReqVO, Page<DlDriveSchoolCourseVO> page);

    /**
     * 不分页查询驾校课程
     *
     * @param courseVO {@link DlDriveSchoolCourseVO}
     * @return java.util.List<cn.iocoder.yudao.module.base.vo.DlDriveSchoolCourseVO>
     * @author PQZ
     * @date 22:07 2025/1/16
     **/
    List<DlDriveSchoolCourse> queryList(DlDriveSchoolCourseVO courseVO);

    /**
     * 保存课程信息
     *
     * @param courseVO {@link DlDriveSchoolCourseVO}
     * @author PQZ
     * @date 22:12 2025/1/16
     **/
    void saveDriveSchoolCourse(DlDriveSchoolCourseNewVO courseVO);

    /**
     * 删除课程信息
     *
     * @param id 课程id
     * @author PQZ
     * @date 22:14 2025/1/16
     **/
    void deleteCourse(String id);

    /**
     * 通过id查询课程信息
     *
     * @param id 课程id
     * @return cn.iocoder.yudao.module.base.vo.DlDriveSchoolCourseVO
     * @author PQZ
     * @date 22:15 2025/1/16
     **/
    DlDriveSchoolCourseVO queryDetailById(String id);

    /**
     * 根据课程id查询提成方案列表
     */
    public List<SchoolCourseScheme> getSchemeList(String id);



}
