package com.ekexiu.portal.po;

import java.math.BigDecimal;
import java.util.List;

import org.jfw.apt.orm.annotation.entry.Column;
import org.jfw.apt.orm.annotation.entry.PrimaryKey;
import org.jfw.apt.orm.annotation.entry.Table;
import org.jfw.apt.orm.core.defaultImpl.BigDecimalHandler;
import org.jfw.apt.orm.core.defaultImpl.FixLenStringHandler;
import org.jfw.apt.orm.core.defaultImpl.StringHandler;
import org.jfw.apt.orm.core.defaultImpl.WIntHandler;
import org.jfw.apt.orm.core.enums.DE;

import com.ekexiu.portal.basepo.CreateTimeSupported;
import com.ekexiu.portal.basepo.ModifyTimeSupported;
@PrimaryKey("id")
@Table
public class Professor implements CreateTimeSupported, ModifyTimeSupported{

	private String id;
	private String name;
	private boolean authentication;
	
	private String office;
	/**
	 *职称 
	 */
	private String title;
	private String orgId;
	private String department;
	/**
	 * 学科
	 */
	private String subject;
	/**
	 * 应用行业
	 */
	private String industry;
	private String province;
	private String address;
	private String descp;
	private String createTime;
	private String modifyTime;
	private BigDecimal starLevel;
	private Integer consultCount;
	private BigDecimal starAvg;
	private Organization organization;
	private List<Resource> resources;
	
	public Organization getOrganization() {
		return organization;
	}

	public void setOrganization(Organization organization) {
		this.organization = organization;
	}

	public List<Resource> getResources() {
		return resources;
	}

	public void setResources(List<Resource> resources) {
		this.resources = resources;
	}

	@Column(value=DE.String_de,dbType="TEXT")
	public String getOffice() {
		return office;
	}

	public void setOffice(String office) {
		this.office = office;
	}

	@Column(handlerClass=StringHandler.class,dbType="TEXT",insertable=false,nullable=true,renewable=false,queryable=true)
	public String getSubject() {
		return subject;
	}

	public void setSubject(String subject) {
		this.subject = subject;
	}
	@Column(handlerClass=StringHandler.class,dbType="TEXT",insertable=false,nullable=true,renewable=false,queryable=true)
	public String getIndustry() {
		return industry;
	}

	public void setIndustry(String industry) {
		this.industry = industry;
	}
	
	/**
	 * 所在省份
	 * @return
	 */
	@Column(DE.String_de)
	public String getProvince() {
		return province;
	}

	public void setProvince(String province) {
		this.province = province;
	}

	/**
	 * 所在城市
	 * @return
	 */
	@Column(DE.String_de)
	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	/**
	 * 机构部门
	 * @return
	 */
	@Column(DE.String_de)
	public String getDepartment() {
		return department;
	}

	public void setDepartment(String department) {
		this.department = department;
	}

	/**
	 * 任职机构ID
	 * @return
	 */
	@Column(handlerClass=FixLenStringHandler.class,dbType="CHAR(32)",insertable=true,nullable=false,renewable=true,queryable=true)
	public String getOrgId() {
		return orgId;
	}

	public void setOrgId(String orgId) {
		this.orgId = orgId;
	}

	/**
	 * 职称
	 * @return
	 */
	@Column(DE.String_de)
	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}
	/**
	 * 是否认证
	 * @return
	 */
	@Column(value=DE.boolean_de)
	public boolean isAuthentication() {
		return authentication;
	}

	public void setAuthentication(boolean authentication) {
		this.authentication = authentication;
	}

	@Column(DE.id_32)
	public String getId() {
		return id;
	}

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

	@Column(DE.dictCaption)
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	@Column(handlerClass=StringHandler.class,dbType="TEXT",insertable=false,nullable=true,renewable=false,queryable=true)
	public String getDescp() {
		return descp;
	}

	public void setDescp(String descp) {
		this.descp = descp;
	}

	public String getCreateTime() {
		return createTime;
	}

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

	public String getModifyTime() {
		return modifyTime;
	}

	public void setModifyTime(String modifyTime) {
		this.modifyTime = modifyTime;
	}

	@Column(handlerClass=BigDecimalHandler.class,dbType="DECIMAL",insertable=false,nullable=false,renewable=true,queryable=true)
	public BigDecimal getStarLevel() {
		return starLevel;
	}
	
	public void setStarLevel(BigDecimal starLevel) {
		this.starLevel = starLevel;
	}

	@Column(handlerClass=WIntHandler.class,dbType="INT",insertable=false,nullable=true,renewable=true,queryable=true)
	public Integer getConsultCount() {
		return consultCount;
	}
	
	public void setConsultCount(Integer consultCount) {
		this.consultCount = consultCount;
	}

	@Column(handlerClass=BigDecimalHandler.class,dbType="DECIMAL",insertable=false,nullable=false,renewable=true,queryable=true)
	public BigDecimal getStarAvg() {
		return starAvg;
	}

	public void setStarAvg(BigDecimal starAvg) {
		this.starAvg = starAvg;
	}

}
