/** تیم و دسترسی‌ها (فقط مدیر عامل) */
import { AdminHeader } from "@/components/admin/ui";
import { TeamManager, type Member } from "@/components/admin/TeamManager";
import { db } from "@/lib/db";
import { requireStaffPage } from "@/server/admin/guard";

export const metadata = { title: "تیم و دسترسی‌ها" };
export const dynamic = "force-dynamic";

export default async function TeamPage() {
  const me = await requireStaffPage("/admin/team", "team");
  const rows = await db.user.findMany({ where: { role: { in: ["OWNER", "ADMIN", "STAFF"] } }, orderBy: [{ role: "desc" }, { createdAt: "asc" }] });
  const members: Member[] = rows.map((u) => ({
    id: u.id,
    phone: u.phone,
    name: u.name,
    role: u.role as Member["role"],
    permissions: u.permissions,
    lastLoginAt: u.lastLoginAt?.toISOString() ?? null,
    locked: !!u.lockedUntil && u.lockedUntil > new Date(),
    hasPassword: !!u.passwordHash,
  }));
  return (
    <>
      <AdminHeader title="تیم و دسترسی‌ها" description="هر عضو فقط بخش‌هایی را می‌بیند که این‌جا برایش انتخاب کنید. ورود اعضا با شماره موبایل و رمز از /admin/login است." />
      <TeamManager members={members} meId={me.id} />
    </>
  );
}
