namespace Meezi.Core.Interfaces;

public record TaraInitResult(bool Success, string? TraceNumber, string? PaymentUrl, string? ErrorMessage);

public record TaraVerifyResult(bool Success, string? RefId, string? ErrorMessage);

public interface ITaraPaymentGateway
{
    Task<bool> IsEnabledAsync(CancellationToken cancellationToken = default);
    Task<TaraInitResult> RequestPaymentAsync(
        long amountRials,
        string invoiceNumber,
        string callbackUrl,
        CancellationToken cancellationToken = default);
    Task<TaraVerifyResult> VerifyPaymentAsync(
        string traceNumber,
        CancellationToken cancellationToken = default);
}
