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<IdentityProviderResult> AuthenticateAsync(
        IdentityProviderRequest request,
        CancellationToken cancellationToken = default);
}