package com.sundot.airport.exam.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sundot.airport.exam.common.model.BaseEntity;
import com.sundot.airport.exam.enums.CorrectStatusEnum;
import com.sundot.airport.exam.enums.QuesCompScoreTypeEnum;
import com.sundot.airport.exam.enums.QuesOptionTypeEnum;
import com.sundot.airport.exam.enums.QuesTypeEnum;

import java.io.Serializable;

/**
 * <b>功能名：</b>ExamRecOpt<br>
 * <b>说明：</b> 测试记录选项表实体类 <br>
 * <b>著作权：</b> Copyright (C) 2021 HUIFANEDU  CORPORATION<br>
 * <b>修改履历：
 *
 * @author 2021-06-29 liangxiao
 */
@TableName("edu_cs_exam_rec_opt")
public class ExamRecOpt extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 业务主键
     */
    private String eroId;

    /**
     * 用户答案。连线题的作答序号，其它类型题1则表示作答
     */
    private String eroConnNo;

    /**
     * 填空题中 用户回答正确的空的下标 JsonArray字符串
     */
    private String eroCorrectBlankIdx;

    /**
     * 选项排序
     */
    private Integer eroSort;

    /**
     * 题干表业务主键
     */
    private String eroQuId;

    /**
     * 是否正确答案
     */
    private Boolean eroQoCorrect;

    /**
     * 选项类型
     * - TEXT文字；IMG图片;JSON
     */
    private QuesOptionTypeEnum eroQoOptionType;

    /**
     * 选项内容or图片
     */
    private String eroQoOption;

    /**
     * 对应连线选项排序
     */
    private Integer eroQoConnSort;

    /**
     * 对应连线选项图片类型
     * - TEXT文字；IMG图片;JSON
     */
    private QuesOptionTypeEnum eroQoConnOptType;

    /**
     * 对应连线选项内容or图片
     */
    private String eroQoConnOpt;

    /**
     * 题目排序
     */
    private Integer eroTpqSort;

    /**
     * 题目满分（用于统计）
     */
    private Integer eroTpqTotalScore;

    /**
     * 积分方式
     * - LEFT左增；RIGHT右减
     */
    private QuesCompScoreTypeEnum eroTpqCompType;

    /**
     * A情况分值（一般是默认情况）
     */
    private Integer eroTpqLeftScore;

    /**
     * B情况分值（一般是减分情况）
     */
    private Integer eroTpqRightScore;

    /**
     * 题目分类名称
     */
    private String eroQcName;

    /**
     * 题目类型
     * - SINGLE单选；MULTIPLE多选；JUDGMENT判断；FILL_BLANK填空；CONNECTION连线）
     */
    private QuesTypeEnum eroQuType;

    /**
     * 题干内容
     */
    private String eroQuContent;

    /**
     * 测试记录表业务主键
     */
    private String erId;

    /**
     * 题目回答正确情况
     */
    private CorrectStatusEnum eroCorrectStatus;

    public Long getId() {
        return id;
    }

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

    public String getEroId() {
        return eroId;
    }

    public void setEroId(String eroId) {
        this.eroId = eroId;
    }

    public String getEroConnNo() {
        return eroConnNo;
    }

    public void setEroConnNo(String eroConnNo) {
        this.eroConnNo = eroConnNo;
    }

    public Integer getEroSort() {
        return eroSort;
    }

    public void setEroSort(Integer eroSort) {
        this.eroSort = eroSort;
    }

    public String getEroQuId() {
        return eroQuId;
    }

    public void setEroQuId(String eroQuId) {
        this.eroQuId = eroQuId;
    }

    public Boolean getEroQoCorrect() {
        return eroQoCorrect;
    }

    public void setEroQoCorrect(Boolean eroQoCorrect) {
        this.eroQoCorrect = eroQoCorrect;
    }

    public QuesOptionTypeEnum getEroQoOptionType() {
        return eroQoOptionType;
    }

    public void setEroQoOptionType(QuesOptionTypeEnum eroQoOptionType) {
        this.eroQoOptionType = eroQoOptionType;
    }

    public String getEroQoOption() {
        return eroQoOption;
    }

    public void setEroQoOption(String eroQoOption) {
        this.eroQoOption = eroQoOption;
    }

    public Integer getEroQoConnSort() {
        return eroQoConnSort;
    }

    public void setEroQoConnSort(Integer eroQoConnSort) {
        this.eroQoConnSort = eroQoConnSort;
    }

    public QuesOptionTypeEnum getEroQoConnOptType() {
        return eroQoConnOptType;
    }

    public void setEroQoConnOptType(QuesOptionTypeEnum eroQoConnOptType) {
        this.eroQoConnOptType = eroQoConnOptType;
    }

    public String getEroQoConnOpt() {
        return eroQoConnOpt;
    }

    public void setEroQoConnOpt(String eroQoConnOpt) {
        this.eroQoConnOpt = eroQoConnOpt;
    }

    public Integer getEroTpqSort() {
        return eroTpqSort;
    }

    public void setEroTpqSort(Integer eroTpqSort) {
        this.eroTpqSort = eroTpqSort;
    }

    public Integer getEroTpqTotalScore() {
        return eroTpqTotalScore;
    }

    public void setEroTpqTotalScore(Integer eroTpqTotalScore) {
        this.eroTpqTotalScore = eroTpqTotalScore;
    }

    public QuesCompScoreTypeEnum getEroTpqCompType() {
        return eroTpqCompType;
    }

    public void setEroTpqCompType(QuesCompScoreTypeEnum eroTpqCompType) {
        this.eroTpqCompType = eroTpqCompType;
    }

    public Integer getEroTpqLeftScore() {
        return eroTpqLeftScore;
    }

    public void setEroTpqLeftScore(Integer eroTpqLeftScore) {
        this.eroTpqLeftScore = eroTpqLeftScore;
    }

    public Integer getEroTpqRightScore() {
        return eroTpqRightScore;
    }

    public void setEroTpqRightScore(Integer eroTpqRightScore) {
        this.eroTpqRightScore = eroTpqRightScore;
    }

    public String getEroQcName() {
        return eroQcName;
    }

    public void setEroQcName(String eroQcName) {
        this.eroQcName = eroQcName;
    }

    public QuesTypeEnum getEroQuType() {
        return eroQuType;
    }

    public void setEroQuType(QuesTypeEnum eroQuType) {
        this.eroQuType = eroQuType;
    }

    public String getEroQuContent() {
        return eroQuContent;
    }

    public void setEroQuContent(String eroQuContent) {
        this.eroQuContent = eroQuContent;
    }

    public String getErId() {
        return erId;
    }

    public void setErId(String erId) {
        this.erId = erId;
    }

    public CorrectStatusEnum getEroCorrectStatus() {
        return eroCorrectStatus;
    }

    public void setEroCorrectStatus(CorrectStatusEnum eroCorrectStatus) {
        this.eroCorrectStatus = eroCorrectStatus;
    }

    public String getEroCorrectBlankIdx() {
        return eroCorrectBlankIdx;
    }

    public void setEroCorrectBlankIdx(String eroCorrectBlankIdx) {
        this.eroCorrectBlankIdx = eroCorrectBlankIdx;
    }

    @Override
    public String toString() {
        return "ExamRecOpt{" +
                "id=" + id +
                ", eroId='" + eroId + '\'' +
                ", eroConnNo='" + eroConnNo + '\'' +
                ", eroCorrectBlankIdx='" + eroCorrectBlankIdx + '\'' +
                ", eroSort=" + eroSort +
                ", eroQuId='" + eroQuId + '\'' +
                ", eroQoCorrect=" + eroQoCorrect +
                ", eroQoOptionType=" + eroQoOptionType +
                ", eroQoOption='" + eroQoOption + '\'' +
                ", eroQoConnSort=" + eroQoConnSort +
                ", eroQoConnOptType=" + eroQoConnOptType +
                ", eroQoConnOpt='" + eroQoConnOpt + '\'' +
                ", eroTpqSort=" + eroTpqSort +
                ", eroTpqTotalScore=" + eroTpqTotalScore +
                ", eroTpqCompType=" + eroTpqCompType +
                ", eroTpqLeftScore=" + eroTpqLeftScore +
                ", eroTpqRightScore=" + eroTpqRightScore +
                ", eroQcName='" + eroQcName + '\'' +
                ", eroQuType=" + eroQuType +
                ", eroQuContent='" + eroQuContent + '\'' +
                ", erId='" + erId + '\'' +
                ", eroCorrectStatus=" + eroCorrectStatus +
                '}';
    }
}