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

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;

import com.yonge.cooleshow.common.enums.UserLockFlag;
import com.yonge.cooleshow.common.enums.YesOrNoEnum;
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.springframework.format.annotation.DateTimeFormat;

/**
 * 教师表
 */
@TableName("teacher")
@ApiModel(value = "Teacher对象", description = "教师表")
public class Teacher implements Serializable {
	private static final long serialVersionUID = 1L;
    /** 
    * 对应user表用户编号 
    */
    @ApiModelProperty("对应user表用户编号 ")
    @TableId(value = "user_id_")
    private Long userId;
    /** 
    * 学历 
    */
    @ApiModelProperty("学历 ")
	@TableField(value = "education_background_")
    private String educationBackground;
    /** 
    * 毕业学校 
    */
    @ApiModelProperty("毕业学校 ")
	@TableField(value = "graduate_school_")
    private String graduateSchool;
    /** 
    * 技术职称 
    */
    @ApiModelProperty("技术职称 ")
	@TableField(value = "technical_titles_")
    private String technicalTitles;
    /** 
    * 工作单位 
    */
    @ApiModelProperty("工作单位 ")
	@TableField(value = "work_unit_")
    private String workUnit;
    /** 
    * 专业技能（支持多个，用逗号分隔），对应声部表编号
    */
    @ApiModelProperty("声部id（支持多个，用逗号分隔） ")
	@TableField(value = "subject_id_")
    private String subjectId;
    /**
     * 个人介绍
     */
    @ApiModelProperty("个人介绍 ")
    @TableField(value = "introduction_")
    private String introduction;
    /**
     * 学校专业
     */
    @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;
    /**
     * 老师入驻  0 否 1 是
     */
    @ApiModelProperty("老师入驻  0 否 1 是 ")
    @TableField(value = "entry_flag_")
    private YesOrNoEnum entryFlag;
    /**
    * 入驻时间 
    */
    @ApiModelProperty("入驻时间 ")
	@TableField(value = "entry_auth_date_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date entryAuthDate;


    @ApiModelProperty("老师点亮图标 STYLE:个人风采 VIDEO：视频课 LIVE：直播课，MUSIC：曲目 DEGREE:学历 TEACHER：教资")
    @TableField(value = "tag_")
    private String tag;

    /** 
    * 音乐人  0 否 1 是
    */
    @ApiModelProperty("音乐人  0 否 1 是 ")
	@TableField(value = "musician_flag_")
    private YesOrNoEnum musicianFlag;
    /**
     * 音乐人认证时间
     */
    @ApiModelProperty("音乐人认证时间 ")
    @TableField(value = "musician_date_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date musicianDate;
    @ApiModelProperty("直播权限 0 否 1 是")
    @TableField(value = "live_flag_")
    private YesOrNoEnum liveFlag;
    @ApiModelProperty("直播认证时间 ")
    @TableField(value = "live_date_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date liveDate;

    @ApiModelProperty("曲目点亮时间 ")
    @TableField(value = "music_date_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date musicDate;

    @ApiModelProperty("视频课图标点亮时间 ")
    @TableField(value = "video_date_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date videoDate;

    @ApiModelProperty("个人风采图标点亮时间 ")
    @TableField(value = "style_date_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date styleDate;


    @ApiModelProperty("学位认证 0:未认证 1：已认证 ")
    @TableField(value = "degree_flag_")
    private YesOrNoEnum degreeFlag;


    @ApiModelProperty("教师资格认证 0：未认证 1：已认证 ")
    @TableField(value = "teacher_flag_")
    private YesOrNoEnum teacherFlag;

    @ApiModelProperty("学位认证时间 ")
    @TableField(value = "degree_date_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date degreeDate;


    @ApiModelProperty("教师资格认证时间 ")
    @TableField(value = "teacher_date_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date teacherDate;

    /**
     * 会员等级
     */
    @ApiModelProperty("会员等级 ")
    @TableField(value = "member_rank_setting_id_")
    private Long memberRankSettingId;
    /**
     * 有效期开始时间
     */
    @ApiModelProperty("有效期开始时间 ")
    @TableField(value = "membership_start_time_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date membershipStartTime;
    /**
     * 有效期结束时间
     */
    @ApiModelProperty("有效期结束时间 ")
    @TableField(value = "membership_end_time_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date membershipEndTime;

    @ApiModelProperty("对应user表用户编号 ")
    @TableField(value = "browse_")
    private Integer browse;
    @ApiModelProperty("备注 ")
	@TableField(value = "memo_")
    private String memo;
    @ApiModelProperty("锁定状态 0-正常， 1=锁定")
    @TableField(value = "lock_flag_")
    private UserLockFlag lockFlag;
	@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;
	
	@TableField(value = "is_settlement_")
    @ApiModelProperty("是否结算")
	private Boolean isSettlement;
	
	@TableField(value = "is_test_user_")
    @ApiModelProperty("是否测试用户")
	private Boolean isTestUser;


    public YesOrNoEnum getDegreeFlag() {
        return degreeFlag;
    }

    public void setDegreeFlag(YesOrNoEnum degreeFlag) {
        this.degreeFlag = degreeFlag;
    }

    public YesOrNoEnum getTeacherFlag() {
        return teacherFlag;
    }

    public void setTeacherFlag(YesOrNoEnum teacherFlag) {
        this.teacherFlag = teacherFlag;
    }

    public Date getDegreeDate() {
        return degreeDate;
    }

    public void setDegreeDate(Date degreeDate) {
        this.degreeDate = degreeDate;
    }

    public Date getTeacherDate() {
        return teacherDate;
    }

    public void setTeacherDate(Date teacherDate) {
        this.teacherDate = teacherDate;
    }

    public Date getMusicDate() {
        return musicDate;
    }

    public void setMusicDate(Date musicDate) {
        this.musicDate = musicDate;
    }

    public Date getVideoDate() {
        return videoDate;
    }

    public void setVideoDate(Date videoDate) {
        this.videoDate = videoDate;
    }

    public Date getStyleDate() {
        return styleDate;
    }

    public void setStyleDate(Date styleDate) {
        this.styleDate = styleDate;
    }

    public String getTag() {
        return tag;
    }

    public void setTag(String tag) {
        this.tag = tag;
    }

    public Long getMemberRankSettingId() {
        return memberRankSettingId;
    }

    public void setMemberRankSettingId(Long memberRankSettingId) {
        this.memberRankSettingId = memberRankSettingId;
    }

    public Date getMembershipStartTime() {
        return membershipStartTime;
    }

    public void setMembershipStartTime(Date membershipStartTime) {
        this.membershipStartTime = membershipStartTime;
    }

    public Date getMembershipEndTime() {
        return membershipEndTime;
    }

    public void setMembershipEndTime(Date membershipEndTime) {
        this.membershipEndTime = membershipEndTime;

    }

    public Long getUserId() {
        return userId;
    }

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

    public String getEducationBackground() {
        return educationBackground;
    }

    public void setEducationBackground(String educationBackground) {
        this.educationBackground = educationBackground;
    }

    public String getGraduateSchool() {
        return graduateSchool;
    }

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

    public String getTechnicalTitles() {
        return technicalTitles;
    }

    public void setTechnicalTitles(String technicalTitles) {
        this.technicalTitles = technicalTitles;
    }

    public String getWorkUnit() {
        return workUnit;
    }

    public void setWorkUnit(String workUnit) {
        this.workUnit = workUnit;
    }

    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 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 YesOrNoEnum getEntryFlag() {
        return entryFlag;
    }

    public void setEntryFlag(YesOrNoEnum entryFlag) {
        this.entryFlag = entryFlag;
    }

    public Date getEntryAuthDate() {
        return entryAuthDate;
    }

    public void setEntryAuthDate(Date entryAuthDate) {
        this.entryAuthDate = entryAuthDate;
    }

    public YesOrNoEnum getMusicianFlag() {
        return musicianFlag;
    }

    public void setMusicianFlag(YesOrNoEnum musicianFlag) {
        this.musicianFlag = musicianFlag;
    }

    public Date getMusicianDate() {
        return musicianDate;
    }

    public void setMusicianDate(Date musicianDate) {
        this.musicianDate = musicianDate;
    }

    public YesOrNoEnum getLiveFlag() {
        return liveFlag;
    }

    public void setLiveFlag(YesOrNoEnum liveFlag) {
        this.liveFlag = liveFlag;
    }

    public String getMemo() {
        return memo;
    }

    public void setMemo(String memo) {
        this.memo = memo;
    }

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

    public Date getLiveDate() {
        return liveDate;
    }

    public void setLiveDate(Date liveDate) {
        this.liveDate = liveDate;
    }

    public Integer getBrowse() {
        return browse;
    }

    public void setBrowse(Integer browse) {
        this.browse = browse;
    }

    public UserLockFlag getLockFlag() {
        return lockFlag;
    }

    public void setLockFlag(UserLockFlag lockFlag) {
        this.lockFlag = lockFlag;
    }

	public Boolean getIsSettlement() {
		return isSettlement;
	}

	public void setIsSettlement(Boolean isSettlement) {
		this.isSettlement = isSettlement;
	}

	public Boolean getIsTestUser() {
		return isTestUser;
	}

	public void setIsTestUser(Boolean isTestUser) {
		this.isTestUser = isTestUser;
	}
}