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

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.SerializableSerializer;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import com.qmth.distributed.print.business.enums.AssignModeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * <p>
 * 
 * </p>
 *
 * @author xf
 * @since 2024-02-07
 */
@TableName("exam_task_assign_paper_type")
@ApiModel(value="ExamTaskAssignPaperType对象", description="")
public class ExamTaskAssignPaperType implements Serializable {

    private static final long serialVersionUID = 1L;

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

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

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

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

    @ApiModelProperty(value = "卷型")
    private String paperType;

    @ApiModelProperty(value = "分配方式：MANUAL-手动关联，AUTO-自动分配")
    private AssignModeEnum assignMode;

    public ExamTaskAssignPaperType() {
    }

    public ExamTaskAssignPaperType(Long examId, String paperNumber, Long examStartTime, Long examEndTime) {
        this.examId = examId;
        this.paperNumber = paperNumber;
        this.examStartTime = examStartTime;
        this.examEndTime = examEndTime;
    }

    public ExamTaskAssignPaperType(Long examId, String paperNumber, Long examStartTime, Long examEndTime, String paperType, AssignModeEnum assignMode) {
        this.examId = examId;
        this.paperNumber = paperNumber;
        this.examStartTime = examStartTime;
        this.examEndTime = examEndTime;
        this.paperType = paperType;
        this.assignMode = assignMode;
    }

    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 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 String getPaperType() {
        return paperType;
    }

    public void setPaperType(String paperType) {
        this.paperType = paperType;
    }
    public AssignModeEnum getAssignMode() {
        return assignMode;
    }

    public void setAssignMode(AssignModeEnum assignMode) {
        this.assignMode = assignMode;
    }

    @Override
    public String toString() {
        return "ExamTaskAssignPaperType{" +
            "examId=" + examId +
            ", paperNumber=" + paperNumber +
            ", examStartTime=" + examStartTime +
            ", examEndTime=" + examEndTime +
            ", paperType=" + paperType +
            ", assignMode=" + assignMode +
        "}";
    }
}
