package com.rjconsultores.ventaboletos.entidad;

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

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@SequenceGenerator(name = "GP_PRICING_OCUPA_ANTECIPA_SEQ", sequenceName = "GP_PRICING_OCUPA_ANTECIPA_SEQ", allocationSize = 1)
@Table(name = "GP_PRICING_OCUPA_ANTECIPA")
public class GP_PricingOcupaAntecipa implements Serializable, Cloneable {

	private static final long serialVersionUID = 1L;
	@Id
	@Basic(optional = false)
	@GeneratedValue(strategy = GenerationType.AUTO, generator = "GP_PRICING_OCUPA_ANTECIPA_SEQ")
	@Column(name = "PRICINGOCUPAANTECIPA_ID")
	private Integer pricingocupaantecipaId;
	
	@Column(name = "CANTDIASMIN")
	private Integer cantdiasmin;
	
	@Column(name = "CANTDIASMAX")
	private Integer cantdiasmax;
	
	@Column(name = "CANTASIENTOSMIN")
	private Integer cantasientosmin;
	
	@Column(name = "CANTASIENTOSMAX")
	private Integer cantasientosmax;
	
	@Column(name = "PORCENTAJE")
	private BigDecimal porcentaje;
	
	@Column(name = "OCUPACIONINICIAL")
	private BigDecimal ocupacioninicial;
	
	@Column(name = "OCUPACIONFINAL")
	private BigDecimal ocupacionfinal;
	
	@Column(name = "IMPORTE")
	private BigDecimal importe;
	
	@Basic(optional = false)
	@Column(name = "ACTIVO")
	private Integer activo;
	
	@Basic(optional = false)
	@Column(name = "FECMODIF")
	@Temporal(TemporalType.TIMESTAMP)
	private Date fecmodif;
	
	@Basic(optional = false)
	@Column(name = "USUARIO_ID")
	
	private Integer usuarioId;
	@JoinColumn(name = "PRICING_ID", referencedColumnName = "PRICING_ID")
	@ManyToOne
	private GP_Pricing pricing;
	
	@JoinColumn(name = "PRICINGCLASSETARIFARIA_ID", referencedColumnName = "PRICINGCLASSETARIFARIA_ID")
	@ManyToOne	
	private GP_PricingClasseTarifaria pricingClasseTarifaria;
	
	@Column(name = "COR")
	private String cor;
	
	public GP_PricingOcupaAntecipa() {
		super();
	}

	public GP_PricingOcupaAntecipa(Integer pricingocupaantecipaId) {
		this();
		this.pricingocupaantecipaId = pricingocupaantecipaId;
	}

	public Integer getPricingocupaantecipaId() {
		return pricingocupaantecipaId;
	}

	public void setPricingocupaantecipaId(Integer pricingocupaantecipaId) {
		this.pricingocupaantecipaId = pricingocupaantecipaId;
	}

	public Integer getCantdiasmin() {
		return cantdiasmin;
	}

	public void setCantdiasmin(Integer cantdiasmin) {
		this.cantdiasmin = cantdiasmin;
	}

	public Integer getCantdiasmax() {
		return cantdiasmax;
	}

	public void setCantdiasmax(Integer cantdiasmax) {
		this.cantdiasmax = cantdiasmax;
	}

	public Integer getCantasientosmin() {
		return cantasientosmin;
	}

	public void setCantasientosmin(Integer cantasientosmin) {
		this.cantasientosmin = cantasientosmin;
	}

	public Integer getCantasientosmax() {
		return cantasientosmax;
	}

	public void setCantasientosmax(Integer cantasientosmax) {
		this.cantasientosmax = cantasientosmax;
	}

	public BigDecimal getPorcentaje() {
		return porcentaje;
	}

	public void setPorcentaje(BigDecimal porcentaje) {
		this.porcentaje = porcentaje;
	}

	public BigDecimal getOcupacioninicial() {
		return ocupacioninicial;
	}

	public void setOcupacioninicial(BigDecimal ocupacioninicial) {
		this.ocupacioninicial = ocupacioninicial;
	}

	public BigDecimal getOcupacionfinal() {
		return ocupacionfinal;
	}

	public void setOcupacionfinal(BigDecimal ocupacionfinal) {
		this.ocupacionfinal = ocupacionfinal;
	}

	public BigDecimal getImporte() {
		return importe;
	}

	public void setImporte(BigDecimal importe) {
		this.importe = importe;
	}

	public Integer getActivo() {
		return activo;
	}

	public void setActivo(Integer activo) {
		this.activo = activo;
	}

	public Date getFecmodif() {
		return fecmodif;
	}

	public void setFecmodif(Date fecmodif) {
		this.fecmodif = fecmodif;
	}

	public Integer getUsuarioId() {
		return usuarioId;
	}

	public void setUsuarioId(Integer usuarioId) {
		this.usuarioId = usuarioId;
	}

	public GP_Pricing getPricing() {
		return pricing;
	}

	public void setPricing(GP_Pricing pricing) {
		this.pricing = pricing;
	}

	public GP_PricingClasseTarifaria getPricingClasseTarifaria() {
		return pricingClasseTarifaria;
	}

	public void setPricingClasseTarifaria(GP_PricingClasseTarifaria pricingClasseTarifaria) {
		this.pricingClasseTarifaria = pricingClasseTarifaria;
	}

	@Override
	public int hashCode() {
		int hash = 0;
		hash += (getPricingocupaantecipaId() != null ? getPricingocupaantecipaId().hashCode() : 0);
		return hash;
	}

	@Override
	public boolean equals(Object object) {
		if (!(object instanceof GP_PricingOcupaAntecipa)) {
			return false;
		}
		GP_PricingOcupaAntecipa other = (GP_PricingOcupaAntecipa) object;
		if ((this.getPricingocupaantecipaId() == null && other.getPricingocupaantecipaId() != null) || (this.getPricingocupaantecipaId() != null && !this.getPricingocupaantecipaId().equals(other.getPricingocupaantecipaId()))) {
			return false;
		}
		return true;
	}

	@Override
	public String toString() {
		return " [DIAS_MIN=" + cantdiasmin + ", DIAS_MAX=" + cantdiasmax + ", MIN_POLTRONA=" + cantasientosmin + 
				", MAX_POLRONA=" + cantasientosmax + ", OCUPACAO_INICIAL=" + ocupacioninicial + ", OCUPACAO_FINAL=" + ocupacionfinal + "]";
	}

	public String getCor() {
		return cor;
	}

	public void setCor(String cor) {
		this.cor = cor;
	}

	@Override
	protected Object clone() throws CloneNotSupportedException {
		return super.clone();
	}
}
