import { requireUser } from "@/lib/auth";
import { all } from "@/lib/db";
import { PageHead } from "@/components/dash/Shell";
import { CatalogManager } from "@/components/dash/CatalogManager";
import { parseJSON } from "@/lib/format";
export const metadata = { title: "Products & pricing" };
export default async function Catalog() {
  await requireUser(["admin"]);
  const categories = all<any>("SELECT * FROM categories ORDER BY sort, id");
  const plans = all<any>("SELECT * FROM plans ORDER BY sort, id").map((p) => ({ ...p, features: parseJSON(p.features, []), limits: parseJSON(p.limits, {}) }));
  const links = all<any>("SELECT * FROM product_categories");
  const products = all<any>("SELECT * FROM products ORDER BY sort, id").map((p) => ({ ...p, highlights: parseJSON(p.highlights, []), plans: plans.filter((x) => x.product_id === p.id), categoryIds: links.filter((l) => l.product_id === p.id).map((l) => l.category_id) }));
  return (<><PageHead title="Products & pricing" sub="Multi-category catalogue — one product can live in several categories. Changes appear on the website instantly." /><CatalogManager categories={categories} products={products} /></>);
}
