/* ============================================================================
   INTEGRACIONES — STUBS para conectar en Claude Code / Vercel
   ----------------------------------------------------------------------------
   Este archivo concentra TODOS los puntos de enganche externos del wizard.
   En el prototipo no hacen nada "real": registran en consola para que se vea
   el flujo. En producción, Claude Code solo tiene que rellenar las URLs/IDs
   y descomentar las llamadas reales marcadas con  // TODO Claude Code.
   ========================================================================== */

/* --- Configuración -------------------------------------------------------- */

// URL pública de la política de privacidad (responsable: Consultoría Método)
const PRIVACY_URL = 'https://www.consultoriametodo.es/politica-privacidad';

// TODO Claude Code: pega aquí la URL del webhook del escenario de Make.
const MAKE_WEBHOOK_URL = ''; // p.ej. 'https://hook.eu2.make.com/xxxxxxxxxxxx'

/* --- Analítica / Píxel ---------------------------------------------------- */
/* Empuja un evento a dataLayer (GTM / GA4) y al píxel de Meta.
   En el prototipo solo hace console.log. */
function trackEvent(name, data = {}) {
  try {
    // Google Tag Manager / GA4
    window.dataLayer = window.dataLayer || [];
    window.dataLayer.push({ event: name, ...data });

    // TODO Claude Code: descomenta cuando el píxel de Meta esté cargado.
    // if (window.fbq) {
    //   const metaMap = { lead_captured: 'Lead', wizard_completed: 'CompleteRegistration' };
    //   if (metaMap[name]) window.fbq('track', metaMap[name], data);
    // }
  } catch (e) { /* noop */ }
  if (window.__DEBUG_TRACK !== false) console.log('[track]', name, data);
}

/* --- Envío del lead (paso de captura, antes de las preguntas) -------------- */
/* Se llama EN CUANTO el usuario deja nombre + teléfono + consentimiento.
   Así el lead es nuestro aunque no termine el diagnóstico. */
async function sendLead(payload) {
  console.log('[sendLead] (stub) →', payload);
  // TODO Claude Code: enviar a Make.
  // if (MAKE_WEBHOOK_URL) {
  //   await fetch(MAKE_WEBHOOK_URL, {
  //     method: 'POST',
  //     headers: { 'Content-Type': 'application/json' },
  //     body: JSON.stringify({ type: 'lead', ...payload }),
  //   });
  // }
  return true;
}

/* --- Envío del diagnóstico completo (al final del wizard) ------------------ */
/* Se llama al terminar: incluye TODAS las respuestas + el informe calculado.
   Make puede usar esto para enviar el informe por WhatsApp y guardar todo. */
async function sendCompletion(payload) {
  console.log('[sendCompletion] (stub) →', payload);
  // TODO Claude Code: enviar a Make.
  // if (MAKE_WEBHOOK_URL) {
  //   await fetch(MAKE_WEBHOOK_URL, {
  //     method: 'POST',
  //     headers: { 'Content-Type': 'application/json' },
  //     body: JSON.stringify({ type: 'completion', ...payload }),
  //   });
  // }
  return true;
}

window.Integrations = { PRIVACY_URL, MAKE_WEBHOOK_URL, trackEvent, sendLead, sendCompletion };
