package com.ejie.ab79.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.ejie.ab79.model.nora.T17Provincia;
import com.ejie.ab79.model.procedimientos.Direcciones;
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;

/**
 * Inspectores  
 * 
 *  
 */

public class Inspectores implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	private Integer idInspector;
	private String usuarioXlnets;
	private Date fechaRegistro;
	private String usuarioRegistro;
	private String nombreInspector;
	private Direcciones direccion;
	private T17Provincia provincia;

	private Date fechaUltModificacion;
	private String usuarioUltModificacion;

	private List<Integer> idDirecciones = new ArrayList<Integer>();

	private String numeroInspector;
	private String dni;
	private String passwordTablet;

	private Integer baja;

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

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

	/**
	 * Method 'Inspectores'.
	 * 
	 * @param idInspector
	 *            Integer
	 * @param idDireccion
	 *            Integer
	 * @param usuarioXlnets
	 *            String
	 * @param fechaRegistro
	 *            Date
	 * @param usuarioRegistro
	 *            String
	 */
	public Inspectores(Integer idInspector, String usuarioXlnets, Date fechaRegistro, String usuarioRegistro,
			String nombreInspector) {

		this.idInspector = idInspector;
		this.usuarioXlnets = usuarioXlnets;
		this.fechaRegistro = fechaRegistro;
		this.usuarioRegistro = usuarioRegistro;
		this.nombreInspector = nombreInspector;
	}

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

	public Integer getIdInspector() {
		return this.idInspector;
	}

	/**
	 * Method 'setIdInspector'.
	 *
	 * @param idInspector
	 *            Integer
	 * @return
	 */

	public void setIdInspector(Integer idInspector) {
		this.idInspector = idInspector;
	}

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

	public String getUsuarioXlnets() {
		return this.usuarioXlnets;
	}

	/**
	 * Method 'setUsuarioXlnets'.
	 *
	 * @param usuarioXlnets
	 *            String
	 * @return
	 */

	public void setUsuarioXlnets(String usuarioXlnets) {
		this.usuarioXlnets = usuarioXlnets;
	}

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

	public String getNombreInspector() {
		return nombreInspector;
	}

	public void setNombreInspector(String nombreInspector) {
		this.nombreInspector = nombreInspector;
	}

	public Direcciones getDireccion() {
		return direccion;
	}

	public void setDireccion(Direcciones direccion) {
		this.direccion = direccion;
	}

	/**
	 * Method 'getProvincia'
	 * 
	 * @return T17Provincia
	 */

	public T17Provincia getProvincia() {
		return provincia;
	}

	/**
	 * Method 'setProvincia'
	 * 
	 * @param provincia
	 *            T17Provincia
	 * @return
	 */

	public void setProvincia(T17Provincia provincia) {
		this.provincia = provincia;
	}

	/**
	 * @return the fechaUltModificacion
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFechaUltModificacion() {
		return this.fechaUltModificacion;
	}

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

	/**
	 * @return the usuarioUltModificacion
	 */
	public String getUsuarioUltModificacion() {
		return this.usuarioUltModificacion;
	}

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

	public List<Integer> getIdDirecciones() {
		return idDirecciones;
	}

	public void setIdDirecciones(List<Integer> idDirecciones) {
		this.idDirecciones = idDirecciones;
	}

	public String getNumeroInspector() {
		return numeroInspector;
	}

	public void setNumeroInspector(String numeroInspector) {
		this.numeroInspector = numeroInspector;
	}

	public String getDni() {
		return dni;
	}

	public void setDni(String dni) {
		this.dni = dni;
	}

	public String getPasswordTablet() {
		return passwordTablet;
	}

	public void setPasswordTablet(String passwordTablet) {
		this.passwordTablet = passwordTablet;
	}

	public Integer getBaja() {
		return baja;
	}

	public void setBaja(Integer baja) {
		this.baja = baja;
	}

	/**
	 * 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(" [ idInspector: ").append(this.idInspector).append(" ]");
		result.append(", [ usuarioXlnets: ").append(this.usuarioXlnets).append(" ]");
		result.append(", [ fechaRegistro: ").append(this.fechaRegistro).append(" ]");
		result.append(", [ usuarioRegistro: ").append(this.usuarioRegistro).append(" ]");
		result.append(", [ nombreInspector: ").append(this.nombreInspector).append(" ]");
		result.append(", [ direcciones: ").append(this.direccion).append(" ]");
		result.append("}");
		return result.toString();
	}

}
