package com.ejie.ab63.model;

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

import com.ejie.x38.serialization.JsonDateDeserializer;
import com.ejie.x38.serialization.JsonDateSerializer;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

/**
 * 
 *  
 *
 */
public class InfoExpedienteEstablecimiento implements Serializable {

	private static final long serialVersionUID = -7497503985839031025L;

	private Integer idExpediente;

	private Integer idEstablecimiento;

	private String identificadorEstablecimiento;

	private String folderId;

	private String folderIdOrigen;

	private String folderNumber;

	private String folderNumberOrigen;

	private String titulo;

	private String procedimientoDescCast;

	private String procedimientoDescEusk;

	private Date expFechaEntrada;

	private String idDirenccion;

	private String direccion;

	private String direccionCompuesta;

	private String provincia;

	private String municipio;

	private String localidad;

	private String numTitular;

	private String titular;

	private String tipoBusqueda;

	private String idProvincia;

	private String idMunicipio;

	private String idLocalidad;

	private List<String> excludes;

	private Long idExpedienteExclude;

	private Date expFechaCierre;

	private String estado;

	private Inspeccion inspeccion;

	private String urlExpedienteOtrasApps;

	public InfoExpedienteEstablecimiento() {

	}

	public InfoExpedienteEstablecimiento(Integer idExpediente, String identificadorEstablecimiento, String folderNumber,
			String titulo, String procedimientoDescCast, String procedimientoDescEusk, Date expFechaEntrada,
			String direccion, String municipio, String numTitular, String titular, String idDirenccion) {
		this.idExpediente = idExpediente;
		this.identificadorEstablecimiento = identificadorEstablecimiento;
		this.folderNumber = folderNumber;
		this.titulo = titulo;
		this.procedimientoDescCast = procedimientoDescCast;
		this.procedimientoDescEusk = procedimientoDescEusk;
		this.expFechaEntrada = expFechaEntrada;
		this.direccion = direccion;
		this.municipio = municipio;
		this.numTitular = numTitular;
		this.titular = titular;
		this.idDirenccion = idDirenccion;
	}

	public Integer getIdExpediente() {
		return idExpediente;
	}

	public void setIdExpediente(Integer idExpediente) {
		this.idExpediente = idExpediente;
	}

	public String getFolderId() {
		return folderId;
	}

	public void setFolderId(String folderId) {
		this.folderId = folderId;
	}

	public String getFolderNumber() {
		return folderNumber;
	}

	public void setFolderNumber(String folderNumber) {
		this.folderNumber = folderNumber;
	}

	public String getTitulo() {
		return titulo;
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}

	public String getProcedimientoDescCast() {
		return procedimientoDescCast;
	}

	public void setProcedimientoDescCast(String procedimientoDescCast) {
		this.procedimientoDescCast = procedimientoDescCast;
	}

	public String getProcedimientoDescEusk() {
		return procedimientoDescEusk;
	}

	public void setProcedimientoDescEusk(String procedimientoDescEusk) {
		this.procedimientoDescEusk = procedimientoDescEusk;
	}

	public Integer getIdEstablecimiento() {
		return idEstablecimiento;
	}

	public void setIdEstablecimiento(Integer idEstablecimiento) {
		this.idEstablecimiento = idEstablecimiento;
	}

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getExpFechaEntrada() {
		return expFechaEntrada;
	}

	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setExpFechaEntrada(Date expFechaEntrada) {
		this.expFechaEntrada = expFechaEntrada;
	}

	public String getIdDirenccion() {
		return idDirenccion;
	}

	public void setIdDireccion(String idDirenccion) {
		this.idDirenccion = idDirenccion;
	}

	public String getDireccion() {
		return direccion;
	}

	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}

	public String getMunicipio() {
		return municipio;
	}

	public void setMunicipio(String municipio) {
		this.municipio = municipio;
	}

	public String getNumTitular() {
		return numTitular;
	}

	public void setNumTitular(String numTitular) {
		this.numTitular = numTitular;
	}

	public String getTitular() {
		return titular;
	}

	public void setTitular(String titular) {
		this.titular = titular;
	}

	public String getTipoBusqueda() {
		return tipoBusqueda;
	}

	public void setTipoBusqueda(String tipoBusqueda) {
		this.tipoBusqueda = tipoBusqueda;
	}

	public String getIdProvincia() {
		return idProvincia;
	}

	public void setIdProvincia(String idProvincia) {
		this.idProvincia = idProvincia;
	}

	public String getIdMunicipio() {
		return idMunicipio;
	}

	public void setIdMunicipio(String idMunicipio) {
		this.idMunicipio = idMunicipio;
	}

	public String getIdLocalidad() {
		return idLocalidad;
	}

	public void setIdLocalidad(String idLocalidad) {
		this.idLocalidad = idLocalidad;
	}

	public String getIdentificadorEstablecimiento() {
		return identificadorEstablecimiento;
	}

	public void setIdentificadorEstablecimiento(String identificadorEstablecimiento) {
		this.identificadorEstablecimiento = identificadorEstablecimiento;
	}

	public List<String> getExcludes() {
		return excludes;
	}

	public void setExcludes(List<String> excludes) {
		this.excludes = excludes;
	}

	public Long getIdExpedienteExclude() {
		return idExpedienteExclude;
	}

	public void setIdExpedienteExclude(Long idExpedienteExclude) {
		this.idExpedienteExclude = idExpedienteExclude;
	}

	public Date getExpFechaCierre() {
		return expFechaCierre;
	}

	public void setExpFechaCierre(Date expFechaCierre) {
		this.expFechaCierre = expFechaCierre;
	}

	public String getEstado() {
		return estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}

	public Inspeccion getInspeccion() {
		return inspeccion;
	}

	public void setInspeccion(Inspeccion inspeccion) {
		this.inspeccion = inspeccion;
	}

	@Override
	public String toString() {
		return "InfoExpedienteEstablecimiento [idExpediente=" + idExpediente + ", identificadorEstablecimiento="
				+ identificadorEstablecimiento + ", folderNumber=" + folderNumber + ", titulo=" + titulo
				+ ", procedimientoDescCast=" + procedimientoDescCast + ", procedimientoDescEusk="
				+ procedimientoDescEusk + ", expFechaEntrada=" + expFechaEntrada + ", idDirenccion=" + idDirenccion
				+ ", direccion=" + direccion + ", municipio=" + municipio + ", numTitular=" + numTitular + ", titular="
				+ titular + ", tipoBusqueda=" + tipoBusqueda + ", idMunicipio=" + idMunicipio + ", idLocalidad="
				+ idLocalidad + "]";
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((direccion == null) ? 0 : direccion.hashCode());
		result = prime * result + ((expFechaEntrada == null) ? 0 : expFechaEntrada.hashCode());
		result = prime * result + ((folderNumber == null) ? 0 : folderNumber.hashCode());
		result = prime * result + ((idDirenccion == null) ? 0 : idDirenccion.hashCode());
		result = prime * result + ((idExpediente == null) ? 0 : idExpediente.hashCode());
		result = prime * result + ((idLocalidad == null) ? 0 : idLocalidad.hashCode());
		result = prime * result + ((idMunicipio == null) ? 0 : idMunicipio.hashCode());
		result = prime * result
				+ ((identificadorEstablecimiento == null) ? 0 : identificadorEstablecimiento.hashCode());
		result = prime * result + ((municipio == null) ? 0 : municipio.hashCode());
		result = prime * result + ((numTitular == null) ? 0 : numTitular.hashCode());
		result = prime * result + ((procedimientoDescCast == null) ? 0 : procedimientoDescCast.hashCode());
		result = prime * result + ((procedimientoDescEusk == null) ? 0 : procedimientoDescEusk.hashCode());
		result = prime * result + ((tipoBusqueda == null) ? 0 : tipoBusqueda.hashCode());
		result = prime * result + ((titular == null) ? 0 : titular.hashCode());
		result = prime * result + ((titulo == null) ? 0 : titulo.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		InfoExpedienteEstablecimiento other = (InfoExpedienteEstablecimiento) obj;
		if (direccion == null) {
			if (other.direccion != null)
				return false;
		} else if (!direccion.equals(other.direccion))
			return false;
		if (expFechaEntrada == null) {
			if (other.expFechaEntrada != null)
				return false;
		} else if (!expFechaEntrada.equals(other.expFechaEntrada))
			return false;
		if (folderNumber == null) {
			if (other.folderNumber != null)
				return false;
		} else if (!folderNumber.equals(other.folderNumber))
			return false;
		if (idDirenccion == null) {
			if (other.idDirenccion != null)
				return false;
		} else if (!idDirenccion.equals(other.idDirenccion))
			return false;
		if (idExpediente == null) {
			if (other.idExpediente != null)
				return false;
		} else if (!idExpediente.equals(other.idExpediente))
			return false;
		if (idLocalidad == null) {
			if (other.idLocalidad != null)
				return false;
		} else if (!idLocalidad.equals(other.idLocalidad))
			return false;
		if (idMunicipio == null) {
			if (other.idMunicipio != null)
				return false;
		} else if (!idMunicipio.equals(other.idMunicipio))
			return false;
		if (identificadorEstablecimiento == null) {
			if (other.identificadorEstablecimiento != null)
				return false;
		} else if (!identificadorEstablecimiento.equals(other.identificadorEstablecimiento))
			return false;
		if (municipio == null) {
			if (other.municipio != null)
				return false;
		} else if (!municipio.equals(other.municipio))
			return false;
		if (numTitular == null) {
			if (other.numTitular != null)
				return false;
		} else if (!numTitular.equals(other.numTitular))
			return false;
		if (procedimientoDescCast == null) {
			if (other.procedimientoDescCast != null)
				return false;
		} else if (!procedimientoDescCast.equals(other.procedimientoDescCast))
			return false;
		if (procedimientoDescEusk == null) {
			if (other.procedimientoDescEusk != null)
				return false;
		} else if (!procedimientoDescEusk.equals(other.procedimientoDescEusk))
			return false;
		if (tipoBusqueda == null) {
			if (other.tipoBusqueda != null)
				return false;
		} else if (!tipoBusqueda.equals(other.tipoBusqueda))
			return false;
		if (titular == null) {
			if (other.titular != null)
				return false;
		} else if (!titular.equals(other.titular))
			return false;
		if (titulo == null) {
			if (other.titulo != null)
				return false;
		} else if (!titulo.equals(other.titulo))
			return false;
		return true;
	}

	public String getProvincia() {
		return provincia;
	}

	public void setProvincia(String provincia) {
		this.provincia = provincia;
	}

	public String getLocalidad() {
		return localidad;
	}

	public void setLocalidad(String localidad) {
		this.localidad = localidad;
	}

	public String getDireccionCompuesta() {
		return direccionCompuesta;
	}

	public void setDireccionCompuesta(String direccionCompuesta) {
		this.direccionCompuesta = direccionCompuesta;
	}

	public String getFolderNumberOrigen() {
		return folderNumberOrigen;
	}

	public void setFolderNumberOrigen(String folderNumberOrigen) {
		this.folderNumberOrigen = folderNumberOrigen;
	}

	public String getFolderIdOrigen() {
		return folderIdOrigen;
	}

	public void setFolderIdOrigen(String folderIdOrigen) {
		this.folderIdOrigen = folderIdOrigen;
	}

	public String getUrlExpedienteOtrasApps() {
		return urlExpedienteOtrasApps;
	}

	public void setUrlExpedienteOtrasApps(String urlExpedienteOtrasApps) {
		this.urlExpedienteOtrasApps = urlExpedienteOtrasApps;
	}

}
