package com.qmth.themis.business.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qmth.themis.business.enums.VerifyExceptionEnum;
import com.qmth.themis.business.util.UidUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;

/**
 * @Description:
 * @Param:
 * @return:
 * @Author: wangliang
 * @Date: 2020/6/25
 */
@ApiModel(value = "t_ie_invigilate_warn_info", description = "监考预警信息")
public class TIeInvigilateWarnInfo 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")
    @TableField(value = "exam_id")
    private Long examId;

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "场次ID")
    @TableField(value = "exam_activity_id")
    private Long examActivityId;

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "考试记录ID")
    @TableField(value = "exam_record_id")
    private Long examRecordId;

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "考生id")
    @TableField(value = "exam_student_id")
    private Long examStudentId;

    @ApiModelProperty(value = "预警信息")
    @TableField(value = "info")
    private String info;

    @ApiModelProperty(value = "预警级别")
    @TableField(value = "level")
    private String level;

    @ApiModelProperty(value = "类别")
    @TableField(value = "type")
    private VerifyExceptionEnum type;

    @ApiModelProperty(value = "备注")
    @TableField(value = "remark")
    private String remark;

    @ApiModelProperty(value = "审阅状态，0：未阅，1：已阅")
    @TableField(value = "approve_status")
    private Integer approveStatus;

    @ApiModelProperty(value = "创建时间")
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private Long createTime;

    @ApiModelProperty(value = "更新时间")
    @TableField(value = "update_time", fill = FieldFill.UPDATE)
    private Long updateTime;

    @ApiModelProperty(value = "图片url")
    @TableField(value = "photo_url")
    private String photoUrl;

    @ApiModelProperty(value = "视频url")
    @TableField(value = "video_url")
    private String videoUrl;

    @ApiModelProperty(value = "提醒状态，0：不提醒，1：提醒")
    @TableField(value = "remind_status")
    private Integer remindStatus;

    public TIeInvigilateWarnInfo() {

    }

    public TIeInvigilateWarnInfo(Long examId, Long examActivityId, Long examRecordId, Long examStudentId, String level,
            String info, VerifyExceptionEnum type, Integer remindStatus) {
        this.id = UidUtil.nextId();
        this.examId = examId;
        this.examActivityId = examActivityId;
        this.examRecordId = examRecordId;
        this.examStudentId = examStudentId;
        this.level = level;
        this.info = info;
        this.type = type;
        this.approveStatus = 0;
        this.remindStatus = remindStatus;
    }

    public TIeInvigilateWarnInfo(Long examId, Long examActivityId, Long examRecordId, Long examStudentId, String level,
            String info, VerifyExceptionEnum type, String photoUrl, Integer remindStatus) {
        this.id = UidUtil.nextId();
        this.examId = examId;
        this.examActivityId = examActivityId;
        this.examRecordId = examRecordId;
        this.examStudentId = examStudentId;
        this.level = level;
        this.info = info;
        this.type = type;
        this.approveStatus = 0;
        this.photoUrl = photoUrl;
        this.remindStatus = remindStatus;
    }

    public Integer getRemindStatus() {
        return remindStatus;
    }

    public void setRemindStatus(Integer remindStatus) {
        this.remindStatus = remindStatus;
    }

    public String getPhotoUrl() {
        return photoUrl;
    }

    public void setPhotoUrl(String photoUrl) {
        this.photoUrl = photoUrl;
    }

    public String getVideoUrl() {
        return videoUrl;
    }

    public void setVideoUrl(String videoUrl) {
        this.videoUrl = videoUrl;
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    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 Long getExamActivityId() {
        return examActivityId;
    }

    public void setExamActivityId(Long examActivityId) {
        this.examActivityId = examActivityId;
    }

    public Long getExamRecordId() {
        return examRecordId;
    }

    public void setExamRecordId(Long examRecordId) {
        this.examRecordId = examRecordId;
    }

    public Long getExamStudentId() {
        return examStudentId;
    }

    public void setExamStudentId(Long examStudentId) {
        this.examStudentId = examStudentId;
    }

    public String getInfo() {
        return info;
    }

    public void setInfo(String info) {
        this.info = info;
    }

    public String getLevel() {
        return level;
    }

    public void setLevel(String level) {
        this.level = level;
    }

    public VerifyExceptionEnum getType() {
        return type;
    }

    public void setType(VerifyExceptionEnum type) {
        this.type = type;
    }

    public String getRemark() {
        return remark;
    }

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

    public Integer getApproveStatus() {
        return approveStatus;
    }

    public void setApproveStatus(Integer approveStatus) {
        this.approveStatus = approveStatus;
    }

    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;
    }
}
