/**
 * Listes de l'annuaire (Domaine ⇒ Liste) : une liste et ses entrées.
 */

import http from '@/http';
import type {AnnuaireEntree} from '@/types/annuaire';

export interface Liste {
  lieId: number;
  lieNom: string;
  lieSoustitre?: string | null;
  lieDpr?: {dprId?: number; dprNom?: string} | null;
}

export async function getListe(lieId: string): Promise<Liste> {
  const response = await http.get(`/socle_liste_entrees/${lieId}`);

  return response.data;
}

/** Entrées actives de la liste, par libellé ; vide si l'API ne répond pas, la page reste lisible. */
export async function getListeEntrees(lieId: string): Promise<AnnuaireEntree[]> {
  try {
    const response = await http.get(
      `/annuaire_entrees?socleListeEntrees=${lieId}&aenActive=1&itemsPerPage=200&order[aenLibelle]=asc`
    );

    return response.data?.['hydra:member'] ?? [];
  } catch {
    return [];
  }
}
