namespace Thalos.Domain.Contracts;

/// <summary>
/// Domain input describing policy context and granted permissions for evaluation.
/// </summary>
/// <param name="SubjectId">Identity subject identifier.</param>
/// <param name="PermissionCode">Permission code being evaluated.</param>
/// <param name="ContextSatisfied">Whether contextual constraints are satisfied.</param>
/// <param name="GrantedPermissions">Permissions granted to subject in tenant scope.</param>
public sealed record IdentityPolicyContextData(
    string SubjectId,
    string PermissionCode,
    bool ContextSatisfied,
    IReadOnlyCollection<string> GrantedPermissions);
