"use client";

import type { ReactNode } from "react";

import { FunnelProvider } from "@/lib/funnel/FunnelProvider";
import { UnleashProvider } from "./UnleashProvider";

interface AppProvidersProps {
  children: ReactNode;
}

/**
 * Корневой Provider приложения
 * 
 * ВАЖНО: UnleashAnalyticsInitializer перемещен в FunnelUnleashWrapper
 * чтобы гарантировать что impression listener готов ДО загрузки флагов
 * 
 * Структура:
 * 1. UnleashProvider (FlagProvider) - инициализация Unleash Client (глобально)
 * 2. FunnelProvider - управление состоянием воронки
 * 3. FunnelUnleashWrapper (в layout) - подписка на impression события + загрузка флагов
 */
export function AppProviders({ children }: AppProvidersProps) {
  return (
    <UnleashProvider>
      <FunnelProvider>{children}</FunnelProvider>
    </UnleashProvider>
  );
}
