package jnpf.model.cultivate.req.exam;

import com.baomidou.mybatisplus.annotation.TableField;
import jnpf.model.cultivate.resp.PostAndPosition;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

@Data
public class SaveExamReq {
    /**
     * 考试ID
     */
    private String id;

    /**
     * 有效标志
     */
    private Integer enabledMark;


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

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

    /**
     * 考试名称
     */
    @NotBlank(message = "考试名称-不能为空")
    @Length(max = 50, message = "考试名称最多50个字符")
    private String examName;

    /**
     * 试卷主键Id
     */
    @NotNull(message = "关联试卷Id-不能为空")
    private String paperId;

    /**
     * 考试类型,0岗位学习考试,1常规考试
     */
    @NotNull(message = "考试类型-不能为空")
    private Integer examType;

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


    /**
     * 考试限制,0单次考试,1重复测试
     */
    @NotNull(message = "考试限制-不能为空")
    private Integer examlimitation;

    /**
     * 考试时长，单位秒
     */
    private Integer examTime;

    /**
     * 合格分数类型（1固定分，2百分比）
     */
    @NotNull(message = "合格分数类型-不能为空")
    private Integer passType;

    /**
     * 合格分数
     */
    private Integer passMark;

    /**
     * 优秀分数类型（1固定分，2百分比）
     */
    @NotNull(message = "优秀分数类型-不能为空")
    private Integer excellentType;

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

    /**
     * 规则说明
     */
    @Length(max = 500, message = "规则不能超过500字符")
    private String description;


    /**
     * 批阅人类型,0:直属主管  1:指定人员id
     *
     */

    private String reviewer;

    /**
     * 选择指定批阅人，逗号隔开
     */

    private String reviewerAppoint;
    /**
     * 选择指定批阅人 列表
     */

    private List<ReviewerAppointDto> reviewerAppointListConfig;

    /**
     * 批阅角色
     */

    private String reviewerRole;

    /**
     * 考试成员id集合,逗号隔开
     */

    private String examMemberId;



    /**
     * 补考次数: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-每周 2-每月 3-累计 4-不限
     */
    private Integer reExamFrequencyType;
    /**
     * 补考频次数量
     */
    private Integer reExamFrequencyNum;

    /**
     * 是否打乱题目顺序，0-不打乱  1-打乱
     */
    private Integer examQuestionRandom;

}
