package com.qmth.paper.library.business.entity;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qmth.paper.library.common.base.BaseEntity;
import com.qmth.paper.library.common.enums.RecognitionTypeEnum;
import com.qmth.paper.library.common.enums.StoreTypeEnum;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;

/**
 * <p>
 * 扫描任务表
 * </p>
 */
@TableName("paper_scan_task")
public class PaperScanTask extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "学校ID")
    @JsonSerialize(using = ToStringSerializer.class)
    @TableField("school_id")
    private Long schoolId;

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

    /**
     * 扫描任务编号
     */
    @TableField("scan_task_code")
    private String scanTaskCode;

    /**
     * 扫描任务名称
     */
    @TableField("scan_task_name")
    private String scanTaskName;

    /**
     * 课程代码
     */
    @TableField("course_code")
    private String courseCode;

    /**
     * 课程名称
     */
    @TableField("course_name")
    private String courseName;

    /**
     * 识别方式
     */
    @TableField(value = "recognition_type")
    private RecognitionTypeEnum recognitionType;

    /**
     * 存储方式
     */
    @TableField(value = "store_type")
    private StoreTypeEnum storeType;

    /**
     * 考生数量
     */
    @TableField(value = "student_count", updateStrategy = FieldStrategy.IGNORED)
    private Integer studentCount;

    /**
     * 已扫描学生数量
     */
    @TableField(value = "scan_student_count", updateStrategy = FieldStrategy.IGNORED)
    private Integer scanStudentCount;

    /**
     * 已扫描图片数量
     */
    @TableField(value = "scan_count", updateStrategy = FieldStrategy.IGNORED)
    private Integer scanCount;

    /**
     * 是否结束
     */
    @TableField("enable")
    private Boolean enable;

    public PaperScanTask() {
    }

    public PaperScanTask(Long schoolId, Long examId, String scanTaskCode, String scanTaskName, String courseCode, String courseName, RecognitionTypeEnum recognitionType, StoreTypeEnum storeType, Integer studentCount) {
        this.schoolId = schoolId;
        this.examId = examId;
        this.scanTaskCode = scanTaskCode;
        this.scanTaskName = scanTaskName;
        this.courseCode = courseCode;
        this.courseName = courseName;
        this.recognitionType = recognitionType;
        this.storeType = storeType;
        this.studentCount = studentCount;
    }

    public Long getSchoolId() {
        return schoolId;
    }

    public void setSchoolId(Long schoolId) {
        this.schoolId = schoolId;
    }

    public Long getExamId() {
        return examId;
    }

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

    public String getScanTaskCode() {
        return scanTaskCode;
    }

    public void setScanTaskCode(String scanTaskCode) {
        this.scanTaskCode = scanTaskCode;
    }

    public String getScanTaskName() {
        return scanTaskName;
    }

    public void setScanTaskName(String scanTaskName) {
        this.scanTaskName = scanTaskName;
    }

    public String getCourseCode() {
        return courseCode;
    }

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

    public String getCourseName() {
        return courseName;
    }

    public void setCourseName(String courseName) {
        this.courseName = courseName;
    }

    public RecognitionTypeEnum getRecognitionType() {
        return recognitionType;
    }

    public void setRecognitionType(RecognitionTypeEnum recognitionType) {
        this.recognitionType = recognitionType;
    }

    public StoreTypeEnum getStoreType() {
        return storeType;
    }

    public void setStoreType(StoreTypeEnum storeType) {
        this.storeType = storeType;
    }

    public Integer getStudentCount() {
        return studentCount;
    }

    public void setStudentCount(Integer studentCount) {
        this.studentCount = studentCount;
    }

    public Integer getScanStudentCount() {
        return scanStudentCount;
    }

    public void setScanStudentCount(Integer scanStudentCount) {
        this.scanStudentCount = scanStudentCount;
    }

    public Integer getScanCount() {
        return scanCount;
    }

    public void setScanCount(Integer scanCount) {
        this.scanCount = scanCount;
    }

    public Boolean getEnable() {
        return enable;
    }

    public void setEnable(Boolean enable) {
        this.enable = enable;
    }

}
