package jnpf.model.cultivate.resp;

import jnpf.model.cultivate.req.paper.PaperConfigReq;
import lombok.Data;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 考试
 */
@Data
public class ExamAppVo {

    /**
     * 主键
     */
    private String id;

    /**
     * 考试id，生成规则见原型
     */
    private String examId;

    /**
     * 开始时间
     */
    private Date startTime;

    /**
     * 结束时间
     */
    private Date endTime;

    /**
     * 考试名称
     */
    private String examName;

    /**
     * 试卷主键Id
     */
    private String paperId;

    /**
     * 考试类型,0岗位学习考试,1常规考试
     */
    private Integer examType;


    /**
     * 岗位和职等列表
     */
    private List<PostAndPosition> postAndPositionList;


    /**
     * 考试限制,0单次考试,1重复测试
     */
    private Integer examlimitation;

    /**
     * 考试时长，单位秒
     */
    private Integer examTime;
    /**
     * 题目总分数
     */
    private Integer totleScore;
    /**
     * 合格分数
     */
    private Integer passMark;

    /**
     * 优秀分数
     */
    private Integer excellentMark;

    /**
     * 规则说明
     */
    private String description;

    /**
     * 状态（0-未开始 1-进行中，2-已结束，3-作废）
     */
    private Integer status;

    /**
     * 试卷名称
     */
    private String paperName;
    /**
     * 题目数量,类型，对应数量
     */
    Map<String, PaperConfigReq.QuestionNum> questionNumMap;
    /**
     * 已经完成考试的用户人数
     */
    private Long completeUserNum;

    /**
     * 系统当前时间
     */
    private Date currentSystemTime = new Date();

    /**
     * 补考次数:1-10
     */
    private Integer makeUpCount;
    /**
     * 是否开启水印:0-不开启,1-开启
     */
    private Integer waterMark;
    /**
     * 是否开启切屏限制:0-不开启,1-开启
     */
    private Integer cutScreen;

    /**
     * 最大切屏次数
     */
    private Integer maxCutScreenCount;

    /**
     * 是否禁止截屏:0-不禁止,1-禁止
     */
    private Integer screenshot;


    /**
     * 是否禁止复制粘贴:0-不禁止,1-禁止
     */
    private Integer copyAndPaste;


    /**
     * 是否开启用户超时无交互退出是作弊:0-不开启,1-开启
     */
    private Integer openOverTime;

    /**
     * 超时时间,单位秒
     */
    private Integer overTime;

    /**
     * 考试完成是否允许查看考试详情:0-允许,1-不允许
     */
    private Integer allowSelectDetail;

    /**
     * 是否允许回到上一题:0-允许,1-不允许
     */
    private Integer allowChangeLastQuestion;

    /**
     * 是否作废，0-正常，1-已经作废
     */
    private Integer isNullify = 0;

    /**
     * 是否需要更新,1-不需要更新  2-需要更新
     */
    private Integer needUpdate;

}
