import { getServerSession } from "next-auth";
import { authOptions } from "../../lib/auth/options";
import { prisma } from "../../lib/db/prisma";
import { RetentionActions } from "./retention-actions";
import { SettingsForm } from "./settings-form";

export default async function SettingsPage() {
  const session = await getServerSession(authOptions);
  if (!session?.user.organizationId) {
    return <div><h1 className="text-3xl font-semibold">Settings</h1><p className="mt-2 text-slate-600">System admins manage settings from an organization context.</p></div>;
  }
  const [organization, settings] = await Promise.all([
    prisma.organization.findUniqueOrThrow({ where: { id: session.user.organizationId } }),
    prisma.organizationSettings.upsert({ where: { organizationId: session.user.organizationId }, update: {}, create: { organizationId: session.user.organizationId } })
  ]);
  return (
    <div>
      <div className="admin-card p-6">
        <p className="text-sm font-semibold uppercase tracking-wide text-brand-primary">Policy center</p>
        <h1 className="mt-1 text-3xl font-semibold">Settings</h1>
        <p className="mt-2 text-slate-600">General settings, notifications, tracking policy, and retention controls.</p>
      </div>
      <SettingsForm organization={organization} settings={settings} />
      <RetentionActions />
    </div>
  );
}
