import { getTranslations, setRequestLocale } from "next-intl/server";
import { ApiTool } from "@/components/api-tool";
import { CopyButton } from "@/components/copy-button";
import { ensurePublisherKeys } from "@/lib/links";
import { publicAppUrl, requireUser } from "@/lib/session";
import { prisma } from "@/lib/prisma";

export default async function ApiToolPage({
  params,
}: {
  params: Promise<{ locale: string }>;
}) {
  const { locale } = await params;
  setRequestLocale(locale);
  const session = await requireUser();
  const user = await ensurePublisherKeys(session.user.id);
  const fresh = user ?? (await prisma.user.findUniqueOrThrow({ where: { id: session.user.id } }));
  const t = await getTranslations("tools");
  const origin = await publicAppUrl();
  return (
    <div className="space-y-4">
      <h1 className="page-title">{t("api")}</h1>
      <p className="text-muted">{t("apiText")}</p>
      <div className="card space-y-2 p-5">
        <p className="text-sm">{t("apiKey")}</p>
        <div className="flex items-center justify-between gap-2 rounded-xl bg-background px-3 py-2 text-sm" dir="ltr">
          <span className="truncate">{fresh.apiKey}</span>
          <CopyButton value={fresh.apiKey ?? ""} />
        </div>
      </div>
      <ApiTool origin={origin} apiKey={fresh.apiKey ?? ""} />
    </div>
  );
}
