package com.yonge.cooleshow.biz.dal.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
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.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 老师入驻审核表
 */
@TableName("teacher_auth_entry_record")
@ApiModel(value = "TeacherAuthEntryRecord对象", description = "老师入驻审核表")
public class TeacherAuthEntryRecord implements Serializable {
	private static final long serialVersionUID = 1L;
    /** 
    * 审核单id 
    */
    @ApiModelProperty("审核单id ")
    @TableId(value = "id_", type = IdType.AUTO)
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    /** 
    * 对应user表用户编号 
    */
    @ApiModelProperty("对应user表用户编号 ")
	@TableField(value = "user_id_")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long userId;
    /** 
    * 专业技能（支持多个，用逗号分隔），对应乐器表id 
    */
    @ApiModelProperty("专业技能（支持多个，用逗号分隔），对应乐器表id ")
	@TableField(value = "subject_id_")
    private String subjectId;
    /** 
    * 个人介绍 
    */
    @ApiModelProperty("个人介绍 ")
	@TableField(value = "introduction_")
    private String introduction;
    /** 
    * 毕业学校 
    */
    @ApiModelProperty("毕业学校 ")
	@TableField(value = "graduate_school_")
    private String graduateSchool;
    /** 
    * 学校专业 
    */
    @ApiModelProperty("学校专业 ")
	@TableField(value = "subject_")
    private String subject;
    /** 
    * 毕业证书 
    */
    @ApiModelProperty("毕业证书 ")
	@TableField(value = "grad_certificate_")
    private String gradCertificate;
    /** 
    * 学位证书 
    */
    @ApiModelProperty("学位证书 ")
	@TableField(value = "degree_certificate_")
    private String degreeCertificate;
    /** 
    * 教师资格证 
    */
    @ApiModelProperty("教师资格证 ")
	@TableField(value = "teacher_certificate_")
    private String teacherCertificate;

    @ApiModelProperty("老师认证审核状态 UNPAALY、未申请 DOING、审核中 PASS、通过 UNPASS、不通过")
	@TableField(value = "teacher_auth_status_")
    private AuthStatusEnum teacherAuthStatus;
    /** 
    * 审核人 
    */
    @ApiModelProperty("审核人 ")
	@TableField(value = "verify_user_id_")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long verifyUserId;
    /** 
    * 审核理由 
    */
    @ApiModelProperty("审核理由 ")
	@TableField(value = "reason_")
    private String reason;

	@TableField(value = "create_time_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date createTime;

	@TableField(value = "update_time_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date updateTime;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getSubjectId() {
        return subjectId;
    }

    public void setSubjectId(String subjectId) {
        this.subjectId = subjectId;
    }

    public String getIntroduction() {
        return introduction;
    }

    public void setIntroduction(String introduction) {
        this.introduction = introduction;
    }

    public String getGraduateSchool() {
        return graduateSchool;
    }

    public void setGraduateSchool(String graduateSchool) {
        this.graduateSchool = graduateSchool;
    }

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public String getGradCertificate() {
        return gradCertificate;
    }

    public void setGradCertificate(String gradCertificate) {
        this.gradCertificate = gradCertificate;
    }

    public String getDegreeCertificate() {
        return degreeCertificate;
    }

    public void setDegreeCertificate(String degreeCertificate) {
        this.degreeCertificate = degreeCertificate;
    }

    public String getTeacherCertificate() {
        return teacherCertificate;
    }

    public void setTeacherCertificate(String teacherCertificate) {
        this.teacherCertificate = teacherCertificate;
    }

    public AuthStatusEnum getTeacherAuthStatus() {
        return teacherAuthStatus;
    }

    public void setTeacherAuthStatus(AuthStatusEnum teacherAuthStatus) {
        this.teacherAuthStatus = teacherAuthStatus;
    }

    public Long getVerifyUserId() {
        return verifyUserId;
    }

    public void setVerifyUserId(Long verifyUserId) {
        this.verifyUserId = verifyUserId;
    }

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }
}