package com.qmth.distributed.print.business.entity;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qmth.teachcloud.common.base.BaseEntity;
import com.qmth.teachcloud.common.enums.paperGroup.MarkModeEnum;
import com.qmth.teachcloud.common.enums.paperGroup.ScorePolicyEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;

/**
 * @Description: 评卷分组数据库映射类
 * @Author: CaoZixuan
 * @Date: 2022-04-12
 */
@ApiModel(value = "ExamPaperGroup对象", description = "试卷分组表")
public class ExamPaperGroup extends BaseEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "试卷结构id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long examPaperStructureId;

    @ApiModelProperty(value = "分组序号")
    private Integer groupNumber;

    @ApiModelProperty(value = "双评比例（0关闭，1开启） tip : 云阅卷0-1之间是按照百分比人数开启双评，因此这里限制只能0或1")
    private Double doubleRate;

    @ApiModelProperty(value = "仲裁阈值（开启双评必填）'")
    private Double arbitrateThreshold;

    @ApiModelProperty(value = "合分策略 开启双评是必填 AVG(\"平均分\", 1), MAX(\"最高分\", 2), MIN(\"最低分\", 3)")
    private ScorePolicyEnum scorePolicy;

    @ApiModelProperty(value = "试评数量")
    private Integer trialCount;

    @ApiModelProperty(value = "评卷模式  COMMON(\"普通\"), TRACK(\"轨迹\")")
    private MarkModeEnum markMode;

    @ApiModelProperty(value = "题目信息")
    private String questionInfo;

    @ApiModelProperty(value = "分组图片设置")
    private String pictureConfig;

    public Long getExamPaperStructureId() {
        return examPaperStructureId;
    }

    public void setExamPaperStructureId(Long examPaperStructureId) {
        this.examPaperStructureId = examPaperStructureId;
    }

    public Integer getGroupNumber() {
        return groupNumber;
    }

    public void setGroupNumber(Integer groupNumber) {
        this.groupNumber = groupNumber;
    }

    public Double getDoubleRate() {
        return doubleRate;
    }

    public void setDoubleRate(Double doubleRate) {
        this.doubleRate = doubleRate;
    }

    public Double getArbitrateThreshold() {
        return arbitrateThreshold;
    }

    public void setArbitrateThreshold(Double arbitrateThreshold) {
        this.arbitrateThreshold = arbitrateThreshold;
    }

    public ScorePolicyEnum getScorePolicy() {
        return scorePolicy;
    }

    public void setScorePolicy(ScorePolicyEnum scorePolicy) {
        this.scorePolicy = scorePolicy;
    }

    public Integer getTrialCount() {
        return trialCount;
    }

    public void setTrialCount(Integer trialCount) {
        this.trialCount = trialCount;
    }

    public MarkModeEnum getMarkMode() {
        return markMode;
    }

    public void setMarkMode(MarkModeEnum markMode) {
        this.markMode = markMode;
    }

    public String getQuestionInfo() {
        return questionInfo;
    }

    public void setQuestionInfo(String questionInfo) {
        this.questionInfo = questionInfo;
    }

    public String getPictureConfig() {
        return pictureConfig;
    }

    public void setPictureConfig(String pictureConfig) {
        this.pictureConfig = pictureConfig;
    }
}
