package com.ejie.ab61.model.moduloAdministrativo;

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

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;

public class ModuloAdministracion implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	private Integer idMensaje;
	private Integer idSolicitud;
	private String tipoMensaje;
	private String codigoProcedimiento;
	private String plateaType;
	private String plateaSubType;
	private Clob mensaje;
	private Clob solicitud;
	private Integer numeroTrazas;
	private Integer configuracion;
	private String excepcion;
	private Integer error;
	private Date fechaRegistro;
	private String fechaRegistroStr;

	private String ficheroMensaje;
	private String ficheroSolicitud;

	private String folderId;

	private Date fechaRegistroDesde;
	private Date fechaRegistroHasta;

	private Trazas trazas;

	public ModuloAdministracion() {
	}

	/**
	 * Method 'Listados'.
	 * 
	 * @param idListado
	 *            Integer
	 */
	public ModuloAdministracion(Integer idMensaje) {
		this.idMensaje = idMensaje;
	}

	/**
	 * @return the idMensaje
	 */
	public Integer getIdMensaje() {
		return idMensaje;
	}

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

	/**
	 * @return the idSolicitud
	 */
	public Integer getIdSolicitud() {
		return idSolicitud;
	}

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

	/**
	 * @return the tipoMensaje
	 */
	public String getTipoMensaje() {
		return tipoMensaje;
	}

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

	/**
	 * @return the plateaType
	 */
	public String getPlateaType() {
		return plateaType;
	}

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

	/**
	 * @return the plateaSubType
	 */
	public String getPlateaSubType() {
		return plateaSubType;
	}

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

	/**
	 * @return the mensaje
	 */
	@JsonIgnore
	public Clob getMensaje() {
		return mensaje;
	}

	/**
	 * @param mensaje
	 *            the mensaje to set
	 */
	@JsonIgnore
	public void setMensaje(Clob mensaje) {
		this.mensaje = mensaje;
	}

	/**
	 * @return the solicitud
	 */
	@JsonIgnore
	public Clob getSolicitud() {
		return solicitud;
	}

	/**
	 * @param solicitud
	 *            the solicitud to set
	 */
	@JsonIgnore
	public void setSolicitud(Clob solicitud) {
		this.solicitud = solicitud;
	}

	/**
	 * @return the numeroTrazas
	 */
	public Integer getNumeroTrazas() {
		return numeroTrazas;
	}

	/**
	 * @param idTraza
	 *            the idTraza to set
	 */
	public void setNumeroTrazas(Integer numeroTrazas) {
		this.numeroTrazas = numeroTrazas;
	}

	/**
	 * @return the configuracion
	 */
	public Integer getConfiguracion() {
		return configuracion;
	}

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

	/**
	 * @return the codigoProcedimiento
	 */
	public String getCodigoProcedimiento() {
		return codigoProcedimiento;
	}

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

	/**
	 * @return the excepcion
	 */
	public String getExcepcion() {
		return excepcion;
	}

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

	/**
	 * @return the ficheroMensaje
	 */
	public String getFicheroMensaje() {
		return ficheroMensaje;
	}

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

	/**
	 * @return the ficheroSolicitud
	 */
	public String getFicheroSolicitud() {
		return ficheroSolicitud;
	}

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

	/**
	 * @return the error
	 */
	public Integer getError() {
		return error;
	}

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

	/**
	 * @return the folderId
	 */
	public String getFolderId() {
		return folderId;
	}

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

	/**
	 * @return the fechaRegistroDesde
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFechaRegistroDesde() {
		return fechaRegistroDesde;
	}

	/**
	 * @param fechaRegistroDesde
	 *            the fechaRegistroDesde to set
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFechaRegistroDesde(Date fechaRegistroDesde) {
		this.fechaRegistroDesde = fechaRegistroDesde;
	}

	/**
	 * @return the fechaRegistroHasta
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFechaRegistroHasta() {
		return fechaRegistroHasta;
	}

	/**
	 * @param fechaRegistroHasta
	 *            the fechaRegistroHasta to set
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFechaRegistroHasta(Date fechaRegistroHasta) {
		this.fechaRegistroHasta = fechaRegistroHasta;
	}

	/**
	 * @return the trazas
	 */
	public Trazas getTrazas() {
		return trazas;
	}

	/**
	 * @param trazas
	 *            the trazas to set
	 */
	public void setTrazas(Trazas trazas) {
		this.trazas = trazas;
	}

	/**
	 * @return the fechaRegistro
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFechaRegistro() {
		return fechaRegistro;
	}

	/**
	 * @param fechaRegistro
	 *            the fechaRegistro to set
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFechaRegistro(Date fechaRegistro) {
		this.fechaRegistro = fechaRegistro;
	}

	public String getFechaRegistroStr() {
		if (fechaRegistro != null) {
			return fechaRegistro.toString().replaceAll("-", "/");
		} else {
			return "";
		}
	}

	public void setFechaRegistroStr(String fechaRegistroStr) {
		this.fechaRegistroStr = fechaRegistroStr;
	}
}
