import { notFound } from "next/navigation";
import type { Metadata } from "next";
import { getDict } from "@/i18n/dictionaries";
import { isLang, type Lang } from "@/i18n/types";
import { SiteHeader } from "@/components/SiteHeader";
import { SiteFooter } from "@/components/SiteFooter";
import { WhatsAppFloat } from "@/components/WhatsAppFloat";

export const dynamicParams = false;

export function generateStaticParams() {
  return [{ lang: "ar" }, { lang: "en" }];
}

export function generateMetadata({
  params,
}: {
  params: Promise<{ lang: string }>;
}): Promise<Metadata> {
  return params.then(({ lang }) => {
    const safeLang: Lang = lang === "en" ? "en" : "ar";
    const isArabic = safeLang === "ar";
    return {
      title: isArabic
        ? "Raqmiat Plus | حلول رقمية فاخرة"
        : "Raqmiat Plus | Premium Digital Solutions",
      description: isArabic
        ? "شركة خدمات رقمية تبني مواقع وتطبيقات وأنظمة وتحليل بيانات—بتركيز على النتائج والتحويل."
        : "A premium digital services company building websites, apps, systems, and analytics—focused on conversion and outcomes.",
      alternates: {
        canonical: `/${safeLang}`,
      },
      openGraph: {
        type: "website",
        locale: isArabic ? "ar_SA" : "en_US",
        title: "Raqmiat Plus",
        description: isArabic
          ? "حوّل فكرتك إلى مشروع رقمي يحقق نتائج فعلية."
          : "Turn your idea into a digital product that delivers real results.",
      },
    };
  });
}

export default async function LangLayout({
  children,
  params,
}: {
  children: React.ReactNode;
  params: Promise<{ lang: string }>;
}) {
  const { lang } = await params;
  if (!isLang(lang)) notFound();

  const dict = getDict(lang);

  return (
    <>
      <SiteHeader lang={lang} dict={dict} />
      <main className="flex-1">{children}</main>
      <SiteFooter lang={lang} dict={dict} />
      <WhatsAppFloat
        phone="966544666050"
        message={
          lang === "ar"
            ? "مرحباً، أود بدء مشروع مع Raqmiat Plus."
            : "Hello, I'd like to start a project with Raqmiat Plus."
        }
      />
    </>
  );
}

