package jnpf.model.cultivate.vo.position;

import com.baomidou.mybatisplus.annotation.TableField;
import jnpf.model.cultivate.vo.promotion.FtbCultivatePromotionLevelMapVO;
import lombok.Data;

import java.util.List;

/**
 * @author fantaibao
 * @date 2023/12/29
 */
@Data
public class FtbJobLearningConfigurationVO {
    /**
     * 岗位主键ID
     */
    private String postId;
    /**
     * 岗位ID，用于页面显示
     */
    private String postCustomId;
    /**
     * 岗位名
     */
    private String postName;
    /**
     * 职等显示
     */
    private List<GradeInformation> gradeDisplay;
    /**
     * 学习地图数
     */
    private Integer numberOfPromotionChannels;
    /**
     * 学习课程数
     */
    private Integer numberOfStudyCourses;
    /**
     * 实操鉴定数
     */
    private Integer numberOfPracticalAppraisals;
    /**
     * 试卷数
     */
    private Integer numberOfTestPapers;
    /**
     * 学习地图信息
     */
    private FtbCultivatePromotionLevelMapVO promotionChannels;
    /**
     * 实操鉴定信息
     */
    private List<PracticalIdentification> practicalIdentifications;
    /**
     * 学习课程信息
     */
    private List<LearningCourses> learningCourses;
    /**
     * 试卷信息
     */
    private List<TestPaper> testPapers;

    @Data
    public static class PromotionChannel {
        /**
         * 晋升通道名称
         */
        private String promotion;
        /**
         * 岗位信息
         */
        private List<CultivatePromotion> cultivatePromotions;
    }

    @Data
    public static class LearningCourses {
        /**
         * 课程名称
         */
        private String name;

        /**
         * 课程格式（1视频，2音频，3图文）
         */
        private Integer format;
        /**
         * 课程ID(页面展示)
         */
        private String courseId;
    }

    @Data
    public static class PracticalIdentification {
        /**
         * 鉴定类型,0岗位学习鉴定,1课程学习鉴定
         */
        private Integer type;
        /**
         * 鉴定ID(页面展示)
         */
        private String identifyId;

        private String id;
        /**
         * 鉴定名称
         */
        private String identifyName;
    }

    @Data
    public static class TestPaper {
        /**
         * 试卷类型,0岗位学习考试,1课程学习考试
         */
        private Integer type;
        /**
         * 试卷ID(页面展示)
         */
        private String paperId;
        /**
         * 试卷名称
         */
        private String paperName;
        /**
         * 课程名称
         */
        private String courseName;

        private String id;
    }

    @Data
    public static class CultivatePromotion {
        /**
         * 通道初始岗位名称
         */
        private String postName;
        /**
         * 岗位等级，初始岗位为1,岗位级别越高，位置就越靠后，级别数就越大
         */
        private Integer channelLevel;
    }

    @Data
    public static class GradeInformation {
        /**
         * 职等名称
         */
        @TableField(value = "F_FullName")
        private String fullName;
        /**
         * 职等级别;岗位级别越高，位置就越靠后，级别数就越大
         */
        private Long gradesLevel;
    }

}
