package jnpf.cultivate.service;

import jnpf.base.UserInfo;
import jnpf.model.cultivate.dto.course.app.FtbChapterStudyDTO;
import jnpf.model.cultivate.vo.course.app.FtbChapterAppDetails;
import jnpf.model.cultivate.vo.course.app.FtbCourseDetailsAppVO;
import jnpf.model.cultivate.vo.course.app.FtbCourseOutlineAppVO;

/**
 * @Title:FtbCultivateCourseAppService
 * @Author:peng.hao
 * @create: 2023/12/2911:21
 */
public interface FtbCultivateCourseAppService {
    /**
     * 课程学习模块-课程详情
     *
     * @param courseId 课程id
     * @param userId   用户id
     * @return 课程详情
     */
    FtbCourseDetailsAppVO courseDetails(String courseId, String userId);

    /**
     * 完成章节学习
     * @param userInfo 用户信息
     * @param ftbChapterStudyDTO 章节学习参数
     */
    void chapterStudy(UserInfo userInfo, FtbChapterStudyDTO ftbChapterStudyDTO);

    /**
     * 增加当前课程浏览量
     * @param courseId 课程id
     */
    void courseBrowsing(String courseId);

    /**
     * 课程大纲
     * @param courseId  课程id
     * @param userId 用户id
     */
    FtbCourseOutlineAppVO courseOutline(String courseId, String userId);

    /**
     * 时长记录
     * @param userInfo 用户信息
     * @param ftbChapterStudyDTO 时长记录参数
     */
    void durationRecord(UserInfo userInfo, FtbChapterStudyDTO ftbChapterStudyDTO);

    /**
     * 章节详情
     * @param id 章节id
     */
    FtbChapterAppDetails chapterDetails(String id);
}
