package com.qmth.file.model;

//import com.fasterxml.jackson.annotation.JsonFormat;
//import com.qmth.file.enums.ExamStatus;
//import com.qmth.file.enums.ExamType;
//import org.springframework.data.annotation.Id;
//import org.springframework.data.mongodb.core.index.Indexed;
//import org.springframework.data.mongodb.core.mapping.DBRef;
//import org.springframework.data.mongodb.core.mapping.Document;
//import org.springframework.data.mongodb.core.mapping.Field;
//
//import java.io.Serializable;
//import java.util.Date;
//
///**
// * 考试计划
// * @author tianjun
// *
// */
//@Document(collection = "jk_exam_plan")
//public class ExamPlan implements Serializable {
//
//	/**
//	 *
//	 */
//	private static final long serialVersionUID = -6624764888197088459L;
//
//	@Id
//	private String id;
//
//	@Field("name")
//	private String name;
//
//	/**
//	 * 考试识别码  全局唯一
//	 */
//	@Indexed(unique=true)
//	@Field("exam_code")
//	private String examCode;
//
//	/**
//	 * 考试类型
//	 */
//	@Field("exam_type")
//	private ExamType examType;
//
//	/**
//	 * 考试状态
//	 */
//	@Field("exam_status")
//	private ExamStatus examStatus;
//
//	/**
//	 * 开始时间
//	 */
//	@Field("start_time")
//	@JsonFormat(pattern = "yyyy-MM-dd")
//	private Date startTime;
//
//	/**
//	 * 结束时间
//	 */
//	@Field("end_time")
//	@JsonFormat(pattern = "yyyy-MM-dd")
//	private Date endTime;
//
//	/**
//	 * 创建者
//	 */
//	@Field("creator")
//	@DBRef
//	private User creator;
//
//	/**
//	 * 创建时间
//	 */
//	@Field("create_time")
//	private Date createTime;
//
//	@Field("enable")
//	private boolean enable;
//
//	public boolean isEnable() {
//		return enable;
//	}
//
//	public void setEnable(boolean enable) {
//		this.enable = enable;
//	}
//
//	/**
//	 * @return the createTime
//	 */
//	public Date getCreateTime() {
//		return createTime;
//	}
//
//	/**
//	 * @param createTime the createTime to set
//	 */
//	public void setCreateTime(Date createTime) {
//		this.createTime = createTime;
//	}
//
//	/**
//	 * @return the creator
//	 */
//	public User getCreator() {
//		return creator;
//	}
//
//	/**
//	 * @param creator the creator to set
//	 */
//	public void setCreator(User creator) {
//		this.creator = creator;
//	}
//
//	/**
//	 * @return the id
//	 */
//	public String getId() {
//		return id;
//	}
//
//	public String getName() {
//		return name;
//	}
//
//	public void setName(String name) {
//		this.name = name;
//	}
//
//	/**
//	 * @param id the id to set
//	 */
//	public void setId(String id) {
//		this.id = id;
//	}
//
//	/**
//	 * @return the examCode
//	 */
//	public String getExamCode() {
//		return examCode;
//	}
//
//	/**
//	 * @param examCode the examCode to set
//	 */
//	public void setExamCode(String examCode) {
//		this.examCode = examCode;
//	}
//
//	/**
//	 * @return the examType
//	 */
//	public ExamType getExamType() {
//		return examType;
//	}
//
//	/**
//	 * @param examType the examType to set
//	 */
//	public void setExamType(ExamType examType) {
//		this.examType = examType;
//	}
//
//	/**
//	 * @return the examStatus
//	 */
//	public ExamStatus getExamStatus() {
//		return examStatus;
//	}
//
//	/**
//	 * @param examStatus the examStatus to set
//	 */
//	public void setExamStatus(ExamStatus examStatus) {
//		this.examStatus = examStatus;
//	}
//
//	/**
//	 * @return the startTime
//	 */
//	public Date getStartTime() {
//		return startTime;
//	}
//
//	/**
//	 * @param startTime the startTime to set
//	 */
//	public void setStartTime(Date startTime) {
//		this.startTime = startTime;
//	}
//
//	/**
//	 * @return the endTime
//	 */
//	public Date getEndTime() {
//		return endTime;
//	}
//
//	/**
//	 * @param endTime the endTime to set
//	 */
//	public void setEndTime(Date endTime) {
//		this.endTime = endTime;
//	}
//}

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qmth.file.enums.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;

/**
 * <p>
 * 考试计划
 * </p>
 *
 * @author wangliang
 * @since 2023-03-01
 */
@ApiModel(value = "JkExamPlan对象", description = "考试计划")
public class ExamPlan implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    @ApiModelProperty(value = "同步云阅卷考试id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long examTaskId;

    @ApiModelProperty(value = "考试名称")
    private String name;

    @ApiModelProperty(value = "考试编码")
    private String examCode;

    @ApiModelProperty(value = "考试类型，NORMAL：通用机考，SOLFEGE：视唱机考，UTEST：优特机考")
    private ExamType examType;

    @ApiModelProperty(value = "考试状态，UN_PUBLISHED：未发布，PUBLISHED：已发布")
    private ExamStatus examStatus;

    @ApiModelProperty(value = "开始时间")
    private Long startTime;

    @ApiModelProperty(value = "结束时间")
    private Long endTime;

    @ApiModelProperty(value = "创建人id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long creatorId;

    @ApiModelProperty(value = "创建时间")
    private Long createTime;

    @ApiModelProperty(value = "是否启用，1：启用，0：不启用")
    private Boolean enable;

    @ApiModelProperty(value = "是否是模拟测试，0：否，1：是")
    private String simulation;

    @ApiModelProperty(value = "抽卷规则，USE_LAST：使用上次考试的试卷，USE_NEW：重新抽卷")
    private ExamPaperRule paperRule;

    @ApiModelProperty(value = "登录规则，ONLY_TICKET：准考证号，TICKET_IDCARD：准考证号和身份证号")
    private ExamLoginRule loginRule;

    @ApiModelProperty(value = "客户端主题资源包，WHYYXY：武汉音乐学院，SCYYXY：四川音乐学院")
    private ExamClientTheme clientTheme;

    @ApiModelProperty(value = "是否开启考场监控，YES：是，NO：否")
    private OpenMonitor openMonitor;

    @ApiModelProperty(value = "是否开启人脸，0：否，1：是")
    private String faceVerifyOpen;

    @ApiModelProperty(value = "人脸识别间隔时间")
    private Integer faceVerifyIntervalTime;

    @ApiModelProperty(value = "是否现场出分，YES：是，NO：否")
    private SceneScore sceneScore;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getExamTaskId() {
        return examTaskId;
    }

    public void setExamTaskId(Long examTaskId) {
        this.examTaskId = examTaskId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getExamCode() {
        return examCode;
    }

    public void setExamCode(String examCode) {
        this.examCode = examCode;
    }

    public ExamType getExamType() {
        return examType;
    }

    public void setExamType(ExamType examType) {
        this.examType = examType;
    }

    public ExamStatus getExamStatus() {
        return examStatus;
    }

    public void setExamStatus(ExamStatus examStatus) {
        this.examStatus = examStatus;
    }

    public Long getStartTime() {
        return startTime;
    }

    public void setStartTime(Long startTime) {
        this.startTime = startTime;
    }

    public Long getEndTime() {
        return endTime;
    }

    public void setEndTime(Long endTime) {
        this.endTime = endTime;
    }

    public Long getCreatorId() {
        return creatorId;
    }

    public void setCreatorId(Long creatorId) {
        this.creatorId = creatorId;
    }

    public Long getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Long createTime) {
        this.createTime = createTime;
    }

    public Boolean getEnable() {
        return enable;
    }

    public void setEnable(Boolean enable) {
        this.enable = enable;
    }

    public String getSimulation() {
        return simulation;
    }

    public void setSimulation(String simulation) {
        this.simulation = simulation;
    }

    public ExamPaperRule getPaperRule() {
        return paperRule;
    }

    public void setPaperRule(ExamPaperRule paperRule) {
        this.paperRule = paperRule;
    }

    public ExamLoginRule getLoginRule() {
        return loginRule;
    }

    public void setLoginRule(ExamLoginRule loginRule) {
        this.loginRule = loginRule;
    }

    public ExamClientTheme getClientTheme() {
        return clientTheme;
    }

    public void setClientTheme(ExamClientTheme clientTheme) {
        this.clientTheme = clientTheme;
    }

    public OpenMonitor getOpenMonitor() {
        return openMonitor;
    }

    public void setOpenMonitor(OpenMonitor openMonitor) {
        this.openMonitor = openMonitor;
    }

    public String getFaceVerifyOpen() {
        return faceVerifyOpen;
    }

    public void setFaceVerifyOpen(String faceVerifyOpen) {
        this.faceVerifyOpen = faceVerifyOpen;
    }

    public Integer getFaceVerifyIntervalTime() {
        return faceVerifyIntervalTime;
    }

    public void setFaceVerifyIntervalTime(Integer faceVerifyIntervalTime) {
        this.faceVerifyIntervalTime = faceVerifyIntervalTime;
    }

    public SceneScore getSceneScore() {
        return sceneScore;
    }

    public void setSceneScore(SceneScore sceneScore) {
        this.sceneScore = sceneScore;
    }
}