package jesse.keeblarcraft.BankMgr;

import jesse.keeblarcraft.Utils.CommonStructures.Pair;

// All details that involve a transaction attempt
public class TransactionMetadata {
    public enum TRANSACTION_TYPE {
        DEBIT,
        CREDIT,
        WITHDRAWAL,
        DEPOSIT,
        OTHER
    }

    public Pair<String, String> fromParty; // Account ID
    public Pair<String, String> toParty; // Account ID or party (like ATM/self,etc)
    public Integer amount;
    public String transactionId;
    public TRANSACTION_TYPE transactionType;
    public String reason;

    public TransactionMetadata(TRANSACTION_TYPE transactionType, Pair<String, String> fromParty, Pair<String, String> toParty, Integer amount, String reason, String transactionId) {
        this.transactionType = transactionType;
        this.transactionId = transactionId;
        this.amount = amount;
        this.toParty = toParty;
        this.fromParty = fromParty;
        this.reason = reason;
    }
}
