import type { LocationDto } from '@siop/shared'; export interface SiteAvecZones extends LocationDto { zones: LocationDto[]; } /** L'API renvoie une liste plate ; l'arbre (site → zones) se construit ici. */ export function construireArbre(locations: LocationDto[]): SiteAvecZones[] { const sites = locations .filter((l) => l.parentId === null) .map((site) => ({ ...site, zones: locations.filter((l) => l.parentId === site.id), })); return sites.sort((a, b) => b.assetCount - a.assetCount || a.name.localeCompare(b.name)); } export function formatDateFr(iso: string | null): string { if (!iso) return '—'; return new Intl.DateTimeFormat('fr-FR', { dateStyle: 'long' }).format(new Date(iso)); }