using Thalos.DAL.Contracts;
namespace Thalos.DAL.Repositories;
///
/// Defines aggregate repository boundary for identity persistence operations.
///
public interface IIdentityRepository
{
///
/// Reads token issuance record data for a subject and tenant scope.
///
/// Token lookup request contract.
/// Cancellation token.
/// Token record when found; otherwise null.
Task ReadIdentityTokenAsync(
IdentityTokenLookupRequest request,
CancellationToken cancellationToken = default);
///
/// Reads policy context data required for authorization checks.
///
/// Policy lookup request contract.
/// Cancellation token.
/// Policy record when found; otherwise null.
Task ReadIdentityPolicyAsync(
IdentityPolicyLookupRequest request,
CancellationToken cancellationToken = default);
///
/// Reads permission set data for subject and tenant scope.
///
/// Permission set lookup request contract.
/// Cancellation token.
/// Permission records for the requested scope.
Task> ReadPermissionSetAsync(
IdentityPermissionSetLookupRequest request,
CancellationToken cancellationToken = default);
}