package com.qxgmat.data.dao.entity;

import java.io.Serializable;
import javax.persistence.*;

@Table(name = "examination_paper")
public class ExaminationPaper implements Serializable {
    @Id
    @Column(name = "`id`")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    /**
     * 试卷组
     */
    @Column(name = "`struct_two`")
    private Integer structTwo;

    /**
     * 考卷
     */
    @Column(name = "`struct_three`")
    private Integer structThree;

    /**
     * 是否适应难度
     */
    @Column(name = "`is_adapt`")
    private Integer isAdapt;

    /**
     * 标题
     */
    @Column(name = "`title`")
    private String title;

    /**
     * 开放状态：0关闭，1开启
     */
    @Column(name = "`status`")
    private Integer status;

    /**
     * 总分
     */
    @Column(name = "`total_score`")
    private Integer totalScore;

    /**
     * 总做卷次数
     */
    @Column(name = "`total_times`")
    private Integer totalTimes;

    /**
     * 总Q分
     */
    @Column(name = "`quant_score`")
    private Integer quantScore;

    /**
     * 总V分
     */
    @Column(name = "`verbal_score`")
    private Integer verbalScore;

    /**
     * 总ir分
     */
    @Column(name = "`ir_score`")
    private Integer irScore;

    private static final long serialVersionUID = 1L;

    /**
     * @return id
     */
    public Integer getId() {
        return id;
    }

    /**
     * @param id
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获取试卷组
     *
     * @return struct_two - 试卷组
     */
    public Integer getStructTwo() {
        return structTwo;
    }

    /**
     * 设置试卷组
     *
     * @param structTwo 试卷组
     */
    public void setStructTwo(Integer structTwo) {
        this.structTwo = structTwo;
    }

    /**
     * 获取考卷
     *
     * @return struct_three - 考卷
     */
    public Integer getStructThree() {
        return structThree;
    }

    /**
     * 设置考卷
     *
     * @param structThree 考卷
     */
    public void setStructThree(Integer structThree) {
        this.structThree = structThree;
    }

    /**
     * 获取是否适应难度
     *
     * @return is_adapt - 是否适应难度
     */
    public Integer getIsAdapt() {
        return isAdapt;
    }

    /**
     * 设置是否适应难度
     *
     * @param isAdapt 是否适应难度
     */
    public void setIsAdapt(Integer isAdapt) {
        this.isAdapt = isAdapt;
    }

    /**
     * 获取标题
     *
     * @return title - 标题
     */
    public String getTitle() {
        return title;
    }

    /**
     * 设置标题
     *
     * @param title 标题
     */
    public void setTitle(String title) {
        this.title = title;
    }

    /**
     * 获取开放状态：0关闭，1开启
     *
     * @return status - 开放状态：0关闭，1开启
     */
    public Integer getStatus() {
        return status;
    }

    /**
     * 设置开放状态：0关闭，1开启
     *
     * @param status 开放状态：0关闭，1开启
     */
    public void setStatus(Integer status) {
        this.status = status;
    }

    /**
     * 获取总分
     *
     * @return total_score - 总分
     */
    public Integer getTotalScore() {
        return totalScore;
    }

    /**
     * 设置总分
     *
     * @param totalScore 总分
     */
    public void setTotalScore(Integer totalScore) {
        this.totalScore = totalScore;
    }

    /**
     * 获取总做卷次数
     *
     * @return total_times - 总做卷次数
     */
    public Integer getTotalTimes() {
        return totalTimes;
    }

    /**
     * 设置总做卷次数
     *
     * @param totalTimes 总做卷次数
     */
    public void setTotalTimes(Integer totalTimes) {
        this.totalTimes = totalTimes;
    }

    /**
     * 获取总Q分
     *
     * @return quant_score - 总Q分
     */
    public Integer getQuantScore() {
        return quantScore;
    }

    /**
     * 设置总Q分
     *
     * @param quantScore 总Q分
     */
    public void setQuantScore(Integer quantScore) {
        this.quantScore = quantScore;
    }

    /**
     * 获取总V分
     *
     * @return verbal_score - 总V分
     */
    public Integer getVerbalScore() {
        return verbalScore;
    }

    /**
     * 设置总V分
     *
     * @param verbalScore 总V分
     */
    public void setVerbalScore(Integer verbalScore) {
        this.verbalScore = verbalScore;
    }

    /**
     * 获取总ir分
     *
     * @return ir_score - 总ir分
     */
    public Integer getIrScore() {
        return irScore;
    }

    /**
     * 设置总ir分
     *
     * @param irScore 总ir分
     */
    public void setIrScore(Integer irScore) {
        this.irScore = irScore;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", structTwo=").append(structTwo);
        sb.append(", structThree=").append(structThree);
        sb.append(", isAdapt=").append(isAdapt);
        sb.append(", title=").append(title);
        sb.append(", status=").append(status);
        sb.append(", totalScore=").append(totalScore);
        sb.append(", totalTimes=").append(totalTimes);
        sb.append(", quantScore=").append(quantScore);
        sb.append(", verbalScore=").append(verbalScore);
        sb.append(", irScore=").append(irScore);
        sb.append("]");
        return sb.toString();
    }

    public static ExaminationPaper.Builder builder() {
        return new ExaminationPaper.Builder();
    }

    public static class Builder {
        private ExaminationPaper obj;

        public Builder() {
            this.obj = new ExaminationPaper();
        }

        /**
         * @param id
         */
        public Builder id(Integer id) {
            obj.setId(id);
            return this;
        }

        /**
         * 设置试卷组
         *
         * @param structTwo 试卷组
         */
        public Builder structTwo(Integer structTwo) {
            obj.setStructTwo(structTwo);
            return this;
        }

        /**
         * 设置考卷
         *
         * @param structThree 考卷
         */
        public Builder structThree(Integer structThree) {
            obj.setStructThree(structThree);
            return this;
        }

        /**
         * 设置是否适应难度
         *
         * @param isAdapt 是否适应难度
         */
        public Builder isAdapt(Integer isAdapt) {
            obj.setIsAdapt(isAdapt);
            return this;
        }

        /**
         * 设置标题
         *
         * @param title 标题
         */
        public Builder title(String title) {
            obj.setTitle(title);
            return this;
        }

        /**
         * 设置开放状态：0关闭，1开启
         *
         * @param status 开放状态：0关闭，1开启
         */
        public Builder status(Integer status) {
            obj.setStatus(status);
            return this;
        }

        /**
         * 设置总分
         *
         * @param totalScore 总分
         */
        public Builder totalScore(Integer totalScore) {
            obj.setTotalScore(totalScore);
            return this;
        }

        /**
         * 设置总做卷次数
         *
         * @param totalTimes 总做卷次数
         */
        public Builder totalTimes(Integer totalTimes) {
            obj.setTotalTimes(totalTimes);
            return this;
        }

        /**
         * 设置总Q分
         *
         * @param quantScore 总Q分
         */
        public Builder quantScore(Integer quantScore) {
            obj.setQuantScore(quantScore);
            return this;
        }

        /**
         * 设置总V分
         *
         * @param verbalScore 总V分
         */
        public Builder verbalScore(Integer verbalScore) {
            obj.setVerbalScore(verbalScore);
            return this;
        }

        /**
         * 设置总ir分
         *
         * @param irScore 总ir分
         */
        public Builder irScore(Integer irScore) {
            obj.setIrScore(irScore);
            return this;
        }

        public ExaminationPaper build() {
            return this.obj;
        }
    }
}