import { Suspense } from "react";
import { Sidebar } from "@/components/sidebar";
import { ProvidersWrapper } from "@/components/providers-wrapper";
import { auth } from "@/auth";
import { headers } from "next/headers";
import { detectUserLanguage, parseAcceptLanguage } from "@/lib/i18n/detect-user-language";
import { loadTranslations } from "@/lib/i18n/load-translations";
import { getAISettings } from "@/app/actions/ai-settings";
import { AIChatLayoutBridge } from "@/components/ai-chat-layout-bridge";

export default async function MainLayout({
  children,
}: Readonly<{
  children: React.ReactNode;
}>) {
  const headersList = await headers();
  const browserLang = parseAcceptLanguage(headersList.get("accept-language"));

  const [session, initialLanguage] = await Promise.all([
    auth(),
    detectUserLanguage(browserLang),
  ]);

  const initialTranslations = await loadTranslations(initialLanguage);

  const aiSettings = session?.user?.id
    ? await getAISettings(session.user.id)
    : null;
  const showAIAssistant = aiSettings?.paragraphRefactor !== false;

  return (
    <ProvidersWrapper initialLanguage={initialLanguage} initialTranslations={initialTranslations}>
      {/* No top-bar header — sidebar-only navigation (architectural-grid design) */}
      <div className="flex h-screen overflow-hidden bg-memento-desk">
        <Suspense fallback={<div className="hidden w-80 shrink-0 md:block" />}>
          <Sidebar user={session?.user} />
        </Suspense>

        <main className="flex min-h-0 flex-1 flex-col overflow-y-auto scroll-smooth bg-memento-paper">
          {children}
        </main>

        {showAIAssistant && <AIChatLayoutBridge />}
      </div>
    </ProvidersWrapper>
  );
}

