import { AdminShell } from "@/components/admin/admin-shell";
import { AdminTable, StatusPill } from "@/components/admin/admin-ui";
import { prisma } from "@/lib/db";
import { formatDate } from "@/lib/utils";

export const dynamic = "force-dynamic";

export default async function ProvisioningJobsPage() {
  const instances = await prisma.instance.findMany({ include: { user: true }, orderBy: { updated_at: "desc" } });
  return (
    <AdminShell>
      <div className="mx-auto max-w-7xl space-y-6">
        <h1 className="text-3xl font-bold">Provisioning Jobs</h1>
        <AdminTable
          headers={["Job", "Tenant", "Status", "Compose", "Updated at", "Last error"]}
          rows={instances.map((instance) => [
            `${instance.app_type}:${instance.slug}`,
            instance.user.email,
            <StatusPill key="status" tone={instance.status === "RUNNING" ? "green" : instance.status === "ERROR" ? "red" : "amber"}>{instance.status}</StatusPill>,
            instance.dokploy_compose_id || "-",
            formatDate(instance.updated_at),
            instance.last_error || "-"
          ])}
        />
      </div>
    </AdminShell>
  );
}
