package com.ejie.ad74a.model;

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

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;

/**
 * Cuentas generated by UDA, 10-feb-2023 12:13:19.
 * 
 * @author UDA
 */

public class Cuentas implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	private Long idCuenta05;
	private String numCuenta05;
	private String codTipoIdenTitular05;
	private String idenTitular05;
	private Date fAlta05;
	private String usuAlta05;
	private String motivo05;
	private Long idSolicitante05;
	private String usuHistorico05;
	private Date fHistorico05;
	private String apellido1TitCuenta05;
	private String apellido2TitCuenta05;
	private String nombreTitCuenta05;

	private List<Expedientes> expedienteses = new ArrayList<Expedientes>();
	private List<DocuCuentas> docuCuentas = new ArrayList<DocuCuentas>();

	/**
	 * Method 'Cuentas'.
	 */
	public Cuentas() {
	}

	/**
	 * Method 'Cuentas'.
	 * 
	 * @param idCuenta05 Long
	 */
	public Cuentas(Long idCuenta05) {
		this.idCuenta05 = idCuenta05;
	}

	/**
	 * Method 'Cuentas'.
	 * 
	 * @param idCuenta05           Long
	 * @param numCuenta05          String
	 * @param codTipoIdenTitular05 String
	 * @param idenTitular05        String
	 * @param titularCuenta05      String
	 * @param idSolicitante05      Long
	 * @param usuHistorico05       String
	 * @param fHistorico05         Date
	 * @param FAlta05              Date
	 * @param usuAlta05            String
	 */
	public Cuentas(Long idCuenta05, String numCuenta05, String codTipoIdenTitular05, String idenTitular05,
			Long idSolicitante05, String usuHistorico05, Date fHistorico05, Date FAlta05, String usuAlta05,
			String nombreTitCuenta05, String apellido1TitCuenta05, String apellido2TitCuenta05) {
		this.idCuenta05 = idCuenta05;
		this.numCuenta05 = numCuenta05;
		this.codTipoIdenTitular05 = codTipoIdenTitular05;
		this.idenTitular05 = idenTitular05;
		this.idSolicitante05 = idSolicitante05;
		this.usuHistorico05 = usuHistorico05;
		this.fHistorico05 = fHistorico05;
		this.fAlta05 = FAlta05;
		this.usuAlta05 = usuAlta05;
		this.nombreTitCuenta05 = nombreTitCuenta05;
		this.apellido1TitCuenta05 = apellido1TitCuenta05;
		this.apellido2TitCuenta05 = apellido2TitCuenta05;
	}

	/**
	 * Method 'Cuentas'.
	 * 
	 * @param idCuenta05           Long
	 * @param numCuenta05          String
	 * @param codTipoIdenTitular05 String
	 * @param idenTitular05        String
	 * @param titularCuenta05      String
	 * @param FAlta05              Date
	 * @param usuAlta05            String
	 * @param solicitanteses       List<Solicitantes>
	 * @param expedienteses        List<Expedientes>
	 */
	public Cuentas(Long idCuenta05, String numCuenta05, String codTipoIdenTitular05, String idenTitular05,
			Long idSolicitante05, String usuHistorico05, Date fHistorico05, Date FAlta05, String usuAlta05,
			List<Expedientes> expedienteses) {

		this.idCuenta05 = idCuenta05;
		this.numCuenta05 = numCuenta05;
		this.codTipoIdenTitular05 = codTipoIdenTitular05;
		this.idenTitular05 = idenTitular05;
		this.idSolicitante05 = idSolicitante05;
		this.usuHistorico05 = usuHistorico05;
		this.fHistorico05 = fHistorico05;
		this.fAlta05 = FAlta05;
		this.usuAlta05 = usuAlta05;
		this.expedienteses = expedienteses;
	}

	/**
	 * Method 'Cuentas'.
	 * 
	 * @param idCuenta05           Long
	 * @param numCuenta05          String
	 * @param codTipoIdenTitular05 String
	 * @param idenTitular05        String
	 * @param titularCuenta05      String
	 * @param usuHistorico05       String
	 * @param fHistorico05         Date
	 */
	public Cuentas(Long idCuenta05, String numCuenta05, String codTipoIdenTitular05, String idenTitular05,
			String usuHistorico05, Date fHistorico05) {
		this.idCuenta05 = idCuenta05;
		this.numCuenta05 = numCuenta05;
		this.codTipoIdenTitular05 = codTipoIdenTitular05;
		this.idenTitular05 = idenTitular05;
		this.usuHistorico05 = usuHistorico05;
		this.fHistorico05 = fHistorico05;
	}

	/**
	 * Method 'getIdCuenta05'.
	 *
	 * @return Long
	 */

	public Long getIdCuenta05() {
		return this.idCuenta05;
	}

	/**
	 * Method 'setIdCuenta05'.
	 *
	 * @param idCuenta05 Long
	 * @return
	 */

	public void setIdCuenta05(Long idCuenta05) {
		this.idCuenta05 = idCuenta05;
	}

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

	public String getNumCuenta05() {
		return this.numCuenta05;
	}

	/**
	 * Method 'setNumCuenta05'.
	 *
	 * @param numCuenta05 String
	 * @return
	 */

	public void setNumCuenta05(String numCuenta05) {
		this.numCuenta05 = numCuenta05;
	}

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

	public String getCodTipoIdenTitular05() {
		return this.codTipoIdenTitular05;
	}

	/**
	 * Method 'setCodTipoIdenTitular05'.
	 *
	 * @param codTipoIdenTitular05 String
	 * @return
	 */

	public void setCodTipoIdenTitular05(String codTipoIdenTitular05) {
		this.codTipoIdenTitular05 = codTipoIdenTitular05;
	}

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

	public String getIdenTitular05() {
		return this.idenTitular05;
	}

	/**
	 * Method 'setIdenTitular05'.
	 *
	 * @param idenTitular05 String
	 * @return
	 */

	public void setIdenTitular05(String idenTitular05) {
		this.idenTitular05 = idenTitular05;
	}

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

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

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

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

	public String getUsuAlta05() {
		return this.usuAlta05;
	}

	/**
	 * Method 'setUsuAlta05'.
	 *
	 * @param usuAlta05 String
	 * @return
	 */

	public void setUsuAlta05(String usuAlta05) {
		this.usuAlta05 = usuAlta05;
	}

	/**
	 * Method 'getExpedienteses'.
	 *
	 * @return List
	 */
	@JsonIgnore
	public List<Expedientes> getExpedienteses() {
		return this.expedienteses;
	}

	/**
	 * Method 'setExpedienteses'.
	 *
	 * @param expedienteses List
	 * @return
	 */
	public void setExpedienteses(List<Expedientes> expedienteses) {
		this.expedienteses = expedienteses;
	}

	/**
	 * 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(" [ idCuenta05: ").append(this.idCuenta05).append(" ]");
		result.append(", [ numCuenta05: ").append(this.numCuenta05).append(" ]");
		result.append(", [ codTipoIdenTitular05: ").append(this.codTipoIdenTitular05).append(" ]");
		result.append(", [ idenTitular05: ").append(this.idenTitular05).append(" ]");
		result.append(", [ nombreTitCuenta05: ").append(this.nombreTitCuenta05).append(" ]");
		result.append(", [ apellido1TitCuenta05: ").append(this.apellido1TitCuenta05).append(" ]");
		result.append(", [ apellido2TitCuenta05: ").append(this.apellido2TitCuenta05).append(" ]");
		result.append(", [ FAlta05: ").append(this.fAlta05).append(" ]");
		result.append(", [ usuAlta05: ").append(this.usuAlta05).append(" ]");
		result.append("}");
		return result.toString();
	}

	/**
	 * Method 'getIdSolicitante05'.
	 *
	 * @return Long
	 */
	public Long getIdSolicitante05() {
		return idSolicitante05;
	}

	/**
	 * Method 'setIdSolicitante05'.
	 *
	 * @param idSolicitante05 Long
	 * @return
	 */
	public void setIdSolicitante05(Long idSolicitante05) {
		this.idSolicitante05 = idSolicitante05;
	}

	/**
	 * Method 'getUsuHistorico05'.
	 *
	 * @return String
	 */
	public String getUsuHistorico05() {
		return usuHistorico05;
	}

	/**
	 * Method 'setUsuHistorico05'.
	 *
	 * @param usuHistorico05 String
	 * @return
	 */
	public void setUsuHistorico05(String usuHistorico05) {
		this.usuHistorico05 = usuHistorico05;
	}

	/**
	 * Method 'getfHistorico05'.
	 *
	 * @return java.util.Date
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getfHistorico05() {
		return fHistorico05;
	}

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

	public String getMotivo05() {
		return motivo05;
	}

	public void setMotivo05(String motivo05) {
		this.motivo05 = motivo05;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((codTipoIdenTitular05 == null) ? 0 : codTipoIdenTitular05.hashCode());
		result = prime * result + ((expedienteses == null) ? 0 : expedienteses.hashCode());
		result = prime * result + ((fAlta05 == null) ? 0 : fAlta05.hashCode());
		result = prime * result + ((fHistorico05 == null) ? 0 : fHistorico05.hashCode());
		result = prime * result + ((idCuenta05 == null) ? 0 : idCuenta05.hashCode());
		result = prime * result + ((idSolicitante05 == null) ? 0 : idSolicitante05.hashCode());
		result = prime * result + ((idenTitular05 == null) ? 0 : idenTitular05.hashCode());
		result = prime * result + ((motivo05 == null) ? 0 : motivo05.hashCode());
		result = prime * result + ((numCuenta05 == null) ? 0 : numCuenta05.hashCode());
		result = prime * result + ((nombreTitCuenta05 == null) ? 0 : nombreTitCuenta05.hashCode());
		result = prime * result + ((apellido1TitCuenta05 == null) ? 0 : apellido1TitCuenta05.hashCode());
		result = prime * result + ((apellido2TitCuenta05 == null) ? 0 : apellido2TitCuenta05.hashCode());
		result = prime * result + ((usuAlta05 == null) ? 0 : usuAlta05.hashCode());
		result = prime * result + ((usuHistorico05 == null) ? 0 : usuHistorico05.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		Cuentas other = (Cuentas) obj;
		if (codTipoIdenTitular05 == null) {
			if (other.codTipoIdenTitular05 != null)
				return false;
		} else if (!codTipoIdenTitular05.equals(other.codTipoIdenTitular05))
			return false;
		if (expedienteses == null) {
			if (other.expedienteses != null)
				return false;
		} else if (!expedienteses.equals(other.expedienteses))
			return false;
		if (idenTitular05 == null) {
			if (other.idenTitular05 != null)
				return false;
		} else if (!idenTitular05.equals(other.idenTitular05))
			return false;
		if (motivo05 == null) {
			if (other.motivo05 != null)
				return false;
		} else if (!motivo05.equals(other.motivo05))
			return false;
		if (numCuenta05 == null) {
			if (other.numCuenta05 != null)
				return false;
		} else if (!numCuenta05.equals(other.numCuenta05))
			return false;
		if (nombreTitCuenta05 == null) {
			if (other.nombreTitCuenta05 != null)
				return false;
		} else if (!nombreTitCuenta05.equals(other.nombreTitCuenta05))
			return false;
		if (apellido1TitCuenta05 == null) {
			if (other.apellido1TitCuenta05 != null)
				return false;
		} else if (!apellido1TitCuenta05.equals(other.apellido1TitCuenta05))
			return false;
		if (apellido2TitCuenta05 == null) {
			if (other.apellido2TitCuenta05 != null)
				return false;
		} else if (!apellido2TitCuenta05.equals(other.apellido2TitCuenta05))
			return false;
		return true;
	}

	public List<DocuCuentas> getDocuCuentas() {
		return docuCuentas;
	}

	public void setDocuCuentas(List<DocuCuentas> docuCuentas) {
		this.docuCuentas = docuCuentas;
	}

	public String getApellido1TitCuenta05() {
		return apellido1TitCuenta05;
	}

	public void setApellido1TitCuenta05(String apellido1TitCuenta05) {
		this.apellido1TitCuenta05 = apellido1TitCuenta05;
	}

	public String getApellido2TitCuenta05() {
		return apellido2TitCuenta05;
	}

	public void setApellido2TitCuenta05(String apellido2TitCuenta05) {
		this.apellido2TitCuenta05 = apellido2TitCuenta05;
	}

	public String getNombreTitCuenta05() {
		return nombreTitCuenta05;
	}

	public void setNombreTitCuenta05(String nombreTitCuenta05) {
		this.nombreTitCuenta05 = nombreTitCuenta05;
	}

}
