namespace WalletService.Domain.Exceptions;

/// <summary>
/// EN: Exception thrown when wallet has insufficient balance for a transaction
/// VI: Exception được ném khi ví không đủ số dư cho giao dịch
/// </summary>
public class InsufficientBalanceException : WalletDomainException
{
    public decimal CurrentBalance { get; }
    public decimal RequestedAmount { get; }

    public InsufficientBalanceException(decimal currentBalance, decimal requestedAmount)
        : base($"Insufficient balance. Current: {currentBalance:N0}, Requested: {requestedAmount:N0}")
    {
        CurrentBalance = currentBalance;
        RequestedAmount = requestedAmount;
    }
}
