package com.ejie.ab63.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.ejie.ab63.model.terceros.DatosDirecciones;
import com.ejie.x38.serialization.JsonDateDeserializer;
import com.ejie.x38.serialization.JsonDateSerializer;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

/**
 * Ab6335s00  
 * 
 *  
 */

public class AgenciaData implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	private Integer idEstablecimiento;
	private Integer franquicia;
	private TipoFranquicia tipoFranquicia;
	private Integer indonline;
	private String idInstalOfiPrincipal;
	private String idOrigenOfiPrincipal;
	private String idTipoCie;
	private String etiquetaCie;
	private String registroFianza;
	private String observFianza;
	private String observSrc;
	private String idPrimeraSucursal;
	private String numCie;
	private Date fechaRegistro;
	private String usuarioRegistro;
	private Date fechaUltmodificacion;
	private String usuarioUltmodificacion;
	private List<FianzaEstablecimiento> listFianzaEstablecimiento = new ArrayList<FianzaEstablecimiento>();
	private DatosDirecciones direccionOficinaPpalExtranjera;
	private String descIdPrimeraSucursal;

	/**
	 * Method 'Ab6335s00'.
	 */
	public AgenciaData() {
	}

	/**
	 * Method 'Ab6335s00'.
	 * 
	 * @param idEstablecimiento
	 *            Integer
	 */
	public AgenciaData(Integer idEstablecimiento) {
		this.idEstablecimiento = idEstablecimiento;
	}

	/**
	 * Method 'Ab6335s00'.
	 * 
	 * @param idEstablecimiento
	 *            Integer
	 * @param franquicia
	 *            Integer
	 * @param idFranquicia
	 *            String
	 * @param indonline
	 *            Integer
	 * @param idInstalOfiPrincipal
	 *            String
	 * @param idOrigenOfiPrincipal
	 *            String
	 * @param idTipoCie
	 *            String
	 * @param etiquetaCie
	 *            String
	 * @param registroFianza
	 *            String
	 * @param observFianza
	 *            String
	 * @param observSrc
	 *            String
	 * @param idPrimeraSucursal
	 *            String
	 * @param numCie
	 *            String
	 * @param fechaRegistro
	 *            Date
	 * @param usuarioRegistro
	 *            String
	 * @param fechaUltmodificacion
	 *            Date
	 * @param usuarioUltmodificacion
	 *            String
	 */
	public AgenciaData(Integer idEstablecimiento, Integer franquicia, TipoFranquicia tipoFranquicia, Integer indonline,
			String idInstalOfiPrincipal, String idOrigenOfiPrincipal, String idTipoCie, String etiquetaCie,
			String registroFianza, String observFianza, String observSrc, String idPrimeraSucursal, String numCie,
			Date fechaRegistro, String usuarioRegistro, Date fechaUltmodificacion, String usuarioUltmodificacion) {
		this.idEstablecimiento = idEstablecimiento;
		this.franquicia = franquicia;
		this.tipoFranquicia = tipoFranquicia;
		this.indonline = indonline;
		this.idInstalOfiPrincipal = idInstalOfiPrincipal;
		this.idOrigenOfiPrincipal = idOrigenOfiPrincipal;
		this.idTipoCie = idTipoCie;
		this.etiquetaCie = etiquetaCie;
		this.registroFianza = registroFianza;
		this.observFianza = observFianza;
		this.observSrc = observSrc;
		this.idPrimeraSucursal = idPrimeraSucursal;
		this.numCie = numCie;
		this.fechaRegistro = fechaRegistro;
		this.usuarioRegistro = usuarioRegistro;
		this.fechaUltmodificacion = fechaUltmodificacion;
		this.usuarioUltmodificacion = usuarioUltmodificacion;
	}

	/**
	 * Method 'Ab6335s00'.
	 * 
	 * @param idEstablecimiento
	 *            Integer
	 * @param franquicia
	 *            Integer
	 * @param idFranquicia
	 *            String
	 * @param indonline
	 *            Integer
	 * @param idInstalOfiPrincipal
	 *            String
	 * @param idOrigenOfiPrincipal
	 *            String
	 * @param idTipoCie
	 *            String
	 * @param etiquetaCie
	 *            String
	 * @param registroFianza
	 *            String
	 * @param observFianza
	 *            String
	 * @param observSrc
	 *            String
	 * @param idPrimeraSucursal
	 *            String
	 * @param numCie
	 *            String
	 * @param fechaRegistro
	 *            Date
	 * @param usuarioRegistro
	 *            String
	 * @param fechaUltmodificacion
	 *            Date
	 * @param usuarioUltmodificacion
	 *            String
	 * @param ab6337s00s
	 *            List<Ab6337s00>
	 */
	public AgenciaData(Integer idEstablecimiento, Integer franquicia, TipoFranquicia tipoFranquicia, Integer indonline,
			String idInstalOfiPrincipal, String idOrigenOfiPrincipal, String idTipoCie, String etiquetaCie,
			String registroFianza, String observFianza, String observSrc, String idPrimeraSucursal, String numCie,
			Date fechaRegistro, String usuarioRegistro, Date fechaUltmodificacion, String usuarioUltmodificacion,
			List<FianzaEstablecimiento> ab6337s00s) {

		this.idEstablecimiento = idEstablecimiento;
		this.franquicia = franquicia;
		this.tipoFranquicia = tipoFranquicia;
		this.indonline = indonline;
		this.idInstalOfiPrincipal = idInstalOfiPrincipal;
		this.idOrigenOfiPrincipal = idOrigenOfiPrincipal;
		this.idTipoCie = idTipoCie;
		this.etiquetaCie = etiquetaCie;
		this.registroFianza = registroFianza;
		this.observFianza = observFianza;
		this.observSrc = observSrc;
		this.idPrimeraSucursal = idPrimeraSucursal;
		this.numCie = numCie;
		this.fechaRegistro = fechaRegistro;
		this.usuarioRegistro = usuarioRegistro;
		this.fechaUltmodificacion = fechaUltmodificacion;
		this.usuarioUltmodificacion = usuarioUltmodificacion;
		this.listFianzaEstablecimiento = ab6337s00s;
	}

	/**
	 * Method 'getIdEstablecimiento'.
	 *
	 * @return Integer
	 */

	public Integer getIdEstablecimiento() {
		return this.idEstablecimiento;
	}

	/**
	 * Method 'setIdEstablecimiento'.
	 *
	 * @param idEstablecimiento
	 *            Integer
	 * @return
	 */

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

	/**
	 * Method 'getFranquicia'.
	 *
	 * @return Integer
	 */

	public Integer getFranquicia() {
		return this.franquicia;
	}

	/**
	 * Method 'setFranquicia'.
	 *
	 * @param franquicia
	 *            Integer
	 * @return
	 */

	public void setFranquicia(Integer franquicia) {
		this.franquicia = franquicia;
	}

	/**
	 * Method 'getIndonline'.
	 *
	 * @return Integer
	 */

	public Integer getIndonline() {
		return this.indonline;
	}

	/**
	 * Method 'setIndonline'.
	 *
	 * @param indonline
	 *            Integer
	 * @return
	 */

	public void setIndonline(Integer indonline) {
		this.indonline = indonline;
	}

	/**
	 * Method 'getIdInstalOfiPrincipal'.
	 *
	 * @return String
	 */

	public String getIdInstalOfiPrincipal() {
		return this.idInstalOfiPrincipal;
	}

	/**
	 * Method 'setIdInstalOfiPrincipal'.
	 *
	 * @param idInstalOfiPrincipal
	 *            String
	 * @return
	 */

	public void setIdInstalOfiPrincipal(String idInstalOfiPrincipal) {
		this.idInstalOfiPrincipal = idInstalOfiPrincipal;
	}

	/**
	 * Method 'getIdOrigenOfiPrincipal'.
	 *
	 * @return String
	 */

	public String getIdOrigenOfiPrincipal() {
		return this.idOrigenOfiPrincipal;
	}

	/**
	 * Method 'setIdOrigenOfiPrincipal'.
	 *
	 * @param idOrigenOfiPrincipal
	 *            String
	 * @return
	 */

	public void setIdOrigenOfiPrincipal(String idOrigenOfiPrincipal) {
		this.idOrigenOfiPrincipal = idOrigenOfiPrincipal;
	}

	/**
	 * Method 'getIdTipoCie'.
	 *
	 * @return String
	 */

	public String getIdTipoCie() {
		return this.idTipoCie;
	}

	/**
	 * Method 'setIdTipoCie'.
	 *
	 * @param idTipoCie
	 *            String
	 * @return
	 */

	public void setIdTipoCie(String idTipoCie) {
		this.idTipoCie = idTipoCie;
	}

	/**
	 * Method 'getEtiquetaCie'.
	 *
	 * @return String
	 */

	public String getEtiquetaCie() {
		return this.etiquetaCie;
	}

	/**
	 * Method 'setEtiquetaCie'.
	 *
	 * @param etiquetaCie
	 *            String
	 * @return
	 */

	public void setEtiquetaCie(String etiquetaCie) {
		this.etiquetaCie = etiquetaCie;
	}

	/**
	 * Method 'getRegistroFianza'.
	 *
	 * @return String
	 */

	public String getRegistroFianza() {
		return this.registroFianza;
	}

	/**
	 * Method 'setRegistroFianza'.
	 *
	 * @param registroFianza
	 *            String
	 * @return
	 */

	public void setRegistroFianza(String registroFianza) {
		this.registroFianza = registroFianza;
	}

	/**
	 * Method 'getObservFianza'.
	 *
	 * @return String
	 */

	public String getObservFianza() {
		return this.observFianza;
	}

	/**
	 * Method 'setObservFianza'.
	 *
	 * @param observFianza
	 *            String
	 * @return
	 */

	public void setObservFianza(String observFianza) {
		this.observFianza = observFianza;
	}

	/**
	 * Method 'getObservSrc'.
	 *
	 * @return String
	 */

	public String getObservSrc() {
		return this.observSrc;
	}

	/**
	 * Method 'setObservSrc'.
	 *
	 * @param observSrc
	 *            String
	 * @return
	 */

	public void setObservSrc(String observSrc) {
		this.observSrc = observSrc;
	}

	/**
	 * Method 'getIdPrimeraSucursal'.
	 *
	 * @return String
	 */

	public String getIdPrimeraSucursal() {
		return this.idPrimeraSucursal;
	}

	/**
	 * Method 'setIdPrimeraSucursal'.
	 *
	 * @param idPrimeraSucursal
	 *            String
	 * @return
	 */

	public void setIdPrimeraSucursal(String idPrimeraSucursal) {
		this.idPrimeraSucursal = idPrimeraSucursal;
	}

	/**
	 * Method 'getNumCie'.
	 *
	 * @return String
	 */

	public String getNumCie() {
		return this.numCie;
	}

	/**
	 * Method 'setNumCie'.
	 *
	 * @param numCie
	 *            String
	 * @return
	 */

	public void setNumCie(String numCie) {
		this.numCie = numCie;
	}

	/**
	 * Method 'getFechaRegistro'.
	 *
	 * @return java.util.Date
	 */

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFechaRegistro() {
		return this.fechaRegistro;
	}

	/**
	 * Method 'setFechaRegistro'.
	 *
	 * @param fechaRegistro
	 *            java.util.Date
	 * @return
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFechaRegistro(Date fechaRegistro) {
		this.fechaRegistro = fechaRegistro;
	}

	/**
	 * Method 'getUsuarioRegistro'.
	 *
	 * @return String
	 */

	public String getUsuarioRegistro() {
		return this.usuarioRegistro;
	}

	/**
	 * Method 'setUsuarioRegistro'.
	 *
	 * @param usuarioRegistro
	 *            String
	 * @return
	 */

	public void setUsuarioRegistro(String usuarioRegistro) {
		this.usuarioRegistro = usuarioRegistro;
	}

	/**
	 * Method 'getFechaUltmodificacion'.
	 *
	 * @return java.util.Date
	 */

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFechaUltmodificacion() {
		return this.fechaUltmodificacion;
	}

	/**
	 * Method 'setFechaUltmodificacion'.
	 *
	 * @param fechaUltmodificacion
	 *            java.util.Date
	 * @return
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFechaUltmodificacion(Date fechaUltmodificacion) {
		this.fechaUltmodificacion = fechaUltmodificacion;
	}

	/**
	 * Method 'getUsuarioUltmodificacion'.
	 *
	 * @return String
	 */

	public String getUsuarioUltmodificacion() {
		return this.usuarioUltmodificacion;
	}

	/**
	 * Method 'setUsuarioUltmodificacion'.
	 *
	 * @param usuarioUltmodificacion
	 *            String
	 * @return
	 */

	public void setUsuarioUltmodificacion(String usuarioUltmodificacion) {
		this.usuarioUltmodificacion = usuarioUltmodificacion;
	}

	/**
	 * Method 'getAb6337s00s'.
	 *
	 * @return List
	 */
	@JsonIgnore
	public List<FianzaEstablecimiento> getListFianzaEstablecimiento() {
		return this.listFianzaEstablecimiento;
	}

	/**
	 * Method 'setAb6337s00s'.
	 *
	 * @param ab6337s00s
	 *            List
	 * @return
	 */
	public void setListFianzaEstablecimiento(List<FianzaEstablecimiento> ab6337s00s) {
		this.listFianzaEstablecimiento = ab6337s00s;
	}

	/**
	 * Intended only for logging and debugging.
	 * 
	 * Here, the contents of every main field are placed into the result.
	 * 
	 * @return String
	 */
	@Override
	public String toString() {
		StringBuilder result = new StringBuilder();
		result.append(this.getClass().getName()).append(" Object { ");
		result.append(" [ idEstablecimiento: ").append(this.idEstablecimiento).append(" ]");
		result.append(", [ franquicia: ").append(this.franquicia).append(" ]");
		result.append(", [ tipoFranquicia: ").append(this.tipoFranquicia).append(" ]");
		result.append(", [ indonline: ").append(this.indonline).append(" ]");
		result.append(", [ idInstalOfiPrincipal: ").append(this.idInstalOfiPrincipal).append(" ]");
		result.append(", [ idOrigenOfiPrincipal: ").append(this.idOrigenOfiPrincipal).append(" ]");
		result.append(", [ idTipoCie: ").append(this.idTipoCie).append(" ]");
		result.append(", [ etiquetaCie: ").append(this.etiquetaCie).append(" ]");
		result.append(", [ registroFianza: ").append(this.registroFianza).append(" ]");
		result.append(", [ observFianza: ").append(this.observFianza).append(" ]");
		result.append(", [ observSrc: ").append(this.observSrc).append(" ]");
		result.append(", [ idPrimeraSucursal: ").append(this.idPrimeraSucursal).append(" ]");
		result.append(", [ numCie: ").append(this.numCie).append(" ]");
		result.append(", [ fechaRegistro: ").append(this.fechaRegistro).append(" ]");
		result.append(", [ usuarioRegistro: ").append(this.usuarioRegistro).append(" ]");
		result.append(", [ fechaUltmodificacion: ").append(this.fechaUltmodificacion).append(" ]");
		result.append(", [ usuarioUltmodificacion: ").append(this.usuarioUltmodificacion).append(" ]");
		result.append("}");
		return result.toString();
	}

	public TipoFranquicia getTipoFranquicia() {
		return tipoFranquicia;
	}

	public void setTipoFranquicia(TipoFranquicia tipoFranquicia) {
		this.tipoFranquicia = tipoFranquicia;
	}

	public DatosDirecciones getDireccionOficinaPpalExtranjera() {
		return direccionOficinaPpalExtranjera;
	}

	public void setDireccionOficinaPpalExtranjera(DatosDirecciones direccionOficinaPpalExtranjera) {
		this.direccionOficinaPpalExtranjera = direccionOficinaPpalExtranjera;
	}

	public String getDescIdPrimeraSucursal() {
		return descIdPrimeraSucursal;
	}

	public void setDescIdPrimeraSucursal(String descIdPrimeraSucursal) {
		this.descIdPrimeraSucursal = descIdPrimeraSucursal;
	}

}
