package org.jeecg.modules.system.app.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.app.form.ClassPostponeForm;
import org.jeecg.modules.app.form.TemporaryCourseForm;
import org.jeecg.modules.app.vo.AppCoursesPageVO;
import org.jeecg.modules.app.vo.CoursesPriceRulesVO;
import org.jeecg.modules.app.vo.FamilyUserVO;
import org.jeecg.modules.system.app.dto.AppCoursesDTO;
import org.jeecg.modules.system.app.dto.AppCoursesInfoPageDTO;
import org.jeecg.modules.system.app.dto.AppCoursesPageDTO;
import org.jeecg.modules.system.app.dto.AppSiteAddressDTO;
import org.jeecg.modules.system.app.entity.AppCourses;

import java.util.List;

/**
 * @Description: 课程/培训表
 * @Author: jeecg-boot
 * @Date:   2025-07-03
 * @Version: V1.0
 */
public interface IAppCoureseService extends IService<AppCourses> {
    /**
     * 保存课程
     * @param appCoursesDTO
     * @return
     */
    Boolean saveWitchPriceRules(AppCoursesDTO appCoursesDTO);
    /**
     * 修改课程
     * @param appCoursesDTO
     * @return
     */
    Boolean editWitchPriceRules(AppCoursesDTO appCoursesDTO);
    /**
     * 通过id查询课程
     * @param id
     * @return
     */
    AppCoursesDTO queryWitchPriceRulesById(String id);
    /**
     * 删除课程
     * @param id
     * @return
     */
    Boolean deleteWitchPriceRulesById(String id);

    IPage<AppCoursesInfoPageDTO> queryWitchPriceRulesPage(AppCoursesPageDTO dto);

    List<AppSiteAddressDTO> queryAddressList();

    List<CoursesPriceRulesVO> getCourseInfo(String courseId);

    Boolean temporaryCourse(TemporaryCourseForm temporaryCourseForm);

    List<FamilyUserVO> getClassPostponeUsers(String coursePriceRulesId);

    Boolean classPostpone(ClassPostponeForm form);

    IPage<AppCoursesPageVO> getPageCourse(Page<AppCoursesPageVO> page, String orgCode, String userId);

    List<AppCoursesPageVO> queryMakeUpClassTable( String orgCode, String userId);
}
