/**
 * Push GTM dataLayer pour les soumissions de formulaire RÉUSSIES.
 *
 * Appelé uniquement après confirmation de succès de l'envoi HubSpot (jamais au clic,
 * jamais sur validation échouée, jamais si la requête renvoie une erreur). Google Tag
 * Manager mappe ensuite chaque event distinct vers les balises GA4 / Google Ads.
 *
 * Ne pousse aucune donnée personnelle (pas d'e-mail, pas de téléphone) : seulement
 * l'event, le nom court du formulaire et le pathname courant.
 *
 * Le dataLayer est initialisé de façon défensive : le push fonctionne même si le
 * conteneur GTM n'est pas encore chargé (GTM consommera la file au démarrage).
 */

declare global {
  interface Window {
    dataLayer?: Record<string, unknown>[];
  }
}

export type FormSubmitEvent =
  | "form_diagnostic_submit"
  | "form_contact_submit"
  | "form_applicateur_submit"
  | "form_guide_submit";

export function pushFormSubmit(event: FormSubmitEvent, formName: string): void {
  if (typeof window === "undefined") return;
  window.dataLayer = window.dataLayer || [];
  window.dataLayer.push({
    event,
    form_name: formName,
    form_location: window.location.pathname,
  });
}
