package jnpf.model.cultivate.v2.exam.req;

import lombok.Getter;
import lombok.Setter;
import org.hibernate.validator.constraints.Length;

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

@Getter
@Setter
public class V2SaveExamReq {

    /** 考试类型(0: 岗位考试, 1: 自定义考试) */
    @NotNull(message = "请选择考试类型")
    private Integer examType;

    /** 考试名称 */
    @NotBlank(message = "请填写考试名称")
    @Length(max = 50, message = "考试名称最多50个字符")
    private String examName;

    /** 封面 */
    private String cover;

    /** 是否可以补考(0: 否, 1: 是) 原 考试限制 */
    @NotNull(message = "请选择是否补考")
    private Integer examLimitation;

    /** 补考频次类型(0: 每天, 1: 每周, 2: 每月, 3: 累计, 4: 不限) */
    private Integer reExamFrequencyType;

    /** 补考频次数量 */
    private Integer reExamFrequencyNum;

    /** 考试时长,单位(秒) */
    private Integer examTime;

    /** 考试成员id集合,逗号隔开(自定义考试) */
    private String examMemberId;

    /** 考试范围-开始时间(自定义考试) */
    private Date startTime;

    /** 考试范围-结束时间(自定义考试) */
    private Date endTime;

    /** 抽题类型(1: 固定, 2: 随机) */
    @NotNull(message = "请选择抽题类型")
    private Integer drawMode;

    /** 抽题题库 */
    @NotNull(message = "请选择抽题题库")
    @Size(min = 1, message = "至少选择一个题库")
    private List<String> drawDataBaseList;

    /** 抽题规则(随机/固定) */
    @NotNull(message = "抽题规则不能为空")
    @Size(min = 1, message = "至少选择一个题")
    private List<V2RandomDrawRuleReq> randomDrawRule;

    /** 合格分数类型(1: 固定分, 2: 百分比) */
    @NotNull(message = "请选择合格分数类型")
    private Integer passType;

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

    /** 优秀分数类型(1: 固定分, 2: 百分比) */
    @NotNull(message = "请选择优秀分数类型")
    private Integer excellentType;

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