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

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.Serializers;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qmth.themis.business.dto.response.TEExamActivityDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;

@ApiModel("考试候考返回信息")
public class ExamPrepareBean extends TEExamActivityDto implements Serializable {

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty("考试记录id")
    private Long recordId;
    //	@ApiModelProperty("试卷数据包下载地址")
//	private String paperUrl;
//	@ApiModelProperty("试卷结构下载地址")
//	private String structUrl;
    @ApiModelProperty("是否开启客观题乱序")
    private Boolean objectiveShuffle;

    @ApiModelProperty("是否开启选项乱序")
    private Boolean optionShuffle;

    @ApiModelProperty("是否有音频")
    private Boolean hasAudio;

    @ApiModelProperty("音频题播放次数")
    private Integer audioPlayCount;

    @ApiModelProperty("监控标识，默认使用recordId")
    private String monitorKey;

    @ApiModelProperty("加入房间用户ID")
    private String monitorUserId;

    @ApiModelProperty("用户认证签名")
    private String monitorUserSig;

    @ApiModelProperty("腾讯云SDK APP ID")
    private String monitorAppId;

    @ApiModelProperty(value = "是否允许考生发起语音通话，0：否，1：是")
    private Integer examStudentCallEnable = 1;

    public ExamPrepareBean() {

    }

    public ExamPrepareBean(Long recordId, Boolean objectiveShuffle, Boolean optionShuffle, Boolean hasAudio, Integer audioPlayCount,
                           String monitorKey, String monitorUserId, String monitorUserSig, String monitorAppId, Integer examStudentCallEnable) {
        this.recordId = recordId;
        this.objectiveShuffle = objectiveShuffle;
        this.optionShuffle = optionShuffle;
        this.hasAudio = hasAudio;
        this.audioPlayCount = audioPlayCount;
        this.monitorKey = monitorKey;
        this.monitorUserId = monitorUserId;
        this.monitorUserSig = monitorUserSig;
        this.monitorAppId = monitorAppId;
        this.examStudentCallEnable = examStudentCallEnable;
    }

    public Integer getExamStudentCallEnable() {
        return examStudentCallEnable;
    }

    public void setExamStudentCallEnable(Integer examStudentCallEnable) {
        this.examStudentCallEnable = examStudentCallEnable;
    }

    public String getMonitorAppId() {
        return monitorAppId;
    }

    public void setMonitorAppId(String monitorAppId) {
        this.monitorAppId = monitorAppId;
    }

    public String getMonitorKey() {
        return monitorKey;
    }

    public void setMonitorKey(String monitorKey) {
        this.monitorKey = monitorKey;
    }

    public String getMonitorUserId() {
        return monitorUserId;
    }

    public void setMonitorUserId(String monitorUserId) {
        this.monitorUserId = monitorUserId;
    }

    public String getMonitorUserSig() {
        return monitorUserSig;
    }

    public void setMonitorUserSig(String monitorUserSig) {
        this.monitorUserSig = monitorUserSig;
    }

    public Long getRecordId() {
        return recordId;
    }

    public void setRecordId(Long recordId) {
        this.recordId = recordId;
    }

//	public String getPaperUrl() {
//		return paperUrl;
//	}
//
//	public void setPaperUrl(String paperUrl) {
//		this.paperUrl = paperUrl;
//	}
//
//	public String getStructUrl() {
//		return structUrl;
//	}
//
//	public void setStructUrl(String structUrl) {
//		this.structUrl = structUrl;
//	}

    public Boolean getObjectiveShuffle() {
        return objectiveShuffle;
    }

    public void setObjectiveShuffle(Boolean objectiveShuffle) {
        this.objectiveShuffle = objectiveShuffle;
    }

    public Boolean getOptionShuffle() {
        return optionShuffle;
    }

    public void setOptionShuffle(Boolean optionShuffle) {
        this.optionShuffle = optionShuffle;
    }

    public Boolean getHasAudio() {
        return hasAudio;
    }

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

    public Integer getAudioPlayCount() {
        return audioPlayCount;
    }

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