import { AdminPageHeader } from "@/components/admin/AdminBreadcrumbs";
import { AdminTable } from "@/components/admin/AdminTable";
import { EmptyState } from "@/components/admin/EmptyState";
import { formatDate } from "@/lib/client-api";
import { auditService } from "@/modules/admin";

export const dynamic = "force-dynamic";
export const metadata = { title: "Reports · Admin" };

export default async function AdminReportsPage() {
  const logs = await auditService.list(200);
  return (
    <div className="space-y-6">
      <AdminPageHeader
        breadcrumbs={[{ label: "Admin", href: "/admin" }, { label: "Reports" }]}
        title="Reports"
        description="Recent admin actions across the platform."
      />
      {logs.length === 0 ? (
        <EmptyState
          title="No activity recorded"
          description="Admin actions will appear here once performed."
        />
      ) : (
        <AdminTable
          rows={logs}
          rowKey={(l) => l.id}
          columns={[
            { key: "action", header: "Action", render: (l) => l.action },
            {
              key: "resource",
              header: "Resource",
              render: (l) => (
                <span className="text-xs">
                  {l.resourceType}
                  {l.resourceLabel ? ` · ${l.resourceLabel}` : ""}
                </span>
              ),
            },
            {
              key: "actor",
              header: "Actor",
              render: (l) => <span className="text-xs">{l.actorEmail}</span>,
            },
            {
              key: "time",
              header: "When",
              render: (l) => (
                <span className="text-xs text-muted">
                  {formatDate(l.createdAt)}
                </span>
              ),
            },
          ]}
        />
      )}
    </div>
  );
}