import { getAvisAdministre, getAvisPoste } from '../components/Commun/listes/helpers/business-data-helpers';
import i18n from '../i18n/i18n';

/**
 * Renvoie le libellé d'un code de statut de décision.
 *
 * @param {string} code   - code du statut de décision
 * @param {Object} [refs] - toutes les données de référence, optionnel mais recommandé
 * @returns libellé ou valeur initiale
 */
export const getDecisionLabel = (code, refs) => i18n.decision?.[code]?.libelle ?? refs?.decisionsById?.get(code)?.libelle ?? code;

/**
 * Renvoie le libellé d'un avis sur un administré à partir du code.
 *
 * @param {string} code   - code de l'avis
 * @param {Object} [refs] - toutes les données de référence, optionnel mais recommandé
 * @returns libellé ou undefined
 */
export const getLibelleAvisAdministre = (code, refs) => i18n.avisAdministre?.[code]?.libelle ?? getAvisAdministre(refs, code)?.libelle;

/**
 * Renvoie le libellé d'un avis sur un poste à partir du code.
 *
 * @param {string} code   - code de l'avis
 * @param {Object} [refs] - toutes les données de référence, optionnel mais recommandé
 * @returns libellé ou undefined
 */
export const getLibelleAvisPoste = (code, refs) => i18n.avisPoste?.[code]?.libelle ?? getAvisPoste(refs, code)?.libelle;

/**
 * Renvoie le libellé d'un profil.
 *
 * @param {import('../jsdoc/types').Profil} val - profil
 * @returns libellé ou undefined
 */
export const getLibelleProfil = (val) => i18n.profil?.[val]?.libelle;

/**
 * Renvoie le libellé d'un statut d'affectation BMOB.
 *
 * @param {import('../jsdoc/api').EtatFeBmob} val - statut
 * @returns libellé ou undefined
 */
export const getLibelleEtatFeFmob = (val) => i18n.etatFeFmob?.[val]?.libelle;
