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 = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
	private String		id;

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

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

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

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

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

	@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 = 9, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	private Integer		demandType;

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

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

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

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

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

	@Max(value = (long) 999999.99, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	private BigDecimal	fixedBudget;

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

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

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

	@Max(value = (long) 999999.99, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	private BigDecimal	costEscrow;

	@Max(value = (long) 999999.99, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
	private BigDecimal	budgetCost;

	private Date		validityPeriod;

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

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

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

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

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

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

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

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

	private Date		releaseDate;

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

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

	@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 boutique;
	
	@Size(min = 0, max = 500, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
	private String remark;
	
	@Size(min = 0, max = 11, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
	private String urgentDays;
	
	private BigDecimal urgentMoney;
	
	@Size(min = 0, max = 256, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
	private String contacts; 
	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
	private String contactMobile;
	
	public String getContactMobile() {
		return contactMobile;
	}

	public void setContactMobile(String contactMobile) {
		this.contactMobile = contactMobile;
	}

	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public String getId() {
		return id;
	}

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

	public Integer getDataCategory() {
		return dataCategory;
	}

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

	public String getName() {
		return name;
	}

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

	public String getKeyword() {
		return keyword;
	}

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

	public Integer getInfoSources() {
		return infoSources;
	}

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

	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 Integer getDemandType() {
		return demandType;
	}

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

	public String getProblemDes() {
		return problemDes;
	}

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

	public String getTechnicalRequirements() {
		return technicalRequirements;
	}

	public void setTechnicalRequirements(String technicalRequirements) {
		this.technicalRequirements = technicalRequirements;
	}

	public String getPictureUrl() {
		return pictureUrl;
	}

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

	public String getTextFileUrl() {
		return textFileUrl;
	}

	public void setTextFileUrl(String textFileUrl) {
		this.textFileUrl = textFileUrl;
	}

	public String getVideoUrl() {
		return videoUrl;
	}

	public void setVideoUrl(String videoUrl) {
		this.videoUrl = videoUrl;
	}

	public BigDecimal getFixedBudget() {
		return fixedBudget;
	}

	public void setFixedBudget(BigDecimal fixedBudget) {
		this.fixedBudget = fixedBudget;
	}

	public String getFixedCycle() {
		return fixedCycle;
	}

	public void setFixedCycle(String fixedCycle) {
		this.fixedCycle = fixedCycle;
	}

	public Integer getPeopleNumber() {
		return peopleNumber;
	}

	public void setPeopleNumber(Integer peopleNumber) {
		this.peopleNumber = peopleNumber;
	}

	public String getFixedScheme() {
		return fixedScheme;
	}

	public void setFixedScheme(String fixedScheme) {
		this.fixedScheme = fixedScheme;
	}

	public BigDecimal getCostEscrow() {
		return costEscrow;
	}

	public void setCostEscrow(BigDecimal costEscrow) {
		this.costEscrow = costEscrow;
	}

	public BigDecimal getBudgetCost() {
		return budgetCost;
	}

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

	public Date getValidityPeriod() {
		return validityPeriod;
	}

	public void setValidityPeriod(Date validityPeriod) {
		this.validityPeriod = validityPeriod;
	}

	public String getEmployerId() {
		return employerId;
	}

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

	public String getEmployerName() {
		return employerName;
	}

	public void setEmployerName(String employerName) {
		this.employerName = employerName;
	}

	public String getEmployerAddress() {
		return employerAddress;
	}

	public void setEmployerAddress(String employerAddress) {
		this.employerAddress = employerAddress;
	}

	public String getEmployerContacts() {
		return employerContacts;
	}

	public void setEmployerContacts(String employerContacts) {
		this.employerContacts = employerContacts;
	}

	public String getEmployerContactsMobile() {
		return employerContactsMobile;
	}

	public void setEmployerContactsMobile(String employerContactsMobile) {
		this.employerContactsMobile = employerContactsMobile;
	}

	public String getEmployerContactsMailbox() {
		return employerContactsMailbox;
	}

	public void setEmployerContactsMailbox(String employerContactsMailbox) {
		this.employerContactsMailbox = employerContactsMailbox;
	}

	public String getContacts() {
		return contacts;
	}

	public void setContacts(String contacts) {
		this.contacts = contacts;
	}

	public Integer getStatus() {
		return status;
	}

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

	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 String getPrincipalId() {
		return principalId;
	}

	public void setPrincipalId(String principalId) {
		this.principalId = principalId;
	}

	public Integer getSerialNumber() {
		return serialNumber;
	}

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

	public Integer getAuditStatus() {
		return auditStatus;
	}

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

	public String getTechBrokerId() {
		return techBrokerId;
	}

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

	public Integer getBoutique() {
		return boutique;
	}

	public void setBoutique(Integer boutique) {
		this.boutique = boutique;
	}

	public String getUrgentDays() {
		return urgentDays;
	}

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

	public BigDecimal getUrgentMoney() {
		return urgentMoney;
	}

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