package com.qmth.themis.business.cache.bean;

import java.io.Serializable;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qmth.themis.business.enums.EncryptModeEnum;
import io.swagger.annotations.ApiModelProperty;

public class ExamPaperCacheBean implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 5040597530688212719L;

	// 主键
	@JsonSerialize(using = ToStringSerializer.class)
	private Long id;
	// 批次id
	@JsonSerialize(using = ToStringSerializer.class)
	private Long examId;

	// 科目编码
	private String courseCode;

	// 试卷编码
	private String code;
	// 试卷名称
	private String name;

	// 试卷总分
	private Double totalScore;
	
    //试卷客观题总分
    private Double totalObjectiveScore;
    
    //试卷主观题总分
    private Double totalSubjectiveScore;

	// 题干路径
	private String paperPath;
	
	// 阅卷用试卷json路径
	private String paperViewPath;
	
	// 结构文件路径
	private String structPath;
	// 标答路径
	private String answerPath;
	// 解密密钥
	private String decryptSecret;

	// 解密向量
	private String decryptVector;

	// 0：自动，1：手动，2：不加密
	private EncryptModeEnum encryptMode;

	// 是否需要语音作答，0：不需要，1：需要
	private Integer needVoiceAnswer;

	// 题干包含音频，0：不包含，1：包含
	private Integer hasAudio;

	// 调卷比例
	private Double weight;

	// 音频播放次数
	private Integer audioPlayCount;

	@ApiModelProperty(value = "题干md5")
	private String paperMd5;

	@ApiModelProperty(value = "结构文件md5")
	private String structMd5;

	public String getPaperMd5() {
		return paperMd5;
	}

	public void setPaperMd5(String paperMd5) {
		this.paperMd5 = paperMd5;
	}

	public String getStructMd5() {
		return structMd5;
	}

	public void setStructMd5(String structMd5) {
		this.structMd5 = structMd5;
	}

	public Long getId() {
		return id;
	}

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

	public Long getExamId() {
		return examId;
	}

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

	public String getCourseCode() {
		return courseCode;
	}

	public void setCourseCode(String courseCode) {
		this.courseCode = courseCode;
	}

	public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}

	public String getName() {
		return name;
	}

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

	public Double getTotalScore() {
		return totalScore;
	}

	public void setTotalScore(Double totalScore) {
		this.totalScore = totalScore;
	}

	public String getPaperPath() {
		return paperPath;
	}

	public void setPaperPath(String paperPath) {
		this.paperPath = paperPath;
	}

	public String getStructPath() {
		return structPath;
	}

	public void setStructPath(String structPath) {
		this.structPath = structPath;
	}

	public String getAnswerPath() {
		return answerPath;
	}

	public void setAnswerPath(String answerPath) {
		this.answerPath = answerPath;
	}

	public String getDecryptSecret() {
		return decryptSecret;
	}

	public void setDecryptSecret(String decryptSecret) {
		this.decryptSecret = decryptSecret;
	}

	public String getDecryptVector() {
		return decryptVector;
	}

	public void setDecryptVector(String decryptVector) {
		this.decryptVector = decryptVector;
	}

	public static long getSerialVersionUID() {
		return serialVersionUID;
	}

	public EncryptModeEnum getEncryptMode() {
		return encryptMode;
	}

	public void setEncryptMode(EncryptModeEnum encryptMode) {
		this.encryptMode = encryptMode;
	}

	public Integer getNeedVoiceAnswer() {
		return needVoiceAnswer;
	}

	public void setNeedVoiceAnswer(Integer needVoiceAnswer) {
		this.needVoiceAnswer = needVoiceAnswer;
	}

	public Integer getHasAudio() {
		return hasAudio;
	}

	public void setHasAudio(Integer hasAudio) {
		this.hasAudio = hasAudio;
	}

	public Double getWeight() {
		return weight;
	}

	public void setWeight(Double weight) {
		this.weight = weight;
	}

	public Integer getAudioPlayCount() {
		return audioPlayCount;
	}

	public void setAudioPlayCount(Integer audioPlayCount) {
		this.audioPlayCount = audioPlayCount;
	}

	public String getPaperViewPath() {
		return paperViewPath;
	}

	public void setPaperViewPath(String paperViewPath) {
		this.paperViewPath = paperViewPath;
	}

	public Double getTotalObjectiveScore() {
		return totalObjectiveScore;
	}

	public void setTotalObjectiveScore(Double totalObjectiveScore) {
		this.totalObjectiveScore = totalObjectiveScore;
	}

	public Double getTotalSubjectiveScore() {
		return totalSubjectiveScore;
	}

	public void setTotalSubjectiveScore(Double totalSubjectiveScore) {
		this.totalSubjectiveScore = totalSubjectiveScore;
	}
}
