Closed it-ony closed 9 years ago
@it-ony You can use enumerations for this, for example:
- thing (enum)
- 5 (number)
- red (string)
Or
- things (array)
- (enum)
- red (string)
- 5 (number)
https://github.com/apiaryio/mson/blob/master/MSON%20Specification.md#212-structure-types
The discountOperation are real objects with an own structure, not just an enumeration. Right now the structure looks like this.
### BasketItemDiscountOperation
### AbsoluteBasketItemDiscountOperation (BasketItemDiscountOperation)
+ type: AbsoluteBasketItemDiscountOperation (string)
+ amount: 0 (number)
### RelativeBasketItemDiscountOperation (BasketItemDiscountOperation)
+ type: RelativeBasketItemDiscountOperation (string)
+ percentage: 0 (number)
@it-ony Yes, but enum is still used for it.
### AbsoluteBasketItemDiscountOperation (BasketItemDiscountOperation)
+ type: AbsoluteBasketItemDiscountOperation (string)
+ amount: 0 (number)
### RelativeBasketItemDiscountOperation (BasketItemDiscountOperation)
+ type: RelativeBasketItemDiscountOperation (string)
+ percentage: 0 (number)
### BasketItemDiscountOperation (enum)
+ (AbsoluteBasketItemDiscountOperation)
+ (RelativeBasketItemDiscountOperation)
@pksunkara - thanks! But, now I'm getting a circular reference - which kind of makes sense.
## BasketItemRule
+ discountOperation: (BasketItemDiscountOperation)
+ selectors: (array[AppearanceSelector, ArticleSelector, BusinessUnitSelector, CheapestItemSelector, ConditionSelector, PartnerSelector, ProductTypeSelector, ShopSelector, SizeSelector])
### BasketItemDiscountOperation (enum)
+ (AbsoluteBasketItemDiscountOperation)
+ (RelativeBasketItemDiscountOperation)
### AbsoluteBasketItemDiscountOperation (BasketItemDiscountOperation)
+ type: AbsoluteBasketItemDiscountOperation (string)
+ amount: 0 (number)
### RelativeBasketItemDiscountOperation (BasketItemDiscountOperation)
+ type: RelativeBasketItemDiscountOperation (string)
+ percentage: 0 (number)
@it-ony Is this resolved?
Yes, thanks.
When working with polymorph types, a property could have a set of possible types.
In this case the discountOperation can either have an AbsoluteBasketItemDiscountOperation or an RelativeBasketItemDiscountOperation.
For arrays I found somewhere in the documentation the following syntax
to accept elements of type A or type B