// src/lib/gsc/failure-message.ts — traduction des raisons d'échec GSC.
//
// Module PUR, volontairement séparé de `actions.ts` : un fichier `"use server"`
// ne peut exporter que des fonctions async (le transform SWC échoue sinon,
// « Only async functions are allowed to be exported in a "use server" file »).
// Faire de ce traducteur une server action pour une simple table de
// correspondance serait un aller-retour réseau pour rien. Pas de `server-only`
// non plus : un composant client doit pouvoir l'utiliser.
import type { SiteGscFailure } from "./site-state";

/** Une raison d'échec → une phrase. Unique endroit où la traduction existe :
 *  worker et UI lisent la même sortie typée, donc ne peuvent pas diverger. */
export function gscFailureMessage(reason: SiteGscFailure): string {
  switch (reason) {
    case "no-property":
      return "Mappe d'abord une propriété GSC pour ce site.";
    case "no-authority":
    case "authority-lost":
      return "Aucun compte Google actif sur ce site — reprends la connexion.";
    case "no-google-account":
      return "Connecte un compte Google Search Console.";
    case "missing-scope":
      return "Le compte Google connecté n'a pas l'accès Search Console — reconnecte-le.";
    case "token-refused":
      return "Google a refusé l'accès — reconnecte le compte.";
  }
}
