import { getServerSession } from "next-auth";
import { redirect } from "next/navigation";
import { authOptions } from "@/lib/auth";
import { prisma } from "@/lib/db";
import { getDictionary, getLocale } from "@/lib/i18n";
import { SettingsForm } from "@/components/dashboard/settings-form";

export default async function SettingsPage() {
  const session = await getServerSession(authOptions);
  if (!session?.user?.id) redirect("/login");

  const locale = await getLocale();
  const t = getDictionary(locale).settings;
  const user = await prisma.user.findUnique({ where: { id: parseInt(session.user.id) } });

  const labels = {
    title: t.title,
    subtitle: t.subtitle,
    name: t.name,
    email: t.email,
    nickname: t.nickname || "Nickname",
    nicknameHint: t.nicknameHint || "What should Jarvis call you?",
    jarvisName: t.jarvisName || "Jarvis Name",
    jarvisNameHint: t.jarvisNameHint || "The name your AI assistant will use for itself.",
    save: t.save || "Save",
    saving: t.saving || "Saving...",
    saved: t.saved || "Saved",
    notConfigured: t.notConfigured,
    rootDomain: "Root domain",
    dokploy: "Dokploy",
    rootDomainValue: process.env.APP_ROOT_DOMAIN || "",
    dokployValue: process.env.DOKPLOY_BASE_URL || "",
    emailValue: user?.email || "",
    nameValue: user?.full_name || user?.username || "",
  };

  return (
    <div className="max-w-3xl space-y-6">
      <div>
        <h1 className="text-3xl font-bold text-ink">{t.title}</h1>
        <p className="mt-1 text-slate-600">{t.subtitle}</p>
      </div>
      <SettingsForm
        initialNickname={user?.nickname || ""}
        initialJarvisName={user?.jarvis_name || ""}
        labels={labels}
      />
    </div>
  );
}
