package com.ejie.ad74a.model;

import java.util.Date;

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

/**
 * Intervenciones generated by UDA, 28-jun-2023 17:11:00.
 * 
 * @author UDA
 */

public class Intervenciones implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	private Long idIntervencion25;
	private MaestroIntervenciones maestroIntervenciones;
	private Integer pendiente25;
	private Integer baja25;
	private Date fIntervencion25;
	private Date fAlta25;
	private String usuAlta25;
	private Solicitantes solicitantes;
	private Direcciones direcciones;
	private Dispositivos dispositivos;

	/* Campos auxiliares */

	private Date fIntervencionDesde;
	private Date fIntervencionHasta;

	/**
	 * Method 'Intervenciones'.
	 */
	public Intervenciones() {
		this.maestroIntervenciones = new MaestroIntervenciones();
	}

	/**
	 * Method 'Intervenciones'.
	 * 
	 * @param idIntervencion25 Long
	 */
	public Intervenciones(Long idIntervencion25) {
		this.maestroIntervenciones = new MaestroIntervenciones();
		this.idIntervencion25 = idIntervencion25;
	}

	/**
	 * Method 'Intervenciones'.
	 * 
	 * @param idIntervencion25     Long
	 * @param idTipoIntervencion25 Long
	 * @param pendiente25          Integer
	 * @param baja25               Integer
	 * @param fIntervencion25      Date
	 * @param solicitantes         Solicitantes
	 * @param dispositivos         Dispositivos
	 * @param fAlta25              Date
	 * @param usuAlta25            String
	 */
	public Intervenciones(Long idIntervencion25, Long idTipoIntervencion25, Integer pendiente25, Integer baja25,
			Date fIntervencion25, Solicitantes solicitantes, Dispositivos dispositivos, Date fAlta25,
			String usuAlta25) {

		this.idIntervencion25 = idIntervencion25;
		this.setMaestroIntervenciones(new MaestroIntervenciones(idTipoIntervencion25));
		this.pendiente25 = pendiente25;
		this.baja25 = baja25;
		this.fIntervencion25 = fIntervencion25;
		this.solicitantes = solicitantes;
		this.dispositivos = dispositivos;
		this.fAlta25 = fAlta25;
		this.usuAlta25 = usuAlta25;
	}

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

	public Long getIdIntervencion25() {
		return this.idIntervencion25;
	}

	/**
	 * Method 'setIdIntervencion25'.
	 *
	 * @param idIntervencion25 Long
	 * @return
	 */

	public void setIdIntervencion25(Long idIntervencion25) {
		this.idIntervencion25 = idIntervencion25;
	}

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

	public Long getIdTipoIntervencion25() {
		if (this.maestroIntervenciones != null) {
			return this.maestroIntervenciones.getIdTipoIntervencion45();
		}
		return null;
	}

	/**
	 * Method 'setIdTipoIntervencion25'.
	 *
	 * @param idTipoIntervencion25 Long
	 * @return
	 */

	public void setIdTipoIntervencion25(Long idTipoIntervencion25) {
		if (this.maestroIntervenciones != null) {
			this.maestroIntervenciones.setIdTipoIntervencion45(idTipoIntervencion25);
		} else {
			this.maestroIntervenciones = new MaestroIntervenciones(idTipoIntervencion25);
		}
	}

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

	public Integer getPendiente25() {
		return this.pendiente25;
	}

	/**
	 * Method 'setPendiente25'.
	 *
	 * @param pendiente25 Integer
	 * @return
	 */

	public void setPendiente25(Integer pendiente25) {
		this.pendiente25 = pendiente25;
	}

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

	public Integer getBaja25() {
		return this.baja25;
	}

	/**
	 * Method 'setBaja25'.
	 *
	 * @param baja25 Integer
	 * @return
	 */

	public void setBaja25(Integer baja25) {
		this.baja25 = baja25;
	}

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

	@JsonSerialize(using = JsonDateTimeSerializer.class)
	public Date getfIntervencion25() {
		return this.fIntervencion25;
	}

	/**
	 * Method 'setfIntervencion25'.
	 *
	 * @param fIntervencion25 java.util.Date
	 * @return
	 */
	@JsonDeserialize(using = JsonDateTimeDeserializer.class)
	public void setfIntervencion25(Date fIntervencion25) {
		this.fIntervencion25 = fIntervencion25;
	}

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

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

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

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

	public String getUsuAlta25() {
		return this.usuAlta25;
	}

	/**
	 * Method 'setUsuAlta25'.
	 *
	 * @param usuAlta25 String
	 * @return
	 */

	public void setUsuAlta25(String usuAlta25) {
		this.usuAlta25 = usuAlta25;
	}

	/**
	 * 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(" [ idIntervencion25: ").append(this.idIntervencion25).append(" ]");
		result.append(", [ idTipoIntervencion25: ").append(this.maestroIntervenciones.toString()).append(" ]");
		result.append(", [ pendiente25: ").append(this.pendiente25).append(" ]");
		result.append(", [ baja25: ").append(this.baja25).append(" ]");
		result.append(", [ FIntervencion25: ").append(this.fIntervencion25).append(" ]");
		result.append(", [ FAlta25: ").append(this.fAlta25).append(" ]");
		result.append(", [ usuAlta25: ").append(this.usuAlta25).append(" ]");
		result.append("}");
		return result.toString();
	}

	/**
	 * Method 'getMaestroIntervenciones'.
	 *
	 * @return MaestroIntervenciones
	 */
	public MaestroIntervenciones getMaestroIntervenciones() {
		return maestroIntervenciones;
	}

	/**
	 * Method 'setMaestroIntervenciones'.
	 *
	 * @param MaestroIntervenciones maestroIntervenciones
	 * @return
	 */
	public void setMaestroIntervenciones(MaestroIntervenciones maestroIntervenciones) {
		this.maestroIntervenciones = maestroIntervenciones;
	}

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

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

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

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

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

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

	public Direcciones getDirecciones() {
		return direcciones;
	}

	public void setDirecciones(Direcciones direcciones) {
		this.direcciones = direcciones;
	}

	/**
	 * Method 'getDispositivos'.
	 *
	 * @return Dispositivos
	 */
	public Dispositivos getDispositivos() {
		return this.dispositivos;
	}

	/**
	 * Method 'setDispositivos'.
	 *
	 * @param dispositivos {@link Dispositivos}
	 */
	public void setDispositivos(Dispositivos dispositivos) {
		this.dispositivos = dispositivos;
	}

}
