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

import lombok.Getter;
import lombok.Setter;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

/**
 * 用户考试详情vo
 *
 * @author yanwenfu
 * @create 2026-02-28
 */
@Getter
@Setter
public class MyExamDetailVo {

    /** 用户考试id */
    private String userExamId;

    /** 考试id */
    private String examId;

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

    /** 考试状态(0: 未开始, 1: 进行中, 2: 已结束, 3: 作废) */
    private Integer examStatus;

    /** 我的考试状态(0: 待考试, 1: 待批阅, 2: 已逾期, 3: 合格, 4: 不合格, 5: 优秀) */
    private Integer myExamStatus;

    /** 用户考试结果是否有效(0: 有效, 1: 超过切屏次数视为作弊, 2: 超过考试时间无交互视为作弊) */
    private Integer userExamResultValid;

    /** 备注 */
    private String remark;

    /** 考试结果(已交卷时有) */
    private ExamResultVo examResult;

    /** 抽题规则(json) */
    private String pickQuestionRule;

    /** 抽题规则(固定抽题的时候需要根据题型聚合一下) */
    private List<ExamDrawRuleVo> drawRuleList;

    /** 用户考试用时(秒) */
    private Integer userExamTime;

    /** 问题总数 */
    private Integer questionNum;

    /** 总分 */
    private Integer totalScore;

    /** 合格分 */
    private BigDecimal passScore;

    /** 优秀分 */
    private BigDecimal excellentScore;

    /** 是否限时(1: 是, 0: 否) */
    private Integer limitedTime;

    /** 限时(秒) */
    private Integer examTime;

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

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

    /** 是否可以考试(1: 是, 0: 否) */
    private Integer couldExam;

    /** 需要更新(1: 是, 0: 否) */
    private Integer needUpdate;
}
