import { adminGet } from "@/lib/api/admin-gateway";
import { NodesTable } from "@/components/admin/NodesTable";

export const dynamic = "force-dynamic";
export const revalidate = 0;

interface V2Node {
  id: string;
  name: string;
  status: "Online" | "Busy" | "Offline" | "Draining";
  last_heartbeat: string;
  active_job_id: string | null;
  slots_total: number;
  slots_used: number;
  version: string | null;
  tags: string[] | null;
}

interface V2NodeList {
  items: V2Node[];
  total: number;
}

export default async function AdminNodesPage() {
  const data = await adminGet<V2NodeList>("/v1/nodes?pageSize=100");
  const nodes = data?.items ?? [];

  return (
    <div className="space-y-6">
      <div className="flex items-center justify-between">
        <div>
          <h1 className="text-xl font-semibold text-white">Render Nodes</h1>
          <p className="mt-1 text-sm text-gray-500">
            {nodes.length} node{nodes.length !== 1 ? "s" : ""} registered
          </p>
        </div>
      </div>
      <NodesTable nodes={nodes} />
    </div>
  );
}
