import {artisteHref} from './artisteHref';
import {annuaireEntreeHref} from './annuaireEntreeHref';

/** Ce qu'il faut d'une entrée annuaire pour savoir quelle fiche publique la présente. */
export interface EntreeCible {
  aenId: number | string;
  aenLibelle?: string | null;
  aenMorale?: number | null;
  aenFmu?: {fmuId?: number | string}[] | null;
  aenEns?: {ensId?: number | string}[] | null;
}

/**
 * URL de la fiche publique d'une entrée annuaire : artiste solo (personne morale = 0), groupe
 * (formation musicale), ensemble traditionnel, sinon entrée d'annuaire simple.
 */
export function entreeHref(locale: string, entree: EntreeCible): string {
  if (entree.aenMorale === 0) return artisteHref(locale, entree.aenId, entree.aenLibelle);
  const fmuId = entree.aenFmu?.[0]?.fmuId;
  if (fmuId !== undefined && fmuId !== null) return `/${locale}/groupes/${fmuId}`;
  const ensId = entree.aenEns?.[0]?.ensId;
  if (ensId !== undefined && ensId !== null) return `/${locale}/ensembles-traditionnels/${ensId}`;

  return annuaireEntreeHref(locale, entree.aenId, entree.aenLibelle);
}
