import type { Metadata } from "next";
import { notFound } from "next/navigation";

import { getDictionary, hasLocale } from "@/app/[lang]/dictionaries";
import { buildPageMetadata } from "@/lib/seo/pages";
import { CTA } from "@/components/sections/cta";
import { FAQs } from "@/components/sections/faqs";
import { Features } from "@/components/sections/features";
import { FeaturesSecondary } from "@/components/sections/features-secondary";
import { FeaturesTertiary } from "@/components/sections/features-tertiary";
import { Hero } from "@/components/sections/hero";
import { MCP } from "@/components/sections/mcp";
import { Pipeline } from "@/components/sections/pipeline";
import { Pricing } from "@/components/sections/pricing";
import { Problem } from "@/components/sections/problem";
import { LogoCloud } from "@/components/shared/logo-cloud";

export async function generateMetadata({
  params,
}: PageProps<"/[lang]">): Promise<Metadata> {
  const { lang } = await params;
  return buildPageMetadata("", lang);
}

export default async function Home({ params }: PageProps<"/[lang]">) {
  const { lang } = await params;
  if (!hasLocale(lang)) notFound();
  const dict = await getDictionary(lang);

  return (
    <div className="min-h-screen">
      <Hero dict={dict.hero} lang={lang} />
      <LogoCloud dict={dict.logocloud} />
      <Problem dict={dict.problem} />
      <Pipeline dict={dict.pipeline} />
      <Features dict={dict.modules} />
      <MCP dict={dict.mcp} />
      <FeaturesSecondary dict={dict.multisource} />
      <FeaturesTertiary dict={dict.team} />
      <Pricing dict={dict.pricing} />
      <FAQs dict={dict.faqs} />
      <CTA dict={dict.cta} lang={lang} />
    </div>
  );
}
