import SettingsPageClient from "@/components/settings/SettingsPageClient";
import { getCurrentUser } from "@/lib/currentUser";
import { redirect } from "next/navigation";
import { getOwnerAiSettingsView } from "@/lib/profitOptimizer/settings";
import { listBackups } from "@/lib/dataBackups";

export const dynamic = "force-dynamic";

export default async function SettingsPage() {
  const account = await getCurrentUser();
  if (!account) redirect("/login");
  const [aiSettings, initialBackups] = await Promise.all([
    account.role === "owner" || account.role === "super_admin" ? getOwnerAiSettingsView(account.id) : Promise.resolve(null),
    account.role === "owner" || account.role === "super_admin"
      ? listBackups({ ownerId: account.role === "owner" ? account.id : null, includeSystem: account.role === "super_admin" })
      : Promise.resolve([]),
  ]);
  return (
    <SettingsPageClient
      aiSettings={aiSettings}
      initialBackups={initialBackups}
      account={{
        username: account.username,
        role: account.role,
        status: account.status,
        ownerUsername: account.ownerUsername,
        localPasswordConfigured: account.localPasswordConfigured,
        passwordSetAt: account.passwordSetAt?.toISOString() ?? null,
      }}
    />
  );
}
