import type { Metadata } from "next";
import { db } from "@/lib/db";
import AdminSettingsClient from "./AdminSettingsClient";

export const metadata: Metadata = { title: "Admin: Settings" };

const ALL_KEYS = [
  // Company
  "site_name", "site_tagline", "site_logo_url", "site_favicon_url",
  "admin_email", "support_email", "site_phone", "site_address",
  "site_timezone", "site_country", "site_currency",
  // Social
  "whatsapp_number", "whatsapp_enabled",
  "facebook_url", "instagram_url", "twitter_url", "linkedin_url", "youtube_url",
  // Stripe
  "stripe_mode",
  "stripe_live_secret_key", "stripe_live_publishable_key", "stripe_live_webhook_secret",
  "stripe_sandbox_secret_key", "stripe_sandbox_publishable_key", "stripe_sandbox_webhook_secret",
  // Email / Mailgun
  "mailgun_domain", "mailgun_api_key", "mailgun_region",
  "mail_from_name", "mail_from_address", "mail_reply_to",
  // Tester / Access control
  "tester_mode",
];

export default async function AdminSettingsPage() {
  const rows = await db.siteSetting.findMany({ where: { key: { in: ALL_KEYS } } });
  const s = Object.fromEntries(rows.map((r) => [r.key, r.value ?? ""]));

  return <AdminSettingsClient settings={s} />;
}
