package com.qmth.distributed.print.business.bean.result;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qmth.distributed.print.business.enums.BackupMethodEnum;
import com.qmth.teachcloud.common.enums.DrawRuleEnum;
import com.qmth.distributed.print.business.enums.ExamPrintPlanSyncStatusEnum;
import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
import io.swagger.annotations.ApiModelProperty;

import java.util.List;
import java.util.Map;

/**
 * @Description: 印刷计划详情分页查询结果
 * @Author: CaoZixuan
 * @Date: 2021-04-02
 */
public class PrintPlanResult {

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "印刷计划id")
    private Long id;

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "学期ID")
    private Long semesterId;

    @ApiModelProperty(value = "学期名称")
    private String semesterName;

    @ApiModelProperty(value = "印刷计划名称")
    private String name;

    @ApiModelProperty(value = "考试开始时间")
    private Long examStartTime;

    @ApiModelProperty(value = "考试结束时间")
    private Long examEndTime;

    @ApiModelProperty(value = "印刷计划状态")
    private PrintPlanStatusEnum status;

    @ApiModelProperty(value = "总门次")
    private int totalGates;

    @ApiModelProperty(value = "总科次")
    private int totalSubjects;

    @ApiModelProperty(value = "总卷袋数")
    private int totalPackages;

    @ApiModelProperty(value = "试卷&&题卡印品类型")
    private String printContent;

    @ApiModelProperty(value = "试卷备份方式（考点||场次）")
    private BackupMethodEnum backupMethod;

    @ApiModelProperty(value = "试卷备份数量")
    private int backupCount;

    @ApiModelProperty(value = "抽卷规则")
    private DrawRuleEnum drawRule;

    @ApiModelProperty(value = "变量印品信息")
    private List<Map> variableContent;

    @ApiModelProperty(value = "普通印品信息")
    private List<Map> ordinaryContent;

    @JsonIgnore
    @ApiModelProperty(value = "变量印品JSON临时接收属性")
    private String variableContentTemp;

    @JsonIgnore
    @ApiModelProperty(value = "普通印品JSON临时接收属性")
    private String ordinaryContentTemp;

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "创建人id")
    private Long createId;

    @ApiModelProperty(value = "创建时间")
    private Long createTime;

    @ApiModelProperty(value = "创建人名字")
    private String createName;

    @ApiModelProperty("第三方系统关联ID")
    private Long thirdRelateId;

    @ApiModelProperty("第三方系统关联考试名称")
    private String thirdRelateName;

    @ApiModelProperty("是否同步成功")
    private ExamPrintPlanSyncStatusEnum syncStatus;

    @ApiModelProperty("考试id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long examId;

    @ApiModelProperty("考试名称")
    private String examName;

    @ApiModelProperty("是否能推送云阅卷")
    private Boolean isCanPush;

    public Long getId() {
        return id;
    }

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

    public Long getSemesterId() {
        return semesterId;
    }

    public void setSemesterId(Long semesterId) {
        this.semesterId = semesterId;
    }

    public String getSemesterName() {
        return semesterName;
    }

    public void setSemesterName(String semesterName) {
        this.semesterName = semesterName;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Long getExamStartTime() {
        return examStartTime;
    }

    public void setExamStartTime(Long examStartTime) {
        this.examStartTime = examStartTime;
    }

    public Long getExamEndTime() {
        return examEndTime;
    }

    public void setExamEndTime(Long examEndTime) {
        this.examEndTime = examEndTime;
    }

    public PrintPlanStatusEnum getStatus() {
        return status;
    }

    public void setStatus(PrintPlanStatusEnum status) {
        this.status = status;
    }

    public int getTotalGates() {
        return totalGates;
    }

    public void setTotalGates(int totalGates) {
        this.totalGates = totalGates;
    }

    public int getTotalSubjects() {
        return totalSubjects;
    }

    public void setTotalSubjects(int totalSubjects) {
        this.totalSubjects = totalSubjects;
    }

    public int getTotalPackages() {
        return totalPackages;
    }

    public void setTotalPackages(int totalPackages) {
        this.totalPackages = totalPackages;
    }

    public String getPrintContent() {
        return printContent;
    }

    public void setPrintContent(String printContent) {
        this.printContent = printContent;
    }

    public BackupMethodEnum getBackupMethod() {
        return backupMethod;
    }

    public void setBackupMethod(BackupMethodEnum backupMethod) {
        this.backupMethod = backupMethod;
    }

    public int getBackupCount() {
        return backupCount;
    }

    public void setBackupCount(int backupCount) {
        this.backupCount = backupCount;
    }

    public DrawRuleEnum getDrawRule() {
        return drawRule;
    }

    public void setDrawRule(DrawRuleEnum drawRule) {
        this.drawRule = drawRule;
    }

    public List<Map> getVariableContent() {
        return variableContent;
    }

    public void setVariableContent(List<Map> variableContent) {
        this.variableContent = variableContent;
    }

    public List<Map> getOrdinaryContent() {
        return ordinaryContent;
    }

    public void setOrdinaryContent(List<Map> ordinaryContent) {
        this.ordinaryContent = ordinaryContent;
    }

    public String getVariableContentTemp() {
        return variableContentTemp;
    }

    public void setVariableContentTemp(String variableContentTemp) {
        this.variableContentTemp = variableContentTemp;
    }

    public String getOrdinaryContentTemp() {
        return ordinaryContentTemp;
    }

    public void setOrdinaryContentTemp(String ordinaryContentTemp) {
        this.ordinaryContentTemp = ordinaryContentTemp;
    }

    public Long getCreateId() {
        return createId;
    }

    public void setCreateId(Long createId) {
        this.createId = createId;
    }

    public Long getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Long createTime) {
        this.createTime = createTime;
    }

    public String getCreateName() {
        return createName;
    }

    public void setCreateName(String createName) {
        this.createName = createName;
    }

    public Long getThirdRelateId() {
        return thirdRelateId;
    }

    public void setThirdRelateId(Long thirdRelateId) {
        this.thirdRelateId = thirdRelateId;
    }

    public String getThirdRelateName() {
        return thirdRelateName;
    }

    public void setThirdRelateName(String thirdRelateName) {
        this.thirdRelateName = thirdRelateName;
    }

    public ExamPrintPlanSyncStatusEnum getSyncStatus() {
        return syncStatus;
    }

    public void setSyncStatus(ExamPrintPlanSyncStatusEnum syncStatus) {
        this.syncStatus = syncStatus;
    }

    public Long getExamId() {
        return examId;
    }

    public void setExamId(Long examId) {
        this.examId = examId;
    }

    public String getExamName() {
        return examName;
    }

    public void setExamName(String examName) {
        this.examName = examName;
    }

    public Boolean getCanPush() {
        return isCanPush;
    }

    public void setCanPush(Boolean canPush) {
        isCanPush = canPush;
    }
}
