namespace WalletService.API.Application.Commands;

using MediatR;

/// <summary>
/// EN: Command to deposit money into a wallet
/// VI: Command để nạp tiền vào ví
/// </summary>
public record DepositCommand(
    Guid UserId,
    decimal Amount,
    string Description,
    string? ReferenceId = null
) : IRequest<TransactionResult>;

public record TransactionResult(
    Guid TransactionId,
    Guid WalletId,
    decimal Amount,
    string Currency,
    string Type,
    decimal BalanceAfter,
    DateTime CreatedAt
);
