package com.ejie.ab79.model.actuaciones;

import java.util.Date;

import com.ejie.ab79.model.Inspectores;
import com.ejie.ab79.model.expedientes.DatosTerceros;
import com.ejie.ab79.model.inspecciones.Inspecciones;
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;

/**
 * Actuaciones  
 * 
 *  
 */

public class Actuaciones implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	private Integer idActuacion;
	private String idActuacionMovil;
	private Inspecciones inspeccion;
	private Date fechaActuacion;
	private TiposActuacion tipoActuacion;
	private ResultadosActuacion resultadoActuacion;
	private Long plazo;
	private String objetoVisita;
	private String observacionesCastellano;
	private String observacionesEuskera;
	private Date fechaRegistro;
	private String usuarioRegistro;
	private Date fechaUltmodificacion;
	private String usuarioUltmodificacion;
	private Integer soporteTablet;

	// N�mero de documentos asociados a la actuaci�n
	private Integer numeroDocumentos;

	/* Compareciente */
	private DatosTerceros compareciente;
	private String condicionCompareciente;
	private String observacionesCompareciente;

	/* Inspector */
	private Inspectores inspector;

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

	/**
	 * Method 'Actuaciones'.
	 * 
	 * @param idActuacion
	 *            Integer
	 */
	public Actuaciones(Integer idActuacion) {
		this.idActuacion = idActuacion;
	}

	/**
	 * Method 'Actuaciones'.
	 * 
	 * @param idActuacion
	 *            Integer
	 * @param inspeccion
	 *            Inspecciones
	 * @param fechaActuacion
	 *            Date
	 * @param idTipoActuacion
	 *            Long
	 * @param nombreDocumento
	 *            String
	 * @param documento
	 *            Blob
	 * @param idResultadoActuacion
	 *            Long
	 * @param plazo
	 *            Long
	 * @param objetoVisita
	 *            String
	 * @param observacionesCastellano
	 *            String
	 * @param observacionesEuskera
	 *            String
	 * @param fechaRegistro
	 *            Date
	 * @param usuarioRegistro
	 *            String
	 * @param fechaUltmodificacion
	 *            Date
	 * @param usuarioUltmodificacion
	 *            String
	 * @param soporteTablet
	 *            Integer
	 */
	public Actuaciones(Integer idActuacion, String idActuacionMovil, Inspecciones inspeccion, Date fechaActuacion,
			TiposActuacion tipoActuacion, ResultadosActuacion resultadoActuacion, Long plazo, String objetoVisita,
			String observacionesCastellano, String observacionesEuskera, Date fechaRegistro, String usuarioRegistro,
			Date fechaUltmodificacion, String usuarioUltmodificacion, Integer soporteTablet) {

		this.idActuacion = idActuacion;
		this.idActuacionMovil = idActuacionMovil;
		this.inspeccion = inspeccion;
		this.fechaActuacion = fechaActuacion;
		this.tipoActuacion = tipoActuacion;
		this.resultadoActuacion = resultadoActuacion;
		this.plazo = plazo;
		this.objetoVisita = objetoVisita;
		this.observacionesCastellano = observacionesCastellano;
		this.observacionesEuskera = observacionesEuskera;
		this.fechaRegistro = fechaRegistro;
		this.usuarioRegistro = usuarioRegistro;
		this.fechaUltmodificacion = fechaUltmodificacion;
		this.usuarioUltmodificacion = usuarioUltmodificacion;
		this.soporteTablet = soporteTablet;
	}

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

	public Integer getIdActuacion() {
		return this.idActuacion;
	}

	/**
	 * Method 'setIdActuacion'.
	 *
	 * @param idActuacion
	 *            Integer
	 * @return
	 */

	public void setIdActuacion(Integer idActuacion) {
		this.idActuacion = idActuacion;
	}

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

	public String getIdActuacionMovil() {
		return this.idActuacionMovil;
	}

	/**
	 * Method 'setIdActuacionMovil'.
	 *
	 * @param idActuacionMovil
	 *            String
	 * @return
	 */

	public void setIdActuacionMovil(String idActuacionMovil) {
		this.idActuacionMovil = idActuacionMovil;
	}

	/**
	 * Method 'getInspeccion'.
	 *
	 * @return Inspecciones
	 */

	public Inspecciones getInspeccion() {
		return this.inspeccion;
	}

	/**
	 * Method 'setInspeccion'.
	 *
	 * @param inspeccion
	 *            Inspecciones
	 * @return
	 */

	public void setInspeccion(Inspecciones inspeccion) {
		this.inspeccion = inspeccion;
	}

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

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

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

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

	public Long getPlazo() {
		return this.plazo;
	}

	/**
	 * Method 'setPlazo'.
	 *
	 * @param plazo
	 *            Long
	 * @return
	 */

	public void setPlazo(Long plazo) {
		this.plazo = plazo;
	}

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

	public String getObjetoVisita() {
		return this.objetoVisita;
	}

	/**
	 * Method 'setObjetoVisita'.
	 *
	 * @param objetoVisita
	 *            String
	 * @return
	 */

	public void setObjetoVisita(String objetoVisita) {
		this.objetoVisita = objetoVisita;
	}

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

	public String getObservacionesCastellano() {
		return this.observacionesCastellano;
	}

	/**
	 * Method 'setObservacionesCastellano'.
	 *
	 * @param observacionesCastellano
	 *            String
	 * @return
	 */

	public void setObservacionesCastellano(String observacionesCastellano) {
		this.observacionesCastellano = observacionesCastellano;
	}

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

	public String getObservacionesEuskera() {
		return this.observacionesEuskera;
	}

	/**
	 * Method 'setObservacionesEuskera'.
	 *
	 * @param observacionesEuskera
	 *            String
	 * @return
	 */

	public void setObservacionesEuskera(String observacionesEuskera) {
		this.observacionesEuskera = observacionesEuskera;
	}

	/**
	 * 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 'getTipoActuacion'.
	 *
	 * @return TiposActuacion
	 */
	public TiposActuacion getTipoActuacion() {
		return tipoActuacion;
	}

	/**
	 * Method 'setTipoActuacion'.
	 *
	 * @param tipoActuacion
	 *            TiposActuacion
	 * @return
	 */

	public void setTipoActuacion(TiposActuacion tipoActuacion) {
		this.tipoActuacion = tipoActuacion;
	}

	/**
	 * Method 'getResultadoActuacion'.
	 *
	 * @return ResultadosActuacion
	 */

	public ResultadosActuacion getResultadoActuacion() {
		return resultadoActuacion;
	}

	/**
	 * Method 'setResultadoActuacion'.
	 *
	 * @param resultadoActuacion
	 *            ResultadosActuacion
	 * @return
	 */

	public void setResultadoActuacion(ResultadosActuacion resultadoActuacion) {
		this.resultadoActuacion = resultadoActuacion;
	}

	/**
	 * Method 'getNumeroDocumentos'
	 * 
	 * @return Integer
	 */
	public Integer getNumeroDocumentos() {
		return this.numeroDocumentos;
	}

	/**
	 * Method 'setNumeroDocumentos'
	 * 
	 * @param numeroDocumentos
	 *            Integer
	 * @return
	 */
	public void setNumeroDocumentos(Integer numeroDocumentos) {
		this.numeroDocumentos = numeroDocumentos;
	}

	/**
	 * 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(" [ idActuacion: ").append(this.idActuacion).append(" ]");
		result.append(", [ idInspeccion: ").append(this.inspeccion != null ? this.inspeccion.getIdInspeccion() : null)
				.append(" ]");
		result.append(", [ fechaActuacion: ").append(this.fechaActuacion).append(" ]");
		result.append(", [ idTipoActuacion: ").append(this.tipoActuacion).append(" ]");
		result.append(", [ idResultadoActuacion: ").append(this.resultadoActuacion).append(" ]");
		result.append(", [ plazo: ").append(this.plazo).append(" ]");
		result.append(", [ objetoVisita: ").append(this.objetoVisita).append(" ]");
		result.append(", [ observacionesCastellano: ").append(this.observacionesCastellano).append(" ]");
		result.append(", [ observacionesEuskera: ").append(this.observacionesEuskera).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();
	}

	/* Compareciente */
	/**
	 * @return the compareciente
	 */
	public DatosTerceros getCompareciente() {
		return this.compareciente;
	}

	/**
	 * @param compareciente
	 *            the compareciente to set
	 */
	public void setCompareciente(DatosTerceros compareciente) {
		this.compareciente = compareciente;
	}

	/**
	 * @return the condicionCompareciente
	 */
	public String getCondicionCompareciente() {
		return this.condicionCompareciente;
	}

	/**
	 * @param condicionCompareciente
	 *            the condicionCompareciente to set
	 */
	public void setCondicionCompareciente(String condicionCompareciente) {
		this.condicionCompareciente = condicionCompareciente;
	}

	/**
	 * @return the observacionesCompareciente
	 */
	public String getObservacionesCompareciente() {
		return this.observacionesCompareciente;
	}

	/**
	 * @param observacionesCompareciente
	 *            the observacionesCompareciente to set
	 */
	public void setObservacionesCompareciente(String observacionesCompareciente) {
		this.observacionesCompareciente = observacionesCompareciente;
	}

	/* Inspector */
	/**
	 * @return the inspector
	 */
	public Inspectores getInspector() {
		return this.inspector;
	}

	/**
	 * @param inspector
	 *            the inspector to set
	 */
	public void setInspector(Inspectores inspector) {
		this.inspector = inspector;
	}

	/**
	 * @return the soporteTablet
	 */
	public Integer getSoporteTablet() {
		return soporteTablet;
	}

	/**
	 * @param soporteTablet
	 *            the soporteTablet to set
	 */
	public void setSoporteTablet(Integer soporteTablet) {
		this.soporteTablet = soporteTablet;
	}
}
