import type { Metadata } from "next";
import { requirePermission } from "@/lib/auth/session";
import { getAdminUsers, getRolePicker } from "@/lib/admin/queries";
import { PageHeader } from "@/components/ui/PageHeader";
import { AdminTabs } from "../AdminTabs";
import { UsersManager } from "./UsersManager";

export const metadata: Metadata = { title: "Nutzerverwaltung" };

export default async function AdminUsersPage() {
  const session = await requirePermission("admin.users");
  const perms = session.user.permissions ?? [];

  const [users, roles] = await Promise.all([getAdminUsers(), getRolePicker()]);

  return (
    <div className="flex flex-col gap-5">
      <PageHeader
        eyebrow="Admin"
        title="Nutzerkonten"
        description="Benutzerkonten anlegen, Rollen, Vorgesetzte & Urlaubstage festlegen, Passwörter zurücksetzen, sperren & löschen."
      />
      <AdminTabs allowed={perms} />
      <UsersManager users={users} roles={roles} />
    </div>
  );
}
