/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.rjconsultores.ventaboletos.entidad;

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

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.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * 
 * @author Rafius
 */
@Entity
@SequenceGenerator(name = "ESTADO_SEQ", sequenceName = "ESTADO_SEQ", allocationSize = 1)
@Table(name = "ESTADO")
public class Estado implements Serializable {

	private static final long serialVersionUID = 1L;
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO, generator = "ESTADO_SEQ")
	@Basic(optional = false)
	@Column(name = "ESTADO_ID")
	private Integer estadoId;
	@Column(name = "NOMBESTADO")
	private String nombestado;
	@Column(name = "CVEESTADO")
	private String cveestado;
	@Column(name = "ACTIVO")
	private Boolean activo;
	@Column(name = "FECMODIF")
	@Temporal(TemporalType.TIMESTAMP)
	private Date fecmodif;
	@Column(name = "USUARIO_ID")
	private Integer usuarioId;
	@JoinColumn(name = "PAIS_ID", referencedColumnName = "PAIS_ID")
	@ManyToOne
	private Pais pais;
	@Column(name = "EQUIVALENCIA_ID")
	private String equivalenciaId;
	@OneToMany(mappedBy = "estado")
	private List<Ciudad> ciudadList;
	@Column(name = "ICMS")
	private BigDecimal icms;
	@Column(name = "TIEMPOHORHUSO")
	private Integer tiempoHorHuso;
	@Column(name = "FECINICIOHORVERANO")
	@Temporal(TemporalType.DATE)
	private Date fecInicioHorVerano;
	@Column(name = "FECFINOHORVERANO")
	@Temporal(TemporalType.DATE)
	private Date fecFinoHorVerano;
	@Column(name = "TIEMPOHORVERANO")
	private Integer tiempoHorVerano;
	@OneToMany(mappedBy = "estado")
	private List<EmpresaImposto> empresaImpostoList;
	@Column(name = "DESCPROCON")
	private String descProcon;
	@Column(name = "DESCPROMOCIONAL1")
	private String mensagemPromocional1;
	@Column(name = "DESCPROMOCIONAL2")
	private String mensagemPromocional2;
	@Column(name = "DESCPROMOCIONAL3")
	private String mensagemPromocional3;

	@Column(name = "CODESTABELECIMENTO")
	private String codEstabelecimento;
	
	@Column(name = "CENTRORESULTADOSAG")
	private String centroResultadosAG;
	
	@Column(name = "CODIBGE")
	private Integer codibge;
	
	@Column(name = "TIMEOUT_BPE")
	private Integer timeoutBpe;
	
	public Estado() {
	}

	public Estado(Integer estadoId) {
		this.estadoId = estadoId;
	}

	public Integer getEstadoId() {
		return estadoId;
	}

	public void setEstadoId(Integer estadoId) {
		this.estadoId = estadoId;
	}

	public String getNombestado() {
		return nombestado;
	}

	public void setNombestado(String nombestado) {
		this.nombestado = nombestado;
	}

	public Boolean getActivo() {
		return activo;
	}

	public void setActivo(Boolean 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 Pais getPais() {
		return pais;
	}

	public void setPais(Pais pais) {
		this.pais = pais;
	}

	public List<Ciudad> getCiudadList() {
		return ciudadList;
	}

	public void setCiudadList(List<Ciudad> ciudadList) {
		this.ciudadList = ciudadList;
	}

	public String getEquivalenciaId() {
		return equivalenciaId;
	}

	public void setEquivalenciaId(String equivalenciaId) {
		this.equivalenciaId = equivalenciaId;
	}

	public String getCveestado() {
		return cveestado;
	}

	public void setCveestado(String cveestado) {
		this.cveestado = cveestado;
	}

	public BigDecimal getIcms() {
		return icms;
	}

	public void setIcms(BigDecimal icms) {
		this.icms = icms;
	}

	public Integer getTiempoHorHuso() {
		return tiempoHorHuso;
	}

	public void setTiempoHorHuso(Integer tiempoHorHuso) {
		this.tiempoHorHuso = tiempoHorHuso;
	}

	public Date getFecInicioHorVerano() {
		return fecInicioHorVerano;
	}

	public void setFecInicioHorVerano(Date fecInicioHorVerano) {
		this.fecInicioHorVerano = fecInicioHorVerano;
	}

	public Date getFecFinoHorVerano() {
		return fecFinoHorVerano;
	}

	public void setFecFinoHorVerano(Date fecFinoHorVerano) {
		this.fecFinoHorVerano = fecFinoHorVerano;
	}

	public Integer getTiempoHorVerano() {
		return tiempoHorVerano;
	}

	public void setTiempoHorVerano(Integer tiempoHorVerano) {
		this.tiempoHorVerano = tiempoHorVerano;
	}

	public String getDescProcon() {
		return descProcon;
	}

	public void setDescProcon(String descProcon) {
		this.descProcon = descProcon;
	}
	
	

	public String getCentroResultadosAG() {
		return centroResultadosAG;
	}

	public void setCentroResultadosAG(String centroResultadosAG) {
		this.centroResultadosAG = centroResultadosAG;
	}
	
	public String getMensagemPromocional1() {
		return mensagemPromocional1;
	}

	public void setMensagemPromocional1(String mensagemPromocional1) {
		this.mensagemPromocional1 = mensagemPromocional1;
	}

	public String getMensagemPromocional2() {
		return mensagemPromocional2;
	}

	public void setMensagemPromocional2(String mensagemPromocional2) {
		this.mensagemPromocional2 = mensagemPromocional2;
	}

	public String getMensagemPromocional3() {
		return mensagemPromocional3;
	}

	public void setMensagemPromocional3(String mensagemPromocional3) {
		this.mensagemPromocional3 = mensagemPromocional3;
	}

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

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

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

	public String getCodEstabelecimento() {
		return codEstabelecimento;
	}

	public void setCodEstabelecimento(String codEstabelecimento) {
		this.codEstabelecimento = codEstabelecimento;
	}

	public Integer getCodibge() {
		return codibge;
	}

	public void setCodibge(Integer codibge) {
		this.codibge = codibge;
	}

	public Integer getTimeoutBpe() {
		return timeoutBpe;
	}

	public void setTimeoutBpe(Integer timeoutBpe) {
		this.timeoutBpe = timeoutBpe;
	}
}
