import { useQuery } from '@tanstack/react-query'
import { api } from '@/lib/api'

export interface MeResponse {
  sub: string
  name: string
  email: string
  roles: string[]
  orgId: string | null
  /** AppUser.OrganizationId ссылается на живую (не архивную) Organization.
   * Если false для не-SuperAdmin — UI редиректит на /no-organization. */
  hasLiveOrg: boolean
  /** Активный Employee текущего AppUser в его Organization. False → orphan. */
  hasActiveEmployee: boolean
}

/** Текущий залогиненный юзер с ролями. Используется для гейтов
 * SuperAdmin-меню и проверок прав в UI (не вместо серверной авторизации). */
export function useMe() {
  return useQuery({
    queryKey: ['me'],
    queryFn: async () => (await api.get<MeResponse>('/api/me')).data,
    staleTime: 5 * 60 * 1000,
  })
}

export function useIsSuperAdmin(): boolean {
  const me = useMe()
  return !!me.data?.roles?.includes('SuperAdmin')
}
