Table of Contents

Namespace KadicAuth.Application.Catalog.Abstractions

Classes

CatalogDependencyItem

Un elemento que impide desactivar algo del catalogo.

ModuleDependencies

Lo que impide desactivar un modulo.

PermissionDependencies

Lo que impide desactivar o borrar un permiso.

SubModuleDependencies

Lo que impide desactivar un submodulo.

Interfaces

ICatalogDependencyService

Responde "que se rompe si desactivo esto" para los tres niveles del catalogo de Auth.

Antes de esto no existia ninguna comprobacion: desactivar un modulo no miraba sus submodulos ni los tenants que lo tenian contratado, y los dejaba activos colgando de algo inactivo.

Se usa en dos sitios y por eso devuelve el detalle en vez de un booleano: las guardas de los handlers (que construyen el 409) y los endpoints GET .../dependencies, que permiten a la UI avisar antes de que el usuario pulse.

Importante: todas las consultas ignoran los filtros globales de tenant. `AuthDbContext` aplica un filtro por `TenantId` a toda entidad que tenga esa propiedad, lo que incluye TenantModules, TenantSubModules y TenantRoles. Sin `IgnoreQueryFilters()` un PlatformAdmin solo veria las dependencias de SU tenant y la guarda diria "sin dependencias" en falso, que es justo el fallo que viene a evitar.