package com.ym.mec.education.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 教师表
 * </p>
 *
 * @author lemeng
 * @since 2019-09-25
 */
@TableName("teacher")
public class Teacher extends Model<Teacher> {

    private static final long serialVersionUID = 1L;

    /**
     * 对应user表用户编号
     */
    @TableId("id_")
    private Integer id;
    @TableField("organ_id_")
    private Integer organId;
    /**
     * 职务类型（指导老师、教务老师、教学主管）
     */
    @TableField("job_type_")
    private String jobType;
    /**
     * 工作性质（兼职、全职、临时）
     */
    @TableField("job_nature_")
    private String jobNature;
    /**
     * 是否试用期(1-是 0-否)
     */
    @TableField("is_probation_period_")
    private String isProbationPeriod;
    /**
     * 学历
     */
    @TableField("education_background_")
    private String educationBackground;
    /**
     * 毕业学校
     */
    @TableField("graduate_school_")
    private String graduateSchool;
    /**
     * 技术职称
     */
    @TableField("technical_titles_")
    private String technicalTitles;
    /**
     * 工作单位
     */
    @TableField("work_unit_")
    private String workUnit;
    /**
     * 专业技能（支持多个，用逗号分隔），对应科目表编号
     */
    @TableField("subject_id_")
    private String subjectId;
    /**
     * 入职时间
     */
    @TableField("entry_date_")
    private Date entryDate;
    /**
     * 证件类型
     */
    @TableField("certificate_type_")
    private String certificateType;
    /**
     * 证件号码
     */
    @TableField("certificate_num_")
    private String certificateNum;
    /**
     * 流动范围(多个用逗号分开)
     */
    @TableField("flow_organ_range_")
    private String flowOrganRange;
    @TableField("update_time_")
    private Date updateTime;
    @TableField("create_time_")
    private Date createTime;
    /**
     * 介绍
     */
    @TableField("introduction_")
    private String introduction;
    /**
     * 离职日期
     */
    @TableField("demission_date_")
    private Date demissionDate;


    public Integer getId() {
        return id;
    }

    public Teacher setId(Integer id) {
        this.id = id;
        return this;
    }

    public Integer getOrganId() {
        return organId;
    }

    public Teacher setOrganId(Integer organId) {
        this.organId = organId;
        return this;
    }

    public String getJobType() {
        return jobType;
    }

    public Teacher setJobType(String jobType) {
        this.jobType = jobType;
        return this;
    }

    public String getJobNature() {
        return jobNature;
    }

    public Teacher setJobNature(String jobNature) {
        this.jobNature = jobNature;
        return this;
    }

    public String getIsProbationPeriod() {
        return isProbationPeriod;
    }

    public Teacher setIsProbationPeriod(String isProbationPeriod) {
        this.isProbationPeriod = isProbationPeriod;
        return this;
    }

    public String getEducationBackground() {
        return educationBackground;
    }

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

    public String getGraduateSchool() {
        return graduateSchool;
    }

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

    public String getTechnicalTitles() {
        return technicalTitles;
    }

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

    public String getWorkUnit() {
        return workUnit;
    }

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

    public String getSubjectId() {
        return subjectId;
    }

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

    public Date getEntryDate() {
        return entryDate;
    }

    public Teacher setEntryDate(Date entryDate) {
        this.entryDate = entryDate;
        return this;
    }

    public String getCertificateType() {
        return certificateType;
    }

    public Teacher setCertificateType(String certificateType) {
        this.certificateType = certificateType;
        return this;
    }

    public String getCertificateNum() {
        return certificateNum;
    }

    public Teacher setCertificateNum(String certificateNum) {
        this.certificateNum = certificateNum;
        return this;
    }

    public String getFlowOrganRange() {
        return flowOrganRange;
    }

    public Teacher setFlowOrganRange(String flowOrganRange) {
        this.flowOrganRange = flowOrganRange;
        return this;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

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

    public Date getCreateTime() {
        return createTime;
    }

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

    public String getIntroduction() {
        return introduction;
    }

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

    public Date getDemissionDate() {
        return demissionDate;
    }

    public Teacher setDemissionDate(Date demissionDate) {
        this.demissionDate = demissionDate;
        return this;
    }

    @Override
    protected Serializable pkVal() {
        return this.id;
    }

    @Override
    public String toString() {
        return "Teacher{" +
        ", id=" + id +
        ", organId=" + organId +
        ", jobType=" + jobType +
        ", jobNature=" + jobNature +
        ", isProbationPeriod=" + isProbationPeriod +
        ", educationBackground=" + educationBackground +
        ", graduateSchool=" + graduateSchool +
        ", technicalTitles=" + technicalTitles +
        ", workUnit=" + workUnit +
        ", subjectId=" + subjectId +
        ", entryDate=" + entryDate +
        ", certificateType=" + certificateType +
        ", certificateNum=" + certificateNum +
        ", flowOrganRange=" + flowOrganRange +
        ", updateTime=" + updateTime +
        ", createTime=" + createTime +
        ", introduction=" + introduction +
        ", demissionDate=" + demissionDate +
        "}";
    }
}
