package com.miaxis.question.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.miaxis.common.annotation.Excel;
import com.miaxis.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.miaxis.common.core.domain.BaseBusinessEntity;
import lombok.Data;
/**
 * 题库对象 question_info
 *
 * @author miaxis
 * @date 2021-03-11
 */
@Data
@TableName("question_info")
@ApiModel(value = "QuestionInfo", description = "题库对象 question_info")
public class QuestionInfo extends BaseBusinessEntity{
    private static final long serialVersionUID = 1L;

    /** 1 */
    @TableId(value = "id")
    @ApiModelProperty(value = "1")
    private Long id;

    /** 1 */
    @Excel(name = "1")
    @TableField("question_id")
    @ApiModelProperty(value = "1")
    private Long questionId;

    /** 2 */
    @Excel(name = "2")
    @TableField("media_type")
    @ApiModelProperty(value = "2")
    private Long mediaType;

    /** 3 */
    @Excel(name = "3")
    @TableField("chapter_id")
    @ApiModelProperty(value = "3")
    private Long chapterId;

    /** 4 */
    @Excel(name = "4")
    @TableField("label")
    @ApiModelProperty(value = "4")
    private String label;

    /** 5 */
    @Excel(name = "5")
    @TableField("question")
    @ApiModelProperty(value = "5")
    private byte[] question;

    /** 6 */
    @Excel(name = "6")
    @TableField("media_key")
    @ApiModelProperty(value = "6")
    private String mediaKey;

    /** 7 */
    @Excel(name = "7")
    @TableField("answer")
    @ApiModelProperty(value = "7")
    private Long answer;

    /** 8 */
    @Excel(name = "8")
    @TableField("option_a")
    @ApiModelProperty(value = "8")
    private String optionA;

    /** 9 */
    @Excel(name = "9")
    @TableField("option_b")
    @ApiModelProperty(value = "9")
    private String optionB;

    /** 10 */
    @Excel(name = "10")
    @TableField("option_c")
    @ApiModelProperty(value = "10")
    private String optionC;

    /** 11 */
    @Excel(name = "11")
    @TableField("option_d")
    @ApiModelProperty(value = "11")
    private String optionD;

    /** 12 */
    @Excel(name = "12")
    @TableField("option_e")
    @ApiModelProperty(value = "12")
    private String optionE;

    /** 13 */
    @Excel(name = "13")
    @TableField("option_f")
    @ApiModelProperty(value = "13")
    private String optionF;

    /** 13 */
    @Excel(name = "13")
    @TableField("option_g")
    @ApiModelProperty(value = "13")
    private String optionG;

    /** 13 */
    @Excel(name = "13")
    @TableField("option_h")
    @ApiModelProperty(value = "13")
    private String optionH;

    /** 1 */
    @Excel(name = "1")
    @TableField("explain")
    @ApiModelProperty(value = "1")
    private byte[] explain;

    /** 1 */
    @Excel(name = "1")
    @TableField("concise_explain")
    @ApiModelProperty(value = "1")
    private byte[] conciseExplain;

    /** 1 */
    @Excel(name = "1")
    @TableField("keywords")
    @ApiModelProperty(value = "1")
    private byte[] keywords;

    /** 1 */
    @Excel(name = "1")
    @TableField("assured_keywords")
    @ApiModelProperty(value = "1")
    private byte[] assuredKeywords;

    /** 1 */
    @Excel(name = "1")
    @TableField("illiteracy_explain")
    @ApiModelProperty(value = "1")
    private byte[] illiteracyExplain;

    /** 1 */
    @Excel(name = "1")
    @TableField("illiteracy_keywords")
    @ApiModelProperty(value = "1")
    private byte[] illiteracyKeywords;

    /** 1 */
    @Excel(name = "1")
    @TableField("difficulty")
    @ApiModelProperty(value = "1")
    private Long difficulty;

    /** 1 */
    @Excel(name = "1")
    @TableField("wrong_rate")
    @ApiModelProperty(value = "1")
    private Long wrongRate;

    /** 1 */
    @Excel(name = "1")
    @TableField("option_type")
    @ApiModelProperty(value = "1")
    private Long optionType;

    /** 1 */
    @Excel(name = "1")
    @TableField("knack_keyword")
    @ApiModelProperty(value = "1")
    private byte[] knackKeyword;

    /** 1 */
    @Excel(name = "1")
    @TableField("knack_img_url")
    @ApiModelProperty(value = "1")
    private byte[] knackImgUrl;

    /** 1 */
    @Excel(name = "1")
    @TableField("knack_detail")
    @ApiModelProperty(value = "1")
    private byte[] knackDetail;

    /** 1 */
    @Excel(name = "1")
    @TableField("knack_voice_txt")
    @ApiModelProperty(value = "1")
    private byte[] knackVoiceTxt;

    /** 1 */
    @Excel(name = "1")
    @TableField("m")
    @ApiModelProperty(value = "1")
    private Long m;


    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("questionId", getQuestionId())
            .append("mediaType", getMediaType())
            .append("chapterId", getChapterId())
            .append("label", getLabel())
            .append("question", getQuestion())
            .append("mediaKey", getMediaKey())
            .append("answer", getAnswer())
            .append("optionA", getOptionA())
            .append("optionB", getOptionB())
            .append("optionC", getOptionC())
            .append("optionD", getOptionD())
            .append("optionE", getOptionE())
            .append("optionF", getOptionF())
            .append("optionG", getOptionG())
            .append("optionH", getOptionH())
            .append("explain", getExplain())
            .append("conciseExplain", getConciseExplain())
            .append("keywords", getKeywords())
            .append("assuredKeywords", getAssuredKeywords())
            .append("illiteracyExplain", getIlliteracyExplain())
            .append("illiteracyKeywords", getIlliteracyKeywords())
            .append("difficulty", getDifficulty())
            .append("wrongRate", getWrongRate())
            .append("optionType", getOptionType())
            .append("knackKeyword", getKnackKeyword())
            .append("knackImgUrl", getKnackImgUrl())
            .append("knackDetail", getKnackDetail())
            .append("knackVoiceTxt", getKnackVoiceTxt())
            .append("m", getM())
            .toString();
    }
}
