"use client"

import { useAuthStore } from "@/lib/api/auth-store"
import { useCurrentUser } from "@/lib/api/hooks/use-current-user"
import { adminScopesFromToken, isPlatformAdminFromToken } from "@/lib/auth/admin"

/** Matches AdminAccessGuard: token groups or platform_admin from /users/me. */
export function usePlatformAdminAccess() {
  const token = useAuthStore((s) => s.accessToken)
  const { data: me, isFetched: meFetched } = useCurrentUser()
  const scopes = adminScopesFromToken(token)
  const fromToken = isPlatformAdminFromToken(token) || scopes.read
  const fromAccount = me?.platform_admin === true
  return {
    isAdmin: fromToken || fromAccount,
    /** Wait for /users/me when token alone is not enough to decide admin access. */
    adminReady: fromToken || meFetched,
  }
}
