namespace WalletService.Domain.Exceptions;

/// <summary>
/// EN: Exception thrown when account has insufficient points for a transaction
/// VI: Exception được ném khi tài khoản không đủ điểm cho giao dịch
/// </summary>
public class InsufficientPointsException : PointsDomainException
{
    public long AvailablePoints { get; }
    public long RequestedPoints { get; }

    public InsufficientPointsException(long availablePoints, long requestedPoints)
        : base($"Insufficient points. Available: {availablePoints:N0}, Requested: {requestedPoints:N0}")
    {
        AvailablePoints = availablePoints;
        RequestedPoints = requestedPoints;
    }
}
