package com.goafanti.demand.bo;

import java.math.BigDecimal;
import java.util.Date;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.Size;

import com.goafanti.common.constant.ErrorConstants;

public class InputDemand {
	
	@Size(min = 0, max = 128, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
	private String		name;
	
	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
	private String		id;
	
	@Max(value = 99999999, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	private Integer		serialNumber;
	
	@Max(value = 1, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	private Integer		dataCategory;

	@Max(value = 9, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	private Integer		demandType;
	
	@Size(min = 0, max = 45, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
	private String		keyword;

	@Max(value = 999, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	private Integer		industryCategoryA;

	@Max(value = 999, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	private Integer		industryCategoryB;

	@Max(value = 999, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	private Integer		industryCategoryC;
	
	@Max(value = (long) 999999.99, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	private BigDecimal	budgetCost;
	
	@Max(value = (long) 999999.99, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	private BigDecimal crowdCost;
	
	@Max(value = 1, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	private Integer isHot;

	@Max(value = 1, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	private Integer isUrgent;
	
	@Max(value = 10, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	private Integer researchType;
	
	@Max(value = 999, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	private int urgentDays;
	
	@Max(value = (long) 999999.99, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	private BigDecimal urgentMoney;
	
	@Max(value = 1, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	private Integer		releaseStatus;
	
	private Date		releaseDate;
	
	private Date 		createTime;
	
	@Max(value = 4, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	private Integer		auditStatus;
	
	@Size(min = 0, max = 128, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
	private String auditInfo;
	
	@Max(value = 2, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	private Integer		status;
	
	@Size(min = 0, max = 512, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
	private String		problemDes;
	
	@Size(min = 0, max = 1000, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
	private String		pictureUrl;
	
	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
	private String		employerId;

	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
	private String		techBrokerId;

	@Max(value = 1, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	private Integer		infoSources;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getId() {
		return id;
	}

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

	public Integer getSerialNumber() {
		return serialNumber;
	}

	public void setSerialNumber(Integer serialNumber) {
		this.serialNumber = serialNumber;
	}

	public Integer getDataCategory() {
		return dataCategory;
	}

	public void setDataCategory(Integer dataCategory) {
		this.dataCategory = dataCategory;
	}

	public Integer getDemandType() {
		return demandType;
	}

	public void setDemandType(Integer demandType) {
		this.demandType = demandType;
	}

	public String getKeyword() {
		return keyword;
	}

	public void setKeyword(String keyword) {
		this.keyword = keyword;
	}

	public Integer getIndustryCategoryA() {
		return industryCategoryA;
	}

	public void setIndustryCategoryA(Integer industryCategoryA) {
		this.industryCategoryA = industryCategoryA;
	}

	public Integer getIndustryCategoryB() {
		return industryCategoryB;
	}

	public void setIndustryCategoryB(Integer industryCategoryB) {
		this.industryCategoryB = industryCategoryB;
	}

	public Integer getIndustryCategoryC() {
		return industryCategoryC;
	}

	public void setIndustryCategoryC(Integer industryCategoryC) {
		this.industryCategoryC = industryCategoryC;
	}

	public BigDecimal getBudgetCost() {
		return budgetCost;
	}

	public void setBudgetCost(BigDecimal budgetCost) {
		this.budgetCost = budgetCost;
	}

	public BigDecimal getCrowdCost() {
		return crowdCost;
	}

	public void setCrowdCost(BigDecimal crowdCost) {
		this.crowdCost = crowdCost;
	}

	public Integer getIsHot() {
		return isHot;
	}

	public void setIsHot(Integer isHot) {
		this.isHot = isHot;
	}

	public Integer getIsUrgent() {
		return isUrgent;
	}

	public void setIsUrgent(Integer isUrgent) {
		this.isUrgent = isUrgent;
	}

	public Integer getResearchType() {
		return researchType;
	}

	public void setResearchType(Integer researchType) {
		this.researchType = researchType;
	}

	public int getUrgentDays() {
		return urgentDays;
	}

	public void setUrgentDays(int urgentDays) {
		this.urgentDays = urgentDays;
	}

	public BigDecimal getUrgentMoney() {
		return urgentMoney;
	}

	public void setUrgentMoney(BigDecimal urgentMoney) {
		this.urgentMoney = urgentMoney;
	}

	public Integer getReleaseStatus() {
		return releaseStatus;
	}

	public void setReleaseStatus(Integer releaseStatus) {
		this.releaseStatus = releaseStatus;
	}

	public Date getReleaseDate() {
		return releaseDate;
	}

	public void setReleaseDate(Date releaseDate) {
		this.releaseDate = releaseDate;
	}
	
	public Date getCreateTime() {
		return createTime;
	}

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

	public Integer getAuditStatus() {
		return auditStatus;
	}

	public void setAuditStatus(Integer auditStatus) {
		this.auditStatus = auditStatus;
	}

	public String getAuditInfo() {
		return auditInfo;
	}

	public void setAuditInfo(String auditInfo) {
		this.auditInfo = auditInfo;
	}

	public Integer getStatus() {
		return status;
	}

	public void setStatus(Integer status) {
		this.status = status;
	}

	public String getProblemDes() {
		return problemDes;
	}

	public void setProblemDes(String problemDes) {
		this.problemDes = problemDes;
	}

	public String getPictureUrl() {
		return pictureUrl;
	}

	public void setPictureUrl(String pictureUrl) {
		this.pictureUrl = pictureUrl;
	}

	public String getEmployerId() {
		return employerId;
	}

	public void setEmployerId(String employerId) {
		this.employerId = employerId;
	}

	public String getTechBrokerId() {
		return techBrokerId;
	}

	public void setTechBrokerId(String techBrokerId) {
		this.techBrokerId = techBrokerId;
	}

	public Integer getInfoSources() {
		return infoSources;
	}

	public void setInfoSources(Integer infoSources) {
		this.infoSources = infoSources;
	}

}
