namespace UniVerse.Application.Interfaces; public interface IMicrosoftAuthClient { Task ExchangeAuthorizationCodeAsync( string authorizationCode, string redirectUri, CancellationToken cancellationToken = default); Task SaveTokenCacheAsync(int userId, MicrosoftTokenResult result, CancellationToken cancellationToken = default); Task GetPhotoAsync(int userId, CancellationToken cancellationToken = default); Task RemoveTokenCacheAsync(int userId, CancellationToken cancellationToken = default); } public record MicrosoftTokenResult(string IdToken, byte[]? TokenCache = null, string? AccountId = null); public record MicrosoftPhotoResult(byte[] Content, string ContentType);