namespace Tiku.Application.Auth; public sealed record IdentityProviderRequest( Guid TenantId, string Provider, string Identifier, string Secret, string? IpAddress, string? UserAgent); public sealed record IdentityProviderResult( string Provider, string Subject, string? Phone, string? Email, string? DisplayName); public interface IIdentityProvider { Task AuthenticateAsync( IdentityProviderRequest request, CancellationToken cancellationToken = default); }