'use client'

import { useUserSession } from './session-context'
import type { RoleCode } from './permissions-shared'

export { useUserSession } from './session-context'

const ROLE_HIERARCHY: Record<RoleCode, number> = {
  extern:      0,
  readonly:    1,
  consultant:  2,
  admin:       3,
  masteradmin: 4,
}

export function usePermission(permission: string): boolean {
  const session = useUserSession()
  if (!session) return false
  return session.permissions.includes(permission)
}

export function useRole(): RoleCode | null {
  const session = useUserSession()
  return session?.role ?? null
}

export function useIsAdmin(): boolean {
  const session = useUserSession()
  if (!session) return false
  return ROLE_HIERARCHY[session.role] >= ROLE_HIERARCHY['admin']
}

export function useIsMasteradmin(): boolean {
  const session = useUserSession()
  return session?.role === 'masteradmin'
}
