package com.ejie.ab61.model.solicitudes;

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;
import java.sql.Clob;
import java.util.Date;

/**
 * Solicitudes  
 * 
 *  
 */

public class Solicitudes implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	private Integer idSolicitud;
	private MensajesSolicitud mensajesSolicitud;
	private Clob solicitud;
	private Date fechaRegistro;
	private String folderId;
	private String codProcedureId;
	private Date fechaEntrada;

	private String fechaRegistroStr;
	private String fechaEntradaStr;

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

	/**
	 * Method 'Solicitudes'.
	 * 
	 * @param idSolicitud
	 *            String
	 */
	public Solicitudes(int idSolicitud) {
		this.idSolicitud = idSolicitud;
	}

	/**
	 * Method 'Solicitudes'.
	 * 
	 * @param idSolicitud
	 *            String
	 * @param solicitud
	 *            Clob
	 * @param fechaRegistro
	 *            Date
	 * @param mensajesSolicitud
	 *            MensajesSolicitud
	 */
	public Solicitudes(int idSolicitud, Clob solicitud, Date fechaRegistro, MensajesSolicitud mensajesSolicitud) {

		this.idSolicitud = idSolicitud;
		this.mensajesSolicitud = mensajesSolicitud;
		this.solicitud = solicitud;
		this.fechaRegistro = fechaRegistro;
	}

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

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

	/**
	 * Method 'getMensajesSolicitud'.
	 *
	 * @return MensajesSolicitud
	 */
	@JsonIgnore

	public MensajesSolicitud getMensajesSolicitud() {
		return this.mensajesSolicitud;
	}

	/**
	 * Method 'setMensajesSolicitud'.
	 *
	 * @param mensajesSolicitud
	 *            MensajesSolicitud
	 * @return
	 */

	public void setMensajesSolicitud(MensajesSolicitud mensajesSolicitud) {
		this.mensajesSolicitud = mensajesSolicitud;
	}

	/**
	 * Method 'getSolicitud'.
	 *
	 * @return Clob
	 */
	@JsonIgnore

	public Clob getSolicitud() {
		return this.solicitud;
	}

	/**
	 * Method 'setSolicitud'.
	 *
	 * @param solicitud
	 *            Clob
	 * @return
	 */

	public void setSolicitud(Clob solicitud) {
		this.solicitud = solicitud;
	}

	/**
	 * 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;
	}

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

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

	/**
	 * @return the codProcedureId
	 */
	public String getCodProcedureId() {
		return codProcedureId;
	}

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

	/**
	 * @return the fechaEntrada
	 */
	public Date getFechaEntrada() {
		return fechaEntrada;
	}

	/**
	 * @param fechaEntrada
	 *            the fechaEntrada to set
	 */
	public void setFechaEntrada(Date fechaEntrada) {
		this.fechaEntrada = fechaEntrada;
	}

	/**
	 * @return the fechaRegistroStr
	 */
	public String getFechaRegistroStr() {
		return fechaRegistroStr;
	}

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

	/**
	 * @return the fechaEntradaStr
	 */
	public String getFechaEntradaStr() {
		return fechaEntradaStr;
	}

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

	/**
	 * 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(" [ idSolicitud: ").append(this.idSolicitud).append(" ]");
		result.append(", [ fechaRegistro: ").append(this.fechaRegistro).append(" ]");
		result.append(", [ folderID: ").append(this.folderId).append(" ]");
		result.append(", [ fechaEntrada: ").append(this.fechaEntrada).append(" ]");
		result.append("}");
		return result.toString();
	}

}
