package com.qmth.teachcloud.mark.entity;

import java.io.Serializable;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qmth.teachcloud.common.enums.mark.MarkProblemStatus;
import com.qmth.teachcloud.common.enums.mark.MarkProblemType;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * <p>
 * 问题卷历史表
 * </p>
 *
 * @author xf
 * @since 2023-09-22
 */
@TableName("mark_problem_history")
@ApiModel(value="MarkProblemHistory对象", description="问题卷历史表")
public class MarkProblemHistory implements Serializable {

    private static final long serialVersionUID = 1L;

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "主键")
    @TableId(value = "id")
    private Long id;

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

    @ApiModelProperty(value = "试卷编号")
    private String paperNumber;

    @ApiModelProperty(value = "大题号")
    private Integer groupNumber;

    @ApiModelProperty(value = "学号")
    private String studentCode;

    @ApiModelProperty(value = "考生密号")
    private String secretNumber;

    @ApiModelProperty(value = "问题类型")
    private MarkProblemType type;

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "考生ID")
    private Long studentId;

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "评卷任务ID")
    private Long taskId;

    @ApiModelProperty(value = "状态")
    private MarkProblemStatus status;

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "处理人ID")
    private Long updateUserId;

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "评卷员ID")
    private Long userId;

    @ApiModelProperty(value = "给分明细")
    private String scoreList;

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

    @ApiModelProperty(value = "处理时间")
    private Long updateTime;

    @ApiModelProperty(value = "问题原因")
    private String remark;

    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 getPaperNumber() {
        return paperNumber;
    }

    public void setPaperNumber(String paperNumber) {
        this.paperNumber = paperNumber;
    }
    public Integer getGroupNumber() {
        return groupNumber;
    }

    public void setGroupNumber(Integer groupNumber) {
        this.groupNumber = groupNumber;
    }
    public String getStudentCode() {
        return studentCode;
    }

    public void setStudentCode(String studentCode) {
        this.studentCode = studentCode;
    }
    public String getSecretNumber() {
        return secretNumber;
    }

    public void setSecretNumber(String secretNumber) {
        this.secretNumber = secretNumber;
    }
    public MarkProblemType getType() {
        return type;
    }

    public void setType(MarkProblemType type) {
        this.type = type;
    }
    public Long getStudentId() {
        return studentId;
    }

    public void setStudentId(Long studentId) {
        this.studentId = studentId;
    }
    public Long getTaskId() {
        return taskId;
    }

    public void setTaskId(Long taskId) {
        this.taskId = taskId;
    }
    public MarkProblemStatus getStatus() {
        return status;
    }

    public void setStatus(MarkProblemStatus status) {
        this.status = status;
    }
    public Long getUpdateUserId() {
        return updateUserId;
    }

    public void setUpdateUserId(Long updateUserId) {
        this.updateUserId = updateUserId;
    }
    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }
    public String getScoreList() {
        return scoreList;
    }

    public void setScoreList(String scoreList) {
        this.scoreList = scoreList;
    }
    public Long getCreateTime() {
        return createTime;
    }

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

    public void setUpdateTime(Long updateTime) {
        this.updateTime = updateTime;
    }
    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    @Override
    public String toString() {
        return "MarkProblemHistory{" +
            "id=" + id +
            ", examId=" + examId +
            ", paperNumber=" + paperNumber +
            ", groupNumber=" + groupNumber +
            ", studentCode=" + studentCode +
            ", secretNumber=" + secretNumber +
            ", type=" + type +
            ", studentId=" + studentId +
            ", taskId=" + taskId +
            ", status=" + status +
            ", updateUserId=" + updateUserId +
            ", userId=" + userId +
            ", scoreList=" + scoreList +
            ", createTime=" + createTime +
            ", updateTime=" + updateTime +
            ", remark=" + remark +
        "}";
    }
}
