import type { Metadata } from "next";
import { listInvites } from "@/lib/invites";
import { InvitesManager } from "@/components/admin/invites-manager";
import { requireFullAdminPage } from "@/lib/require-admin-page";

export const metadata: Metadata = {};

export default async function AdminInvitesPage() {
  await requireFullAdminPage();
  const invites = await listInvites();
  const appUrl = process.env["BETTER_AUTH_URL"] ?? "http://localhost:3000";

  return (
    <div className="space-y-6">
      <div>
        <h1 className="text-2xl font-bold tracking-tight">Invites</h1>
        <p className="text-muted-foreground text-sm mt-1">
          Generate shareable signup links. Required when signups are disabled in{" "}
          <span className="font-medium">Settings</span>.
        </p>
      </div>
      <InvitesManager
        invites={invites.map((i) => ({
          id: i.id,
          token: i.token,
          email: i.email,
          role: i.role,
          tier: i.tier,
          createdAt: i.createdAt.toISOString(),
          expiresAt: i.expiresAt?.toISOString() ?? null,
        }))}
        appUrl={appUrl}
      />
    </div>
  );
}
