"use client";

import { useEffect } from "react";
import { usePostHog } from "posthog-js/react";

/**
 * Composant pour identifier l'utilisateur dans PostHog
 * À placer dans le layout après l'authentification
 */
export default function PostHogIdentifier() {
  const posthog = usePostHog();

  useEffect(() => {
    (async () => {
      try {
        const res = await fetch("/api/me", { credentials: "include", cache: "no-store" });
        if (!res.ok) {
          // Si pas authentifié, on réinitialise l'identité
          posthog?.reset();
          return;
        }

        const me = await res.json();
        
        // L'API /api/me retourne { user: { id, email, ... }, active_org_id, ... }
        const userId = me?.user?.id || me?.user_id;
        
        if (userId) {
          // Identifier l'utilisateur avec son ID unique
          posthog?.identify(userId, {
            email: me.user?.email || me.email,
            first_name: me.user?.first_name || me.first_name,
            display_name: me.user?.display_name || me.display_name,
            company_name: me.active_org_name,
            company_id: me.active_org_id,
            is_staff: me.is_staff || false,
          });
        }
      } catch (e) {
        console.error('PostHog: Erreur lors de l\'identification:', e);
      }
    })();
  }, [posthog]);

  return null;
}
