// src/hooks/usePermissions.ts
import { useAuth } from '../contexts/AuthContext';

export const usePermissions = () => {
  const { user } = useAuth(); // user aquí es de tipo UserContextData | null

  const tienePermiso = (codigoPermisoRequerido: string): boolean => {
    if (!user) { // Si no hay usuario logueado
      return false;
    }
    if (user.esSuperAdmin) { // SuperAdmin tiene todos los permisos
      return true;
    }
    // Verificar si la lista de permisos del usuario incluye el código requerido
    return user.permissions?.includes(codigoPermisoRequerido) ?? false;
  };

  // También puede exportar el objeto user completo si se necesita en otros lugares
  // o propiedades específicas como idPerfil, esSuperAdmin.
  return {
    tienePermiso,
    isSuperAdmin: user?.esSuperAdmin ?? false,
    idPerfil: user?.idPerfil ?? 0,
    currentUser: user
  };
};