diff --git a/changes.md b/changes.md index d7144499e1..c055a88c92 100644 --- a/changes.md +++ b/changes.md @@ -4,6 +4,7 @@ Added Type(s) - added type `CartLock` +- added type `FreezeStrategy` - added type `CartLockCartAction` - added type `CartSetPurchaseOrderNumberAction` - added type `CartUnlockCartAction` @@ -15,8 +16,10 @@
Added Property(s) +- added property `freezeStrategy` to type `Cart` - added property `lock` to type `Cart` - added property `purchaseOrderNumber` to type `Cart` - added property `purchaseOrderNumber` to type `CartDraft` +- added property `strategy` to type `CartFreezeCartAction`
diff --git a/commercetools/commercetools-graphql-api/src/main/resources/graphql/schema.graphqls b/commercetools/commercetools-graphql-api/src/main/resources/graphql/schema.graphqls index c530a8bc32..04fc4941bc 100644 --- a/commercetools/commercetools-graphql-api/src/main/resources/graphql/schema.graphqls +++ b/commercetools/commercetools-graphql-api/src/main/resources/graphql/schema.graphqls @@ -1835,6 +1835,7 @@ type Cart implements Versioned & ReferenceExpandable { shippingCustomFields: CustomFieldsType discountTypeCombination: DiscountTypeCombination cartState: CartState! + freezeStrategy: FreezeStrategy key: String lock: CartLock custom: CustomFieldsType @@ -4978,8 +4979,21 @@ input FixedPriceDiscountValueInput { money: [CartDiscountValueBaseMoneyInput!]! } +enum FreezeStrategy { + """ + More lenient version of a Cart freeze (See [Freeze a Cart](https://docs.commercetools.com/api/carts-orders-overview#freeze-a-cart) for details). + """ + SoftFreeze + + """ + Stricter version of a Cart freeze (See [Freeze a Cart](https://docs.commercetools.com/api/carts-orders-overview#freeze-a-cart) for details). + """ + HardFreeze +} + input FreezeCart { dummy: String + strategy: FreezeStrategy } interface Geometry { diff --git a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/Cart.java b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/Cart.java index e1abcfdf62..1696ddac17 100644 --- a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/Cart.java +++ b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/Cart.java @@ -252,6 +252,14 @@ public interface Cart extends BaseResource, CartMixin, com.commercetools.api.mod @JsonProperty("cartState") public CartState getCartState(); + /** + *

Determines freezing behavior when cartState is Frozen.

+ * @return freezeStrategy + */ + + @JsonProperty("freezeStrategy") + public FreezeStrategy getFreezeStrategy(); + /** *

Billing address associated with the Cart.

* @return billingAddress @@ -640,6 +648,13 @@ public interface Cart extends BaseResource, CartMixin, com.commercetools.api.mod public void setCartState(final CartState cartState); + /** + *

Determines freezing behavior when cartState is Frozen.

+ * @param freezeStrategy value to be set + */ + + public void setFreezeStrategy(final FreezeStrategy freezeStrategy); + /** *

Billing address associated with the Cart.

* @param billingAddress value to be set @@ -902,6 +917,7 @@ public static Cart of(final Cart template) { instance.setTaxCalculationMode(template.getTaxCalculationMode()); instance.setInventoryMode(template.getInventoryMode()); instance.setCartState(template.getCartState()); + instance.setFreezeStrategy(template.getFreezeStrategy()); instance.setBillingAddress(template.getBillingAddress()); instance.setShippingAddress(template.getShippingAddress()); instance.setShippingMode(template.getShippingMode()); @@ -978,6 +994,7 @@ public static Cart deepCopy(@Nullable final Cart template) { instance.setTaxCalculationMode(template.getTaxCalculationMode()); instance.setInventoryMode(template.getInventoryMode()); instance.setCartState(template.getCartState()); + instance.setFreezeStrategy(template.getFreezeStrategy()); instance.setBillingAddress(com.commercetools.api.models.common.Address.deepCopy(template.getBillingAddress())); instance.setShippingAddress( com.commercetools.api.models.common.Address.deepCopy(template.getShippingAddress())); diff --git a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartBuilder.java b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartBuilder.java index ea89fbec31..4b8a1d6e68 100644 --- a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartBuilder.java +++ b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartBuilder.java @@ -102,6 +102,9 @@ public class CartBuilder implements Builder { private com.commercetools.api.models.cart.CartState cartState; + @Nullable + private com.commercetools.api.models.cart.FreezeStrategy freezeStrategy; + @Nullable private com.commercetools.api.models.common.Address billingAddress; @@ -777,6 +780,17 @@ public CartBuilder cartState(final com.commercetools.api.models.cart.CartState c return this; } + /** + *

Determines freezing behavior when cartState is Frozen.

+ * @param freezeStrategy value to be set + * @return Builder + */ + + public CartBuilder freezeStrategy(@Nullable final com.commercetools.api.models.cart.FreezeStrategy freezeStrategy) { + this.freezeStrategy = freezeStrategy; + return this; + } + /** *

Billing address associated with the Cart.

* @param builder function to build the billingAddress value @@ -1914,6 +1928,16 @@ public com.commercetools.api.models.cart.CartState getCartState() { return this.cartState; } + /** + *

Determines freezing behavior when cartState is Frozen.

+ * @return freezeStrategy + */ + + @Nullable + public com.commercetools.api.models.cart.FreezeStrategy getFreezeStrategy() { + return this.freezeStrategy; + } + /** *

Billing address associated with the Cart.

* @return billingAddress @@ -2172,9 +2196,9 @@ public Cart build() { return new CartImpl(id, version, createdAt, lastModifiedAt, key, customerId, customerEmail, customerGroup, anonymousId, businessUnit, store, lineItems, customLineItems, totalLineItemQuantity, totalPrice, taxedPrice, taxedShippingPrice, discountOnTotalPrice, taxMode, priceRoundingMode, taxRoundingMode, taxCalculationMode, - inventoryMode, cartState, billingAddress, shippingAddress, shippingMode, shippingKey, shippingInfo, - shippingRateInput, shippingCustomFields, shipping, itemShippingAddresses, discountCodes, directDiscounts, - refusedGifts, paymentInfo, country, locale, origin, custom, discountTypeCombination, lock, + inventoryMode, cartState, freezeStrategy, billingAddress, shippingAddress, shippingMode, shippingKey, + shippingInfo, shippingRateInput, shippingCustomFields, shipping, itemShippingAddresses, discountCodes, + directDiscounts, refusedGifts, paymentInfo, country, locale, origin, custom, discountTypeCombination, lock, deleteDaysAfterLastModification, purchaseOrderNumber, lastModifiedBy, createdBy); } @@ -2186,9 +2210,9 @@ public Cart buildUnchecked() { return new CartImpl(id, version, createdAt, lastModifiedAt, key, customerId, customerEmail, customerGroup, anonymousId, businessUnit, store, lineItems, customLineItems, totalLineItemQuantity, totalPrice, taxedPrice, taxedShippingPrice, discountOnTotalPrice, taxMode, priceRoundingMode, taxRoundingMode, taxCalculationMode, - inventoryMode, cartState, billingAddress, shippingAddress, shippingMode, shippingKey, shippingInfo, - shippingRateInput, shippingCustomFields, shipping, itemShippingAddresses, discountCodes, directDiscounts, - refusedGifts, paymentInfo, country, locale, origin, custom, discountTypeCombination, lock, + inventoryMode, cartState, freezeStrategy, billingAddress, shippingAddress, shippingMode, shippingKey, + shippingInfo, shippingRateInput, shippingCustomFields, shipping, itemShippingAddresses, discountCodes, + directDiscounts, refusedGifts, paymentInfo, country, locale, origin, custom, discountTypeCombination, lock, deleteDaysAfterLastModification, purchaseOrderNumber, lastModifiedBy, createdBy); } @@ -2231,6 +2255,7 @@ public static CartBuilder of(final Cart template) { builder.taxCalculationMode = template.getTaxCalculationMode(); builder.inventoryMode = template.getInventoryMode(); builder.cartState = template.getCartState(); + builder.freezeStrategy = template.getFreezeStrategy(); builder.billingAddress = template.getBillingAddress(); builder.shippingAddress = template.getShippingAddress(); builder.shippingMode = template.getShippingMode(); diff --git a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartFreezeCartAction.java b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartFreezeCartAction.java index e14fe0715a..228dfc0b97 100644 --- a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartFreezeCartAction.java +++ b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartFreezeCartAction.java @@ -13,8 +13,14 @@ import io.vrap.rmf.base.client.utils.Generated; /** - *

Changes the CartState from Active to Frozen. Results in a Frozen Cart. Fails with InvalidOperation error when the Cart is empty.

- *

Freezing a Cart produces the CartFrozen Message.

+ *

Freezes the Cart based on the provided FreezeStrategy.

+ *

The following behavior occurs:

+ * + *

If the Cart is empty, an InvalidOperation error is returned.

* *
* Example to create an instance using the builder pattern @@ -35,6 +41,21 @@ public interface CartFreezeCartAction extends CartUpdateAction { */ String FREEZE_CART = "freezeCart"; + /** + *

Strategy that determines the freezing behavior.

+ * @return strategy + */ + + @JsonProperty("strategy") + public FreezeStrategy getStrategy(); + + /** + *

Strategy that determines the freezing behavior.

+ * @param strategy value to be set + */ + + public void setStrategy(final FreezeStrategy strategy); + /** * factory method * @return instance of CartFreezeCartAction @@ -50,6 +71,7 @@ public static CartFreezeCartAction of() { */ public static CartFreezeCartAction of(final CartFreezeCartAction template) { CartFreezeCartActionImpl instance = new CartFreezeCartActionImpl(); + instance.setStrategy(template.getStrategy()); return instance; } @@ -66,6 +88,7 @@ public static CartFreezeCartAction deepCopy(@Nullable final CartFreezeCartAction return null; } CartFreezeCartActionImpl instance = new CartFreezeCartActionImpl(); + instance.setStrategy(template.getStrategy()); return instance; } diff --git a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartFreezeCartActionBuilder.java b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartFreezeCartActionBuilder.java index dd24bf829f..dfb20916e5 100644 --- a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartFreezeCartActionBuilder.java +++ b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartFreezeCartActionBuilder.java @@ -3,6 +3,8 @@ import java.util.*; +import javax.annotation.Nullable; + import io.vrap.rmf.base.client.Builder; import io.vrap.rmf.base.client.utils.Generated; @@ -20,12 +22,37 @@ @Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") public class CartFreezeCartActionBuilder implements Builder { + @Nullable + private com.commercetools.api.models.cart.FreezeStrategy strategy; + + /** + *

Strategy that determines the freezing behavior.

+ * @param strategy value to be set + * @return Builder + */ + + public CartFreezeCartActionBuilder strategy( + @Nullable final com.commercetools.api.models.cart.FreezeStrategy strategy) { + this.strategy = strategy; + return this; + } + + /** + *

Strategy that determines the freezing behavior.

+ * @return strategy + */ + + @Nullable + public com.commercetools.api.models.cart.FreezeStrategy getStrategy() { + return this.strategy; + } + /** * builds CartFreezeCartAction with checking for non-null required values * @return CartFreezeCartAction */ public CartFreezeCartAction build() { - return new CartFreezeCartActionImpl(); + return new CartFreezeCartActionImpl(strategy); } /** @@ -33,7 +60,7 @@ public CartFreezeCartAction build() { * @return CartFreezeCartAction */ public CartFreezeCartAction buildUnchecked() { - return new CartFreezeCartActionImpl(); + return new CartFreezeCartActionImpl(strategy); } /** @@ -51,6 +78,7 @@ public static CartFreezeCartActionBuilder of() { */ public static CartFreezeCartActionBuilder of(final CartFreezeCartAction template) { CartFreezeCartActionBuilder builder = new CartFreezeCartActionBuilder(); + builder.strategy = template.getStrategy(); return builder; } diff --git a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartFreezeCartActionImpl.java b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartFreezeCartActionImpl.java index 29823be2c9..6902ee1456 100644 --- a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartFreezeCartActionImpl.java +++ b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartFreezeCartActionImpl.java @@ -5,6 +5,7 @@ import java.util.*; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.*; import io.vrap.rmf.base.client.ModelBase; @@ -16,18 +17,35 @@ import org.apache.commons.lang3.builder.ToStringStyle; /** - *

Changes the CartState from Active to Frozen. Results in a Frozen Cart. Fails with InvalidOperation error when the Cart is empty.

- *

Freezing a Cart produces the CartFrozen Message.

+ *

Freezes the Cart based on the provided FreezeStrategy.

+ *

The following behavior occurs:

+ * + *

If the Cart is empty, an InvalidOperation error is returned.

*/ @Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") public class CartFreezeCartActionImpl implements CartFreezeCartAction, ModelBase { private String action; + private com.commercetools.api.models.cart.FreezeStrategy strategy; + /** * create instance with all properties */ @JsonCreator + CartFreezeCartActionImpl( + @JsonProperty("strategy") final com.commercetools.api.models.cart.FreezeStrategy strategy) { + this.strategy = strategy; + this.action = FREEZE_CART; + } + + /** + * create empty instance + */ public CartFreezeCartActionImpl() { this.action = FREEZE_CART; } @@ -40,6 +58,18 @@ public String getAction() { return this.action; } + /** + *

Strategy that determines the freezing behavior.

+ */ + + public com.commercetools.api.models.cart.FreezeStrategy getStrategy() { + return this.strategy; + } + + public void setStrategy(final com.commercetools.api.models.cart.FreezeStrategy strategy) { + this.strategy = strategy; + } + @Override public boolean equals(Object o) { if (this == o) @@ -50,17 +80,23 @@ public boolean equals(Object o) { CartFreezeCartActionImpl that = (CartFreezeCartActionImpl) o; - return new EqualsBuilder().append(action, that.action).append(action, that.action).isEquals(); + return new EqualsBuilder().append(action, that.action) + .append(strategy, that.strategy) + .append(action, that.action) + .append(strategy, that.strategy) + .isEquals(); } @Override public int hashCode() { - return new HashCodeBuilder(17, 37).append(action).toHashCode(); + return new HashCodeBuilder(17, 37).append(action).append(strategy).toHashCode(); } @Override public String toString() { - return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE).append("action", action).build(); + return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE).append("action", action) + .append("strategy", strategy) + .build(); } @Override diff --git a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartImpl.java b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartImpl.java index dea392ecfb..4e0da3cc22 100644 --- a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartImpl.java +++ b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartImpl.java @@ -70,6 +70,8 @@ public class CartImpl implements Cart, ModelBase { private com.commercetools.api.models.cart.CartState cartState; + private com.commercetools.api.models.cart.FreezeStrategy freezeStrategy; + private com.commercetools.api.models.common.Address billingAddress; private com.commercetools.api.models.common.Address shippingAddress; @@ -142,6 +144,7 @@ public class CartImpl implements Cart, ModelBase { @JsonProperty("taxCalculationMode") final com.commercetools.api.models.cart.TaxCalculationMode taxCalculationMode, @JsonProperty("inventoryMode") final com.commercetools.api.models.cart.InventoryMode inventoryMode, @JsonProperty("cartState") final com.commercetools.api.models.cart.CartState cartState, + @JsonProperty("freezeStrategy") final com.commercetools.api.models.cart.FreezeStrategy freezeStrategy, @JsonProperty("billingAddress") final com.commercetools.api.models.common.Address billingAddress, @JsonProperty("shippingAddress") final com.commercetools.api.models.common.Address shippingAddress, @JsonProperty("shippingMode") final com.commercetools.api.models.cart.ShippingMode shippingMode, @@ -188,6 +191,7 @@ public class CartImpl implements Cart, ModelBase { this.taxCalculationMode = taxCalculationMode; this.inventoryMode = inventoryMode; this.cartState = cartState; + this.freezeStrategy = freezeStrategy; this.billingAddress = billingAddress; this.shippingAddress = shippingAddress; this.shippingMode = shippingMode; @@ -417,6 +421,14 @@ public com.commercetools.api.models.cart.CartState getCartState() { return this.cartState; } + /** + *

Determines freezing behavior when cartState is Frozen.

+ */ + + public com.commercetools.api.models.cart.FreezeStrategy getFreezeStrategy() { + return this.freezeStrategy; + } + /** *

Billing address associated with the Cart.

*/ @@ -716,6 +728,10 @@ public void setCartState(final com.commercetools.api.models.cart.CartState cartS this.cartState = cartState; } + public void setFreezeStrategy(final com.commercetools.api.models.cart.FreezeStrategy freezeStrategy) { + this.freezeStrategy = freezeStrategy; + } + public void setBillingAddress(final com.commercetools.api.models.common.Address billingAddress) { this.billingAddress = billingAddress; } @@ -868,6 +884,7 @@ public boolean equals(Object o) { .append(taxCalculationMode, that.taxCalculationMode) .append(inventoryMode, that.inventoryMode) .append(cartState, that.cartState) + .append(freezeStrategy, that.freezeStrategy) .append(billingAddress, that.billingAddress) .append(shippingAddress, that.shippingAddress) .append(shippingMode, that.shippingMode) @@ -915,6 +932,7 @@ public boolean equals(Object o) { .append(taxCalculationMode, that.taxCalculationMode) .append(inventoryMode, that.inventoryMode) .append(cartState, that.cartState) + .append(freezeStrategy, that.freezeStrategy) .append(billingAddress, that.billingAddress) .append(shippingAddress, that.shippingAddress) .append(shippingMode, that.shippingMode) @@ -967,6 +985,7 @@ public int hashCode() { .append(taxCalculationMode) .append(inventoryMode) .append(cartState) + .append(freezeStrategy) .append(billingAddress) .append(shippingAddress) .append(shippingMode) @@ -1019,6 +1038,7 @@ public String toString() { .append("taxCalculationMode", taxCalculationMode) .append("inventoryMode", inventoryMode) .append("cartState", cartState) + .append("freezeStrategy", freezeStrategy) .append("billingAddress", billingAddress) .append("shippingAddress", shippingAddress) .append("shippingMode", shippingMode) diff --git a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartSetCustomShippingMethodAction.java b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartSetCustomShippingMethodAction.java index 0d37250e6b..57ab871edb 100644 --- a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartSetCustomShippingMethodAction.java +++ b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartSetCustomShippingMethodAction.java @@ -21,6 +21,7 @@ /** *

To set the Cart's custom Shipping Method (independent of the ShippingMethods managed through the Shipping Methods API) the Cart must have the Single ShippingMode and a shippingAddress.

*

To unset a custom Shipping Method on a Cart, use the Set ShippingMethod update action without the shippingMethod field instead.

+ *

This update is not allowed when the Cart is frozen with the HardFreeze FreezeStrategy.

* *
* Example to create an instance using the builder pattern diff --git a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartSetCustomShippingMethodActionImpl.java b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartSetCustomShippingMethodActionImpl.java index cced655fb8..f0795fe75b 100644 --- a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartSetCustomShippingMethodActionImpl.java +++ b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartSetCustomShippingMethodActionImpl.java @@ -19,6 +19,7 @@ /** *

To set the Cart's custom Shipping Method (independent of the ShippingMethods managed through the Shipping Methods API) the Cart must have the Single ShippingMode and a shippingAddress.

*

To unset a custom Shipping Method on a Cart, use the Set ShippingMethod update action without the shippingMethod field instead.

+ *

This update is not allowed when the Cart is frozen with the HardFreeze FreezeStrategy.

*/ @Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") public class CartSetCustomShippingMethodActionImpl implements CartSetCustomShippingMethodAction, ModelBase { diff --git a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartSetShippingMethodAction.java b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartSetShippingMethodAction.java index daced7357a..8b3014f15a 100644 --- a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartSetShippingMethodAction.java +++ b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartSetShippingMethodAction.java @@ -17,6 +17,7 @@ /** *

To set the Cart's Shipping Method the Cart must have the Single ShippingMode and a shippingAddress.

+ *

This update is not allowed when the Cart is frozen with the HardFreeze FreezeStrategy.

* *
* Example to create an instance using the builder pattern diff --git a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartSetShippingMethodActionImpl.java b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartSetShippingMethodActionImpl.java index 82976dbb1a..5a84268151 100644 --- a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartSetShippingMethodActionImpl.java +++ b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartSetShippingMethodActionImpl.java @@ -18,6 +18,7 @@ /** *

To set the Cart's Shipping Method the Cart must have the Single ShippingMode and a shippingAddress.

+ *

This update is not allowed when the Cart is frozen with the HardFreeze FreezeStrategy.

*/ @Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") public class CartSetShippingMethodActionImpl implements CartSetShippingMethodAction, ModelBase { diff --git a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartState.java b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartState.java index cd959ad8b9..65a14c40a4 100644 --- a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartState.java +++ b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/CartState.java @@ -39,6 +39,11 @@ public interface CartState extends JsonEnum {
  • Change TaxMode
  • Set LineItem Price
  • Set LineItem TotalPrice
  • + +

    Additionally, when using the HardFreeze FreezeStrategy, the following update actions are also not allowed:

    + */ CartState FROZEN = CartStateEnum.FROZEN; diff --git a/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/FreezeStrategy.java b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/FreezeStrategy.java new file mode 100644 index 0000000000..adef69c9a5 --- /dev/null +++ b/commercetools/commercetools-sdk-java-api/src/main/java-generated/com/commercetools/api/models/cart/FreezeStrategy.java @@ -0,0 +1,115 @@ + +package com.commercetools.api.models.cart; + +import java.util.Arrays; +import java.util.Optional; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +import io.vrap.rmf.base.client.JsonEnum; +import io.vrap.rmf.base.client.utils.Generated; + +/** + *

    Indicates how a Cart freeze behaves. For detailed behavior on each of these strategies, see Freeze a Cart.

    + */ +@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") +public interface FreezeStrategy extends JsonEnum { + + /** +

    More lenient Cart freeze strategy that locks prices as they were when the Cart was frozen. This is the default strategy when not explicitly specified, ensuring backwards compatibility.

    */ + FreezeStrategy SOFT_FREEZE = FreezeStrategyEnum.SOFT_FREEZE; + /** +

    Stricter Cart freeze strategy that, in addition to the SoftFreeze behavior, also freezes Cart Discounts, Discount Codes, and Shipping Methods, ensuring the final price remains unchanged.

    */ + FreezeStrategy HARD_FREEZE = FreezeStrategyEnum.HARD_FREEZE; + + /** + * possible values of FreezeStrategy + */ + enum FreezeStrategyEnum implements FreezeStrategy { + /** + * SoftFreeze + */ + SOFT_FREEZE("SoftFreeze"), + + /** + * HardFreeze + */ + HARD_FREEZE("HardFreeze"); + private final String jsonName; + + private FreezeStrategyEnum(final String jsonName) { + this.jsonName = jsonName; + } + + public String getJsonName() { + return jsonName; + } + + public String toString() { + return jsonName; + } + } + + /** + * the JSON value + * @return json value + */ + @JsonValue + String getJsonName(); + + /** + * the enum value + * @return name + */ + String name(); + + /** + * convert value to string + * @return string representation + */ + String toString(); + + /** + * factory method for a enum value of FreezeStrategy + * if no enum has been found an anonymous instance will be created + * @param value the enum value to be wrapped + * @return enum instance + */ + @JsonCreator + public static FreezeStrategy findEnum(String value) { + return findEnumViaJsonName(value).orElse(new FreezeStrategy() { + @Override + public String getJsonName() { + return value; + } + + @Override + public String name() { + return value.toUpperCase(); + } + + public String toString() { + return value; + } + }); + } + + /** + * method to find enum using the JSON value + * @param jsonName the json value to be wrapped + * @return optional of enum instance + */ + public static Optional findEnumViaJsonName(String jsonName) { + return Arrays.stream(values()).filter(t -> t.getJsonName().equals(jsonName)).findFirst(); + } + + /** + * possible enum values + * @return array of possible enum values + */ + public static FreezeStrategy[] values() { + return FreezeStrategyEnum.values(); + } + +} diff --git a/commercetools/commercetools-sdk-java-api/src/main/java-predicates-generated/com/commercetools/api/predicates/query/cart/CartFreezeCartActionQueryBuilderDsl.java b/commercetools/commercetools-sdk-java-api/src/main/java-predicates-generated/com/commercetools/api/predicates/query/cart/CartFreezeCartActionQueryBuilderDsl.java index f26c9cd3c7..ce67bb7182 100644 --- a/commercetools/commercetools-sdk-java-api/src/main/java-predicates-generated/com/commercetools/api/predicates/query/cart/CartFreezeCartActionQueryBuilderDsl.java +++ b/commercetools/commercetools-sdk-java-api/src/main/java-predicates-generated/com/commercetools/api/predicates/query/cart/CartFreezeCartActionQueryBuilderDsl.java @@ -17,4 +17,10 @@ public StringComparisonPredicateBuilder act p -> new CombinationQueryPredicate<>(p, CartFreezeCartActionQueryBuilderDsl::of)); } + public StringComparisonPredicateBuilder strategy() { + return new StringComparisonPredicateBuilder<>( + BinaryQueryPredicate.of().left(new ConstantQueryPredicate("strategy")), + p -> new CombinationQueryPredicate<>(p, CartFreezeCartActionQueryBuilderDsl::of)); + } + } diff --git a/commercetools/commercetools-sdk-java-api/src/main/java-predicates-generated/com/commercetools/api/predicates/query/cart/CartQueryBuilderDsl.java b/commercetools/commercetools-sdk-java-api/src/main/java-predicates-generated/com/commercetools/api/predicates/query/cart/CartQueryBuilderDsl.java index 5203b10508..9f5066e98c 100644 --- a/commercetools/commercetools-sdk-java-api/src/main/java-predicates-generated/com/commercetools/api/predicates/query/cart/CartQueryBuilderDsl.java +++ b/commercetools/commercetools-sdk-java-api/src/main/java-predicates-generated/com/commercetools/api/predicates/query/cart/CartQueryBuilderDsl.java @@ -190,6 +190,12 @@ public StringComparisonPredicateBuilder cartState() { p -> new CombinationQueryPredicate<>(p, CartQueryBuilderDsl::of)); } + public StringComparisonPredicateBuilder freezeStrategy() { + return new StringComparisonPredicateBuilder<>( + BinaryQueryPredicate.of().left(new ConstantQueryPredicate("freezeStrategy")), + p -> new CombinationQueryPredicate<>(p, CartQueryBuilderDsl::of)); + } + public CombinationQueryPredicate billingAddress( Function> fn) { return new CombinationQueryPredicate<>( diff --git a/commercetools/commercetools-sdk-java-api/src/test/java-generated/com/commercetools/api/models/cart/CartFreezeCartActionTest.java b/commercetools/commercetools-sdk-java-api/src/test/java-generated/com/commercetools/api/models/cart/CartFreezeCartActionTest.java index 24833da496..4c8d317034 100644 --- a/commercetools/commercetools-sdk-java-api/src/test/java-generated/com/commercetools/api/models/cart/CartFreezeCartActionTest.java +++ b/commercetools/commercetools-sdk-java-api/src/test/java-generated/com/commercetools/api/models/cart/CartFreezeCartActionTest.java @@ -1,6 +1,30 @@ package com.commercetools.api.models.cart; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; + public class CartFreezeCartActionTest { + @ParameterizedTest(name = "#{index} with {0}") + @MethodSource("objectBuilder") + public void buildUnchecked(String name, CartFreezeCartActionBuilder builder) { + CartFreezeCartAction cartFreezeCartAction = builder.buildUnchecked(); + Assertions.assertThat(cartFreezeCartAction).isInstanceOf(CartFreezeCartAction.class); + } + + public static Object[][] objectBuilder() { + return new Object[][] { new Object[] { "strategy", CartFreezeCartAction.builder() + .strategy(com.commercetools.api.models.cart.FreezeStrategy.findEnum("SoftFreeze")) } }; + } + + @Test + public void strategy() { + CartFreezeCartAction value = CartFreezeCartAction.of(); + value.setStrategy(com.commercetools.api.models.cart.FreezeStrategy.findEnum("SoftFreeze")); + Assertions.assertThat(value.getStrategy()) + .isEqualTo(com.commercetools.api.models.cart.FreezeStrategy.findEnum("SoftFreeze")); + } } diff --git a/commercetools/commercetools-sdk-java-api/src/test/java-generated/com/commercetools/api/models/cart/CartTest.java b/commercetools/commercetools-sdk-java-api/src/test/java-generated/com/commercetools/api/models/cart/CartTest.java index 41450cbb1e..58674cf862 100644 --- a/commercetools/commercetools-sdk-java-api/src/test/java-generated/com/commercetools/api/models/cart/CartTest.java +++ b/commercetools/commercetools-sdk-java-api/src/test/java-generated/com/commercetools/api/models/cart/CartTest.java @@ -62,6 +62,8 @@ public static Object[][] objectBuilder() { .inventoryMode(com.commercetools.api.models.cart.InventoryMode.findEnum("None")) }, new Object[] { "cartState", Cart.builder().cartState(com.commercetools.api.models.cart.CartState.findEnum("Active")) }, + new Object[] { "freezeStrategy", Cart.builder() + .freezeStrategy(com.commercetools.api.models.cart.FreezeStrategy.findEnum("SoftFreeze")) }, new Object[] { "billingAddress", Cart.builder().billingAddress(new com.commercetools.api.models.common.AddressImpl()) }, new Object[] { "shippingAddress", @@ -285,6 +287,14 @@ public void cartState() { .isEqualTo(com.commercetools.api.models.cart.CartState.findEnum("Active")); } + @Test + public void freezeStrategy() { + Cart value = Cart.of(); + value.setFreezeStrategy(com.commercetools.api.models.cart.FreezeStrategy.findEnum("SoftFreeze")); + Assertions.assertThat(value.getFreezeStrategy()) + .isEqualTo(com.commercetools.api.models.cart.FreezeStrategy.findEnum("SoftFreeze")); + } + @Test public void billingAddress() { Cart value = Cart.of(); diff --git a/references.txt b/references.txt index eb4edf451b..d89f3583d7 100644 --- a/references.txt +++ b/references.txt @@ -521,3 +521,4 @@ b04bdc7d46d6b7fedbcc725c513695d73cc07cd5 0a0474a16e0437486ac96b2263f0c6db3505f6cc ce170ce6f860044008489ee1fb346e298e2d42db 5cedc63c492d11a2d158bf0a84adb22e0de54937 +8bfc95c41ffd0a75bc436246d73f337b54cff204