package jnpf.model.cultivate.vo.course.web;

import jnpf.model.cultivate.dto.course.testoption.FtbCultivateChapterTestDTO;
import jnpf.model.cultivate.dto.course.testoption.FtbCultivateChapterTestOptionDTO;
import jnpf.model.cultivate.po.course.FtbCultivateChapterTest;
import jnpf.model.cultivate.po.course.FtbCultivateChapterTestOption;
import jnpf.model.cultivate.po.course.FtbCultivateCourseChapter;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.List;

@Data
public class FtbCultivateCourseChapterDetailsVO {

    /**
     * 章节主键ID
     */
    private String chapterId;

    /**
     * 课程主键id
     */
    private String courseId;

    /**
     * 章节名称
     */
    private String name;

    /**
     * 排序码,1,2,3
     */
    private Integer sortCode;

    /**
     * 附件地址
     */
    private String annex;

    /**
     * 附件名称
     */
    private String annexName;

    /**
     * 详细描述
     */
    private String detailDesc;

    /**
     * 时长如果为音频或视频时，需要插入（秒）
     */
    private Integer duration;

    /**
     * 图文格式最短学习时长设置，单位秒，为0则未开启，不为0则开启
     */
    private Integer forcedStudy;

    /**
     * 是否开启随堂测试,0开启，1不开启
     */
    private Integer whetherTesting;

    /**
     * 随堂测试
     */
    private List<FtbCultivateChapterTestUpdateDTO> cultivateChapterTestUpdate;

    /**
     * 课件类型，0文档，1图片，2视频，3音频
     */
    private Integer chapterType;

    /**
     * 资料库id
     */
    private String libraryId;

    @EqualsAndHashCode(callSuper = true)
    @Data
    public static class FtbCultivateChapterTestUpdateDTO extends FtbCultivateChapterTestDTO {
        /**
         * 随堂测试id
         */
        private String chapterTestId;
        /**
         * 选项内容
         */
        private List<FtbCultivateChapterTestOptionUpdateDTO> chapterTestOptionUpdateDTOS;

    }

    @EqualsAndHashCode(callSuper = true)
    @Data
    public static class FtbCultivateChapterTestOptionUpdateDTO extends FtbCultivateChapterTestOptionDTO {
        /**
         * 随堂测试选项id
         */
        private String chapterTestOptionId;
    }

    public static FtbCultivateCourseChapterDetailsVO convert(FtbCultivateCourseChapter ftbCultivateCourseChapter) {
        if (ftbCultivateCourseChapter == null) {
            return null;
        }
        FtbCultivateCourseChapterDetailsVO ftbCultivateCourseChapterDetailsVO = new FtbCultivateCourseChapterDetailsVO();
        ftbCultivateCourseChapterDetailsVO.setCourseId(ftbCultivateCourseChapter.getCourseId());
        ftbCultivateCourseChapterDetailsVO.setName(ftbCultivateCourseChapter.getName());
        ftbCultivateCourseChapterDetailsVO.setSortCode(ftbCultivateCourseChapter.getSortCode());
        ftbCultivateCourseChapterDetailsVO.setAnnex(ftbCultivateCourseChapter.getAnnex());
        ftbCultivateCourseChapterDetailsVO.setAnnexName(ftbCultivateCourseChapter.getAnnexName());
        ftbCultivateCourseChapterDetailsVO.setDetailDesc(ftbCultivateCourseChapter.getDetailDesc());
        ftbCultivateCourseChapterDetailsVO.setDuration(ftbCultivateCourseChapter.getDuration());
        ftbCultivateCourseChapterDetailsVO.setForcedStudy(ftbCultivateCourseChapter.getForcedStudy());
        ftbCultivateCourseChapterDetailsVO.setWhetherTesting(ftbCultivateCourseChapter.getWhetherTesting());
        ftbCultivateCourseChapterDetailsVO.setChapterId(ftbCultivateCourseChapter.getId());
        ftbCultivateCourseChapterDetailsVO.setChapterType(ftbCultivateCourseChapter.getChapterType());
        ftbCultivateCourseChapterDetailsVO.setLibraryId(ftbCultivateCourseChapter.getLibraryId());
        return ftbCultivateCourseChapterDetailsVO;
    }

    public static FtbCultivateChapterTestUpdateDTO convertFtbCultivateChapterTestUpdateDTO(FtbCultivateChapterTest chapterTest) {
        if (chapterTest == null) {
            return null;
        }
        FtbCultivateChapterTestUpdateDTO ftbCultivateChapterTestUpdateDTO = new FtbCultivateChapterTestUpdateDTO();
        ftbCultivateChapterTestUpdateDTO.setForcedStudy(chapterTest.getForcedStudy());
        ftbCultivateChapterTestUpdateDTO.setTopicName(chapterTest.getTopicName());
        ftbCultivateChapterTestUpdateDTO.setAnswerAnalysis(chapterTest.getAnswerAnalysis());
        ftbCultivateChapterTestUpdateDTO.setChapterTestId(chapterTest.getId());
        return ftbCultivateChapterTestUpdateDTO;
    }

    public static FtbCultivateChapterTestOptionUpdateDTO convertFtbCultivateChapterTestOptionUpdateDTO(FtbCultivateChapterTestOption chapterTestOption) {
        if (chapterTestOption == null) {
            return null;
        }
        FtbCultivateChapterTestOptionUpdateDTO ftbCultivateChapterTestOptionUpdateDTO = new FtbCultivateChapterTestOptionUpdateDTO();
        ftbCultivateChapterTestOptionUpdateDTO.setIsRightOption(chapterTestOption.getIsRightOption());
        ftbCultivateChapterTestOptionUpdateDTO.setContent(chapterTestOption.getContent());
        ftbCultivateChapterTestOptionUpdateDTO.setSortCode(chapterTestOption.getSortCode());
        ftbCultivateChapterTestOptionUpdateDTO.setChapterTestOptionId(chapterTestOption.getId());
        return ftbCultivateChapterTestOptionUpdateDTO;
    }

}
