import { requireRole } from "@/lib/authorization";
import { UserRole } from "@/generated/prisma/enums";
import { listAllPlugins, syncPluginsFromRegistry } from "@/lib/plugins/server";
import PluginToggleTable from "./_components/PluginToggleTable";

export const dynamic = "force-dynamic";

export default async function PluginsAdminPage() {
  await requireRole([UserRole.ADMIN]);
  // S'assure que tous les plugins du registry sont en DB.
  await syncPluginsFromRegistry();
  const plugins = await listAllPlugins();

  return (
    <div className="mx-auto max-w-5xl px-4 py-8 sm:px-6 lg:px-8">
      <h1 className="text-2xl font-semibold">Plugins Karbé</h1>
      <p className="mt-2 text-sm text-gray-600">
        Active ou désactive chaque module. Les changements prennent effet immédiatement (cache 5 s).
        L&apos;onEnable/onDisable est exécuté avant la bascule.
      </p>
      <div className="mt-6">
        <PluginToggleTable plugins={plugins} />
      </div>
    </div>
  );
}
