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

import { getDictionary, hasLocale } from "@/app/[lang]/dictionaries";
import { buildPageMetadata } from "@/lib/seo/pages";
import { softwareApplicationNode } from "@/lib/seo/structured-data";
import { FAQs } from "@/components/sections/faqs";
import { Pricing } from "@/components/sections/pricing";
import { JsonLdScript } from "@/components/meta/json-ld-script";

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

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

  // Pricing-specific SoftwareApplication + Offers (FS-H13): emitted here only,
  // not globally, since the Offer prices belong on the pricing page.
  const jsonLd = {
    "@context": "https://schema.org",
    "@graph": [softwareApplicationNode()],
  };

  return (
    <div className="min-h-screen">
      <JsonLdScript data={jsonLd} />
      <Pricing dict={dict.pricing} />
      <FAQs dict={dict.faqs} />
    </div>
  );
}
