class LatokenOrder extends LatokenNewOrder {

  private final LatokenOrderStatus latokenOrderStatus;
  private final BigDecimal executedAmount;
  private final BigDecimal reaminingAmount;
  private final Date timeCreated;
  private final Date timeFilled;

  /**
   * C'tor
   *
   * @param orderId
   * @param clientOrderId
   * @param pairId
   * @param symbol
   * @param side
   * @param type
   * @param price
   * @param amount
   */
  public LatokenOrder(
      @JsonProperty("orderId") String orderId,
      @JsonProperty("cliOrdId") String clientOrderId,
      @JsonProperty("pairId") long pairId,
      @JsonProperty("symbol") String symbol,
      @JsonProperty("side") String side,
      @JsonProperty("orderType") String type,
      @JsonProperty("price") BigDecimal price,
      @JsonProperty("amount") BigDecimal amount,
      @JsonProperty("orderStatus") String orderStatus,
      @JsonProperty("executedAmount") BigDecimal executedAmount,
      @JsonProperty("reaminingAmount") BigDecimal reaminingAmount,
      @JsonProperty("timeCreated") long timeCreated,
      @JsonProperty("timeFilled") long timeFilled) {

    super(orderId, clientOrderId, pairId, symbol, side, type, price, amount);
    this.latokenOrderStatus = LatokenOrderStatus.parse(orderStatus);
    this.executedAmount = executedAmount;
    this.reaminingAmount = reaminingAmount;
    this.timeCreated = new Date(timeCreated);
    this.timeFilled = new Date(timeFilled);
  }

  /**
   * Order status
   *
   * @return
   */
  public LatokenOrderStatus getOrderStatus() {
    return latokenOrderStatus;
  }

  /**
   * Amount of order filled
   *
   * @return
   */
  public BigDecimal getExecutedAmount() {
    return executedAmount;
  }

  /**
   * Amount of order available for execution
   *
   * @return
   */
  public BigDecimal getReaminingAmount() {
    return reaminingAmount;
  }

  /**
   * Time of order creation
   *
   * @return
   */
  public Date getTimeCreated() {
    return timeCreated;
  }

  /**
   * Time when order is filled (or {@code null})
   *
   * @return
   */
  public Date getTimeFilled() {
    return timeFilled;
  }

  @Override
  public String toString() {<FILL_FUNCTION_BODY>}
}

    return "LatokenOrder [latokenOrderStatus = "
        + latokenOrderStatus
        + ", executedAmount = "
        + executedAmount
        + ", reaminingAmount = "
        + reaminingAmount
        + ", timeCreated = "
        + timeCreated
        + ", timeFilled = "
        + timeFilled
        + super.toString()
        + "]";
  
<methods>public void <init>(java.lang.String, java.lang.String, long, java.lang.String, java.lang.String, java.lang.String, java.math.BigDecimal, java.math.BigDecimal) ,public java.math.BigDecimal getAmount() ,public java.lang.String getClientOrderId() ,public java.lang.String getOrderId() ,public long getPairId() ,public java.math.BigDecimal getPrice() ,public org.knowm.xchange.latoken.dto.trade.LatokenOrderSide getSide() ,public java.lang.String getSymbol() ,public org.knowm.xchange.latoken.dto.trade.OrderSubclass getType() ,public java.lang.String toString() <variables>private final non-sealed java.math.BigDecimal amount,private final non-sealed java.lang.String clientOrderId,private final non-sealed java.lang.String orderId,private final non-sealed long pairId,private final non-sealed java.math.BigDecimal price,private final non-sealed org.knowm.xchange.latoken.dto.trade.LatokenOrderSide side,private final non-sealed java.lang.String symbol,private final non-sealed org.knowm.xchange.latoken.dto.trade.OrderSubclass type