package com.ejie.aa20b.model;

import com.ejie.x38.serialization.JsonDateTimeSerializer;
import com.ejie.x38.serialization.JsonDateTimeDeserializer;
import java.util.Date;
import org.codehaus.jackson.map.annotate.JsonDeserialize;
import org.codehaus.jackson.map.annotate.JsonSerialize;

/**
 * Presencia generated by UDA, 30-abr-2015 12:52:58.
 * 
 * @author UDA
 */

public class Presencia implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	private Integer idpresencia;
	private Long idtecnico;
	private Date fhlogin;
	private Date fhdesde;
	private String tdesde;
	private Date fhhasta;
	private String thasta;
	private String nombre;

	private Date fechaPreD; // para buscar presencias entre dos fechas
	private Date fechaPreH; // para buscar presencias entre dos fechas
	private String edificio; // para buscar presencias de tecnicos asociados a
								// edificios
	private String presenteAhora; // para buscar tecnicos que esten presentes
									// ahora (fhhasta nula)

	private Tipopresencia tipoPreDesde;
	private Tipopresencia tipoPreHasta;
	private String uidUsuario;

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

	/**
	 * Method 'Presencia'.
	 * 
	 * @param idpresencia
	 *            Integer
	 * @param idtecnico
	 *            Long
	 * @param fhlogin
	 *            Date
	 * @param fhdesde
	 *            Date
	 * @param tdesde
	 *            String
	 * @param fhhasta
	 *            Date
	 * @param thasta
	 *            String
	 * @param nombre
	 *            String
	 */
	public Presencia(Integer idpresencia, Long idtecnico, Date fhlogin,
			Date fhdesde, String tdesde, Date fhhasta, String thasta,
			String nombre) {

		this.idpresencia = idpresencia;
		this.idtecnico = idtecnico;
		this.fhlogin = fhlogin;
		this.fhdesde = fhdesde;
		this.tdesde = tdesde;
		this.fhhasta = fhhasta;
		this.thasta = thasta;
		this.nombre = nombre;
	}

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

	public Integer getIdpresencia() {
		return this.idpresencia;
	}

	/**
	 * Method 'setIdpresencia'.
	 * 
	 * @param idpresencia
	 *            Integer
	 * @return
	 */

	public void setIdpresencia(Integer idpresencia) {
		this.idpresencia = idpresencia;
	}

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

	public Long getIdtecnico() {
		return this.idtecnico;
	}

	/**
	 * Method 'setIdtecnico'.
	 * 
	 * @param idtecnico
	 *            Long
	 * @return
	 */

	public void setIdtecnico(Long idtecnico) {
		this.idtecnico = idtecnico;
	}

	/**
	 * Method 'getFhlogin'.
	 * 
	 * @return Date
	 */

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

	/**
	 * Method 'setFhlogin'.
	 * 
	 * @param fhlogin
	 *            Date
	 * @return
	 */
	@JsonDeserialize(using = JsonDateTimeDeserializer.class)
	public void setFhlogin(Date fhlogin) {
		this.fhlogin = fhlogin;
	}

	/**
	 * Method 'getFhdesde'.
	 * 
	 * @return Date
	 */

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

	/**
	 * Method 'setFhdesde'.
	 * 
	 * @param fhdesde
	 *            Date
	 * @return
	 */
	@JsonDeserialize(using = JsonDateTimeDeserializer.class)
	public void setFhdesde(Date fhdesde) {
		this.fhdesde = fhdesde;
	}

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

	public String getTdesde() {
		return this.tdesde;
	}

	/**
	 * Method 'setTdesde'.
	 * 
	 * @param tdesde
	 *            String
	 * @return
	 */

	public void setTdesde(String tdesde) {
		this.tdesde = tdesde;
	}

	/**
	 * Method 'getFhhasta'.
	 * 
	 * @return Date
	 */

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

	/**
	 * Method 'setFhhasta'.
	 * 
	 * @param fhhasta
	 *            Date
	 * @return
	 */
	@JsonDeserialize(using = JsonDateTimeDeserializer.class)
	public void setFhhasta(Date fhhasta) {
		this.fhhasta = fhhasta;
	}

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

	public String getThasta() {
		return this.thasta;
	}

	/**
	 * Method 'setThasta'.
	 * 
	 * @param thasta
	 *            String
	 * @return
	 */

	public void setThasta(String thasta) {
		this.thasta = thasta;
	}

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

	public String getNombre() {
		return this.nombre;
	}

	/**
	 * Method 'setNombre'.
	 * 
	 * @param nombre
	 *            String
	 * @return
	 */

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	/**
	 * 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(" [ idpresencia: ").append(this.idpresencia).append(" ]");
		result.append(", [ idtecnico: ").append(this.idtecnico).append(" ]");
		result.append(", [ fhlogin: ").append(this.fhlogin).append(" ]");
		result.append(", [ fhdesde: ").append(this.fhdesde).append(" ]");
		result.append(", [ tdesde: ").append(this.tdesde).append(" ]");
		result.append(", [ fhhasta: ").append(this.fhhasta).append(" ]");
		result.append(", [ thasta: ").append(this.thasta).append(" ]");
		result.append(", [ nombre: ").append(this.nombre).append(" ]");
		result.append("}");
		return result.toString();
	}

	/**
	 * Method 'getFechaPreD'.
	 * 
	 * @return Date
	 */

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

	/**
	 * Method 'setFechaPreD'.
	 * 
	 * @param fechaPreD
	 *            Date
	 * @return
	 */
	@JsonDeserialize(using = JsonDateTimeDeserializer.class)
	public void setFechaPreD(Date fechaPreD) {
		this.fechaPreD = fechaPreD;
	}

	/**
	 * Method 'getFechaPreH'.
	 * 
	 * @return Date
	 */

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

	/**
	 * Method 'setFechaPreH'.
	 * 
	 * @param fechaPreH
	 *            Date
	 * @return
	 */
	@JsonDeserialize(using = JsonDateTimeDeserializer.class)
	public void setFechaPreH(Date fechaPreH) {
		this.fechaPreH = fechaPreH;
	}

	public void setEdificio(String edificio) {
		this.edificio = edificio;
	}

	public String getEdificio() {
		return edificio;
	}

	public void setPresenteAhora(String presenteAhora) {
		this.presenteAhora = presenteAhora;
	}

	public String getPresenteAhora() {
		return presenteAhora;
	}

	public void setTipoPreDesde(Tipopresencia tipoPreDesde) {
		this.tipoPreDesde = tipoPreDesde;
	}

	public Tipopresencia getTipoPreDesde() {
		return tipoPreDesde;
	}

	public void setTipoPreHasta(Tipopresencia tipoPreHasta) {
		this.tipoPreHasta = tipoPreHasta;
	}

	public Tipopresencia getTipoPreHasta() {
		return tipoPreHasta;
	}

	public void setUidUsuario(String uidUsuario) {
		this.uidUsuario = uidUsuario;
	}

	public String getUidUsuario() {
		return uidUsuario;
	}
}
