using Domain.Entities.Wallets.ValueObject;

namespace Application.Features.Admin.Member.Wallet.Transactions.Get;

public sealed class Response
{
    public int ID { get; init; }
    public Guid WalletKey { get; init; }
    public int WalletID { get; init; }
    public int MemberID { get; init; }
    public required string MemberEmail { get; init; }
    public string? MemberName { get; init; }
    public long WalletBalance { get; init; }
    public long WalletDonationBalance { get; init; }
    public WalletTransactionType TxType { get; init; }
    public WalletBalanceType BalanceType { get; init; }
    public long Amount { get; init; }
    public long BalanceAfter { get; init; }
    public required string Reason { get; init; }
    public string? RefID { get; init; }
    public string? UserID { get; init; }
    public string? Memo { get; init; }
    public DateTime CreatedAt { get; init; }
}