package com.ejie.ad74a.model;

import java.sql.Clob;
import java.sql.SQLException;
import java.util.Date;

import com.ejie.ad74a.model.avisos.AvisosAnularBaja;
import com.ejie.ad74a.model.avisos.AvisosBajaBenef;
import com.ejie.ad74a.model.avisos.AvisosCambioDomic;
import com.ejie.ad74a.model.avisos.AvisosQueja;
import com.ejie.ad74a.util.UtilSQL;
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;

/**
 * Avisos generated by UDA, 12-may-2023 11:16:38.
 * 
 * @author UDA
 */

public class Avisos implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	private Long idAviso20;
	private MaestroActores maestroActoresByDestino20;
	private MaestroActores maestroActoresByOrigen20;
	private MaestroSubtiposAviso maestroSubtiposAviso;
	private MaestroTiposAviso maestroTiposAviso;
	private Date fAlta20;
	private Date fAlta20desde;
	private Date fAlta20hasta;
	private Date fProcesado20;
	private Long idSolicitante20;
	private String observaciones20;
	private String usuAlta20;
	private String usuProcesado20;
	private Solicitantes solicitantes;
	private MaestroActores maestroActores;
	private Direcciones direcciones;
	private Direcciones direccionesCambioDom;
	private Boolean ocultarProcesados;
	private Boolean urgencia20;
	private String urgencia20String;
	private Clob datosAviso20;
	private String datosAvisoStr;
	private Long idexpedienteAsociado;
	private String numExpedienteAsociado;
	private Long idInforme20;
	private Informes informes;
	private Usuarios usuario;
	private String email20;
	private String telefono20;

	private AvisosBajaBenef avisosBajaBenef;
	private AvisosQueja avisosQueja;
	private AvisosCambioDomic avisosCambioDomic;
	private AvisosAnularBaja avisosAnularBaja;
	private Integer dssPrimeraVez;

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

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

	/**
	 * Method 'Avisos'.
	 * 
	 * @param idAviso20                 Long
	 * @param fAlta20                   Date
	 * @param fProcesado20              Date
	 * @param idSolicitante20           Long
	 * @param observaciones20           String
	 * @param usuAlta20                 String
	 * @param usuProcesado20            String
	 * @param maestroActoresByDestino20 MaestroActores
	 * @param maestroActoresByOrigen20  MaestroActores
	 * @param maestroSubtiposAviso      MaestroSubtiposAviso
	 * @param maestroTiposAviso         MaestroTiposAviso
	 */
	public Avisos(Long idAviso20, Date fAlta20, Date fProcesado20, Long idSolicitante20, String observaciones20,
			String usuAlta20, String usuProcesado20, Clob datosAviso20, MaestroActores maestroActoresByDestino20,
			MaestroActores maestroActoresByOrigen20, MaestroSubtiposAviso maestroSubtiposAviso,
			MaestroTiposAviso maestroTiposAviso) {

		this.idAviso20 = idAviso20;
		this.maestroActoresByDestino20 = maestroActoresByDestino20;
		this.maestroActoresByOrigen20 = maestroActoresByOrigen20;
		this.maestroSubtiposAviso = maestroSubtiposAviso;
		this.maestroTiposAviso = maestroTiposAviso;
		this.fAlta20 = fAlta20;
		this.fProcesado20 = fProcesado20;
		this.idSolicitante20 = idSolicitante20;
		this.observaciones20 = observaciones20;
		this.datosAvisoStr = UtilSQL.clobToString(datosAviso20);
		this.setUsuAlta20(usuAlta20);
		this.setUsuProcesado20(usuProcesado20);
	}

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

	public Long getIdAviso20() {
		return this.idAviso20;
	}

	/**
	 * Method 'setIdAviso20'.
	 *
	 * @param idAviso202 Long
	 * @return
	 */

	public void setIdAviso20(Long idAviso202) {
		this.idAviso20 = idAviso202;
	}

	/**
	 * Method 'getMaestroActoresByDestino20'.
	 *
	 * @return MaestroActores
	 */

	public MaestroActores getMaestroActoresByDestino20() {
		return this.maestroActoresByDestino20;
	}

	/**
	 * Method 'setMaestroActoresByDestino20'.
	 *
	 * @param maestroActoresByDestino20 MaestroActores
	 * @return
	 */

	public void setMaestroActoresByDestino20(MaestroActores maestroActoresByDestino20) {
		this.maestroActoresByDestino20 = maestroActoresByDestino20;
	}

	/**
	 * Method 'getMaestroActoresByOrigen20'.
	 *
	 * @return MaestroActores
	 */

	public MaestroActores getMaestroActoresByOrigen20() {
		return this.maestroActoresByOrigen20;
	}

	/**
	 * Method 'setMaestroActoresByOrigen20'.
	 *
	 * @param maestroActoresByOrigen20 MaestroActores
	 * @return
	 */

	public void setMaestroActoresByOrigen20(MaestroActores maestroActoresByOrigen20) {
		this.maestroActoresByOrigen20 = maestroActoresByOrigen20;
	}

	/**
	 * Method 'getMaestroSubtiposAviso'.
	 *
	 * @return MaestroSubtiposAviso
	 */

	public MaestroSubtiposAviso getMaestroSubtiposAviso() {
		return this.maestroSubtiposAviso;
	}

	/**
	 * Method 'setMaestroSubtiposAviso'.
	 *
	 * @param maestroSubtiposAviso MaestroSubtiposAviso
	 * @return
	 */

	public void setMaestroSubtiposAviso(MaestroSubtiposAviso maestroSubtiposAviso) {
		this.maestroSubtiposAviso = maestroSubtiposAviso;
	}

	/**
	 * Method 'getMaestroTiposAviso'.
	 *
	 * @return MaestroTiposAviso
	 */

	public MaestroTiposAviso getMaestroTiposAviso() {
		return this.maestroTiposAviso;
	}

	/**
	 * Method 'setMaestroTiposAviso'.
	 *
	 * @param maestroTiposAviso MaestroTiposAviso
	 * @return
	 */

	public void setMaestroTiposAviso(MaestroTiposAviso maestroTiposAviso) {
		this.maestroTiposAviso = maestroTiposAviso;
	}

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

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

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

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

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

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

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

	public Long getIdSolicitante20() {
		return this.idSolicitante20;
	}

	/**
	 * Method 'setIdSolicitante20'.
	 *
	 * @param idSolicitante20 Long
	 * @return
	 */

	public void setIdSolicitante20(Long idSolicitante20) {
		this.idSolicitante20 = idSolicitante20;
	}

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

	public String getObservaciones20() {
		return this.observaciones20;
	}

	/**
	 * Method 'setObservaciones20'.
	 *
	 * @param observaciones20 String
	 * @return
	 */

	public void setObservaciones20(String observaciones20) {
		this.observaciones20 = observaciones20;
	}

	/**
	 * 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(" [ idAviso20: ").append(this.idAviso20).append(" ]");
		result.append(", [ fAlta20: ").append(this.fAlta20).append(" ]");
		result.append(", [ fProcesado20: ").append(this.fProcesado20).append(" ]");
		result.append(", [ idSolicitante20: ").append(this.idSolicitante20).append(" ]");
		result.append(", [ observaciones20: ").append(this.observaciones20).append(" ]");
		result.append("}");
		return result.toString();
	}

	/**
	 * Method 'getSolicitantes'.
	 *
	 * @return Solicitantes
	 */
	public Solicitantes getSolicitantes() {
		return solicitantes;
	}

	/**
	 * Method 'setSolicitantes'.
	 *
	 * @param solicitantes Solicitantes
	 * @return
	 */
	public void setSolicitantes(Solicitantes solicitantes) {
		this.solicitantes = solicitantes;
	}

	/**
	 * Method 'getMaestroActores'.
	 *
	 * @return MaestroActores
	 */
	public MaestroActores getMaestroActores() {
		return maestroActores;
	}

	/**
	 * Method 'setMaestroActores'.
	 *
	 * @param maestroActores MaestroActores
	 * @return
	 */
	public void setMaestroActores(MaestroActores maestroActores) {
		this.maestroActores = maestroActores;
	}

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

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

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

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

	/**
	 * Method 'getUsuAlta20'.
	 *
	 * @return String
	 */
	public String getUsuAlta20() {
		return usuAlta20;
	}

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

	/**
	 * Method 'getUsuProcesado20'.
	 *
	 * @return String
	 */
	public String getUsuProcesado20() {
		return usuProcesado20;
	}

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

	/**
	 * Method 'getDirecciones'.
	 *
	 * @return Direcciones
	 */
	public Direcciones getDirecciones() {
		return direcciones;
	}

	/**
	 * Method 'setDirecciones'.
	 *
	 * @param direcciones Direcciones
	 * @return
	 */
	public void setDirecciones(Direcciones direcciones) {
		this.direcciones = direcciones;
	}

	/**
	 * Method 'getOcultarProcesados'.
	 *
	 * @return Boolean
	 */
	public Boolean getOcultarProcesados() {
		return ocultarProcesados;
	}

	/**
	 * Method 'setOcultarProcesados'.
	 *
	 * @param ocultarProcesados Boolean
	 * @return
	 */
	public void setOcultarProcesados(Boolean ocultarProcesados) {
		this.ocultarProcesados = ocultarProcesados;
	}

	/**
	 * Method 'getUrgencia20'.
	 *
	 * @return Boolean
	 */
	public Boolean getUrgencia20() {
		return urgencia20;
	}

	/**
	 * Method 'setUrgencia20'.
	 *
	 * @param urgencia20 Boolean
	 * @return
	 */
	public void setUrgencia20(Boolean urgencia20) {
		this.urgencia20 = urgencia20;
	}

	/**
	 * Method 'getDatosAviso20'.
	 *
	 * @return Clob
	 */
	public Clob getDatosAviso20() {
		return datosAviso20;
	}

	/**
	 * Method 'setDatosAviso20'.
	 *
	 * @param datosAviso20 Clob
	 * @return
	 */
	public void setDatosAviso20(Clob datosAviso20) {
		this.datosAviso20 = datosAviso20;
	}

	/**
	 * Method 'setDatosAviso20'.
	 *
	 * @param datosAviso20 String
	 * @return
	 */
	public void setDatosAviso20(String datosAviso20) throws SQLException {
		this.datosAviso20 = UtilSQL.stringToClob(datosAviso20);
	}

	/**
	 * Method 'getDatosAvisoStr'.
	 *
	 * @return String
	 */
	public String getDatosAvisoStr() {
		return datosAvisoStr;
	}

	/**
	 * Method 'getAvisosBajaBenef'.
	 *
	 * @return AvisosBajaBenef
	 */
	public AvisosBajaBenef getAvisosBajaBenef() {
		return avisosBajaBenef;
	}

	/**
	 * Method 'setAvisosBajaBenef'.
	 *
	 * @param avisosBajaBenef AvisosBajaBenef
	 * @return
	 */
	public void setAvisosBajaBenef(AvisosBajaBenef avisosBajaBenef) {
		this.avisosBajaBenef = avisosBajaBenef;
	}

	/**
	 * Method 'getAvisosQueja'.
	 *
	 * @return AvisosQueja
	 */
	public AvisosQueja getAvisosQueja() {
		return avisosQueja;
	}

	/**
	 * Method 'setAvisosQueja'.
	 *
	 * @param avisosQueja AvisosQueja
	 * @return
	 */
	public void setAvisosQueja(AvisosQueja avisosQueja) {
		this.avisosQueja = avisosQueja;
	}

	/**
	 * Method 'getIdexpedienteAsociado'.
	 *
	 * @return Long
	 */
	public Long getIdexpedienteAsociado() {
		return idexpedienteAsociado;
	}

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

	/**
	 * Method 'getIdInforme20'.
	 *
	 * @return Long
	 */
	public Long getIdInforme20() {
		return idInforme20;
	}

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

	public String getNumExpedienteAsociado() {
		return numExpedienteAsociado;
	}

	public void setNumExpedienteAsociado(String numExpedienteAsociado) {
		this.numExpedienteAsociado = numExpedienteAsociado;
	}

	public AvisosCambioDomic getAvisosCambioDomic() {
		return avisosCambioDomic;
	}

	public void setAvisosCambioDomic(AvisosCambioDomic avisosCambioDomic) {
		this.avisosCambioDomic = avisosCambioDomic;
	}

	public AvisosAnularBaja getAvisosAnularBaja() {
		return avisosAnularBaja;
	}

	public void setAvisosAnularBaja(AvisosAnularBaja avisosAnularBaja) {
		this.avisosAnularBaja = avisosAnularBaja;
	}

	public Direcciones getDireccionesCambioDom() {
		return direccionesCambioDom;
	}

	public void setDireccionesCambioDom(Direcciones direccionesCambioDom) {
		this.direccionesCambioDom = direccionesCambioDom;
	}

	public Usuarios getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuarios usuario) {
		this.usuario = usuario;
	}

	public Informes getInformes() {
		return informes;
	}

	public void setInformes(Informes informe) {
		this.informes = informe;
	}

	public String getEmail20() {
		return email20;
	}

	public void setEmail20(String email20) {
		this.email20 = email20;
	}

	public String getTelefono20() {
		return telefono20;
	}

	public void setTelefono20(String telefono20) {
		this.telefono20 = telefono20;
	}

	public String getUrgencia20String() {
		if (this.urgencia20String != null) {
			return this.urgencia20String;
		} else {
			if (null != this.urgencia20 && this.urgencia20) {
				return "1";
			}
			return "0";
		}
	}

	public void setUrgencia20String(String urgencia20integer) {
		this.urgencia20String = urgencia20integer;
	}

	public String getNombreApellidosSolicitante() {
		if (null != this.solicitantes && null != this.solicitantes.getIdentificador01()
				&& null != this.solicitantes.getNombreCompleto()) {
			return this.solicitantes.getIdentificador01() + " - " + this.solicitantes.getNombreCompleto();
		}
		return "";
	}

	public Integer getDssPrimeraVez() {
		return dssPrimeraVez;
	}

	public void setDssPrimeraVez(Integer dssPrimeraVez) {
		this.dssPrimeraVez = dssPrimeraVez;
	}

}
