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

com.xeiam.xchange.loyalbit.dto.trade.LoyalbitUserTransaction Maven / Gradle / Ivy

The newest version!
package com.xeiam.xchange.loyalbit.dto.trade;

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

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;

import si.mazi.rescu.ExceptionalReturnContentException;
import si.mazi.rescu.serialization.jackson.serializers.FloatingTimestampDeserializer;

/**
 * @author Matija Mazi
 */
public final class LoyalbitUserTransaction {

  @JsonProperty("id")
  Long id;
  @JsonProperty("order_id")
  Long orderId;
  @JsonProperty("microtime")
  @JsonDeserialize(using = FloatingTimestampDeserializer.class)
  Date microtime;
  @JsonProperty("type")
  LoyalbitOrder.Type type;
  @JsonProperty("amount")
  BigDecimal amount;
  @JsonProperty("price")
  BigDecimal price;
  @JsonProperty("subtotal")
  BigDecimal subtotal;
  @JsonProperty("fee")
  BigDecimal fee;
  @JsonProperty("feeUSD")
  BigDecimal feeUSD;
  @JsonProperty("total")
  BigDecimal total;

  public LoyalbitUserTransaction(@JsonProperty("id") Long id, @JsonProperty("order_id") Long orderId,
      @JsonProperty("microtime") @JsonDeserialize(using = FloatingTimestampDeserializer.class) Date microtime,
      @JsonProperty("type") LoyalbitOrder.Type type, @JsonProperty("amount") BigDecimal amount, @JsonProperty("price") BigDecimal price,
      @JsonProperty("subtotal") BigDecimal subtotal, @JsonProperty("fee") BigDecimal fee, @JsonProperty("feeUSD") BigDecimal feeUSD,
      @JsonProperty("total") BigDecimal total, @JsonProperty("status") Integer status) throws ExceptionalReturnContentException {
    if (Objects.equals(status, 0)) {
      throw new ExceptionalReturnContentException("Status indicates failure: " + status);
    }
    this.id = id;
    this.orderId = orderId;
    this.microtime = microtime;
    this.type = type;
    this.amount = amount;
    this.price = price;
    this.subtotal = subtotal;
    this.fee = fee;
    this.feeUSD = feeUSD;
    this.total = total;
  }

  public Long getId() {
    return id;
  }

  public Long getOrderId() {
    return orderId;
  }

  public Date getMicrotime() {
    return microtime;
  }

  public LoyalbitOrder.Type getType() {
    return type;
  }

  public BigDecimal getAmount() {
    return amount;
  }

  public BigDecimal getPrice() {
    return price;
  }

  public BigDecimal getSubtotal() {
    return subtotal;
  }

  public BigDecimal getFee() {
    return fee;
  }

  public BigDecimal getFeeUSD() {
    return feeUSD;
  }

  public BigDecimal getTotal() {
    return total;
  }

  @Override
  public String toString() {
    return "LoyalbitUserTransaction{" + "id=" + id + ", order_id=" + orderId + ", microtime=" + microtime + ", type=" + type + ", amount=" + amount
        + ", price=" + price + ", subtotal=" + subtotal + ", fee=" + fee + ", feeUSD=" + feeUSD + ", total=" + total + '}';
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy