package com.ejie.ab39a.control;

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

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.ejie.ab39a.constantes.Constantes;
import com.ejie.ab39a.model.TiposIdentif;
import com.ejie.ab39a.service.TiposIdentifService;

/**
 * ComboController
 * 
 *  
 */
@Controller
@RequestMapping(value = "/combo")
public class ComboController {

	private static final Logger logger = LoggerFactory.getLogger(ComboController.class);

	@Autowired
	private TiposIdentifService tipoIdentifService;

	/**
	 * Devuelve la lista de tipos de identificacion para un combo.
	 * 
	 * @param tiposIdentif
	 *            TiposIdentif tiposIdentif
	 * @return List<TiposIdentif> Lista de objetos correspondientes a la
	 *         busqueda realizada.
	 */
	@RequestMapping(value = "tipoidentif", method = RequestMethod.GET)
	public @ResponseBody List<TiposIdentif> getComboTipoIdentif(@ModelAttribute TiposIdentif tiposIdentif) {
		ComboController.logger.info("Se buscan los tipos de identificacion");
		return this.tipoIdentifService.findAll(tiposIdentif, null);
	}

	/**
	 * Devuelve la lista de tipos de identificacion para un combo para los
	 * Tecnicos. Se elimina el tipo de idenficación 'CIF'
	 * 
	 * @param tiposIdentif
	 *            TiposIdentif tiposIdentif
	 * @return List<TiposIdentif> Lista de objetos correspondientes a la
	 *         busqueda realizada.
	 */
	@RequestMapping(value = "tipoidentifTecnico", method = RequestMethod.GET)
	public @ResponseBody List<TiposIdentif> getComboTipoIdentifTecnicos(@ModelAttribute TiposIdentif tiposIdentif) {
		ComboController.logger.info("Se buscan los tipos de identificacion");
		List<TiposIdentif> lista = new ArrayList<TiposIdentif>();
		for (TiposIdentif tipoIdentif : this.tipoIdentifService.findAll(tiposIdentif, null)) {
			if (!String.valueOf(tipoIdentif.getCodigo()).equals(Constantes.TIPO_IDENTIFICACION_CIF_BBDD)) {
				lista.add(tipoIdentif);
			}
		}
		return lista;
	}

}