import { useAuthStore } from '@/store/auth.store'

/**
 * Hook helper per accedere all'utente corrente e ai permessi.
 *
 * Gerarchia ruoli:
 *   super_admin > admin > supervisor > operator > readonly
 *
 * Supervisor:
 *   - Lettura implicita su tutte le caselle del tenant
 *   - Invio solo se ha permesso esplicito can_send sulla casella
 *   - Non puo' gestire caselle, utenti, permessi o impostazioni
 */
export function useAuth() {
  const user = useAuthStore((s) => s.user)
  const isAuthenticated = useAuthStore((s) => s.isAuthenticated)
  const isLoading = useAuthStore((s) => s.isLoading)
  const logout = useAuthStore((s) => s.logout)

  const isAdmin = user?.role === 'admin' || user?.role === 'super_admin'
  const isSuperAdmin = user?.role === 'super_admin'
  const isSupervisor = user?.role === 'supervisor'
  const isSupervisorOrAdmin = isAdmin || isSupervisor
  const canSend = user?.role !== 'readonly'
  const canManage = isAdmin

  return {
    user,
    isAuthenticated,
    isLoading,
    isAdmin,
    isSuperAdmin,
    isSupervisor,
    isSupervisorOrAdmin,
    canSend,
    canManage,
    logout,
  }
}
