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));
}
