package com.ejie.ad74a.util.constantes;

import java.util.Locale;

import org.springframework.context.i18n.LocaleContextHolder;

import com.ejie.ad74a.model.Combo;
import com.ejie.ad74a.util.comun.Utilidades;

/**
 * Estados de un expediente
 */

public enum TipoNivelSoporteEnum {

	MODERADO("1", "tipoNivelSoporte.moderado"), //
	ALTO("2", "tipoNivelSoporte.alto"), //
	INTENSO("3", "tipoNivelSoporte.intenso"), //
	ALTO_RIESGO("4", "tipoNivelSoporte.alto_riesgo"), //
	SIN_VALORAR("5", "tipoNivelSoporte.sin_valorar");

	private TipoNivelSoporteEnum(String id, String labelDesc) {
		this.labelDesc = labelDesc;
		this.id = id;
	}

	private String id;
	private String labelDesc;

	public String getId() {
		return this.id;
	}

	public String getLabelDesc() {
		return Utilidades.getLabelFromResource(Constantes.BASENAME_RESOURCE_AD74A_I18N, this.labelDesc,
				LocaleContextHolder.getLocale());
	}

	public String getLabelDesc(Locale locale) {
		return Utilidades.getLabelFromResource(Constantes.BASENAME_RESOURCE_AD74A_I18N, this.labelDesc, locale);
	}

	public Combo getCombo() {
		return new Combo(id.toString(),
				Utilidades.getLabelFromResource(Constantes.BASENAME_RESOURCE_AD74A_I18N, this.labelDesc,
						com.ejie.ad74a.constantes.Constantes.LOCALE_ES),
				Utilidades.getLabelFromResource(Constantes.BASENAME_RESOURCE_AD74A_I18N, this.labelDesc,
						com.ejie.ad74a.constantes.Constantes.LOCALE_EU));
	}

	public static TipoNivelSoporteEnum getById(String id) {
		for (TipoNivelSoporteEnum e : values()) {
			if (e.id.equals(id))
				return e;
		}
		return null;
	}

	public static String getDesc(String id) {
		for (TipoNivelSoporteEnum proc : TipoNivelSoporteEnum.values()) {
			if (proc.getId().equals(id)) {
				return proc.getLabelDesc();
			}
		}
		return null;
	}

}
