package com.ruoyi.abuwx.domain.exam;

import java.math.BigDecimal;
import java.util.List;

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;

/**
 * 试题对象 exm_question
 * 
 * @author ruoyi
 * @date 2024-05-17
 */
public class ExmQuestion extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 类型（1：单选；2：多选；3：填空；4：判断；5：问答） */
    @Excel(name = "类型", readConverterExp = "1=：单选；2：多选；3：填空；4：判断；5：问答")
    private Integer type;

    /** 题干 */
    @Excel(name = "题干")
    private String title;

    /**  阅卷类型（1：客观题；2：主观题） */
    @Excel(name = " 阅卷类型", readConverterExp = "1=：客观题；2：主观题")
    private Integer markType;

    /**  阅卷选项（2：答案无顺序；3：不分大小写；) */
    @Excel(name = " 阅卷选项", readConverterExp = " 阅卷选项（2：答案无顺序；3：不分大小写；)")
    private String markOptions;

    /**  阅卷选项（2：答案无顺序；3：不分大小写；) */
    @Excel(name = " 阅卷选项", readConverterExp = " 阅卷选项（2：答案无顺序；3：不分大小写；)")
    private List<Integer> markOptionVos;

    /** 解析 */
    @Excel(name = "解析")
    private String analysis;

    /** 默认分值 */
    @Excel(name = "默认分值")
    private BigDecimal score;

    /** 状态（0：删除；1：发布；） */
    @Excel(name = "状态", readConverterExp = "0=：删除；1：发布；")
    private Integer state;

    /** 试题分类ID */
    @Excel(name = "试题分类ID")
    private Long questionTypeId;

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

    /** 修改用户ID */
    @Excel(name = "修改用户ID")
    private Long updateUserId;

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

    public Long getId() 
    {
        return id;
    }
    public void setType(Integer type)
    {
        this.type = type;
    }

    public Integer getType()
    {
        return type;
    }
    public void setTitle(String title) 
    {
        this.title = title;
    }

    public String getTitle() 
    {
        return title;
    }
    public void setMarkType(Integer markType)
    {
        this.markType = markType;
    }

    public Integer getMarkType()
    {
        return markType;
    }
    public void setMarkOptions(String markOptions) 
    {
        this.markOptions = markOptions;
    }

    public String getMarkOptions() 
    {
        return markOptions;
    }
    public void setAnalysis(String analysis) 
    {
        this.analysis = analysis;
    }

    public String getAnalysis() 
    {
        return analysis;
    }
    public void setScore(BigDecimal score) 
    {
        this.score = score;
    }

    public BigDecimal getScore() 
    {
        return score;
    }
    public void setState(Integer state)
    {
        this.state = state;
    }

    public Integer getState()
    {
        return state;
    }
    public void setQuestionTypeId(Long questionTypeId) 
    {
        this.questionTypeId = questionTypeId;
    }

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

    public Long getCreateUserId() 
    {
        return createUserId;
    }
    public void setUpdateUserId(Long updateUserId) 
    {
        this.updateUserId = updateUserId;
    }

    public Long getUpdateUserId() 
    {
        return updateUserId;
    }

    public List<Integer> getMarkOptionVos() {
        return markOptionVos;
    }

    public void setMarkOptionVos(List<Integer> markOptionVos) {
        this.markOptionVos = markOptionVos;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("type", getType())
            .append("title", getTitle())
            .append("markType", getMarkType())
            .append("markOptions", getMarkOptions())
            .append("analysis", getAnalysis())
            .append("score", getScore())
            .append("state", getState())
            .append("questionTypeId", getQuestionTypeId())
            .append("createUserId", getCreateUserId())
            .append("updateUserId", getUpdateUserId())
            .append("updateTime", getUpdateTime())
            .toString();
    }

    /**  选项字段集合*/
    @Excel(name = "选项字段")
    private List<String> questionOptions;

    /** 答案集合*/
    @Excel(name = "答案集合")
    private List<String> questionAnswers;

    /** 得分集合，主观或者多选题使用*/
    @Excel(name = "得分集合")
    private List<BigDecimal> scores;

    public List<String> getQuestionOptions() {
        return questionOptions;
    }

    public void setQuestionOptions(List<String> questionOptions) {
        this.questionOptions = questionOptions;
    }

    public List<String> getQuestionAnswers() {
        return questionAnswers;
    }

    public void setQuestionAnswers(List<String> questionAnswers) {
        this.questionAnswers = questionAnswers;
    }

    public List<BigDecimal> getScores() {
        return scores;
    }

    public void setScores(List<BigDecimal> scores) {
        this.scores = scores;
    }
}
