import type { Metadata } from "next";
import { Hero } from "./components/Hero";
import { Focus } from "./components/Focus";
import { PasstDazu } from "./components/PasstDazu";
import { Testimonials } from "./components/Testimonials";
import { Pricing } from "./components/Pricing";
import { Footer } from "../components/Footer";
import { getProductBySlug, getCompanySettings } from "../lib/payload";
import { buildProductSchema } from "../lib/structuredData";

const title = "Der Eine. – Für die eine Sache, die gerade zählt.";

// Description reads from the live product instead of a separately
// hardcoded string, unlike this page's own `title` — matches
// /tasse-die-pause's own pattern (see that page's comment). Two
// hand-maintained copies of the same text used to drift apart: this one
// used to say something different from Products.description (which feeds
// the cart/checkout/JSON-LD elsewhere) — same field, one source now.
export async function generateMetadata(): Promise<Metadata> {
  const product = await getProductBySlug("stift-kugelschreiber");
  const description = product?.description ?? undefined;
  return {
    title,
    description,
    alternates: { canonical: "/der-eine" },
    openGraph: { title, description, url: "/der-eine" },
    twitter: { title, description },
  };
}

export default async function DerEinePage() {
  const [product, seller] = await Promise.all([
    getProductBySlug("stift-kugelschreiber"),
    getCompanySettings(),
  ]);
  const productSchema = product
    ? buildProductSchema(product, "https://einfach-produktiv.mk360.de/der-eine", seller)
    : null;

  return (
    <>
      {productSchema && (
        <script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(productSchema) }} />
      )}
      <main className="flex flex-col flex-1">
        <Hero />
        <Focus />
        <Testimonials />
        <Pricing />
        <PasstDazu productSlug="stift-kugelschreiber" />
      </main>
      <Footer />
    </>
  );
}
