import type { Metadata } from "next";

import { GlassCard } from "@/components/shared/glass-card";
import { JsonLd } from "@/components/seo/json-ld";
import { getFaqContent } from "@/lib/cms/server";
import { buildFaqSchema } from "@/lib/seo/metadata";
import { buildCmsPageMetadata } from "@/lib/seo/page-metadata";

export const revalidate = 120;

export async function generateMetadata(): Promise<Metadata> {
  return buildCmsPageMetadata(
    "faq",
    "FAQ",
    "Answers about programs, ebooks, coaching, billing, and training expectations.",
    "/faq",
  );
}

export default async function FaqPage() {
  const faqItems = await getFaqContent();

  return (
    <>
      <JsonLd
        data={buildFaqSchema(faqItems.map((item) => ({ question: item.question, answer: item.answer })))}
      />
      <div className="ds-container ds-section max-w-3xl">
        <h1 className="font-display text-4xl tracking-tight sm:text-5xl">FAQ</h1>
        <p className="text-muted-foreground mt-4">
          Straight answers — no hype. Swap copy anytime as your offer evolves.
        </p>
        <div className="mt-12 space-y-4">
          {faqItems.map((item) => (
            <GlassCard key={item.id} className="p-6">
              <h2 className="font-semibold text-foreground">{item.question}</h2>
              <p className="text-muted-foreground mt-3 text-sm leading-relaxed">{item.answer}</p>
            </GlassCard>
          ))}
        </div>
      </div>
    </>
  );
}
