/**
 * 
 */
package com.ejie.ad74a.model;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * Representacion de registro de la tabla AD74A01T00 solicitantes
 * @author BICUGUAL
 *
 */
public class Solicitante implements Serializable{

	private static final long serialVersionUID = 1L;
	
	private Long idSolicitante;
	private LocalDate fInicio;
	private LocalDate fBaja;
	private String numAbonado;
	private Long idCuenta;
	private String codTipoIdenTitular;
	private String idenTitular;
	private String nombreTitCuenta;
	private String apellido1TitCuenta;
	private String apellido2TitCuenta;
	private String numCuenta;
	private Long idDireccion;
	private String calle;
	private String portal;
	private String escalera;
	private String letra;
	private String piso;
	private Long idProvincia;
	private Long idMunicipio;
	private Long idLocalidad;
	private String cp;
	private Long idPerfil;
	private Integer pisoTutelado;
	private Integer nPreciosBeneficiario;
	private String mandato;
	
	private Long idMensualidad;
	private String anyoMesMensualidad;

	private BigDecimal importe;
	
	private PrecioPublico precioPublico;
	private List<PrecioBeneficiario> lstPreciosBeneficiario;
	
	
	public Solicitante() {
		super();
	}
	
	
	public Solicitante(Long idSolicitante, Long idMensualidad) {
		super();
		this.idSolicitante = idSolicitante;
		this.idMensualidad = idMensualidad;
	}


	public Long getIdSolicitante() {
		return idSolicitante;
	}


	public void setIdSolicitante(Long idSolicitante) {
		this.idSolicitante = idSolicitante;
	}


	public LocalDate getfInicio() {
		return fInicio;
	}


	public void setfInicio(LocalDate fInicio) {
		this.fInicio = fInicio;
	}


	public LocalDate getfBaja() {
		return fBaja;
	}


	public void setfBaja(LocalDate fBaja) {
		this.fBaja = fBaja;
	}


	public String getNumAbonado() {
		return numAbonado;
	}


	public void setNumAbonado(String numAbonado) {
		this.numAbonado = numAbonado;
	}


	public Long getIdCuenta() {
		return idCuenta;
	}


	public void setIdCuenta(Long idCuenta) {
		this.idCuenta = idCuenta;
	}


	public String getCodTipoIdenTitular() {
		return codTipoIdenTitular;
	}


	public void setCodTipoIdenTitular(String codTipoIdenTitular) {
		this.codTipoIdenTitular = codTipoIdenTitular;
	}


	public String getIdenTitular() {
		return idenTitular;
	}


	public void setIdenTitular(String idenTitular) {
		this.idenTitular = idenTitular;
	}


	public String getNombreTitCuenta() {
		return nombreTitCuenta;
	}


	public void setNombreTitCuenta(String nombreTitCuenta) {
		this.nombreTitCuenta = nombreTitCuenta;
	}


	public String getApellido1TitCuenta() {
		return apellido1TitCuenta;
	}


	public void setApellido1TitCuenta(String apellido1TitCuenta) {
		this.apellido1TitCuenta = apellido1TitCuenta;
	}


	public String getApellido2TitCuenta() {
		return apellido2TitCuenta;
	}


	public void setApellido2TitCuenta(String apellido2TitCuenta) {
		this.apellido2TitCuenta = apellido2TitCuenta;
	}


	public String getNumCuenta() {
		return numCuenta;
	}


	public void setNumCuenta(String numCuenta) {
		this.numCuenta = numCuenta;
	}


	public Long getIdDireccion() {
		return idDireccion;
	}


	public void setIdDireccion(Long idDireccion) {
		this.idDireccion = idDireccion;
	}


	public String getCalle() {
		return calle;
	}


	public void setCalle(String calle) {
		this.calle = calle;
	}


	public String getPortal() {
		return portal;
	}


	public void setPortal(String portal) {
		this.portal = portal;
	}


	public String getEscalera() {
		return escalera;
	}


	public void setEscalera(String escalera) {
		this.escalera = escalera;
	}


	public String getLetra() {
		return letra;
	}


	public void setLetra(String letra) {
		this.letra = letra;
	}


	public String getPiso() {
		return piso;
	}


	public void setPiso(String piso) {
		this.piso = piso;
	}


	public Long getIdProvincia() {
		return idProvincia;
	}


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


	public Long getIdMunicipio() {
		return idMunicipio;
	}


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


	public Long getIdLocalidad() {
		return idLocalidad;
	}


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


	public String getCp() {
		return cp;
	}


	public void setCp(String cp) {
		this.cp = cp;
	}


	public Long getIdPerfil() {
		return idPerfil;
	}


	public void setIdPerfil(Long idPerfil) {
		this.idPerfil = idPerfil;
	}


	public Integer getPisoTutelado() {
		return pisoTutelado;
	}


	public void setPisoTutelado(Integer pisoTutelado) {
		this.pisoTutelado = pisoTutelado;
	}


	public Long getIdMensualidad() {
		return idMensualidad;
	}


	public void setIdMensualidad(Long idMensualidad) {
		this.idMensualidad = idMensualidad;
	}


	public BigDecimal getImporte() {
		return importe;
	}


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


	public PrecioPublico getPrecioPublico() {
		return precioPublico;
	}


	public void setPrecioPublico(PrecioPublico precioPublico) {
		this.precioPublico = precioPublico;
	}


	public List<PrecioBeneficiario> getLstPreciosBeneficiario() {
		return lstPreciosBeneficiario;
	}


	public void setLstPreciosBeneficiario(List<PrecioBeneficiario> lstPreciosBeneficiario) {
		this.lstPreciosBeneficiario = lstPreciosBeneficiario;
	}


	public Integer getnPreciosBeneficiario() {
		return nPreciosBeneficiario;
	}


	public void setnPreciosBeneficiario(Integer nPreciosBeneficiario) {
		this.nPreciosBeneficiario = nPreciosBeneficiario;
	}

	public String getMandato() {
		return mandato;
	}


	public void setMandato(String mandato) {
		this.mandato = mandato;
	}


	public String getAnyoMesMensualidad() {
		return anyoMesMensualidad;
	}


	public void setAnyoMesMensualidad(String anyoMesMensualidad) {
		this.anyoMesMensualidad = anyoMesMensualidad;
	}

	public String getNombreCompleto() {
		
		return Stream.of(this.nombreTitCuenta, this.apellido1TitCuenta, this.apellido2TitCuenta)
				.filter(Objects::nonNull).map(String::toUpperCase).collect(Collectors.joining(" "));
	}
	

	@Override
	public String toString() {
		return "Solicitante [idSolicitante=" + idSolicitante + ", fInicio=" + fInicio + ", fBaja=" + fBaja
				+ ", numAbonado=" + numAbonado + ", idCuenta=" + idCuenta + ", codTipoIdenTitular=" + codTipoIdenTitular
				+ ", idenTitular=" + idenTitular + ", nombreTitCuenta=" + nombreTitCuenta + ", apellido1TitCuenta="
				+ apellido1TitCuenta + ", apellido2TitCuenta=" + apellido2TitCuenta + ", numCuenta=" + numCuenta
				+ ", idDireccion=" + idDireccion + ", calle=" + calle + ", portal=" + portal + ", escalera=" + escalera
				+ ", letra=" + letra + ", piso=" + piso + ", idProvincia=" + idProvincia + ", idMunicipio="
				+ idMunicipio + ", idLocalidad=" + idLocalidad + ", cp=" + cp + ", idPerfil=" + idPerfil
				+ ", pisoTutelado=" + pisoTutelado + ", nPreciosBeneficiario=" + nPreciosBeneficiario + ", mandato="
				+ mandato + ", idMensualidad=" + idMensualidad + ", anyoMesMensualidad=" + anyoMesMensualidad
				+ ", importe=" + importe + ", precioPublico=" + precioPublico + ", lstPreciosBeneficiario="
				+ lstPreciosBeneficiario + "]";
	}

	
}
