package com.ruoyi.hezhi.domain.dto;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 我的考试、模拟题目（做过）对象 tb_member_exam_simulate_all
 *
 * @author ruoyi
 * @date 2024-11-11
 */
@Getter
@Setter
@ToString
public class MemberExamSimulateAllDTO implements Serializable {
    private static final long serialVersionUID = 1L;

    /** 模拟考试答题 */
    public interface subjectSimulateAnswer{}
    /** 模拟考试交卷 */
    public interface subjectSimulateSubmit{}
    /** 正式考试交卷 */
    public interface subjectFormalAnswer{}
    /** 正式考试点击确定开始答题 */
    public interface subjectFormalClickOK{}
    /** 正式考试交卷 */
    public interface subjectFormalSubmit{}
    /** 正式考试补考 */
    public interface subjectFormalAgain{}

    /** 我的考试、模拟题目（做过）主键ID */
    private Long memberExamSimulateAllId;

    /** 题库分类ID */
//    @NotNull(message = "缺少题库分类ID", groups = {subjectSimulateAnswer.class})
    private Long subjectWarehouseClassId;

    /** 课程ID */
    @NotNull(message = "缺少课程ID", groups = {subjectSimulateAnswer.class})
    private Long courseId;

    /** 考试、模拟考试考生详情ID */
    @NotNull(message = "缺少模拟考试考生详情ID", groups = {subjectSimulateAnswer.class, subjectSimulateSubmit.class, subjectFormalAnswer.class, subjectFormalClickOK.class, subjectFormalSubmit.class})
    private Long examSimulateInfoId;

    /** 用户ID */
    @NotNull(message = "请先登录", groups = {subjectSimulateAnswer.class, subjectSimulateSubmit.class, subjectFormalAnswer.class, subjectFormalClickOK.class, subjectFormalSubmit.class, subjectFormalAgain.class})
    private Long memberUserId;

    /** 题目ID */
    @NotNull(message = "缺少题目ID", groups = {subjectSimulateAnswer.class, subjectFormalAnswer.class})
    private Long examSubjectId;

    /** 题目类型（1-单选，2-多选，3-判断，4-论述） */
    private Integer subjectType;

    /** 考试分类（0-无，1-正式考试，2-模拟考试） */
    private Integer examType;

    /** 序号 */
    @NotNull(message = "缺少序号", groups = {subjectSimulateAnswer.class})
    private Long location;

    /** 我的答案 */
    private String myAnswer;

    /** 答案 */
    private String answer;

    /** 分数 */
    private BigDecimal score;

    /** 0-未回答，1-正确，2-错误，3-论述 */
    private Integer status;

    /** 等级 */
    private Integer level;

    /** 考试ID */
    @NotNull(message = "缺少考试ID", groups = {subjectFormalAnswer.class, subjectFormalAgain.class})
    private Long examId;

    /** 交卷状态（0-无，1-自主交卷，2-系统交卷） */
    @NotNull(message = "缺少交卷状态", groups = {subjectFormalSubmit.class})
    private Integer submitStatus;

    @NotEmpty(message = "答题卡不能为空")
    private List<MemberExamSimulateAllDTO> memberExamSimulateAllList;

}
