import type { Metadata } from "next";
import { requirePermission } from "@/lib/auth/session";
import { getAdminTeams, getUserPicker, getBoardPicker } from "@/lib/admin/queries";
import { PageHeader } from "@/components/ui/PageHeader";
import { AdminTabs } from "../AdminTabs";
import { TeamsManager } from "./TeamsManager";

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

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

  const [teams, users, boards] = await Promise.all([
    getAdminTeams(),
    getUserPicker(),
    getBoardPicker(),
  ]);

  return (
    <div className="flex flex-col gap-5">
      <PageHeader
        eyebrow="Administration"
        title="Teams"
        description="Teams erstellen, Mitglieder zuweisen und Kanban-Boards freischalten — inkl. automatischem Team-Kanal."
      />
      <AdminTabs allowed={perms} />
      <TeamsManager teams={teams} users={users} boards={boards} />
    </div>
  );
}
