/** Titre en minuscules, sans accents ni ponctuation, tirets entre les mots ; « stage » à défaut. */
export function slugifyTitre(titre?: string | null): string {
  const slug = (titre ?? '')
    .normalize('NFD')
    .replace(/[̀-ͯ]/g, '')
    .toLowerCase()
    .replace(/[^a-z0-9]+/g, '-')
    .replace(/^-+|-+$/g, '');

  return slug || 'stage';
}

/** URL d'une fiche stage : /{locale}/stage/{id}/{titre-encodé}, servie par la page /stages/{id}. */
export function stageHref(locale: string, fstId: number | string, titre?: string | null): string {
  return `/${locale}/stage/${fstId}/${slugifyTitre(titre)}`;
}
