package jnpf.model.cultivate.po.exam;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * 考试表
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "ftb_cultivate_exam_history_paper")
public class FtbCultivateExamHistoryPaper extends SuperEntity.SuperCBaseEntity<String> {

    /**
     * 考试的表的主键ID（ftb_cultivate_exam）
     */
    @TableField(value = "F_PrimaryExamId")
    private String primaryExamId;

    /**
     * 有效标志
     */
    @TableField(value = "F_EnabledMark")
    private Integer enabledMark;



    /**
     * 考试id，生成规则见原型
     */
    @TableField(value = "F_ExamId")
    private String examId;

    /**
     * 开始时间
     */
    @TableField(value = "F_StartTime")
    private Date startTime;

    /**
     * 结束时间
     */
    @TableField(value = "F_EndTime")
    private Date endTime;

    /**
     * 考试名称
     */
    @TableField(value = "F_ExamName")
    private String examName;

    /**
     * 试卷主键Id
     */
    @TableField(value = "F_PaperId")
    private String paperId;


    /**
     * 考试类型,0岗位学习考试,1常规考试
     */
    @TableField(value = "F_ExamType")
    private Integer examType;

    /**
     * 岗位Id集合,逗号隔开
     */
    @TableField(value = "F_PostId")
    private String postId;

    /**
     * 岗位职等Id集合,逗号隔开
     */
    @TableField(value = "F_PostRankId")
    private String postRankId;

    /**
     * 岗位职等json数组
     */
    @TableField(value = "F_PostRankConf")
    private String postRankConf;

    /**
     * 考试限制,0单次考试,1重复测试
     */
    @TableField(value = "F_ExamLimitation")
    private Integer examlimitation;

    /**
     * 考试时长，单位秒
     */
    @TableField(value = "F_ExamTime")
    private Integer examTime;

    /**
     * 合格分数类型（1固定分，2百分比）
     */
    @TableField(value = "F_PassType")
    private Integer passType;

    /**
     * 合格分数
     */
    @TableField(value = "F_PassMark")
    private Integer passMark;

    /**
     * 优秀分数类型（1固定分，2百分比）
     */
    @TableField(value = "F_ExcellentType")
    private Integer excellentType;

    /**
     * 优秀分数
     */
    @TableField(value = "F_ExcellentMark")
    private Integer excellentMark;

    /**
     * 规则说明
     */
    @TableField(value = "F_Description")
    private String description;

    /**
     * 0-未开始 1-进行中，2-已结束，3-作废（常规考试有）
     */
    @TableField(value = "F_Status")
    private Integer status;

    /**
     * 批阅人,直属主管id或者指定人员id
     */
    @TableField(value = "F_Reviewer")
    private String reviewer;

    /**
     * 选择指定批阅人，逗号隔开
     */
    @TableField(value = "F_ReviewerAppoint")
    private String reviewerAppoint;

    /**
     * 选择指定批阅人列表配置
     */
    @TableField(value = "F_ReviewerAppointListConfig")
    private String reviewerAppointListConfig;

    /**
     * 批阅角色
     */
    @TableField(value = "F_ReviewerRole")
    private String reviewerRole;

    /**
     * 考试成员id集合,逗号隔开
     */
    @TableField(value = "F_ExamMemberId")
    private String examMemberId;


    /**
     * 试卷名称
     */
    @TableField(value = "F_PaperName")
    private String paperName;


    /**
     * 补考次数:1-10
     */
    @TableField(value = "F_MakeUpCount")
    private Integer makeUpCount;
    /**
     * 是否开启水印:0-不开启,1-开启
     */
    @TableField(value = "F_WaterMark")
    private Integer waterMark;
    /**
     * 是否开启切屏限制:0-不开启,1-开启
     */
    @TableField(value = "F_CutScreen")
    private Integer cutScreen;

    /**
     * 最大切屏次数
     */
    @TableField(value = "F_MaxCutScreenCount")
    private Integer maxCutScreenCount;

    /**
     * 是否禁止截屏:0-不禁止,1-禁止
     */
    @TableField(value = "F_Screenshot")
    private Integer screenshot;


    /**
     * 是否禁止复制粘贴:0-不禁止,1-禁止
     */
    @TableField(value = "F_CopyAndPaste")
    private Integer copyAndPaste;


    /**
     * 是否开启用户超时无交互退出是作弊:0-不开启,1-开启
     */
    @TableField(value = "F_OpenOverTime")
    private Integer openOverTime;

    /**
     * 超时时间,单位秒
     */
    @TableField(value = "F_OverTime")
    private Integer overTime;

    /**
     * 考试完成是否允许查看考试详情:0-允许,1-不允许
     */
    @TableField(value = "F_AllowSelectDetail")
    private Integer allowSelectDetail;

    /**
     * 是否允许回到上一题:0-允许,1-不允许
     */
    @TableField(value = "F_AllowChangeLastQuestion")
    private Integer allowChangeLastQuestion;

    /**
     * 题目总数
     */
    @TableField(value = "F_CurrQuestionNumber")
    private Integer currQuestionNumber;

    /**
     * 题目的总分数
     */
    @TableField(value = "F_CurrTotalScore")
    private Integer currTotalScore;

    /**
     * 试卷题目备份
     */
    @TableField(value = "F_CurrQuestionList")
    private String currQuestionList;


    /**
     * 考试版本，兼容老数据
     */
    @TableField(value = "F_ExamVersion")
    private Integer examVersion;

    /**
     * 是否需要更新,1-不需要更新  2-需要更新
     */
    @TableField(value = "F_NeedUpdate")
    private Integer needUpdate;


    /**
     * 考试批次，区分考试记录归属历史
     */
    @TableField(value = "F_VersionBatch")
    private String versionBatch;

    /**
     * 试卷信息
     */
    @TableField(value = "F_PaperInfo")
    private String paperInfo;


    /**
     * 补考频次类型,0-每天 1-每周 2-每月 3-累计 4-不限
     */
    @TableField(value = "F_ReExamFrequencyType")
    private Integer reExamFrequencyType;
    /**
     * 补考频次数量
     */
    @TableField(value = "F_ReExamFrequencyNum")
    private Integer reExamFrequencyNum;

    /**
     * 是否打乱题目顺序，0-不打乱  1-打乱
     */
    @TableField(value = "F_ExamQuestionRandom")
    private Integer examQuestionRandom;

}