package com.xinelu.applet.service.nurseappletpersontraining;


import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.manage.domain.trainingitemwatchrecord.TrainingItemWatchRecord;
import com.xinelu.manage.dto.trainingitem.NurseAppletPersonTrainingItemDTO;
import com.xinelu.manage.dto.trainingitem.TrainingItemDTO;
import com.xinelu.manage.dto.trainingitemwatchrecord.TrainingItemWatchRecordDTO;
import com.xinelu.manage.dto.trainingorder.NurseAppletPersonTrainingItemOrderDTO;
import com.xinelu.manage.vo.trainingitem.TrainingItemVO;
import com.xinelu.manage.vo.trainingorderdetails.NurseAppletPersonTrainingOrderDetailsVO;

import java.util.List;

/**
 * 护理员学习培训
 *
 * @author ljh
 * @version 1.0
 * Create by 2023/4/21 9:01
 */
public interface NurseAppletPersonTrainingService {
    /**
     * 学习培训-查询学习培训课程组信息
     *
     * @param trainingItem 学习培训项目以及详情
     * @return com.xinyilu.common.core.domain.AjaxResult
     **/
    List<TrainingItemVO> getTrainingItemGroupInfo(TrainingItemDTO trainingItem);

    /**
     * 学习培训-查询查询学习培训课程下属视频和图文信息
     *
     * @param trainingItem 学习培训项目信息
     * @return 学习培训项目信息集合
     */
    AjaxResult getTrainingVideoAndContentList(TrainingItemDTO trainingItem);

    /**
     * 学习培训-查询学习培训课程详情信息
     *
     * @param trainingItem 学习培训项目信息
     * @return 学习培训项目信息集合
     */
    AjaxResult getTrainingItemDetailsInfo(NurseAppletPersonTrainingItemDTO trainingItem);

    /**
     * 学习培训-下单方法（App和小程序共用）
     *
     * @param trainingItemOrderDTO 培训订单
     * @return com.xinyilu.common.core.domain.AjaxResult
     **/
    AjaxResult buyTrainingItemOrder(NurseAppletPersonTrainingItemOrderDTO trainingItemOrderDTO);

    /**
     * 我的学习-查询学习培训项目订单集合组
     *
     * @param trainingItem 学习培训项目
     * @return java.util.List<com.xinyilu.base.vo.trainingitem.NurseAppletPersonTrainingItemVO>
     **/
    List<NurseAppletPersonTrainingOrderDetailsVO> selectTrainingOrderItemGroupList(NurseAppletPersonTrainingItemDTO trainingItem);

    /**
     * 我的学习-查询学习培训项目订单集合
     *
     * @param trainingItem 学习培训项目
     * @return java.util.List<com.xinyilu.base.vo.trainingitem.NurseAppletPersonTrainingItemVO>
     **/
    AjaxResult selectTrainingOrderItemList(NurseAppletPersonTrainingItemDTO trainingItem);

    /**
     * 我的学习-查询已购买学习培训项目详情
     *
     * @param trainingItem 学习培训项目信息
     * @return 学习培训项目信息集合
     */
    AjaxResult selectTrainingOrderVideoDetails(NurseAppletPersonTrainingItemDTO trainingItem);

    /**
     * 查询学习培训课程观看时间点记录信息（观看视频用，App和小程序共用）
     *
     * @param trainingItemWatchRecord 学习培训项目观看时间点记录信息
     * @return java.util.List<com.xinyilu.base.domain.trainingcategory.TrainingCategory>
     **/
    AjaxResult getTrainingWatchRecord(TrainingItemWatchRecord trainingItemWatchRecord);

    /**
     * 新增修改学习培训课程观看时间点记录信息（退出视频用，App和小程序共用）
     *
     * @param trainingItemWatchRecord 学习培训项目观看时间点记录信息
     * @return java.util.List<com.xinyilu.base.domain.trainingcategory.TrainingCategory>
     **/
    AjaxResult insertTrainingWatchRecord(TrainingItemWatchRecordDTO trainingItemWatchRecord);

    /**
     * 查询待支付的订单详情信息
     *
     * @param trainingOrderNo 学习培训订单编号
     * @return 详情信息
     */
    AjaxResult getWaitPayTrainingOrderDetails(String trainingOrderNo);

}
