Interface ISeedPermissionsRepository
- Namespace
- KadicAuth.Application.Permissions.Abstractions
- Assembly
- KadicAuth.Application.dll
public interface ISeedPermissionsRepository
Methods
AddModule(Module)
Encola un módulo. No persiste: hace falta SaveChangesAsync(CancellationToken).
void AddModule(Module module)
Parameters
moduleModule
AddPermission(Permission)
Encola un permiso. No persiste.
void AddPermission(Permission permission)
Parameters
permissionPermission
AddSubModule(SubModule)
Encola un submódulo. No persiste.
void AddSubModule(SubModule subModule)
Parameters
subModuleSubModule
BulkAssignToTenantRolesAsync(List<Guid>, List<Guid>, CancellationToken)
Task<int> BulkAssignToTenantRolesAsync(List<Guid> tenantRoleIds, List<Guid> permissionIds, CancellationToken ct = default)
Parameters
tenantRoleIdsList<Guid>permissionIdsList<Guid>ctCancellationToken
Returns
- Task<int>
CreatePermissionAsync(Permission, CancellationToken)
Task<Permission> CreatePermissionAsync(Permission permission, CancellationToken ct = default)
Parameters
permissionPermissionctCancellationToken
Returns
- Task<Permission>
CreateSubModuleAsync(SubModule, CancellationToken)
Task<SubModule> CreateSubModuleAsync(SubModule subModule, CancellationToken ct = default)
Parameters
subModuleSubModulectCancellationToken
Returns
- Task<SubModule>
ExecuteInTransactionAsync<T>(Func<CancellationToken, Task<T>>, CancellationToken)
Ejecuta work dentro de una transacción: o entra todo, o no
entra nada. Antes cada fila hacía su propio SaveChanges, así que un fallo
a mitad de siembra dejaba un estado parcial imposible de distinguir de uno bueno.
Task<T> ExecuteInTransactionAsync<T>(Func<CancellationToken, Task<T>> work, CancellationToken ct = default)
Parameters
workFunc<CancellationToken, Task<T>>ctCancellationToken
Returns
- Task<T>
Type Parameters
T
GetAllActiveTenantRoleIdsAsync(CancellationToken)
Task<List<Guid>> GetAllActiveTenantRoleIdsAsync(CancellationToken ct = default)
Parameters
ctCancellationToken
Returns
- Task<List<Guid>>
GetAllModuleKeysAsync(CancellationToken)
Task<HashSet<string>> GetAllModuleKeysAsync(CancellationToken ct)
Parameters
ctCancellationToken
Returns
- Task<HashSet<string>>
GetAllModulesByKeyAsync(CancellationToken)
Todos los módulos, indexados por ModuleKey (case-insensitive).
Task<Dictionary<string, Module>> GetAllModulesByKeyAsync(CancellationToken ct = default)
Parameters
ctCancellationToken
Returns
- Task<Dictionary<string, Module>>
GetAllPermissionsForDiffAsync(CancellationToken)
Task<Dictionary<string, (Guid Id, string Name, string? Description, Guid SubModuleId)>> GetAllPermissionsForDiffAsync(CancellationToken ct)
Parameters
ctCancellationToken
Returns
- Task<Dictionary<string, (Guid Id, string Name, string Description, Guid SubModuleId)>>
GetAllPermissionsTrackedAsync(CancellationToken)
Todos los permisos, rastreados por el contexto para poder actualizarlos.
Task<List<Permission>> GetAllPermissionsTrackedAsync(CancellationToken ct = default)
Parameters
ctCancellationToken
Returns
- Task<List<Permission>>
GetAllSubModulesAsync(CancellationToken)
Todos los submódulos, para indexar por (ModuleId, Slug).
Task<List<SubModule>> GetAllSubModulesAsync(CancellationToken ct = default)
Parameters
ctCancellationToken
Returns
- Task<List<SubModule>>
GetModuleByKeyAsync(string, CancellationToken)
Task<Module?> GetModuleByKeyAsync(string moduleKey, CancellationToken ct = default)
Parameters
moduleKeystringctCancellationToken
Returns
- Task<Module>
GetPermissionByCodeAsync(string, CancellationToken)
Task<Permission?> GetPermissionByCodeAsync(string code, CancellationToken ct = default)
Parameters
codestringctCancellationToken
Returns
- Task<Permission>
GetSubModuleBySlugAsync(Guid, string, CancellationToken)
Busca un submódulo por slug, ESCOPEADO al módulo dado. Distintos módulos pueden declarar submódulos con el mismo slug de forma legítima (ej. UiMenu espeja el nombre de cada feature real) — nunca buscar por slug sin filtrar por ModuleId, o se reutilizará por error el submódulo de otro módulo (bug real encontrado: UI_MENU."accounts-receivable" vs ADJUSTMENT."accounts-receivable").
Task<SubModule?> GetSubModuleBySlugAsync(Guid moduleId, string slug, CancellationToken ct = default)
Parameters
moduleIdGuidslugstringctCancellationToken
Returns
- Task<SubModule>
GetTenantRoleIdsAsync(List<Guid>?, List<string>?, List<Guid>?, CancellationToken)
IDs de tenant-roles activos, acotados a los tenants, códigos de rol o tenant-roles indicados. Los criterios se combinan con OR. Sin ninguno, devuelve vacío.
Task<List<Guid>> GetTenantRoleIdsAsync(List<Guid>? tenantIds, List<string>? roleCodes, List<Guid>? tenantRoleIds, CancellationToken ct = default)
Parameters
tenantIdsList<Guid>roleCodesList<string>tenantRoleIdsList<Guid>ctCancellationToken
Returns
- Task<List<Guid>>
GetUnassignedPermissionsAsync(CancellationToken)
Task<List<(Guid Id, string Code, string Name, string? SubModuleName)>> GetUnassignedPermissionsAsync(CancellationToken ct)
Parameters
ctCancellationToken
Returns
- Task<List<(Guid Id, string Code, string Name, string SubModuleName)>>
SaveChangesAsync(CancellationToken)
Persiste todo lo encolado en una sola operación.
Task<int> SaveChangesAsync(CancellationToken ct = default)
Parameters
ctCancellationToken
Returns
- Task<int>