package com.ym.mec.biz.dal.entity;

import com.ym.mec.auth.api.entity.SysUser;
import com.ym.mec.biz.dal.enums.JobNatureEnum;
import com.ym.mec.biz.dal.enums.JobTypeEnum;
import com.ym.mec.biz.dal.enums.YesOrNoEnum;

import io.swagger.annotations.ApiModelProperty;

import java.util.Date;

import org.apache.commons.lang3.builder.ToStringBuilder;

/**
 * 对应数据库表(teacher):
 */
public class Teacher extends SysUser {

	/** 职务类型（指导老师、教务老师、教学主管） */
	@ApiModelProperty(value = "职务类型（指导老师 ADVISER、教务老师 ACADEMIC、教学主管 TEACHING）", required = false)
	private JobTypeEnum jobType;

	/** 工作性质（兼职、全职） */
	@ApiModelProperty(value = "工作性质（兼职 PART_JOB、全职FULL_JOB）", required = false)
	private JobNatureEnum jobNature;

	/** 是否试用期 */
	@ApiModelProperty(value = "是否试用期1是，0否", required = false)
	private YesOrNoEnum isProbationPeriod;

	/** 学历 */
	@ApiModelProperty(value = "学历", required = false)
	private String educationBackground;

	/** 毕业学校 */
	@ApiModelProperty(value = "毕业学校", required = false)
	private String graduateSchool;

	/** 技术职称 */
	@ApiModelProperty(value = "技术职称", required = false)
	private String technicalTitles;

	/** 所属分部名称 */
	@ApiModelProperty(value = "所属分部名称", required = false)
	private String organName;

	/** 工作单位 */
	@ApiModelProperty(value = "工作单位", required = false)
	private String workUnit;

	/** 专业技能（支持多个，用|分隔），对应科目表编号 */
	@ApiModelProperty(value = "专业技能（支持多个，用逗号分隔），对应科目表编号", required = false)
	private String subjectId;

	/** 入职时间 */
	@ApiModelProperty(value = "入职时间", required = false)
	private java.util.Date entryDate;

	/** 证件类型 */
	@ApiModelProperty(value = "证件类型", required = false)
	private String certificateType;

	/** 证件号码 */
	@ApiModelProperty(value = "证件号码", required = false)
	private String certificateNum;

	/** 流动范围(多个用|分开) */
	@ApiModelProperty(value = "流动范围(多个用逗号分开)", required = false)
	private String flowOrganRange;

	@ApiModelProperty(value = "老师介绍", required = false)
	private String introduction;
	
	@ApiModelProperty(value = "离职时间", required = false)
	private Date demissionDate;

	public String getOrganName() {
		return organName;
	}

	public void setOrganName(String organName) {
		this.organName = organName;
	}

	public JobTypeEnum getJobType() {
		return jobType;
	}

	public void setJobType(JobTypeEnum jobType) {
		this.jobType = jobType;
	}

	public YesOrNoEnum getIsProbationPeriod() {
		return isProbationPeriod;
	}

	public void setIsProbationPeriod(YesOrNoEnum isProbationPeriod) {
		this.isProbationPeriod = isProbationPeriod;
	}

	public JobNatureEnum getJobNature() {
		return jobNature;
	}

	public void setJobNature(JobNatureEnum jobNature) {
		this.jobNature = jobNature;
	}

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

	public String getEducationBackground() {
		return this.educationBackground;
	}

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

	public String getGraduateSchool() {
		return this.graduateSchool;
	}

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

	public String getTechnicalTitles() {
		return this.technicalTitles;
	}

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

	public String getWorkUnit() {
		return this.workUnit;
	}

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

	public String getSubjectId() {
		return this.subjectId;
	}

	public void setEntryDate(java.util.Date entryDate) {
		this.entryDate = entryDate;
	}

	public java.util.Date getEntryDate() {
		return this.entryDate;
	}

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

	public String getCertificateType() {
		return this.certificateType;
	}

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

	public String getCertificateNum() {
		return this.certificateNum;
	}

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

	public String getFlowOrganRange() {
		return this.flowOrganRange;
	}

	public String getIntroduction() {
		return introduction;
	}

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

	public Date getDemissionDate() {
		return demissionDate;
	}

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

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

}
