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

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qmth.teachcloud.common.annotation.EditKey;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotNull;

/**
 * @Description: 考生字典参数
 * @Author: CaoZixuan
 * @Date: 2024-02-22
 */
public class BasicExamStudentParam {

    @ApiModelProperty("id(编辑必填)")
    @JsonSerialize(using = ToStringSerializer.class)
    @EditKey
    private Long id;

    @ApiModelProperty("学期id（必填）")
    @JsonSerialize(using = ToStringSerializer.class)
    @NotNull(message = "请选择学期")
    @Range(min = 1L, message = "请选择学期")
    private Long semesterId;

    @ApiModelProperty("考试id（必填）")
    @JsonSerialize(using = ToStringSerializer.class)
    @NotNull(message = "请选择考试")
    @Range(min = 1L, message = "请选择考试")
    private Long examId;

    @ApiModelProperty("课程代码（必填）")
    @NotNull(message = "请输入课程代码")
    @Length(min = 1, message = "请输入课程代码")
    private String courseCode;

    @ApiModelProperty("姓名（必填）")
    @NotNull(message = "请输入姓名")
    @Length(min = 1, message = "请输入姓名")
    private String studentName;

    @ApiModelProperty("学号（必填）")
    @NotNull(message = "请输入学号")
    @Length(min = 1, message = "请输入学号")
    private String studentCode;

    @ApiModelProperty("学院")
    private String college;

    @ApiModelProperty("专业")
    private String major;

    @ApiModelProperty("教学班")
    private String teachClazz;

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

    @ApiModelProperty("任课老师")
    private String teacherName;

    @ApiModelProperty("任课老师工号")
    private String teacherCode;

    @ApiModelProperty("考试开始时间")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long examStartTime;

    @ApiModelProperty("考试结束时间")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long examEndTime;

    @ApiModelProperty("考点(校区)")
    private String examPlace;

    @ApiModelProperty("考场(考试教室)")
    private String examRoom;

    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 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 getStudentName() {
        return studentName;
    }

    public void setStudentName(String studentName) {
        this.studentName = studentName;
    }

    public String getStudentCode() {
        return studentCode;
    }

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

    public String getCollege() {
        return college;
    }

    public void setCollege(String college) {
        this.college = college;
    }

    public String getMajor() {
        return major;
    }

    public void setMajor(String major) {
        this.major = major;
    }

    public String getTeachClazz() {
        return teachClazz;
    }

    public void setTeachClazz(String teachClazz) {
        this.teachClazz = teachClazz;
    }

    public String getPaperNumber() {
        return paperNumber;
    }

    public void setPaperNumber(String paperNumber) {
        this.paperNumber = paperNumber;
    }

    public String getTeacherName() {
        return teacherName;
    }

    public void setTeacherName(String teacherName) {
        this.teacherName = teacherName;
    }

    public String getTeacherCode() {
        return teacherCode;
    }

    public void setTeacherCode(String teacherCode) {
        this.teacherCode = teacherCode;
    }

    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 getExamPlace() {
        return examPlace;
    }

    public void setExamPlace(String examPlace) {
        this.examPlace = examPlace;
    }

    public String getExamRoom() {
        return examRoom;
    }

    public void setExamRoom(String examRoom) {
        this.examRoom = examRoom;
    }
}
