package com.ruoyi.sim.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 考试集合对象 sim_real_exam_collection
 *
 * @author tom
 * @date 2024-12-17
 */
public class RealExamCollection extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 考试集合ID
     */
    private Long examCollectionId;

    /**
     * 模拟器类型
     */
    @Excel(name = "模拟器类型")
    private String simType;

    /**
     * 出题方式:[1]-系统随机,[2]-教师自选,[3]任务自选
     */
    @Excel(name = "出题方式")
    private String questionSettingMethod;

    /**
     * 考试类型:[1]-练习,[2]-自主练习,[3]-考试
     */
    @Excel(name = "考试类型")
    private String examCollectionType;

    /**
     * 考试名称
     */
    @Excel(name = "考试名称")
    private String examCollectionName;

    /**
     * 考试集合状态:[0]-初始化,[2]-打开,[3]-关闭
     */
    @Excel(name = "考试集合状态:[0]-初始化,[2]-打开,[3]-关闭")
    private String examCollectionState;

    /**
     * 任务ID
     */
    @Excel(name = "任务ID")
    private Long taskId;

    /**
     * 限制时长(分钟)
     */
    @Excel(name = "限制时长(分钟)")
    private Long limitDuration;

    /**
     * 考试开始时间(天)
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "考试开始时间(天)", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /**
     * 考试结束时间(天)
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "考试结束时间(天)", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /**
     * 创建教师ID/用户ID
     */
    @Excel(name = "创建教师ID/用户ID")
    private Long createUserId;

    public void setExamCollectionId(Long examCollectionId) {
        this.examCollectionId = examCollectionId;
    }

    public Long getExamCollectionId() {
        return examCollectionId;
    }

    public void setSimType(String simType) {
        this.simType = simType;
    }

    public String getSimType() {
        return simType;
    }

    public void setQuestionSettingMethod(String questionSettingMethod) {
        this.questionSettingMethod = questionSettingMethod;
    }

    public String getQuestionSettingMethod() {
        return questionSettingMethod;
    }

    public void setExamCollectionType(String examCollectionType) {
        this.examCollectionType = examCollectionType;
    }

    public String getExamCollectionType() {
        return examCollectionType;
    }

    public void setExamCollectionName(String examCollectionName) {
        this.examCollectionName = examCollectionName;
    }

    public String getExamCollectionName() {
        return examCollectionName;
    }

    public void setExamCollectionState(String examCollectionState) {
        this.examCollectionState = examCollectionState;
    }

    public String getExamCollectionState() {
        return examCollectionState;
    }

    public void setTaskId(Long taskId) {
        this.taskId = taskId;
    }

    public Long getTaskId() {
        return taskId;
    }

    public void setLimitDuration(Long limitDuration) {
        this.limitDuration = limitDuration;
    }

    public Long getLimitDuration() {
        return limitDuration;
    }

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

    public Date getStartTime() {
        return startTime;
    }

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

    public Date getEndTime() {
        return endTime;
    }

    public void setCreateUserId(Long createUserId) {
        this.createUserId = createUserId;
    }

    public Long getCreateUserId() {
        return createUserId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("examCollectionId", getExamCollectionId())
                .append("simType", getSimType())
                .append("questionSettingMethod", getQuestionSettingMethod())
                .append("examCollectionType", getExamCollectionType())
                .append("examCollectionName", getExamCollectionName())
                .append("examCollectionState", getExamCollectionState())
                .append("taskId", getTaskId())
                .append("limitDuration", getLimitDuration())
                .append("startTime", getStartTime())
                .append("endTime", getEndTime())
                .append("createUserId", getCreateUserId())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .toString();
    }

    // -------------------------------- tom add  --------------------------------
    public interface SettingMethod {
        String SYSTEM_RANDOM = "1";
        String TEACHER_SELECT = "2";
        String TASK_SELECT = "3";
    }

    public interface Type {
        String EXERCISE = "1";
        String SELF_EXERCISE = "2";
        String EXAM = "3";
    }

    public interface State {
        String INIT = "0";
        String OPENED = "2";
        String CLOSED = "3";
    }
}
