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

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.EnumValue;
import jnpf.easyexcel.EasyEnumNames;
import jnpf.easyexcel.EasyEnumNamesConverter;
import jnpf.easyexcel.FastJsonEnumConverter;
import lombok.Data;
import lombok.Getter;
import lombok.RequiredArgsConstructor;

import java.math.BigDecimal;

@Data
public class FtbCultivateCoursePersonStatisticesVO {

    /**
     * 课程名称
     */
    @ExcelProperty("课程名称")
    private String courseTitle;

    /**
     * 课程类型
     */
    @ExcelProperty("课程标签")
    private String courseType;

    /**
     * 课程格式（1视频，2音频，3图文）
     */
    @ExcelIgnore
    private CourseFormat courseFormat;

    /**
     * 课程创建时间
     */
    @ExcelProperty("课程创建时间")
    private String courseCreationTime;

    /**
     * 员工姓名
     */
    @ExcelProperty("员工姓名")
    private String employeeSName;

    /**
     * 员工ID
     */
    @ExcelProperty("员工ID")
    private String employeeId;

    /**
     * 所属组织_岗位_职等
     */
    @ExcelProperty("所属组织_岗位_职级")
    private String affiliatedOrgPosLevel;

    /**
     * 最近学习时间
     */
    @ExcelProperty("最近学习时间")
    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    private String recentStudyTime;

    /**
     * 参与学习时长(h)
     */
    @ExcelProperty("参与学习时长(h)")
    private BigDecimal participationTimeInStudy;

    /**
     * 学习进度(%)
     */
    @ExcelProperty("学习进度(%)")
    private BigDecimal learningProgress;

    @ExcelIgnore
    private String userId;

    @ExcelIgnore
    private String courseId;
    /**
     * 章节数量
     */
    @ExcelIgnore
    private Integer chapterNumber;


    @RequiredArgsConstructor
    @Getter
    public enum CourseFormat implements EasyEnumNames {

        VIDEO(1, "视频"),

        AUDIO(2, "音频"),

        TEXT(3, "图文"),

        COMMON_FORMAT(4, "通用"),

        ;
        @EnumValue
        private final Integer code;

        private final String message;

        @Override
        public String getName() {
            return message;
        }

    }

}
