All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.xeiam.xchange.coinsetter.dto.financialtransaction.CoinsetterFinancialTransaction Maven / Gradle / Ivy

package com.xeiam.xchange.coinsetter.dto.financialtransaction;

import java.math.BigDecimal;
import java.util.Date;
import java.util.UUID;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * A specified financial transaction.
 */
public class CoinsetterFinancialTransaction {

  private final UUID uuid;
  private final UUID customerUuid;
  private final UUID accountUuid;
  private final BigDecimal amount;
  private final String amountDenomination;
  private final BigDecimal originalAmount;
  private final String originalAmountDenomination;
  private final UUID orderId;
  private final String orderNumber;
  private final String referenceNumber;
  private final String transactionCategoryDescription;
  private final String transactionCategoryName;
  private final String transferTypeDescription;
  private final String transferTypeName;
  private final Date createDate;

  /**
   * @param uuid Financial transaction UUID
   * @param customerUuid Customer UUID
   * @param accountUuid Account UUID
   * @param amount Transaction amount
   * @param amountDenomination Currency code of amount
   * @param originalAmount Original amount before exchange into account currency
   * @param originalAmountDenomination Currency code of original transaction
   * @param orderId Order id if an order created this financial transaction (i.e. commission, realized P/L, etc.)
   * @param orderNumber Order # if an order created this financial transaction (i.e. commission, realized P/L, etc.)
   * @param referenceNumber Reference # for external transactions (i.e. wire #, ACH #, etc.)
   * @param transactionCategoryDescription Transaction category description
   * @param transactionCategoryName Transaction category name (i.e. "Deposit", "Withdrawal", "Commission", etc.)
   * @param transferTypeDescription Transfer type description
   * @param transferTypeName Transfer type name
   * @param createDate Date/time of creation (format = "dd/MM/yyyy HH:mm:ss.SSS")
   */
  public CoinsetterFinancialTransaction(@JsonProperty("uuid") UUID uuid, @JsonProperty("customerUuid") UUID customerUuid,
      @JsonProperty("accountUuid") UUID accountUuid, @JsonProperty("amount") BigDecimal amount,
      @JsonProperty("amountDemonination") String amountDenomination, @JsonProperty("originalAmount") BigDecimal originalAmount,
      @JsonProperty("originalAmountdenomination") String originalAmountDenomination, @JsonProperty("orderId") UUID orderId,
      @JsonProperty("orderNumber") String orderNumber, @JsonProperty("referenceNumber") String referenceNumber,
      @JsonProperty("transactionCategoryDescription") String transactionCategoryDescription,
      @JsonProperty("transactionCategoryName") String transactionCategoryName,
      @JsonProperty("transferTypeDescription") String transferTypeDescription, @JsonProperty("transferTypeName") String transferTypeName,
      @JsonProperty("createDate") @JsonFormat(pattern = "dd/MM/yyyy HH:mm:ss.SSS", timezone = "EST", locale = "us") Date createDate) {

    super();
    this.uuid = uuid;
    this.customerUuid = customerUuid;
    this.accountUuid = accountUuid;
    this.amount = amount;
    this.amountDenomination = amountDenomination;
    this.originalAmount = originalAmount;
    this.originalAmountDenomination = originalAmountDenomination;
    this.orderId = orderId;
    this.orderNumber = orderNumber;
    this.referenceNumber = referenceNumber;
    this.transactionCategoryDescription = transactionCategoryDescription;
    this.transactionCategoryName = transactionCategoryName;
    this.transferTypeDescription = transferTypeDescription;
    this.transferTypeName = transferTypeName;
    this.createDate = createDate;
  }

  public UUID getUuid() {

    return uuid;
  }

  public UUID getCustomerUuid() {

    return customerUuid;
  }

  public UUID getAccountUuid() {

    return accountUuid;
  }

  public BigDecimal getAmount() {

    return amount;
  }

  public String getAmountDenomination() {

    return amountDenomination;
  }

  public BigDecimal getOriginalAmount() {

    return originalAmount;
  }

  public String getOriginalAmountDenomination() {

    return originalAmountDenomination;
  }

  public UUID getOrderId() {

    return orderId;
  }

  public String getOrderNumber() {

    return orderNumber;
  }

  public String getReferenceNumber() {

    return referenceNumber;
  }

  public String getTransactionCategoryDescription() {

    return transactionCategoryDescription;
  }

  public String getTransactionCategoryName() {

    return transactionCategoryName;
  }

  public String getTransferTypeDescription() {

    return transferTypeDescription;
  }

  public String getTransferTypeName() {

    return transferTypeName;
  }

  public Date getCreateDate() {

    return createDate;
  }

  @Override
  public String toString() {

    return "CoinsetterFinancialTransaction [uuid=" + uuid + ", customerUuid=" + customerUuid + ", accountUuid=" + accountUuid + ", amount=" + amount
        + ", amountDenomination=" + amountDenomination + ", originalAmount=" + originalAmount + ", originalAmountDenomination="
        + originalAmountDenomination + ", orderId=" + orderId + ", orderNumber=" + orderNumber + ", referenceNumber=" + referenceNumber
        + ", transactionCategoryDescription=" + transactionCategoryDescription + ", transactionCategoryName=" + transactionCategoryName
        + ", transferTypeDescription=" + transferTypeDescription + ", transferTypeName=" + transferTypeName + ", createDate=" + createDate + "]";
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy