package org.knowm.xchange.coinbasepro.dto.marketdata;

import com.fasterxml.jackson.annotation.JsonProperty;
import java.math.BigDecimal;

public class CoinbaseProProduct {

  private final String id;
  private final String baseCurrency;
  private final String targetCurrency;
  private final BigDecimal baseMinSize;
  private final BigDecimal baseMaxSize;
  private final BigDecimal minMarketFunds;
  private final BigDecimal maxMarketFunds;
  private final BigDecimal baseIncrement;
  private final BigDecimal quoteIncrement;
  private final boolean limitOnly;
  private final String status;

  public CoinbaseProProduct(
      @JsonProperty("id") String id,
      @JsonProperty("base_currency") String baseCurrency,
      @JsonProperty("quote_currency") String targetCurrency,
      @JsonProperty("base_min_size") BigDecimal baseMinSize,
      @JsonProperty("base_max_size") BigDecimal baseMaxSize,
      @JsonProperty("min_market_funds") BigDecimal minMarketFunds,
      @JsonProperty("max_market_funds") BigDecimal maxMarketFunds,
      @JsonProperty("base_increment") BigDecimal baseIncrement,
      @JsonProperty("quote_increment") BigDecimal quoteIncrement,
      @JsonProperty("limit_only") boolean limitOnly,
      @JsonProperty("status") String status) {

    this.id = id;
    this.baseCurrency = baseCurrency;
    this.targetCurrency = targetCurrency;
    this.baseMinSize = baseMinSize;
    this.baseMaxSize = baseMaxSize;
    this.minMarketFunds = minMarketFunds;
    this.maxMarketFunds = maxMarketFunds;
    this.baseIncrement = baseIncrement;
    this.quoteIncrement = quoteIncrement;
    this.limitOnly = limitOnly;
    this.status = status;
  }

  public String getId() {

    return id;
  }

  public String getBaseCurrency() {

    return baseCurrency;
  }

  public String getTargetCurrency() {

    return targetCurrency;
  }

  public BigDecimal getBaseMinSize() {

    return baseMinSize;
  }

  public BigDecimal getBaseMaxSize() {

    return baseMaxSize;
  }

  public BigDecimal getBaseIncrement() {
    return baseIncrement;
  }

  public BigDecimal getQuoteIncrement() {

    return quoteIncrement;
  }

  public BigDecimal getMinMarketFunds() {
    return minMarketFunds;
  }

  public BigDecimal getMaxMarketFunds() {
    return maxMarketFunds;
  }

  public boolean isLimitOnly() {
    return limitOnly;
  }

  public String getStatus() {
    return status;
  }
}

@@ -102,16 +102,17 @@
 operty;%0A
+%0A
 import j
@@ -546,25 +546,136 @@
 boolean 
-limitOnly
+cancelOnly;%0A  private final boolean limitOnly;%0A  private final boolean postOnly;%0A  private final boolean tradingDisabled
 ;%0A  priv
@@ -731,24 +731,28 @@
 duct(%0A      
+    
 @JsonPropert
@@ -768,32 +768,36 @@
 tring id,%0A      
+  
+  
 @JsonProperty(%22b
@@ -830,32 +830,36 @@
 Currency,%0A      
+   
+ 
 @JsonProperty(%22q
@@ -893,24 +893,28 @@
 etCurrency,%0A
+    
       @JsonP
@@ -960,32 +960,36 @@
 eMinSize,%0A      
+    
 @JsonProperty(%22b
@@ -1023,24 +1023,28 @@
 aseMaxSize,%0A
+    
       @JsonP
@@ -1096,32 +1096,36 @@
 ketFunds,%0A      
+   
+ 
 @JsonProperty(%22m
@@ -1165,24 +1165,28 @@
 arketFunds,%0A
+    
       @JsonP
@@ -1235,32 +1235,36 @@
 ncrement,%0A      
+    
 @JsonProperty(%22q
@@ -1317,55 +1317,246 @@
     
-@JsonProperty(%22limit_only%22) boolean limitOnly,%0A
+    @JsonProperty(%22cancel_only%22) boolean cancelOnly,%0A          @JsonProperty(%22limit_only%22) boolean limitOnly,%0A          @JsonProperty(%22post_only%22) boolean postOnly,%0A          @JsonProperty(%22trading_disabled%22) boolean tradingDisabled,%0A    
     
@@ -1948,29 +1948,137 @@
 his.
-limitOnly = limitOnly
+cancelOnly = cancelOnly;%0A    this.limitOnly = limitOnly;%0A    this.postOnly = postOnly;%0A    this.tradingDisabled = tradingDisabled
 ;%0A  
@@ -2747,42 +2747,234 @@
 n is
-LimitOnly() %7B%0A    return limitOnly
+CancelOnly() %7B%0A    return cancelOnly;%0A  %7D%0A%0A  public boolean isLimitOnly() %7B%0A    return limitOnly;%0A  %7D%0A%0A  public boolean isPostOnly() %7B%0A    return postOnly;%0A  %7D%0A%0A  public boolean isTradingDisabled() %7B%0A    return tradingDisabled
 ;%0A  

Add missing fields