using GB5Shared.DTO.Framework.Login; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace EAIAdminBLL.EAIContextResolver { /// Resolves every active MEAICONTEXTKEYDEFINITION to a single value for one /// (Tenant, User) request, applying the tier-weight/Priority ranking documented on /// ResolveContextAsync. Called from POST /EAIAdmin/ResolveContext (gbEAI calling back into /// GB5) and available for any future in-process caller. public interface IEAIContextResolver { /// Tier weight per ScopeLevel: Global=0, ClientAttribute=1, Client=2, /// Role=3, OU=3 (co-equal, broken by Priority), User=4. Additive keys concatenate every /// match ordered (tier asc, Priority asc); Override keys take the single best match /// ordered (tier desc, Priority desc, ModifiedOn desc). Returns {ContextKey: ResolvedValue} /// for every active key that had at least one matching setting. Task> ResolveContextAsync( int tenantId, int userId, LoginDTO login, CancellationToken ct = default); } }