voucherify 8.0.2 → 8.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (799) hide show
  1. checksums.yaml +4 -4
  2. data/Dockerfile +1 -1
  3. data/ENDPOINTS-COVERAGE.md +123 -106
  4. data/Gemfile.lock +20 -16
  5. data/README.md +260 -75
  6. data/VoucherifySdk.gemspec +1 -1
  7. data/__tests__/README.md +18 -0
  8. data/__tests__/lib/campaigns.rb +53 -1
  9. data/__tests__/lib/config.rb +21 -0
  10. data/__tests__/lib/loyalties.rb +2 -2
  11. data/__tests__/lib/utils.rb +27 -1
  12. data/__tests__/spec/02_campaigns_spec.rb +33 -2
  13. data/__tests__/spec/04_publications_spec.rb +16 -3
  14. data/__tests__/spec/07_vouchers_spec.rb +22 -3
  15. data/__tests__/spec/12_validation_rules_spec.rb +1 -15
  16. data/__tests__/spec/13_management_spec.rb +110 -0
  17. data/__tests__/spec/14_additional_properties_spec.rb +28 -0
  18. data/__tests__/spec/support/get_snapshot_without_uniq_keys.rb +1 -1
  19. data/docs/AccessSettings.md +9 -0
  20. data/docs/AccessSettingsAssign.md +10 -0
  21. data/docs/AccessSettingsUnassign.md +10 -0
  22. data/docs/ApplicableTo.md +21 -4
  23. data/docs/ApplicableToOrderItemUnitsItem.md +10 -0
  24. data/docs/ApplicationDetailsItem.md +14 -0
  25. data/docs/AreaStoreCampaignAssignment.md +1 -0
  26. data/docs/AsyncActionsApi.md +2 -2
  27. data/docs/AsyncActionsListResponseBody.md +1 -0
  28. data/docs/BinApi.md +4 -4
  29. data/docs/Bundle.md +11 -0
  30. data/docs/BundleIdentifiedItem.md +11 -0
  31. data/docs/BundleMissingItem.md +10 -0
  32. data/docs/Campaign.md +5 -5
  33. data/docs/CampaignBase.md +5 -4
  34. data/docs/CampaignLoyaltyCardExpirationRules.md +6 -4
  35. data/docs/CampaignsApi.md +209 -12
  36. data/docs/CampaignsCreateRequestBody.md +3 -2
  37. data/docs/CampaignsCreateResponseBody.md +5 -5
  38. data/docs/CampaignsGetResponseBody.md +5 -5
  39. data/docs/CampaignsImportVoucherItem.md +1 -1
  40. data/docs/CampaignsSummaryGetResponseBody.md +48 -0
  41. data/docs/CampaignsTransactionsExportCreateRequestBody.md +8 -0
  42. data/docs/CampaignsTransactionsExportCreateRequestBodyParameters.md +10 -0
  43. data/docs/CampaignsTransactionsExportCreateResponseBody.md +16 -0
  44. data/docs/CampaignsTransactionsExportCreateResponseBodyParameters.md +10 -0
  45. data/docs/CampaignsTransactionsExportCreateResponseBodyParametersFilters.md +11 -0
  46. data/docs/CampaignsTransactionsExportCreateResponseBodyParametersFiltersCampaignId.md +8 -0
  47. data/docs/CampaignsTransactionsExportCreateResponseBodyParametersFiltersCampaignIdConditions.md +8 -0
  48. data/docs/CampaignsTransactionsExportCreateResponseBodyResult.md +8 -0
  49. data/docs/CampaignsTransactionsListResponseBody.md +12 -0
  50. data/docs/CampaignsUpdateRequestBody.md +2 -1
  51. data/docs/CampaignsUpdateResponseBody.md +5 -5
  52. data/docs/CampaignsVouchersCreateCombinedResponseBodyGift.md +3 -2
  53. data/docs/CampaignsVouchersCreateCombinedResponseBodyLoyaltyCard.md +5 -2
  54. data/docs/CampaignsVouchersCreateResponseBodyGift.md +3 -2
  55. data/docs/CampaignsVouchersCreateResponseBodyLoyaltyCard.md +5 -2
  56. data/docs/CategoriesApi.md +1 -1
  57. data/docs/ClientQualificationsCheckEligibilityRequestBody.md +2 -1
  58. data/docs/ClientQualificationsCheckEligibilityRequestBodySession.md +8 -0
  59. data/docs/ClientRedemptionsRedeemRequestBodyOptions.md +1 -1
  60. data/docs/ClientRedemptionsRedeemRequestBodyRedeemablesItemGift.md +1 -1
  61. data/docs/ClientSideApi.md +2 -2
  62. data/docs/ClientValidationsValidateRequestBodyOptions.md +1 -1
  63. data/docs/ClientValidationsValidateRequestBodyRedeemablesItemGift.md +1 -1
  64. data/docs/ClientValidationsValidateResponseBody.md +1 -0
  65. data/docs/ClientValidationsValidateResponseBodyRedeemablesItemResult.md +1 -0
  66. data/docs/ClientValidationsValidateResponseBodyRedeemablesItemResultDiscount.md +4 -4
  67. data/docs/ClientValidationsValidateResponseBodyRedeemablesItemResultGift.md +2 -1
  68. data/docs/CustomerLoyalty.md +1 -1
  69. data/docs/CustomerSummaryOrders.md +3 -3
  70. data/docs/CustomerSummaryRedemptionsGift.md +2 -2
  71. data/docs/CustomerWithSummaryLoyaltyReferralsAssets.md +2 -1
  72. data/docs/CustomersApi.md +10 -10
  73. data/docs/CustomersCreateResponseBodyAssets.md +2 -1
  74. data/docs/CustomersGetResponseBodyAssets.md +2 -1
  75. data/docs/CustomersUpdateResponseBodyAssets.md +2 -1
  76. data/docs/Discount.md +4 -4
  77. data/docs/DiscountUnitMultipleOneUnit.md +1 -1
  78. data/docs/EarningRule.md +2 -0
  79. data/docs/EarningRuleExpirationRules.md +13 -0
  80. data/docs/EarningRuleLoyalty.md +1 -0
  81. data/docs/EarningRuleLoyaltyCustomEventMetadata.md +1 -0
  82. data/docs/EarningRuleLoyaltyCustomerMetadata.md +1 -0
  83. data/docs/EarningRuleLoyaltyOrderAmount.md +1 -0
  84. data/docs/EarningRuleLoyaltyOrderItemsAmount.md +4 -2
  85. data/docs/EarningRuleLoyaltyOrderItemsAmountApplicableToItem.md +9 -0
  86. data/docs/EarningRuleLoyaltyOrderItemsQuantity.md +4 -2
  87. data/docs/EarningRuleLoyaltyOrderItemsQuantityApplicableToItem.md +9 -0
  88. data/docs/EarningRuleLoyaltyOrderItemsSubtotalAmount.md +4 -2
  89. data/docs/EarningRuleLoyaltyOrderItemsSubtotalAmountApplicableToItem.md +9 -0
  90. data/docs/EarningRuleLoyaltyOrderMetadata.md +1 -0
  91. data/docs/EarningRuleLoyaltyOrderTotalAmount.md +1 -0
  92. data/docs/EarningRulePendingPoints.md +9 -0
  93. data/docs/EventSource.md +10 -0
  94. data/docs/EventSourceApiKey.md +9 -0
  95. data/docs/EventSourceUser.md +8 -0
  96. data/docs/ExportCampaignTransactionsFilters.md +10 -0
  97. data/docs/ExportParameters.md +1 -0
  98. data/docs/ExportsApi.md +3 -3
  99. data/docs/ExportsCreateRequestBodyParameters.md +1 -0
  100. data/docs/ExportsCreateResponseBodyParameters.md +1 -0
  101. data/docs/ExportsGetResponseBodyParameters.md +1 -0
  102. data/docs/Gift.md +3 -2
  103. data/docs/InapplicableTo.md +21 -4
  104. data/docs/InapplicableToOrderItemUnitsItem.md +10 -0
  105. data/docs/LoyaltiesApi.md +590 -69
  106. data/docs/LoyaltiesCreateCampaignRequestBody.md +3 -2
  107. data/docs/LoyaltiesCreateCampaignResponseBody.md +1 -1
  108. data/docs/LoyaltiesEarningRulesCreateRequestBodyItem.md +4 -2
  109. data/docs/LoyaltiesEarningRulesCreateRequestBodyItemLoyalty.md +1 -0
  110. data/docs/LoyaltiesEarningRulesCreateRequestBodyItemLoyaltyCustomEventMetadata.md +1 -0
  111. data/docs/LoyaltiesEarningRulesCreateRequestBodyItemLoyaltyCustomerMetadata.md +1 -0
  112. data/docs/LoyaltiesEarningRulesCreateRequestBodyItemLoyaltyOrderAmount.md +1 -0
  113. data/docs/LoyaltiesEarningRulesCreateRequestBodyItemLoyaltyOrderItemsAmount.md +4 -2
  114. data/docs/LoyaltiesEarningRulesCreateRequestBodyItemLoyaltyOrderItemsAmountApplicableToItem.md +9 -0
  115. data/docs/LoyaltiesEarningRulesCreateRequestBodyItemLoyaltyOrderItemsQuantity.md +4 -2
  116. data/docs/LoyaltiesEarningRulesCreateRequestBodyItemLoyaltyOrderItemsQuantityApplicableToItem.md +9 -0
  117. data/docs/LoyaltiesEarningRulesCreateRequestBodyItemLoyaltyOrderItemsSubtotalAmount.md +4 -2
  118. data/docs/LoyaltiesEarningRulesCreateRequestBodyItemLoyaltyOrderMetadata.md +1 -0
  119. data/docs/LoyaltiesEarningRulesCreateRequestBodyItemLoyaltyOrderTotalAmount.md +1 -0
  120. data/docs/LoyaltiesEarningRulesCreateRequestBodyItemOrderItemsSubtotalAmountApplicableToItem.md +9 -0
  121. data/docs/LoyaltiesEarningRulesCreateRequestBodyItemPendingPoints.md +9 -0
  122. data/docs/LoyaltiesEarningRulesCreateResponseBody.md +2 -0
  123. data/docs/LoyaltiesEarningRulesCreateResponseBodyLoyalty.md +1 -0
  124. data/docs/LoyaltiesEarningRulesCreateResponseBodyLoyaltyCustomEventMetadata.md +1 -0
  125. data/docs/LoyaltiesEarningRulesCreateResponseBodyLoyaltyCustomerMetadata.md +1 -0
  126. data/docs/LoyaltiesEarningRulesCreateResponseBodyLoyaltyOrderAmount.md +1 -0
  127. data/docs/LoyaltiesEarningRulesCreateResponseBodyLoyaltyOrderItemsAmount.md +4 -2
  128. data/docs/LoyaltiesEarningRulesCreateResponseBodyLoyaltyOrderItemsAmountApplicableToItem.md +9 -0
  129. data/docs/LoyaltiesEarningRulesCreateResponseBodyLoyaltyOrderItemsQuantity.md +4 -2
  130. data/docs/LoyaltiesEarningRulesCreateResponseBodyLoyaltyOrderItemsQuantityApplicableToItem.md +9 -0
  131. data/docs/LoyaltiesEarningRulesCreateResponseBodyLoyaltyOrderItemsSubtotalAmount.md +4 -2
  132. data/docs/LoyaltiesEarningRulesCreateResponseBodyLoyaltyOrderMetadata.md +1 -0
  133. data/docs/LoyaltiesEarningRulesCreateResponseBodyLoyaltyOrderTotalAmount.md +1 -0
  134. data/docs/LoyaltiesEarningRulesCreateResponseBodyOrderItemsSubtotalAmountApplicableToItem.md +9 -0
  135. data/docs/LoyaltiesEarningRulesCreateResponseBodyPendingPoints.md +9 -0
  136. data/docs/LoyaltiesEarningRulesDisableResponseBody.md +2 -0
  137. data/docs/LoyaltiesEarningRulesDisableResponseBodyLoyalty.md +1 -0
  138. data/docs/LoyaltiesEarningRulesDisableResponseBodyLoyaltyCustomEventMetadata.md +1 -0
  139. data/docs/LoyaltiesEarningRulesDisableResponseBodyLoyaltyCustomerMetadata.md +1 -0
  140. data/docs/LoyaltiesEarningRulesDisableResponseBodyLoyaltyOrderAmount.md +1 -0
  141. data/docs/LoyaltiesEarningRulesDisableResponseBodyLoyaltyOrderItemsAmount.md +4 -2
  142. data/docs/LoyaltiesEarningRulesDisableResponseBodyLoyaltyOrderItemsAmountApplicableToItem.md +9 -0
  143. data/docs/LoyaltiesEarningRulesDisableResponseBodyLoyaltyOrderItemsQuantity.md +4 -2
  144. data/docs/LoyaltiesEarningRulesDisableResponseBodyLoyaltyOrderItemsQuantityApplicableToItem.md +9 -0
  145. data/docs/LoyaltiesEarningRulesDisableResponseBodyLoyaltyOrderItemsSubtotalAmount.md +4 -2
  146. data/docs/LoyaltiesEarningRulesDisableResponseBodyLoyaltyOrderMetadata.md +1 -0
  147. data/docs/LoyaltiesEarningRulesDisableResponseBodyLoyaltyOrderTotalAmount.md +1 -0
  148. data/docs/LoyaltiesEarningRulesDisableResponseBodyOrderItemsSubtotalAmountApplicableToItem.md +9 -0
  149. data/docs/LoyaltiesEarningRulesDisableResponseBodyPendingPoints.md +9 -0
  150. data/docs/LoyaltiesEarningRulesEnableResponseBody.md +2 -0
  151. data/docs/LoyaltiesEarningRulesEnableResponseBodyLoyalty.md +1 -0
  152. data/docs/LoyaltiesEarningRulesEnableResponseBodyLoyaltyCustomEventMetadata.md +1 -0
  153. data/docs/LoyaltiesEarningRulesEnableResponseBodyLoyaltyCustomerMetadata.md +1 -0
  154. data/docs/LoyaltiesEarningRulesEnableResponseBodyLoyaltyOrderAmount.md +1 -0
  155. data/docs/LoyaltiesEarningRulesEnableResponseBodyLoyaltyOrderItemsAmount.md +4 -2
  156. data/docs/LoyaltiesEarningRulesEnableResponseBodyLoyaltyOrderItemsAmountApplicableToItem.md +9 -0
  157. data/docs/LoyaltiesEarningRulesEnableResponseBodyLoyaltyOrderItemsQuantity.md +4 -2
  158. data/docs/LoyaltiesEarningRulesEnableResponseBodyLoyaltyOrderItemsQuantityApplicableToItem.md +9 -0
  159. data/docs/LoyaltiesEarningRulesEnableResponseBodyLoyaltyOrderItemsSubtotalAmount.md +4 -2
  160. data/docs/LoyaltiesEarningRulesEnableResponseBodyLoyaltyOrderMetadata.md +1 -0
  161. data/docs/LoyaltiesEarningRulesEnableResponseBodyLoyaltyOrderTotalAmount.md +1 -0
  162. data/docs/LoyaltiesEarningRulesEnableResponseBodyOrderItemsSubtotalAmountApplicableToItem.md +9 -0
  163. data/docs/LoyaltiesEarningRulesEnableResponseBodyPendingPoints.md +9 -0
  164. data/docs/LoyaltiesEarningRulesGetResponseBody.md +2 -0
  165. data/docs/LoyaltiesEarningRulesGetResponseBodyLoyalty.md +1 -0
  166. data/docs/LoyaltiesEarningRulesGetResponseBodyLoyaltyCustomEventMetadata.md +1 -0
  167. data/docs/LoyaltiesEarningRulesGetResponseBodyLoyaltyCustomerMetadata.md +1 -0
  168. data/docs/LoyaltiesEarningRulesGetResponseBodyLoyaltyOrderAmount.md +1 -0
  169. data/docs/LoyaltiesEarningRulesGetResponseBodyLoyaltyOrderItemsAmount.md +4 -2
  170. data/docs/LoyaltiesEarningRulesGetResponseBodyLoyaltyOrderItemsAmountApplicableToItem.md +9 -0
  171. data/docs/LoyaltiesEarningRulesGetResponseBodyLoyaltyOrderItemsQuantity.md +4 -2
  172. data/docs/LoyaltiesEarningRulesGetResponseBodyLoyaltyOrderItemsQuantityApplicableToItem.md +9 -0
  173. data/docs/LoyaltiesEarningRulesGetResponseBodyLoyaltyOrderItemsSubtotalAmount.md +4 -2
  174. data/docs/LoyaltiesEarningRulesGetResponseBodyLoyaltyOrderItemsSubtotalAmountApplicableToItem.md +9 -0
  175. data/docs/LoyaltiesEarningRulesGetResponseBodyLoyaltyOrderMetadata.md +1 -0
  176. data/docs/LoyaltiesEarningRulesGetResponseBodyLoyaltyOrderTotalAmount.md +1 -0
  177. data/docs/LoyaltiesEarningRulesGetResponseBodyPendingPoints.md +9 -0
  178. data/docs/LoyaltiesEarningRulesUpdateRequestBody.md +4 -2
  179. data/docs/LoyaltiesEarningRulesUpdateRequestBodyLoyalty.md +1 -0
  180. data/docs/LoyaltiesEarningRulesUpdateRequestBodyLoyaltyCustomEventMetadata.md +1 -0
  181. data/docs/LoyaltiesEarningRulesUpdateRequestBodyLoyaltyCustomerMetadata.md +1 -0
  182. data/docs/LoyaltiesEarningRulesUpdateRequestBodyLoyaltyOrderAmount.md +1 -0
  183. data/docs/LoyaltiesEarningRulesUpdateRequestBodyLoyaltyOrderItemsAmount.md +4 -2
  184. data/docs/LoyaltiesEarningRulesUpdateRequestBodyLoyaltyOrderItemsAmountApplicableToItem.md +9 -0
  185. data/docs/LoyaltiesEarningRulesUpdateRequestBodyLoyaltyOrderItemsQuantity.md +4 -2
  186. data/docs/LoyaltiesEarningRulesUpdateRequestBodyLoyaltyOrderItemsQuantityApplicableToItem.md +9 -0
  187. data/docs/LoyaltiesEarningRulesUpdateRequestBodyLoyaltyOrderItemsSubtotalAmount.md +4 -2
  188. data/docs/LoyaltiesEarningRulesUpdateRequestBodyLoyaltyOrderMetadata.md +1 -0
  189. data/docs/LoyaltiesEarningRulesUpdateRequestBodyLoyaltyOrderTotalAmount.md +1 -0
  190. data/docs/LoyaltiesEarningRulesUpdateRequestBodyOrderItemsSubtotalAmountApplicableToItem.md +9 -0
  191. data/docs/LoyaltiesEarningRulesUpdateRequestBodyPendingPoints.md +9 -0
  192. data/docs/LoyaltiesEarningRulesUpdateResponseBody.md +2 -0
  193. data/docs/LoyaltiesEarningRulesUpdateResponseBodyLoyalty.md +1 -0
  194. data/docs/LoyaltiesEarningRulesUpdateResponseBodyLoyaltyCustomEventMetadata.md +1 -0
  195. data/docs/LoyaltiesEarningRulesUpdateResponseBodyLoyaltyCustomerMetadata.md +1 -0
  196. data/docs/LoyaltiesEarningRulesUpdateResponseBodyLoyaltyOrderAmount.md +1 -0
  197. data/docs/LoyaltiesEarningRulesUpdateResponseBodyLoyaltyOrderItemsAmount.md +4 -2
  198. data/docs/LoyaltiesEarningRulesUpdateResponseBodyLoyaltyOrderItemsAmountApplicableToItem.md +9 -0
  199. data/docs/LoyaltiesEarningRulesUpdateResponseBodyLoyaltyOrderItemsQuantity.md +4 -2
  200. data/docs/LoyaltiesEarningRulesUpdateResponseBodyLoyaltyOrderItemsQuantityApplicableToItem.md +9 -0
  201. data/docs/LoyaltiesEarningRulesUpdateResponseBodyLoyaltyOrderItemsSubtotalAmount.md +4 -2
  202. data/docs/LoyaltiesEarningRulesUpdateResponseBodyLoyaltyOrderMetadata.md +1 -0
  203. data/docs/LoyaltiesEarningRulesUpdateResponseBodyLoyaltyOrderTotalAmount.md +1 -0
  204. data/docs/LoyaltiesEarningRulesUpdateResponseBodyOrderItemsSubtotalAmountApplicableToItem.md +9 -0
  205. data/docs/LoyaltiesEarningRulesUpdateResponseBodyPendingPoints.md +9 -0
  206. data/docs/LoyaltiesGetCampaignResponseBody.md +1 -1
  207. data/docs/LoyaltiesMembersCreateResponseBodyLoyaltyCard.md +5 -2
  208. data/docs/LoyaltiesMembersGetResponseBodyLoyaltyCard.md +5 -2
  209. data/docs/LoyaltiesMembersPendingPointsActivateResponseBody.md +14 -0
  210. data/docs/LoyaltiesMembersPendingPointsActivateResponseBodyRelatedObject.md +9 -0
  211. data/docs/LoyaltiesMembersPendingPointsBalanceRequestBody.md +8 -0
  212. data/docs/LoyaltiesMembersPendingPointsBalanceResponseBody.md +12 -0
  213. data/docs/LoyaltiesMembersPendingPointsBalanceResponseBodyRelatedObject.md +9 -0
  214. data/docs/LoyaltiesMembersPendingPointsListResponseBody.md +12 -0
  215. data/docs/LoyaltiesMembersPointsExpirationListResponseBodyDataItem.md +1 -1
  216. data/docs/LoyaltiesMembersRedemptionRedeemRequestBody.md +1 -1
  217. data/docs/LoyaltiesMembersRedemptionRedeemResponseBody.md +1 -0
  218. data/docs/LoyaltiesMembersRedemptionRedeemResponseBodyRelatedRedemptionsRollbacksItem.md +1 -0
  219. data/docs/LoyaltiesMembersRedemptionRedeemResponseBodySession.md +8 -0
  220. data/docs/LoyaltiesMembersRedemptionRedeemResponseBodyVoucherGift.md +3 -2
  221. data/docs/LoyaltiesMembersRedemptionRedeemResponseBodyVoucherLoyaltyCard.md +5 -2
  222. data/docs/LoyaltiesMembersTransfersCreateResponseBodyLoyaltyCard.md +5 -2
  223. data/docs/LoyaltiesPendingPointsListResponseBody.md +12 -0
  224. data/docs/LoyaltiesPointsExpirationExportCreateRequestBodyParameters.md +1 -1
  225. data/docs/LoyaltiesRewardAssignmentsRewardGetResponseBody.md +1 -1
  226. data/docs/LoyaltiesTransactionsExportCreateRequestBody.md +8 -0
  227. data/docs/LoyaltiesTransactionsExportCreateRequestBodyParameters.md +10 -0
  228. data/docs/LoyaltiesTransactionsListResponseBody.md +12 -0
  229. data/docs/LoyaltiesUpdateCampaignRequestBody.md +2 -1
  230. data/docs/LoyaltiesUpdateCampaignResponseBody.md +1 -1
  231. data/docs/LoyaltyCampaign.md +1 -1
  232. data/docs/LoyaltyCardTransaction.md +1 -1
  233. data/docs/LoyaltyCardTransactionDetails.md +2 -0
  234. data/docs/LoyaltyCardTransactionDetailsBalance.md +1 -0
  235. data/docs/LoyaltyCardTransactionDetailsEarningRule.md +1 -1
  236. data/docs/LoyaltyCardTransactionDetailsHolderLoyaltyTier.md +9 -0
  237. data/docs/LoyaltyCardTransactionDetailsLoyaltyTier.md +2 -2
  238. data/docs/LoyaltyMemberLoyaltyCard.md +5 -2
  239. data/docs/LoyaltyPendingPoints.md +17 -0
  240. data/docs/LoyaltyPendingPointsDetails.md +12 -0
  241. data/docs/LoyaltyPendingPointsDetailsEarningRule.md +9 -0
  242. data/docs/LoyaltyPendingPointsDetailsEarningRuleSource.md +8 -0
  243. data/docs/LoyaltyPendingPointsDetailsEvent.md +14 -0
  244. data/docs/LoyaltyPendingPointsDetailsHolderLoyaltyTier.md +9 -0
  245. data/docs/LoyaltyPendingPointsDetailsLoyaltyTier.md +9 -0
  246. data/docs/LoyaltyPendingPointsDetailsOrder.md +9 -0
  247. data/docs/LoyaltyPointsBucket.md +1 -1
  248. data/docs/LoyaltyTierExpiration.md +1 -1
  249. data/docs/LoyaltyTiersExpirationAll.md +1 -1
  250. data/docs/ManagementApi.md +22 -22
  251. data/docs/ManagementProjectsStackingRules.md +14 -8
  252. data/docs/ManagementProjectsStackingRulesCreateRequestBody.md +14 -8
  253. data/docs/ManagementProjectsStackingRulesCreateResponseBody.md +14 -8
  254. data/docs/ManagementProjectsStackingRulesGetResponseBody.md +14 -8
  255. data/docs/ManagementProjectsStackingRulesUpdateRequestBody.md +14 -8
  256. data/docs/ManagementProjectsStackingRulesUpdateResponseBody.md +14 -8
  257. data/docs/ManagementProjectsUsersInviteCreateRequestBody.md +1 -1
  258. data/docs/ManagementProjectsUsersUpdateRoleRequestBody.md +1 -1
  259. data/docs/MetadataSchemasApi.md +5 -5
  260. data/docs/Order.md +3 -3
  261. data/docs/OrderCalculated.md +11 -11
  262. data/docs/OrderCalculatedItem.md +2 -1
  263. data/docs/OrderItem.md +1 -1
  264. data/docs/OrderRedemptionsEntry.md +1 -1
  265. data/docs/OrdersApi.md +3 -3
  266. data/docs/OrdersCreateRequestBody.md +3 -3
  267. data/docs/OrdersCreateResponseBody.md +11 -11
  268. data/docs/OrdersGetResponseBody.md +11 -11
  269. data/docs/OrdersImportCreateRequestBodyItem.md +4 -4
  270. data/docs/OrdersUpdateRequestBody.md +3 -3
  271. data/docs/OrdersUpdateResponseBody.md +11 -11
  272. data/docs/ParameterOrderListPendingPoints.md +7 -0
  273. data/docs/ParametersFiltersListCampaignTransactions.md +10 -0
  274. data/docs/ProductCollectionsCreateRequestBody.md +1 -1
  275. data/docs/ProductsApi.md +22 -22
  276. data/docs/ProductsSkusCreateRequestBody.md +1 -1
  277. data/docs/ProductsSkusUpdateRequestBody.md +1 -1
  278. data/docs/PromotionTierCampaign.md +1 -1
  279. data/docs/PromotionsTiersCreateResponseBodyCampaign.md +1 -1
  280. data/docs/PromotionsTiersDisableResponseBodyCampaign.md +1 -1
  281. data/docs/PromotionsTiersEnableResponseBodyCampaign.md +1 -1
  282. data/docs/PromotionsTiersGetResponseBodyCampaign.md +1 -1
  283. data/docs/PromotionsTiersUpdateResponseBodyCampaign.md +1 -1
  284. data/docs/PublicationsApi.md +7 -7
  285. data/docs/QualificationsApi.md +1 -1
  286. data/docs/QualificationsCheckEligibilityRequestBody.md +2 -1
  287. data/docs/QualificationsCheckEligibilityRequestBodySession.md +8 -0
  288. data/docs/QualificationsOption.md +1 -1
  289. data/docs/QualificationsRedeemable.md +1 -1
  290. data/docs/QualificationsRedeemableBase.md +1 -1
  291. data/docs/RedeemableGift.md +3 -2
  292. data/docs/RedeemableLoyaltyCard.md +2 -2
  293. data/docs/RedeemableResult.md +1 -0
  294. data/docs/RedeemableVoucherGift.md +3 -2
  295. data/docs/RedeemableVoucherLoyaltyCard.md +5 -2
  296. data/docs/Redemption.md +1 -0
  297. data/docs/RedemptionEntry.md +1 -0
  298. data/docs/RedemptionEntryOrder.md +11 -11
  299. data/docs/RedemptionEntryPromotionTierCampaign.md +1 -1
  300. data/docs/RedemptionEntryRelatedRedemptionsRollbacksItem.md +1 -0
  301. data/docs/RedemptionEntrySession.md +8 -0
  302. data/docs/RedemptionEntryVoucherGift.md +3 -2
  303. data/docs/RedemptionEntryVoucherLoyaltyCard.md +5 -2
  304. data/docs/RedemptionRelatedRedemptionsRollbacksItem.md +1 -0
  305. data/docs/RedemptionRewardResultParametersCampaign.md +1 -1
  306. data/docs/RedemptionRollback.md +1 -1
  307. data/docs/RedemptionSession.md +8 -0
  308. data/docs/RedemptionVoucherGift.md +3 -2
  309. data/docs/RedemptionVoucherLoyaltyCard.md +5 -2
  310. data/docs/RedemptionsApi.md +3 -3
  311. data/docs/RedemptionsGetResponseBody.md +1 -0
  312. data/docs/RedemptionsGetResponseBodyOrder.md +11 -11
  313. data/docs/RedemptionsGetResponseBodyPromotionTierCampaign.md +1 -1
  314. data/docs/RedemptionsGetResponseBodyRelatedRedemptionsRollbacksItem.md +1 -0
  315. data/docs/RedemptionsGetResponseBodySession.md +8 -0
  316. data/docs/RedemptionsGetResponseBodyVoucherGift.md +3 -2
  317. data/docs/RedemptionsGetResponseBodyVoucherLoyaltyCard.md +5 -2
  318. data/docs/RedemptionsListResponseBodyRedemptionsItem.md +1 -0
  319. data/docs/RedemptionsListResponseBodyRedemptionsItemOrder.md +11 -11
  320. data/docs/RedemptionsListResponseBodyRedemptionsItemPromotionTierCampaign.md +1 -1
  321. data/docs/RedemptionsListResponseBodyRedemptionsItemRelatedRedemptionsRollbacksItem.md +1 -0
  322. data/docs/RedemptionsListResponseBodyRedemptionsItemSession.md +8 -0
  323. data/docs/RedemptionsListResponseBodyRedemptionsItemVoucherGift.md +3 -2
  324. data/docs/RedemptionsListResponseBodyRedemptionsItemVoucherLoyaltyCard.md +5 -2
  325. data/docs/RedemptionsRedeemRequestBodyOptions.md +1 -1
  326. data/docs/RedemptionsRedeemRequestBodyRedeemablesItemGift.md +1 -1
  327. data/docs/RedemptionsRollbackCreateResponseBody.md +1 -1
  328. data/docs/ReferralsApi.md +13 -13
  329. data/docs/Reward.md +1 -1
  330. data/docs/RewardsCreateRequestBody.md +1 -1
  331. data/docs/RewardsCreateRequestBodyParametersCampaign.md +1 -1
  332. data/docs/RewardsCreateResponseBody.md +1 -1
  333. data/docs/RewardsUpdateRequestBody.md +1 -1
  334. data/docs/RewardsUpdateRequestBodyParametersCampaign.md +1 -1
  335. data/docs/RewardsUpdateResponseBody.md +1 -1
  336. data/docs/SegmentsApi.md +2 -2
  337. data/docs/SegmentsCreateRequestBody.md +1 -1
  338. data/docs/SegmentsCreateResponseBody.md +4 -3
  339. data/docs/SegmentsGetResponseBody.md +4 -3
  340. data/docs/SimpleLoyaltyCard.md +5 -2
  341. data/docs/SimpleVoucherRedemption.md +1 -0
  342. data/docs/StackingRules.md +15 -11
  343. data/docs/TemplatesApi.md +7 -7
  344. data/docs/TemplatesCampaignsCampaignSetupCreateRequestBody.md +3 -2
  345. data/docs/TrashBinItem.md +1 -1
  346. data/docs/ValidationRule.md +1 -0
  347. data/docs/ValidationRulesApi.md +3 -3
  348. data/docs/ValidationRulesCreateRequestBody.md +1 -0
  349. data/docs/ValidationRulesCreateResponseBody.md +1 -0
  350. data/docs/ValidationRulesGetResponseBody.md +1 -0
  351. data/docs/ValidationRulesUpdateRequestBody.md +1 -0
  352. data/docs/ValidationRulesUpdateResponseBody.md +1 -0
  353. data/docs/ValidationsApi.md +1 -1
  354. data/docs/ValidationsRedeemableInapplicableResult.md +1 -0
  355. data/docs/ValidationsValidateRequestBodyOptions.md +1 -1
  356. data/docs/ValidationsValidateRequestBodyRedeemablesItemGift.md +1 -1
  357. data/docs/ValidationsValidateResponseBody.md +1 -0
  358. data/docs/ValidationsValidateResponseBodyRedeemablesItemResult.md +1 -0
  359. data/docs/ValidationsValidateResponseBodyRedeemablesItemResultDiscount.md +4 -4
  360. data/docs/ValidationsValidateResponseBodyRedeemablesItemResultGift.md +2 -1
  361. data/docs/ValidityHours.md +1 -1
  362. data/docs/VoucherBalance.md +1 -0
  363. data/docs/VoucherGift.md +3 -2
  364. data/docs/VoucherLoyaltyCard.md +5 -2
  365. data/docs/VoucherTransaction.md +1 -1
  366. data/docs/VoucherTransactionDetails.md +2 -0
  367. data/docs/VoucherTransactionDetailsBalance.md +1 -0
  368. data/docs/VoucherTransactionDetailsCustomEvent.md +2 -2
  369. data/docs/VoucherTransactionDetailsEarningRule.md +1 -1
  370. data/docs/VoucherTransactionDetailsEventSchema.md +2 -2
  371. data/docs/VoucherTransactionDetailsHolderLoyaltyTier.md +9 -0
  372. data/docs/VoucherTransactionDetailsLoyaltyTier.md +2 -2
  373. data/docs/VoucherTransactionDetailsRollback.md +1 -1
  374. data/docs/VoucherTransactionDetailsSegment.md +2 -2
  375. data/docs/VoucherTransactionsExportParameters.md +1 -1
  376. data/docs/VoucherTransactionsFilters.md +1 -1
  377. data/docs/VoucherWithCategoriesGift.md +3 -2
  378. data/docs/VoucherWithCategoriesLoyaltyCard.md +5 -2
  379. data/docs/VouchersApi.md +16 -14
  380. data/docs/VouchersBalanceUpdateRequestBody.md +1 -1
  381. data/docs/VouchersBalanceUpdateResponseBody.md +2 -2
  382. data/docs/VouchersCreateRequestBody.md +2 -2
  383. data/docs/VouchersCreateResponseBodyGift.md +3 -2
  384. data/docs/VouchersCreateResponseBodyLoyaltyCard.md +5 -2
  385. data/docs/VouchersCreateWithSpecificCodeRequestBody.md +2 -2
  386. data/docs/VouchersDisableResponseBodyGift.md +3 -2
  387. data/docs/VouchersDisableResponseBodyLoyaltyCard.md +5 -2
  388. data/docs/VouchersEnableResponseBodyGift.md +3 -2
  389. data/docs/VouchersEnableResponseBodyLoyaltyCard.md +5 -2
  390. data/docs/VouchersGetResponseBodyGift.md +3 -2
  391. data/docs/VouchersGetResponseBodyLoyaltyCard.md +5 -2
  392. data/docs/VouchersImportCreateItemRequestBody.md +1 -1
  393. data/docs/VouchersTransactionsExportCreateResponseBodyResult.md +1 -1
  394. data/docs/VouchersUpdateRequestBody.md +2 -2
  395. data/docs/VouchersUpdateResponseBodyGift.md +3 -2
  396. data/docs/VouchersUpdateResponseBodyLoyaltyCard.md +5 -2
  397. data/lib/VoucherifySdk/api/async_actions_api.rb +4 -4
  398. data/lib/VoucherifySdk/api/bin_api.rb +4 -4
  399. data/lib/VoucherifySdk/api/campaigns_api.rb +220 -18
  400. data/lib/VoucherifySdk/api/categories_api.rb +2 -2
  401. data/lib/VoucherifySdk/api/client_side_api.rb +4 -4
  402. data/lib/VoucherifySdk/api/customers_api.rb +14 -14
  403. data/lib/VoucherifySdk/api/exports_api.rb +6 -6
  404. data/lib/VoucherifySdk/api/loyalties_api.rb +599 -68
  405. data/lib/VoucherifySdk/api/management_api.rb +44 -44
  406. data/lib/VoucherifySdk/api/metadata_schemas_api.rb +6 -6
  407. data/lib/VoucherifySdk/api/orders_api.rb +6 -6
  408. data/lib/VoucherifySdk/api/products_api.rb +30 -30
  409. data/lib/VoucherifySdk/api/publications_api.rb +8 -8
  410. data/lib/VoucherifySdk/api/qualifications_api.rb +2 -2
  411. data/lib/VoucherifySdk/api/redemptions_api.rb +6 -6
  412. data/lib/VoucherifySdk/api/referrals_api.rb +14 -14
  413. data/lib/VoucherifySdk/api/segments_api.rb +4 -4
  414. data/lib/VoucherifySdk/api/templates_api.rb +14 -14
  415. data/lib/VoucherifySdk/api/validation_rules_api.rb +6 -6
  416. data/lib/VoucherifySdk/api/validations_api.rb +2 -2
  417. data/lib/VoucherifySdk/api/vouchers_api.rb +25 -22
  418. data/lib/VoucherifySdk/models/access_settings.rb +219 -0
  419. data/lib/VoucherifySdk/models/access_settings_assign.rb +238 -0
  420. data/lib/VoucherifySdk/models/access_settings_campaign_assignments_list.rb +1 -1
  421. data/lib/VoucherifySdk/models/access_settings_unassign.rb +238 -0
  422. data/lib/VoucherifySdk/models/applicable_to.rb +207 -18
  423. data/lib/VoucherifySdk/models/applicable_to_order_item_units_item.rb +235 -0
  424. data/lib/VoucherifySdk/models/application_details_item.rb +284 -0
  425. data/lib/VoucherifySdk/models/area_store_campaign_assignment.rb +12 -1
  426. data/lib/VoucherifySdk/models/async_actions_list_response_body.rb +16 -5
  427. data/lib/VoucherifySdk/models/bundle.rb +267 -0
  428. data/lib/VoucherifySdk/models/bundle_identified_item.rb +296 -0
  429. data/lib/VoucherifySdk/models/bundle_missing_item.rb +274 -0
  430. data/lib/VoucherifySdk/models/campaign.rb +17 -17
  431. data/lib/VoucherifySdk/models/campaign_base.rb +17 -8
  432. data/lib/VoucherifySdk/models/campaign_loyalty_card_expiration_rules.rb +53 -10
  433. data/lib/VoucherifySdk/models/campaigns_create_request_body.rb +13 -4
  434. data/lib/VoucherifySdk/models/campaigns_create_response_body.rb +17 -17
  435. data/lib/VoucherifySdk/models/campaigns_get_response_body.rb +17 -17
  436. data/lib/VoucherifySdk/models/campaigns_import_voucher_item.rb +1 -1
  437. data/lib/VoucherifySdk/models/campaigns_summary_get_response_body.rb +673 -0
  438. data/lib/VoucherifySdk/models/campaigns_transactions_export_create_request_body.rb +209 -0
  439. data/lib/VoucherifySdk/models/campaigns_transactions_export_create_request_body_parameters.rb +256 -0
  440. data/lib/VoucherifySdk/models/campaigns_transactions_export_create_response_body.rb +334 -0
  441. data/lib/VoucherifySdk/models/campaigns_transactions_export_create_response_body_parameters.rb +256 -0
  442. data/lib/VoucherifySdk/models/campaigns_transactions_export_create_response_body_parameters_filters.rb +257 -0
  443. data/lib/VoucherifySdk/models/campaigns_transactions_export_create_response_body_parameters_filters_campaign_id.rb +209 -0
  444. data/lib/VoucherifySdk/models/campaigns_transactions_export_create_response_body_parameters_filters_campaign_id_conditions.rb +221 -0
  445. data/lib/VoucherifySdk/models/campaigns_transactions_export_create_response_body_result.rb +210 -0
  446. data/lib/VoucherifySdk/models/campaigns_transactions_list_response_body.rb +286 -0
  447. data/lib/VoucherifySdk/models/campaigns_update_request_body.rb +11 -2
  448. data/lib/VoucherifySdk/models/campaigns_update_response_body.rb +17 -17
  449. data/lib/VoucherifySdk/models/campaigns_vouchers_create_combined_response_body_gift.rb +14 -3
  450. data/lib/VoucherifySdk/models/campaigns_vouchers_create_combined_response_body_loyalty_card.rb +40 -7
  451. data/lib/VoucherifySdk/models/campaigns_vouchers_create_response_body_gift.rb +14 -3
  452. data/lib/VoucherifySdk/models/campaigns_vouchers_create_response_body_loyalty_card.rb +40 -7
  453. data/lib/VoucherifySdk/models/client_qualifications_check_eligibility_request_body.rb +12 -2
  454. data/lib/VoucherifySdk/models/client_qualifications_check_eligibility_request_body_session.rb +236 -0
  455. data/lib/VoucherifySdk/models/client_redemptions_redeem_request_body_options.rb +1 -1
  456. data/lib/VoucherifySdk/models/client_redemptions_redeem_request_body_redeemables_item_gift.rb +1 -1
  457. data/lib/VoucherifySdk/models/client_validations_validate_request_body.rb +1 -1
  458. data/lib/VoucherifySdk/models/client_validations_validate_request_body_options.rb +1 -1
  459. data/lib/VoucherifySdk/models/client_validations_validate_request_body_redeemables_item_gift.rb +1 -1
  460. data/lib/VoucherifySdk/models/client_validations_validate_response_body.rb +12 -1
  461. data/lib/VoucherifySdk/models/client_validations_validate_response_body_redeemables_item_result.rb +11 -1
  462. data/lib/VoucherifySdk/models/client_validations_validate_response_body_redeemables_item_result_discount.rb +5 -1
  463. data/lib/VoucherifySdk/models/client_validations_validate_response_body_redeemables_item_result_gift.rb +14 -3
  464. data/lib/VoucherifySdk/models/client_validations_validate_response_body_redeemables_item_result_loyalty_card.rb +1 -0
  465. data/lib/VoucherifySdk/models/create_publication_campaign.rb +3 -3
  466. data/lib/VoucherifySdk/models/customer_loyalty.rb +1 -1
  467. data/lib/VoucherifySdk/models/customer_summary_orders.rb +4 -3
  468. data/lib/VoucherifySdk/models/customer_summary_redemptions_gift.rb +2 -2
  469. data/lib/VoucherifySdk/models/customer_with_summary_loyalty_referrals_assets.rb +18 -7
  470. data/lib/VoucherifySdk/models/customers_create_response_body_assets.rb +18 -7
  471. data/lib/VoucherifySdk/models/customers_get_response_body_assets.rb +18 -7
  472. data/lib/VoucherifySdk/models/customers_update_response_body_assets.rb +18 -7
  473. data/lib/VoucherifySdk/models/discount.rb +5 -1
  474. data/lib/VoucherifySdk/models/discount_unit_multiple_one_unit.rb +1 -0
  475. data/lib/VoucherifySdk/models/earning_rule.rb +20 -1
  476. data/lib/VoucherifySdk/models/earning_rule_expiration_rules.rb +313 -0
  477. data/lib/VoucherifySdk/models/earning_rule_loyalty.rb +12 -1
  478. data/lib/VoucherifySdk/models/earning_rule_loyalty_custom_event_metadata.rb +12 -1
  479. data/lib/VoucherifySdk/models/earning_rule_loyalty_customer_metadata.rb +12 -1
  480. data/lib/VoucherifySdk/models/earning_rule_loyalty_order_amount.rb +16 -5
  481. data/lib/VoucherifySdk/models/earning_rule_loyalty_order_items_amount.rb +31 -7
  482. data/lib/VoucherifySdk/models/earning_rule_loyalty_order_items_amount_applicable_to_item.rb +242 -0
  483. data/lib/VoucherifySdk/models/earning_rule_loyalty_order_items_quantity.rb +31 -7
  484. data/lib/VoucherifySdk/models/earning_rule_loyalty_order_items_quantity_applicable_to_item.rb +242 -0
  485. data/lib/VoucherifySdk/models/earning_rule_loyalty_order_items_subtotal_amount.rb +31 -7
  486. data/lib/VoucherifySdk/models/earning_rule_loyalty_order_items_subtotal_amount_applicable_to_item.rb +242 -0
  487. data/lib/VoucherifySdk/models/earning_rule_loyalty_order_metadata.rb +12 -1
  488. data/lib/VoucherifySdk/models/earning_rule_loyalty_order_total_amount.rb +16 -5
  489. data/lib/VoucherifySdk/models/earning_rule_pending_points.rb +257 -0
  490. data/lib/VoucherifySdk/models/event_source.rb +254 -0
  491. data/lib/VoucherifySdk/models/event_source_api_key.rb +221 -0
  492. data/lib/VoucherifySdk/models/event_source_user.rb +210 -0
  493. data/lib/VoucherifySdk/models/export_campaign_transactions_filters.rb +248 -0
  494. data/lib/VoucherifySdk/models/export_parameters.rb +16 -5
  495. data/lib/VoucherifySdk/models/exports_create_request_body_parameters.rb +16 -5
  496. data/lib/VoucherifySdk/models/exports_create_response_body_parameters.rb +16 -5
  497. data/lib/VoucherifySdk/models/exports_get_response_body.rb +0 -1
  498. data/lib/VoucherifySdk/models/exports_get_response_body_parameters.rb +16 -5
  499. data/lib/VoucherifySdk/models/filter_conditions_date_time.rb +2 -2
  500. data/lib/VoucherifySdk/models/gift.rb +14 -3
  501. data/lib/VoucherifySdk/models/inapplicable_to.rb +207 -18
  502. data/lib/VoucherifySdk/models/inapplicable_to_order_item_units_item.rb +235 -0
  503. data/lib/VoucherifySdk/models/loyalties_create_campaign_request_body.rb +13 -4
  504. data/lib/VoucherifySdk/models/loyalties_create_campaign_response_body.rb +1 -1
  505. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_request_body_item.rb +22 -3
  506. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_request_body_item_loyalty.rb +12 -1
  507. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_request_body_item_loyalty_custom_event_metadata.rb +12 -1
  508. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_request_body_item_loyalty_customer_metadata.rb +12 -1
  509. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_request_body_item_loyalty_order_amount.rb +16 -5
  510. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_request_body_item_loyalty_order_items_amount.rb +31 -7
  511. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_request_body_item_loyalty_order_items_amount_applicable_to_item.rb +242 -0
  512. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_request_body_item_loyalty_order_items_quantity.rb +31 -7
  513. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_request_body_item_loyalty_order_items_quantity_applicable_to_item.rb +242 -0
  514. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_request_body_item_loyalty_order_items_subtotal_amount.rb +31 -7
  515. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_request_body_item_loyalty_order_metadata.rb +12 -1
  516. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_request_body_item_loyalty_order_total_amount.rb +16 -5
  517. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_request_body_item_order_items_subtotal_amount_applicable_to_item.rb +242 -0
  518. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_request_body_item_pending_points.rb +257 -0
  519. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_response_body.rb +20 -1
  520. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_response_body_loyalty.rb +12 -1
  521. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_response_body_loyalty_custom_event_metadata.rb +12 -1
  522. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_response_body_loyalty_customer_metadata.rb +12 -1
  523. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_response_body_loyalty_order_amount.rb +16 -5
  524. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_response_body_loyalty_order_items_amount.rb +31 -7
  525. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_response_body_loyalty_order_items_amount_applicable_to_item.rb +242 -0
  526. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_response_body_loyalty_order_items_quantity.rb +31 -7
  527. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_response_body_loyalty_order_items_quantity_applicable_to_item.rb +242 -0
  528. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_response_body_loyalty_order_items_subtotal_amount.rb +31 -7
  529. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_response_body_loyalty_order_metadata.rb +12 -1
  530. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_response_body_loyalty_order_total_amount.rb +16 -5
  531. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_response_body_order_items_subtotal_amount_applicable_to_item.rb +242 -0
  532. data/lib/VoucherifySdk/models/loyalties_earning_rules_create_response_body_pending_points.rb +257 -0
  533. data/lib/VoucherifySdk/models/loyalties_earning_rules_disable_response_body.rb +20 -1
  534. data/lib/VoucherifySdk/models/loyalties_earning_rules_disable_response_body_loyalty.rb +12 -1
  535. data/lib/VoucherifySdk/models/loyalties_earning_rules_disable_response_body_loyalty_custom_event_metadata.rb +12 -1
  536. data/lib/VoucherifySdk/models/loyalties_earning_rules_disable_response_body_loyalty_customer_metadata.rb +12 -1
  537. data/lib/VoucherifySdk/models/loyalties_earning_rules_disable_response_body_loyalty_order_amount.rb +16 -5
  538. data/lib/VoucherifySdk/models/loyalties_earning_rules_disable_response_body_loyalty_order_items_amount.rb +31 -7
  539. data/lib/VoucherifySdk/models/loyalties_earning_rules_disable_response_body_loyalty_order_items_amount_applicable_to_item.rb +242 -0
  540. data/lib/VoucherifySdk/models/loyalties_earning_rules_disable_response_body_loyalty_order_items_quantity.rb +31 -7
  541. data/lib/VoucherifySdk/models/loyalties_earning_rules_disable_response_body_loyalty_order_items_quantity_applicable_to_item.rb +242 -0
  542. data/lib/VoucherifySdk/models/loyalties_earning_rules_disable_response_body_loyalty_order_items_subtotal_amount.rb +31 -7
  543. data/lib/VoucherifySdk/models/loyalties_earning_rules_disable_response_body_loyalty_order_metadata.rb +12 -1
  544. data/lib/VoucherifySdk/models/loyalties_earning_rules_disable_response_body_loyalty_order_total_amount.rb +16 -5
  545. data/lib/VoucherifySdk/models/loyalties_earning_rules_disable_response_body_order_items_subtotal_amount_applicable_to_item.rb +242 -0
  546. data/lib/VoucherifySdk/models/loyalties_earning_rules_disable_response_body_pending_points.rb +257 -0
  547. data/lib/VoucherifySdk/models/loyalties_earning_rules_enable_response_body.rb +20 -1
  548. data/lib/VoucherifySdk/models/loyalties_earning_rules_enable_response_body_loyalty.rb +12 -1
  549. data/lib/VoucherifySdk/models/loyalties_earning_rules_enable_response_body_loyalty_custom_event_metadata.rb +12 -1
  550. data/lib/VoucherifySdk/models/loyalties_earning_rules_enable_response_body_loyalty_customer_metadata.rb +12 -1
  551. data/lib/VoucherifySdk/models/loyalties_earning_rules_enable_response_body_loyalty_order_amount.rb +16 -5
  552. data/lib/VoucherifySdk/models/loyalties_earning_rules_enable_response_body_loyalty_order_items_amount.rb +31 -7
  553. data/lib/VoucherifySdk/models/loyalties_earning_rules_enable_response_body_loyalty_order_items_amount_applicable_to_item.rb +242 -0
  554. data/lib/VoucherifySdk/models/loyalties_earning_rules_enable_response_body_loyalty_order_items_quantity.rb +31 -7
  555. data/lib/VoucherifySdk/models/loyalties_earning_rules_enable_response_body_loyalty_order_items_quantity_applicable_to_item.rb +242 -0
  556. data/lib/VoucherifySdk/models/loyalties_earning_rules_enable_response_body_loyalty_order_items_subtotal_amount.rb +31 -7
  557. data/lib/VoucherifySdk/models/loyalties_earning_rules_enable_response_body_loyalty_order_metadata.rb +12 -1
  558. data/lib/VoucherifySdk/models/loyalties_earning_rules_enable_response_body_loyalty_order_total_amount.rb +16 -5
  559. data/lib/VoucherifySdk/models/loyalties_earning_rules_enable_response_body_order_items_subtotal_amount_applicable_to_item.rb +242 -0
  560. data/lib/VoucherifySdk/models/loyalties_earning_rules_enable_response_body_pending_points.rb +257 -0
  561. data/lib/VoucherifySdk/models/loyalties_earning_rules_get_response_body.rb +20 -1
  562. data/lib/VoucherifySdk/models/loyalties_earning_rules_get_response_body_loyalty.rb +12 -1
  563. data/lib/VoucherifySdk/models/loyalties_earning_rules_get_response_body_loyalty_custom_event_metadata.rb +12 -1
  564. data/lib/VoucherifySdk/models/loyalties_earning_rules_get_response_body_loyalty_customer_metadata.rb +12 -1
  565. data/lib/VoucherifySdk/models/loyalties_earning_rules_get_response_body_loyalty_order_amount.rb +16 -5
  566. data/lib/VoucherifySdk/models/loyalties_earning_rules_get_response_body_loyalty_order_items_amount.rb +31 -7
  567. data/lib/VoucherifySdk/models/loyalties_earning_rules_get_response_body_loyalty_order_items_amount_applicable_to_item.rb +242 -0
  568. data/lib/VoucherifySdk/models/loyalties_earning_rules_get_response_body_loyalty_order_items_quantity.rb +31 -7
  569. data/lib/VoucherifySdk/models/loyalties_earning_rules_get_response_body_loyalty_order_items_quantity_applicable_to_item.rb +242 -0
  570. data/lib/VoucherifySdk/models/loyalties_earning_rules_get_response_body_loyalty_order_items_subtotal_amount.rb +31 -7
  571. data/lib/VoucherifySdk/models/loyalties_earning_rules_get_response_body_loyalty_order_items_subtotal_amount_applicable_to_item.rb +242 -0
  572. data/lib/VoucherifySdk/models/loyalties_earning_rules_get_response_body_loyalty_order_metadata.rb +12 -1
  573. data/lib/VoucherifySdk/models/loyalties_earning_rules_get_response_body_loyalty_order_total_amount.rb +16 -5
  574. data/lib/VoucherifySdk/models/loyalties_earning_rules_get_response_body_pending_points.rb +257 -0
  575. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_request_body.rb +22 -3
  576. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_request_body_loyalty.rb +12 -1
  577. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_request_body_loyalty_custom_event_metadata.rb +12 -1
  578. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_request_body_loyalty_customer_metadata.rb +12 -1
  579. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_request_body_loyalty_order_amount.rb +16 -5
  580. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_request_body_loyalty_order_items_amount.rb +31 -7
  581. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_request_body_loyalty_order_items_amount_applicable_to_item.rb +242 -0
  582. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_request_body_loyalty_order_items_quantity.rb +31 -7
  583. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_request_body_loyalty_order_items_quantity_applicable_to_item.rb +242 -0
  584. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_request_body_loyalty_order_items_subtotal_amount.rb +31 -7
  585. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_request_body_loyalty_order_metadata.rb +12 -1
  586. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_request_body_loyalty_order_total_amount.rb +16 -5
  587. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_request_body_order_items_subtotal_amount_applicable_to_item.rb +242 -0
  588. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_request_body_pending_points.rb +257 -0
  589. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_response_body.rb +20 -1
  590. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_response_body_loyalty.rb +12 -1
  591. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_response_body_loyalty_custom_event_metadata.rb +12 -1
  592. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_response_body_loyalty_customer_metadata.rb +12 -1
  593. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_response_body_loyalty_order_amount.rb +16 -5
  594. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_response_body_loyalty_order_items_amount.rb +31 -7
  595. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_response_body_loyalty_order_items_amount_applicable_to_item.rb +242 -0
  596. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_response_body_loyalty_order_items_quantity.rb +31 -7
  597. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_response_body_loyalty_order_items_quantity_applicable_to_item.rb +242 -0
  598. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_response_body_loyalty_order_items_subtotal_amount.rb +31 -7
  599. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_response_body_loyalty_order_metadata.rb +12 -1
  600. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_response_body_loyalty_order_total_amount.rb +16 -5
  601. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_response_body_order_items_subtotal_amount_applicable_to_item.rb +242 -0
  602. data/lib/VoucherifySdk/models/loyalties_earning_rules_update_response_body_pending_points.rb +257 -0
  603. data/lib/VoucherifySdk/models/loyalties_get_campaign_response_body.rb +1 -1
  604. data/lib/VoucherifySdk/models/loyalties_members_create_response_body_loyalty_card.rb +40 -7
  605. data/lib/VoucherifySdk/models/loyalties_members_create_response_body_publish.rb +1 -1
  606. data/lib/VoucherifySdk/models/loyalties_members_get_response_body_loyalty_card.rb +40 -7
  607. data/lib/VoucherifySdk/models/loyalties_members_get_response_body_publish.rb +1 -1
  608. data/lib/VoucherifySdk/models/loyalties_members_pending_points_activate_response_body.rb +309 -0
  609. data/lib/VoucherifySdk/models/loyalties_members_pending_points_activate_response_body_related_object.rb +247 -0
  610. data/lib/VoucherifySdk/models/loyalties_members_pending_points_balance_request_body.rb +210 -0
  611. data/lib/VoucherifySdk/models/loyalties_members_pending_points_balance_response_body.rb +283 -0
  612. data/lib/VoucherifySdk/models/loyalties_members_pending_points_balance_response_body_related_object.rb +247 -0
  613. data/lib/VoucherifySdk/models/loyalties_members_pending_points_list_response_body.rb +286 -0
  614. data/lib/VoucherifySdk/models/loyalties_members_points_expiration_list_response_body_data_item.rb +1 -1
  615. data/lib/VoucherifySdk/models/loyalties_members_redemption_redeem_request_body.rb +1 -1
  616. data/lib/VoucherifySdk/models/loyalties_members_redemption_redeem_response_body.rb +11 -1
  617. data/lib/VoucherifySdk/models/loyalties_members_redemption_redeem_response_body_related_redemptions_rollbacks_item.rb +38 -4
  618. data/lib/VoucherifySdk/models/loyalties_members_redemption_redeem_response_body_session.rb +210 -0
  619. data/lib/VoucherifySdk/models/loyalties_members_redemption_redeem_response_body_voucher_gift.rb +14 -3
  620. data/lib/VoucherifySdk/models/loyalties_members_redemption_redeem_response_body_voucher_loyalty_card.rb +40 -7
  621. data/lib/VoucherifySdk/models/loyalties_members_transfers_create_response_body_loyalty_card.rb +40 -7
  622. data/lib/VoucherifySdk/models/loyalties_pending_points_list_response_body.rb +286 -0
  623. data/lib/VoucherifySdk/models/loyalties_points_expiration_export_create_request_body_parameters.rb +1 -1
  624. data/lib/VoucherifySdk/models/loyalties_reward_assignments_reward_get_response_body.rb +1 -1
  625. data/lib/VoucherifySdk/models/loyalties_transactions_export_create_request_body.rb +209 -0
  626. data/lib/VoucherifySdk/models/loyalties_transactions_export_create_request_body_parameters.rb +256 -0
  627. data/lib/VoucherifySdk/models/loyalties_transactions_list_response_body.rb +286 -0
  628. data/lib/VoucherifySdk/models/loyalties_update_campaign_request_body.rb +11 -2
  629. data/lib/VoucherifySdk/models/loyalties_update_campaign_response_body.rb +1 -1
  630. data/lib/VoucherifySdk/models/loyalty_campaign.rb +1 -1
  631. data/lib/VoucherifySdk/models/loyalty_card_transaction.rb +1 -1
  632. data/lib/VoucherifySdk/models/loyalty_card_transaction_details.rb +20 -1
  633. data/lib/VoucherifySdk/models/loyalty_card_transaction_details_balance.rb +12 -1
  634. data/lib/VoucherifySdk/models/loyalty_card_transaction_details_earning_rule.rb +1 -1
  635. data/lib/VoucherifySdk/models/loyalty_card_transaction_details_holder_loyalty_tier.rb +221 -0
  636. data/lib/VoucherifySdk/models/loyalty_card_transaction_details_loyalty_tier.rb +3 -1
  637. data/lib/VoucherifySdk/models/loyalty_card_transactions_type.rb +2 -1
  638. data/lib/VoucherifySdk/models/loyalty_member_loyalty_card.rb +40 -7
  639. data/lib/VoucherifySdk/models/loyalty_member_publish.rb +1 -1
  640. data/lib/VoucherifySdk/models/loyalty_pending_points.rb +314 -0
  641. data/lib/VoucherifySdk/models/loyalty_pending_points_details.rb +249 -0
  642. data/lib/VoucherifySdk/models/loyalty_pending_points_details_earning_rule.rb +220 -0
  643. data/lib/VoucherifySdk/models/loyalty_pending_points_details_earning_rule_source.rb +210 -0
  644. data/lib/VoucherifySdk/models/loyalty_pending_points_details_event.rb +302 -0
  645. data/lib/VoucherifySdk/models/loyalty_pending_points_details_holder_loyalty_tier.rb +221 -0
  646. data/lib/VoucherifySdk/models/loyalty_pending_points_details_loyalty_tier.rb +221 -0
  647. data/lib/VoucherifySdk/models/loyalty_pending_points_details_order.rb +221 -0
  648. data/lib/VoucherifySdk/models/loyalty_points_bucket.rb +1 -1
  649. data/lib/VoucherifySdk/models/loyalty_tier_expiration.rb +1 -1
  650. data/lib/VoucherifySdk/models/loyalty_tiers_expiration_all.rb +1 -1
  651. data/lib/VoucherifySdk/models/management_projects_stacking_rules.rb +112 -9
  652. data/lib/VoucherifySdk/models/management_projects_stacking_rules_create_request_body.rb +116 -13
  653. data/lib/VoucherifySdk/models/management_projects_stacking_rules_create_response_body.rb +112 -9
  654. data/lib/VoucherifySdk/models/management_projects_stacking_rules_get_response_body.rb +112 -9
  655. data/lib/VoucherifySdk/models/management_projects_stacking_rules_update_request_body.rb +116 -13
  656. data/lib/VoucherifySdk/models/management_projects_stacking_rules_update_response_body.rb +112 -9
  657. data/lib/VoucherifySdk/models/management_projects_users_invite_create_request_body.rb +1 -1
  658. data/lib/VoucherifySdk/models/management_projects_users_update_role_request_body.rb +1 -1
  659. data/lib/VoucherifySdk/models/order.rb +3 -3
  660. data/lib/VoucherifySdk/models/order_calculated.rb +28 -28
  661. data/lib/VoucherifySdk/models/order_calculated_item.rb +18 -6
  662. data/lib/VoucherifySdk/models/order_item.rb +1 -1
  663. data/lib/VoucherifySdk/models/order_redemptions_entry.rb +1 -1
  664. data/lib/VoucherifySdk/models/orders_create_request_body.rb +3 -3
  665. data/lib/VoucherifySdk/models/orders_create_response_body.rb +28 -28
  666. data/lib/VoucherifySdk/models/orders_get_response_body.rb +28 -28
  667. data/lib/VoucherifySdk/models/orders_import_create_request_body_item.rb +17 -17
  668. data/lib/VoucherifySdk/models/orders_update_request_body.rb +3 -3
  669. data/lib/VoucherifySdk/models/orders_update_response_body.rb +28 -28
  670. data/lib/VoucherifySdk/models/parameter_filters_list_campaigns_campaign_status.rb +2 -1
  671. data/lib/VoucherifySdk/models/parameter_filters_list_campaigns_campaign_status_conditions.rb +1 -0
  672. data/lib/VoucherifySdk/models/parameter_filters_list_campaigns_category_ids.rb +1 -1
  673. data/lib/VoucherifySdk/models/parameter_filters_list_campaigns_is_referral_code.rb +1 -1
  674. data/lib/VoucherifySdk/models/parameter_order_list_pending_points.rb +40 -0
  675. data/lib/VoucherifySdk/models/parameters_filters_list_campaign_transactions.rb +247 -0
  676. data/lib/VoucherifySdk/models/product_collections_create_request_body.rb +2 -4
  677. data/lib/VoucherifySdk/models/products_skus_create_request_body.rb +1 -1
  678. data/lib/VoucherifySdk/models/products_skus_create_response_body.rb +1 -1
  679. data/lib/VoucherifySdk/models/products_skus_list_response_body.rb +1 -1
  680. data/lib/VoucherifySdk/models/products_skus_update_request_body.rb +1 -1
  681. data/lib/VoucherifySdk/models/promotion_tier_campaign.rb +1 -1
  682. data/lib/VoucherifySdk/models/promotions_tiers_create_response_body_campaign.rb +1 -1
  683. data/lib/VoucherifySdk/models/promotions_tiers_disable_response_body_campaign.rb +1 -1
  684. data/lib/VoucherifySdk/models/promotions_tiers_enable_response_body_campaign.rb +1 -1
  685. data/lib/VoucherifySdk/models/promotions_tiers_get_response_body_campaign.rb +1 -1
  686. data/lib/VoucherifySdk/models/promotions_tiers_update_response_body_campaign.rb +1 -1
  687. data/lib/VoucherifySdk/models/qualifications_check_eligibility_request_body.rb +12 -2
  688. data/lib/VoucherifySdk/models/qualifications_check_eligibility_request_body_session.rb +236 -0
  689. data/lib/VoucherifySdk/models/qualifications_option.rb +4 -4
  690. data/lib/VoucherifySdk/models/qualifications_option_filters_resource_type_conditions.rb +1 -1
  691. data/lib/VoucherifySdk/models/qualifications_redeemable.rb +1 -1
  692. data/lib/VoucherifySdk/models/qualifications_redeemable_base.rb +1 -1
  693. data/lib/VoucherifySdk/models/redeemable_gift.rb +18 -7
  694. data/lib/VoucherifySdk/models/redeemable_loyalty_card.rb +2 -2
  695. data/lib/VoucherifySdk/models/redeemable_result.rb +10 -1
  696. data/lib/VoucherifySdk/models/redeemable_voucher_gift.rb +14 -3
  697. data/lib/VoucherifySdk/models/redeemable_voucher_loyalty_card.rb +40 -7
  698. data/lib/VoucherifySdk/models/redeemable_voucher_publish.rb +1 -1
  699. data/lib/VoucherifySdk/models/redemption.rb +11 -1
  700. data/lib/VoucherifySdk/models/redemption_entry.rb +11 -1
  701. data/lib/VoucherifySdk/models/redemption_entry_order.rb +28 -28
  702. data/lib/VoucherifySdk/models/redemption_entry_promotion_tier_campaign.rb +1 -1
  703. data/lib/VoucherifySdk/models/redemption_entry_related_redemptions_rollbacks_item.rb +38 -4
  704. data/lib/VoucherifySdk/models/redemption_entry_session.rb +210 -0
  705. data/lib/VoucherifySdk/models/redemption_entry_voucher_gift.rb +14 -3
  706. data/lib/VoucherifySdk/models/redemption_entry_voucher_loyalty_card.rb +40 -7
  707. data/lib/VoucherifySdk/models/redemption_related_redemptions_rollbacks_item.rb +38 -4
  708. data/lib/VoucherifySdk/models/redemption_reward_result_parameters_campaign.rb +1 -1
  709. data/lib/VoucherifySdk/models/redemption_rollback.rb +15 -15
  710. data/lib/VoucherifySdk/models/redemption_session.rb +210 -0
  711. data/lib/VoucherifySdk/models/redemption_voucher_gift.rb +14 -3
  712. data/lib/VoucherifySdk/models/redemption_voucher_loyalty_card.rb +40 -7
  713. data/lib/VoucherifySdk/models/redemptions_get_response_body.rb +11 -1
  714. data/lib/VoucherifySdk/models/redemptions_get_response_body_order.rb +28 -28
  715. data/lib/VoucherifySdk/models/redemptions_get_response_body_promotion_tier_campaign.rb +1 -1
  716. data/lib/VoucherifySdk/models/redemptions_get_response_body_related_redemptions_rollbacks_item.rb +38 -4
  717. data/lib/VoucherifySdk/models/redemptions_get_response_body_session.rb +210 -0
  718. data/lib/VoucherifySdk/models/redemptions_get_response_body_voucher_gift.rb +14 -3
  719. data/lib/VoucherifySdk/models/redemptions_get_response_body_voucher_loyalty_card.rb +40 -7
  720. data/lib/VoucherifySdk/models/redemptions_list_response_body_redemptions_item.rb +11 -1
  721. data/lib/VoucherifySdk/models/redemptions_list_response_body_redemptions_item_order.rb +27 -28
  722. data/lib/VoucherifySdk/models/redemptions_list_response_body_redemptions_item_promotion_tier_campaign.rb +1 -1
  723. data/lib/VoucherifySdk/models/redemptions_list_response_body_redemptions_item_related_redemptions.rb +0 -1
  724. data/lib/VoucherifySdk/models/redemptions_list_response_body_redemptions_item_related_redemptions_rollbacks_item.rb +38 -4
  725. data/lib/VoucherifySdk/models/redemptions_list_response_body_redemptions_item_session.rb +210 -0
  726. data/lib/VoucherifySdk/models/redemptions_list_response_body_redemptions_item_voucher_gift.rb +14 -3
  727. data/lib/VoucherifySdk/models/redemptions_list_response_body_redemptions_item_voucher_loyalty_card.rb +40 -7
  728. data/lib/VoucherifySdk/models/redemptions_redeem_request_body_options.rb +1 -1
  729. data/lib/VoucherifySdk/models/redemptions_redeem_request_body_redeemables_item_gift.rb +1 -1
  730. data/lib/VoucherifySdk/models/redemptions_rollback_create_response_body.rb +15 -15
  731. data/lib/VoucherifySdk/models/reward.rb +1 -1
  732. data/lib/VoucherifySdk/models/rewards_create_request_body.rb +1 -1
  733. data/lib/VoucherifySdk/models/rewards_create_request_body_parameters_campaign.rb +1 -1
  734. data/lib/VoucherifySdk/models/rewards_create_response_body.rb +1 -1
  735. data/lib/VoucherifySdk/models/rewards_update_request_body.rb +1 -1
  736. data/lib/VoucherifySdk/models/rewards_update_request_body_parameters_campaign.rb +1 -1
  737. data/lib/VoucherifySdk/models/rewards_update_response_body.rb +1 -1
  738. data/lib/VoucherifySdk/models/segments_create_request_body.rb +2 -2
  739. data/lib/VoucherifySdk/models/segments_create_response_body.rb +31 -20
  740. data/lib/VoucherifySdk/models/segments_get_response_body.rb +32 -21
  741. data/lib/VoucherifySdk/models/simple_loyalty_card.rb +40 -7
  742. data/lib/VoucherifySdk/models/simple_voucher_redemption.rb +16 -5
  743. data/lib/VoucherifySdk/models/stacking_rules.rb +72 -20
  744. data/lib/VoucherifySdk/models/templates_campaigns_campaign_setup_create_request_body.rb +13 -4
  745. data/lib/VoucherifySdk/models/trash_bin_item.rb +1 -1
  746. data/lib/VoucherifySdk/models/validation_rule.rb +11 -1
  747. data/lib/VoucherifySdk/models/validation_rules_create_request_body.rb +11 -1
  748. data/lib/VoucherifySdk/models/validation_rules_create_response_body.rb +11 -1
  749. data/lib/VoucherifySdk/models/validation_rules_get_response_body.rb +11 -1
  750. data/lib/VoucherifySdk/models/validation_rules_update_request_body.rb +11 -1
  751. data/lib/VoucherifySdk/models/validation_rules_update_response_body.rb +11 -1
  752. data/lib/VoucherifySdk/models/validations_redeemable_inapplicable_result.rb +14 -5
  753. data/lib/VoucherifySdk/models/validations_validate_request_body.rb +1 -1
  754. data/lib/VoucherifySdk/models/validations_validate_request_body_options.rb +1 -1
  755. data/lib/VoucherifySdk/models/validations_validate_request_body_redeemables_item_gift.rb +1 -1
  756. data/lib/VoucherifySdk/models/validations_validate_response_body.rb +12 -1
  757. data/lib/VoucherifySdk/models/validations_validate_response_body_redeemables_item_result.rb +11 -1
  758. data/lib/VoucherifySdk/models/validations_validate_response_body_redeemables_item_result_discount.rb +5 -1
  759. data/lib/VoucherifySdk/models/validations_validate_response_body_redeemables_item_result_gift.rb +14 -3
  760. data/lib/VoucherifySdk/models/validations_validate_response_body_redeemables_item_result_loyalty_card.rb +1 -0
  761. data/lib/VoucherifySdk/models/validity_hours.rb +1 -1
  762. data/lib/VoucherifySdk/models/validity_hours_daily_item.rb +1 -1
  763. data/lib/VoucherifySdk/models/voucher_balance.rb +12 -1
  764. data/lib/VoucherifySdk/models/voucher_gift.rb +14 -3
  765. data/lib/VoucherifySdk/models/voucher_loyalty_card.rb +40 -7
  766. data/lib/VoucherifySdk/models/voucher_transaction.rb +2 -2
  767. data/lib/VoucherifySdk/models/voucher_transaction_details.rb +20 -1
  768. data/lib/VoucherifySdk/models/voucher_transaction_details_balance.rb +12 -1
  769. data/lib/VoucherifySdk/models/voucher_transaction_details_custom_event.rb +2 -2
  770. data/lib/VoucherifySdk/models/voucher_transaction_details_earning_rule.rb +1 -1
  771. data/lib/VoucherifySdk/models/voucher_transaction_details_event_schema.rb +2 -2
  772. data/lib/VoucherifySdk/models/voucher_transaction_details_holder_loyalty_tier.rb +221 -0
  773. data/lib/VoucherifySdk/models/voucher_transaction_details_loyalty_tier.rb +3 -1
  774. data/lib/VoucherifySdk/models/voucher_transaction_details_rollback.rb +1 -1
  775. data/lib/VoucherifySdk/models/voucher_transaction_details_segment.rb +2 -0
  776. data/lib/VoucherifySdk/models/voucher_transactions_export_parameters.rb +1 -1
  777. data/lib/VoucherifySdk/models/voucher_transactions_filters.rb +1 -1
  778. data/lib/VoucherifySdk/models/voucher_with_categories_gift.rb +14 -3
  779. data/lib/VoucherifySdk/models/voucher_with_categories_loyalty_card.rb +40 -7
  780. data/lib/VoucherifySdk/models/vouchers_balance_update_request_body.rb +1 -1
  781. data/lib/VoucherifySdk/models/vouchers_balance_update_response_body.rb +2 -2
  782. data/lib/VoucherifySdk/models/vouchers_create_request_body.rb +2 -2
  783. data/lib/VoucherifySdk/models/vouchers_create_response_body_gift.rb +14 -3
  784. data/lib/VoucherifySdk/models/vouchers_create_response_body_loyalty_card.rb +40 -7
  785. data/lib/VoucherifySdk/models/vouchers_create_with_specific_code_request_body.rb +2 -2
  786. data/lib/VoucherifySdk/models/vouchers_disable_response_body_gift.rb +14 -3
  787. data/lib/VoucherifySdk/models/vouchers_disable_response_body_loyalty_card.rb +40 -7
  788. data/lib/VoucherifySdk/models/vouchers_enable_response_body_gift.rb +14 -3
  789. data/lib/VoucherifySdk/models/vouchers_enable_response_body_loyalty_card.rb +40 -7
  790. data/lib/VoucherifySdk/models/vouchers_get_response_body_gift.rb +14 -3
  791. data/lib/VoucherifySdk/models/vouchers_get_response_body_loyalty_card.rb +40 -7
  792. data/lib/VoucherifySdk/models/vouchers_import_create_item_request_body.rb +1 -1
  793. data/lib/VoucherifySdk/models/vouchers_transactions_export_create_response_body_result.rb +1 -1
  794. data/lib/VoucherifySdk/models/vouchers_update_request_body.rb +2 -2
  795. data/lib/VoucherifySdk/models/vouchers_update_response_body_gift.rb +14 -3
  796. data/lib/VoucherifySdk/models/vouchers_update_response_body_loyalty_card.rb +40 -7
  797. data/lib/VoucherifySdk/version.rb +1 -1
  798. data/lib/VoucherifySdk.rb +85 -0
  799. metadata +210 -36
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
23
23
  s.email = ['pawel.rychlik@rspective.pl']
24
24
 
25
25
  s.summary = %q{Ruby SDK for Voucherify. More info on http://www.voucherify.io}
26
- s.homepage = 'https://github.com/voucherifyio/sdk-ruby-openapi-based'
26
+ s.homepage = 'https://github.com/voucherifyio/voucherify-ruby-sdk'
27
27
  s.license = 'MIT'
28
28
  s.required_ruby_version = ">= 2.7"
29
29
 
data/__tests__/README.md CHANGED
@@ -9,6 +9,16 @@ The primary reason for this approach is to ensure that the most critical aspects
9
9
  We strongly recommend running the tests using the Dockerfile provided in the root directory.
10
10
  If you prefer to run tests locally, here are the steps you need to follow.
11
11
 
12
+ ### Environment variables
13
+
14
+ Create `sdks/ruby/.env` (you can copy `sdks/ruby/.env.example`) and set:
15
+
16
+ - `VOUCHERIFY_HOST`
17
+ - `X_APP_ID`
18
+ - `X_APP_TOKEN`
19
+ - `X_MANAGEMENT_ID`
20
+ - `X_MANAGEMENT_TOKEN`
21
+
12
22
  ### Requirements
13
23
 
14
24
  - all elements described in [main README.md](../README.md) like Ruby and Gem manager
@@ -23,6 +33,14 @@ If you prefer to run tests locally, here are the steps you need to follow.
23
33
  4. Go into `__tests__` directory
24
34
  5. Run `rspec ./spec` command
25
35
 
36
+ ### Running with Docker (recommended)
37
+
38
+ 1. Go into `sdks/ruby` directory
39
+ 2. Build image: `docker build -t ruby .`
40
+ 3. Run tests: `docker run --rm ruby`
41
+
42
+ From repo root, you can also run: `npm run test-ruby-sdk`.
43
+
26
44
  **Note that running tests will affect your Voucherify project data. Run tests only on development projects.**
27
45
 
28
46
  ## Contributing
@@ -1,6 +1,7 @@
1
1
  require_relative 'utils.rb'
2
2
  require 'VoucherifySdk'
3
3
  require 'json'
4
+ require 'tempfile'
4
5
 
5
6
  def create_validation_rule_applicable_to(validation_rules_api_instance, product_id)
6
7
  begin
@@ -144,5 +145,56 @@ def add_vouchers_to_campaign(campaigns_api_instance, campaign_id, voucher_count)
144
145
  rescue VoucherifySdk::ApiError => e
145
146
  return nil
146
147
  end
147
- end
148
+ end
149
+
150
+ def create_discount_campaign_with_expiration(campaigns_api_instance, expiration_date)
151
+ expiration_value = expiration_date.respond_to?(:utc) ? expiration_date.utc.iso8601 : expiration_date
152
+
153
+ campaigns_api_instance.create_campaign({
154
+ campaigns_create_request_body: VoucherifySdk::CampaignsCreateRequestBody.new({
155
+ campaign_type: "DISCOUNT_COUPONS",
156
+ name: generate_random_string(),
157
+ type: "AUTO_UPDATE",
158
+ expiration_date: expiration_value,
159
+ voucher: VoucherifySdk::CampaignsCreateRequestBodyVoucher.new({
160
+ type: 'DISCOUNT_VOUCHER',
161
+ discount: VoucherifySdk::Discount.new({
162
+ type: 'AMOUNT',
163
+ amount_off: 1000
164
+ })
165
+ })
166
+ })
167
+ })
168
+ end
169
+
170
+ def update_campaign_expiration_to_null(campaigns_api_instance, campaign_id)
171
+ campaigns_api_instance.update_campaign(campaign_id, {
172
+ campaigns_update_request_body: {
173
+ expiration_date: nil
174
+ }
175
+ })
176
+ true
177
+ end
178
+
179
+ def import_vouchers_to_campaign_using_csv(campaigns_api_instance, campaign_id, voucher_codes)
180
+ file = Tempfile.new(['vouchers_import', '.csv'])
181
+
182
+ begin
183
+ file.write("code\n")
184
+ voucher_codes.each do |code|
185
+ file.write("#{code}\n")
186
+ end
187
+ file.rewind
188
+
189
+ csv_file = File.new(file.path)
190
+ result = campaigns_api_instance.import_vouchers_to_campaign_using_csv(campaign_id, {
191
+ file: csv_file
192
+ })
193
+ csv_file.close
194
+ result
195
+ ensure
196
+ file.close
197
+ file.unlink
198
+ end
199
+ end
148
200
 
@@ -60,6 +60,10 @@ module Config
60
60
  return VoucherifySdk::EventsApi.new()
61
61
  end
62
62
 
63
+ def self.async_actions_api_instance
64
+ return VoucherifySdk::AsyncActionsApi.new()
65
+ end
66
+
63
67
  def self.order_api_instance
64
68
  return VoucherifySdk::OrdersApi.new()
65
69
  end
@@ -71,5 +75,22 @@ module Config
71
75
  def self.vouchers_api_instance
72
76
  return VoucherifySdk::VouchersApi.new()
73
77
  end
78
+
79
+ def self.management_api_instance
80
+ management_config = VoucherifySdk::Configuration.new
81
+ management_config.api_key['X-Management-Id'] = ENV['X_MANAGEMENT_ID']
82
+ management_config.api_key['X-Management-Token'] = ENV['X_MANAGEMENT_TOKEN']
83
+ management_config.host = ENV['VOUCHERIFY_HOST'] || 'https://api.voucherify.io'
84
+
85
+ return VoucherifySdk::ManagementApi.new(VoucherifySdk::ApiClient.new(management_config))
86
+ end
87
+
88
+ def self.management_credentials_configured?
89
+ return !ENV['X_MANAGEMENT_ID'].to_s.empty? && !ENV['X_MANAGEMENT_TOKEN'].to_s.empty?
90
+ end
91
+
92
+ def self.management_project_id
93
+ return ENV['PROJECT_ID']
94
+ end
74
95
  end
75
96
 
@@ -12,7 +12,7 @@ def update_loyalty_card_balance(loyalties_api_instance, memberId)
12
12
  return updated_loyalty_member_card
13
13
 
14
14
  rescue VoucherifySdk::ApiError => e
15
- retun nil
15
+ return nil
16
16
  end
17
17
  end
18
18
 
@@ -28,5 +28,5 @@ def list_loyalty_card_transactions(loyalties_api_instance, memberId)
28
28
 
29
29
  rescue VoucherifySdk::ApiError => e
30
30
  return nil
31
- end
31
+ end
32
32
  end
@@ -6,4 +6,30 @@ end
6
6
 
7
7
  def generate_random_voucher_codes(base_code, count, length=6)
8
8
  (1..count).map { "#{base_code}-#{generate_random_string(length)}" }
9
- end
9
+ end
10
+
11
+ # Polls the async actions endpoint until the action reaches a terminal state.
12
+ # Returns the final AsyncActionGetResponseBody when it succeeds, raises otherwise.
13
+ def wait_for_async_action(async_actions_api_instance, async_action_id, max_attempts: 10, delay_seconds: 2)
14
+ attempt = 0
15
+
16
+ loop do
17
+ attempt += 1
18
+ sleep(delay_seconds)
19
+
20
+ action = async_actions_api_instance.get_async_action(async_action_id)
21
+
22
+ operation_status = action.operation_status.to_s.upcase
23
+ status = action.status.to_s.upcase
24
+
25
+ return action if operation_status == 'SUCCESS' || status == 'DONE'
26
+
27
+ if operation_status == 'FAILED' || status == 'FAILED'
28
+ raise "Async action #{async_action_id} failed (status=#{status}, operation_status=#{operation_status})"
29
+ end
30
+
31
+ if attempt >= max_attempts
32
+ raise "Async action #{async_action_id} did not finish after #{max_attempts} attempts (status=#{status}, operation_status=#{operation_status})"
33
+ end
34
+ end
35
+ end
@@ -9,6 +9,7 @@ RSpec.describe 'Campaigns API', :order => :defined do
9
9
  before(:each) do
10
10
  @campaigns_api_instance = Config.campaigns_api_instance()
11
11
  @validation_rules_api_instance = Config.validation_rules_api_instance()
12
+ @async_actions_api_instance = Config.async_actions_api_instance()
12
13
  @voucherify_data = VoucherifyData.instance()
13
14
  end
14
15
 
@@ -44,7 +45,7 @@ RSpec.describe 'Campaigns API', :order => :defined do
44
45
  @voucherify_data.set_discount_campaign(created_discount_campaign)
45
46
  end
46
47
 
47
- it 'create a promotion campaign', :order => :thrid do
48
+ it 'create a promotion campaign', :order => :third do
48
49
  created_promotion_campaign = create_promotion_campaign(@campaigns_api_instance)
49
50
 
50
51
  snapshot_name = 'campaigns/created_promotion_campaign'
@@ -125,9 +126,39 @@ RSpec.describe 'Campaigns API', :order => :defined do
125
126
  expect(validate_deep_match(filtered_validation_rule_snapshot, validation_rule)).to be true
126
127
 
127
128
  voucher = @campaigns_api_instance.add_vouchers_to_campaign(campaign.id, {
128
- vouchers_count: 1,
129
+ vouchers_count: 1,
129
130
  })
130
131
 
131
132
  @voucherify_data.set_voucher_with_more_than_validation_rule(voucher)
132
133
  end
134
+
135
+ it 'import vouchers to campaign using csv', :order => :tenth do
136
+ voucher_codes = Array.new(3) { generate_random_string(8) }
137
+ imported_vouchers = import_vouchers_to_campaign_using_csv(@campaigns_api_instance, $created_discount_campaign.id, voucher_codes)
138
+
139
+ expect(imported_vouchers).not_to be_nil
140
+ expect(imported_vouchers.async_action_id).not_to be_nil
141
+
142
+ finished_action = wait_for_async_action(@async_actions_api_instance, imported_vouchers.async_action_id)
143
+
144
+ expect(finished_action).not_to be_nil
145
+ expect(finished_action.id).to eq(imported_vouchers.async_action_id)
146
+ end
147
+
148
+ it 'update campaign expiration_date to null', :order => :eleventh do
149
+ expiration_date = Time.now.utc + 86400
150
+ created_campaign = create_discount_campaign_with_expiration(@campaigns_api_instance, expiration_date)
151
+
152
+ expect(created_campaign).not_to be_nil
153
+ expect(created_campaign.expiration_date).not_to be_nil
154
+
155
+ updated_to_null = update_campaign_expiration_to_null(@campaigns_api_instance, created_campaign.id)
156
+
157
+ expect(updated_to_null).to be true
158
+
159
+ campaign_after_update = @campaigns_api_instance.get_campaign(created_campaign.id)
160
+
161
+ expect(campaign_after_update).not_to be_nil
162
+ expect(campaign_after_update.expiration_date).to be_nil
163
+ end
133
164
  end
@@ -16,9 +16,7 @@ RSpec.describe 'Publications API', :order => :defined do
16
16
  customer: VoucherifySdk::Customer.new({
17
17
  id: @voucherify_data.get_customer().id
18
18
  }),
19
- campaign: VoucherifySdk::CreatePublicationCampaign.new({
20
- name: @voucherify_data.get_discount_campaign().name
21
- })
19
+ voucher: @voucherify_data.get_voucher().code
22
20
  })
23
21
  })
24
22
 
@@ -28,4 +26,19 @@ RSpec.describe 'Publications API', :order => :defined do
28
26
  expect(publication).not_to be_nil
29
27
  expect(validate_deep_match(filtered_snapshot, publication)).to be true
30
28
  end
29
+
30
+ it 'publish loyalty card to customer', :order => :second do
31
+ publication = @publications_api_instance.create_publication({
32
+ join_once: true,
33
+ publications_create_request_body: VoucherifySdk::PublicationsCreateRequestBody.new({
34
+ customer: VoucherifySdk::Customer.new({
35
+ id: @voucherify_data.get_customer().id
36
+ }),
37
+ voucher: @voucherify_data.get_loyalty_card().code
38
+ })
39
+ })
40
+
41
+ expect(publication).not_to be_nil
42
+ expect(publication.voucher.code).to eq(@voucherify_data.get_loyalty_card().code)
43
+ end
31
44
  end
@@ -8,6 +8,7 @@ require_relative 'support/validate_deep_match'
8
8
  RSpec.describe 'Vouchers API', :order => :defined do
9
9
  before(:each) do
10
10
  @vouchers_api_instance = Config.vouchers_api_instance()
11
+ @publications_api_instance = Config.publications_api_instance()
11
12
  @voucherify_data = VoucherifyData.instance()
12
13
  end
13
14
 
@@ -31,7 +32,7 @@ RSpec.describe 'Vouchers API', :order => :defined do
31
32
  expect(validate_deep_match(filtered_snapshot, voucher)).to be true
32
33
  end
33
34
 
34
- it 'enable voucher previously created', :order => :thrird do
35
+ it 'enable voucher previously created', :order => :third do
35
36
  voucher = @vouchers_api_instance.enable_voucher(@voucherify_data.get_voucher().code)
36
37
 
37
38
  snapshot_name = 'vouchers/enabled_previously_created_voucher'
@@ -41,14 +42,32 @@ RSpec.describe 'Vouchers API', :order => :defined do
41
42
  expect(validate_deep_match(filtered_snapshot, voucher)).to be true
42
43
  end
43
44
 
44
- it 'update loyalty card balance', :order => :fourth do
45
+ it 'publish loyalty card', :order => :fourth do
46
+ loyalty_card = @voucherify_data.get_loyalty_card()
47
+ customer = @voucherify_data.get_customer()
48
+
49
+ publication = @publications_api_instance.create_publication({
50
+ publications_create_request_body: VoucherifySdk::PublicationsCreateRequestBody.new({
51
+ voucher: loyalty_card.code,
52
+ customer: VoucherifySdk::Customer.new({
53
+ id: customer.id
54
+ })
55
+ })
56
+ })
57
+
58
+ expect(publication).not_to be_nil
59
+ end
60
+
61
+ it 'update loyalty card balance', :order => :fifth do
62
+ loyalty_card = @voucherify_data.get_loyalty_card()
63
+
45
64
  vouchers_balance_update_request_body = VoucherifySdk::VouchersBalanceUpdateRequestBody.new({
46
65
  source_id: generate_random_string(),
47
66
  amount: 10000,
48
67
  reason: "Regular customer"
49
68
  })
50
69
 
51
- response = @vouchers_api_instance.update_voucher_balance(@voucherify_data.get_loyalty_card().code, vouchers_balance_update_request_body)
70
+ response = @vouchers_api_instance.update_voucher_balance(loyalty_card.code, vouchers_balance_update_request_body)
52
71
 
53
72
  snapshot_name = 'vouchers/updated_loyalty_card_balance'
54
73
  filtered_snapshot = get_snapshot_without_uniq_keys(snapshot_name)
@@ -19,21 +19,7 @@ RSpec.describe 'Validation Rules API', :order => :defined do
19
19
  related_object_type: "voucher",
20
20
  related_object_id: voucher.code
21
21
  })
22
-
23
- created_validation_rule_assignment = @validation_rules_api_instance.create_validation_rule_assignment(validation_rule.id, {
24
- validation_rules_assignments_create_request_body: validationRulesAssignmentsCreateRequestBody
25
- })
26
- snapshot_name = 'validation_rules/created_validation_rule_assignment'
27
- filtered_snapshot = get_snapshot_without_uniq_keys(snapshot_name)
28
-
29
- expect(created_validation_rule_assignment).not_to be_nil
30
- expect(created_validation_rule_assignment.id).not_to be_nil
31
- expect(created_validation_rule_assignment.created_at).not_to be_nil
32
- expect(created_validation_rule_assignment.rule_id).to eq(validation_rule.id)
33
- expect(created_validation_rule_assignment.related_object_id).to eq(voucher.id)
34
- expect(created_validation_rule_assignment.related_object_type).to eq("voucher")
35
- expect(created_validation_rule_assignment.object).to eq("validation_rules_assignment")
36
- expect(validate_deep_match(filtered_snapshot, created_validation_rule_assignment)).to be true
22
+ # TODO
37
23
  end
38
24
 
39
25
  end
@@ -0,0 +1,110 @@
1
+ require_relative '../lib/config.rb'
2
+ require 'VoucherifySdk'
3
+
4
+ RSpec.describe 'Management API', :order => :defined do
5
+ before(:each) do
6
+ skip 'Set X_MANAGEMENT_ID and X_MANAGEMENT_TOKEN to run management tests' unless Config.management_credentials_configured?
7
+ @management_api_instance = Config.management_api_instance()
8
+ end
9
+
10
+ TEST_SCHEMA_RELATED_OBJECT = 'test-ruby-sdk'.freeze
11
+
12
+ $management_project_id = nil
13
+ $metadata_schema_to_update = nil
14
+
15
+ it 'list projects', :order => :first do
16
+ projects_response = @management_api_instance.list_projects()
17
+ project_from_response = projects_response.data&.first
18
+
19
+ $management_project_id = project_from_response&.id
20
+
21
+ expect(projects_response).not_to be_nil
22
+ expect(projects_response.object).to eq('list')
23
+ expect(projects_response.data).to be_a(Array)
24
+ expect($management_project_id).not_to be_nil
25
+ end
26
+
27
+ it 'list metadata schemas for selected project', :order => :second do
28
+ metadata_schemas_response = @management_api_instance.list_metadata_schemas1($management_project_id)
29
+
30
+ expect(metadata_schemas_response).not_to be_nil
31
+ expect(metadata_schemas_response.object).to eq('list')
32
+ expect(metadata_schemas_response.data).to be_a(Array)
33
+
34
+ test_metadata_schema = metadata_schemas_response.data&.find do |schema|
35
+ schema.related_object == TEST_SCHEMA_RELATED_OBJECT
36
+ end
37
+
38
+ if test_metadata_schema.nil? ||
39
+ !test_metadata_schema.properties.is_a?(Hash) ||
40
+ test_metadata_schema.properties.empty?
41
+ test_metadata_schema = ensure_test_metadata_schema(@management_api_instance, $management_project_id)
42
+ end
43
+
44
+ $metadata_schema_to_update = test_metadata_schema
45
+
46
+ expect($metadata_schema_to_update).not_to be_nil
47
+ expect($metadata_schema_to_update.related_object).to eq(TEST_SCHEMA_RELATED_OBJECT)
48
+ expect($metadata_schema_to_update.properties).to be_a(Hash)
49
+ expect($metadata_schema_to_update.properties).not_to be_empty
50
+ end
51
+
52
+ it 'update metadata schema', :order => :third do
53
+ property_name, property_definition = $metadata_schema_to_update.properties&.first
54
+ expect(property_name).not_to be_nil
55
+ expect(property_definition).not_to be_nil
56
+
57
+ update_request_body = VoucherifySdk::ManagementProjectsMetadataSchemasUpdateRequestBody.new({
58
+ allow_defined_only: $metadata_schema_to_update.allow_defined_only,
59
+ properties: {
60
+ property_name => VoucherifySdk::ManagementProjectsMetadataSchemaDefinition.new(
61
+ property_definition.to_hash.transform_keys(&:to_sym)
62
+ )
63
+ }
64
+ })
65
+
66
+ updated_metadata_schema = @management_api_instance.update_metadata_schema(
67
+ $management_project_id,
68
+ $metadata_schema_to_update.id,
69
+ {
70
+ management_projects_metadata_schemas_update_request_body: update_request_body
71
+ }
72
+ )
73
+
74
+ expect(updated_metadata_schema).not_to be_nil
75
+ expect(updated_metadata_schema.id).to eq($metadata_schema_to_update.id)
76
+ expect(updated_metadata_schema.related_object).to eq($metadata_schema_to_update.related_object)
77
+ expect(updated_metadata_schema.properties.keys).to include(property_name)
78
+ end
79
+
80
+ def ensure_test_metadata_schema(management_api_instance, project_id)
81
+ create_request_body = VoucherifySdk::ManagementProjectsMetadataSchemasCreateRequestBody.new({
82
+ related_object: TEST_SCHEMA_RELATED_OBJECT,
83
+ allow_defined_only: false,
84
+ properties: {
85
+ 'Test' => VoucherifySdk::ManagementProjectsMetadataSchemaDefinition.new({
86
+ type: 'string',
87
+ array: false,
88
+ optional: true,
89
+ object_type: nil
90
+ })
91
+ }
92
+ })
93
+
94
+ management_api_instance.create_metadata_schema(
95
+ project_id,
96
+ {
97
+ management_projects_metadata_schemas_create_request_body: create_request_body
98
+ }
99
+ )
100
+
101
+ sleep(2)
102
+
103
+ metadata_schemas_response = management_api_instance.list_metadata_schemas1(project_id)
104
+ metadata_schemas_response.data&.find do |schema|
105
+ schema.related_object == TEST_SCHEMA_RELATED_OBJECT &&
106
+ schema.properties.is_a?(Hash) &&
107
+ !schema.properties.empty?
108
+ end
109
+ end
110
+ end
@@ -0,0 +1,28 @@
1
+ require 'VoucherifySdk'
2
+
3
+ RSpec.describe 'Models with additional properties', :order => :defined do
4
+ it 'build metadata schema with regular fields and dynamic properties', :order => :first do
5
+ schema_payload = {
6
+ 'id' => 'meta_test_schema',
7
+ 'related_object' => 'customer',
8
+ 'allow_defined_only' => false,
9
+ 'object' => 'metadata_schema',
10
+ 'properties' => {
11
+ 'dynamic_field' => {
12
+ 'type' => 'string',
13
+ 'optional' => true
14
+ }
15
+ }
16
+ }
17
+
18
+ metadata_schema = VoucherifySdk::ManagementProjectsMetadataSchema.build_from_hash(schema_payload)
19
+ serialized_metadata_schema = metadata_schema.to_hash
20
+
21
+ expect(metadata_schema.id).to eq('meta_test_schema')
22
+ expect(metadata_schema.related_object).to eq('customer')
23
+ expect(metadata_schema.properties).to be_a(Hash)
24
+ expect(metadata_schema.properties['dynamic_field']).to be_a(VoucherifySdk::ManagementProjectsMetadataSchemaDefinition)
25
+ expect(metadata_schema.properties['dynamic_field'].type).to eq('string')
26
+ expect(serialized_metadata_schema[:properties].keys).to include('dynamic_field')
27
+ end
28
+ end
@@ -2,7 +2,7 @@
2
2
  require_relative 'snapshot_helper'
3
3
 
4
4
  def get_snapshot_without_uniq_keys(snapshot_name, keys_to_remove = nil)
5
- keys_to_remove ||= ['id', 'created_at', 'updated_at', 'name', 'rule_id', 'customer_id', 'related_object_id', 'source_id', 'product_id', 'promotion_id', 'campaign_id', 'banner', 'code', 'date', 'voucher_id', 'rule_id', 'related_object_id', 'url', 'tracking_id', 'vouchers_id', 'holder_id']
5
+ keys_to_remove ||= ['id', 'created_at', 'updated_at', 'name', 'rule_id', 'customer_id', 'related_object_id', 'source_id', 'product_id', 'promotion_id', 'campaign_id', 'banner', 'code', 'date', 'voucher_id', 'rule_id', 'related_object_id', 'url', 'tracking_id', 'vouchers_id', 'holder_id', 'join_once', 'orders', 'segments', 'daily_events']
6
6
 
7
7
  # Load snapshot
8
8
  snapshot = load_snapshot(snapshot_name)
@@ -0,0 +1,9 @@
1
+ # VoucherifySdk::AccessSettings
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **assign** | [**AccessSettingsAssign**](AccessSettingsAssign.md) | | [optional] |
8
+ | **unassign** | [**AccessSettingsUnassign**](AccessSettingsUnassign.md) | | [optional] |
9
+
@@ -0,0 +1,10 @@
1
+ # VoucherifySdk::AccessSettingsAssign
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **areas_ids** | **Array<String>** | List all area IDs to which the campaign will be assigned. | [optional] |
8
+ | **area_stores_ids** | **Array<String>** | List all store IDs to which the campaign will be assigned. | [optional] |
9
+ | **area_all_stores_ids** | **Array<String>** | List all area IDs where the campaign is assigned to all stores in the area. This assignment is not equal to the assignment to all `area_stores_ids` listed separately. | [optional] |
10
+
@@ -0,0 +1,10 @@
1
+ # VoucherifySdk::AccessSettingsUnassign
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **areas_ids** | **Array<String>** | List all area IDs from which the campaign will be unassigned. | [optional] |
8
+ | **area_stores_ids** | **Array<String>** | List all store IDs from which the campaign will be unassigned. | [optional] |
9
+ | **area_all_stores_ids** | **Array<String>** | List all area IDs where the campaign will be unassigned from all stores in the area. This unassignment is not equal to the unassignment from all `area_stores_ids` listed separately. | [optional] |
10
+
data/docs/ApplicableTo.md CHANGED
@@ -9,16 +9,33 @@
9
9
  | **source_id** | **String** | The source identifier from your inventory system. | [optional] |
10
10
  | **product_id** | **String** | Parent product's unique ID assigned by Voucherify. | [optional] |
11
11
  | **product_source_id** | **String** | Parent product's source ID from your inventory system. | [optional] |
12
- | **strict** | **Boolean** | | [optional] |
13
12
  | **price** | **Float** | New fixed price of an item. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $10 price is written as 1000. In case of the fixed price being calculated by the formula, i.e. the price_formula parameter is present in the fixed price definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the fixed price. | [optional] |
14
- | **price_formula** | **Float** | Formula used to calculate the discounted price of an item. | [optional] |
13
+ | **price_formula** | **Float** | Formula used to dynamically calculate the discounted price of an item. | [optional] |
15
14
  | **effect** | [**ApplicableToEffect**](ApplicableToEffect.md) | | |
16
15
  | **quantity_limit** | **Integer** | The maximum number of units allowed to be discounted per order line item. | [optional] |
17
16
  | **aggregated_quantity_limit** | **Integer** | The maximum number of units allowed to be discounted combined across all matched order line items. | [optional] |
18
17
  | **amount_limit** | **Integer** | Upper limit allowed to be applied as a discount per order line item. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $6 maximum discount is written as 600. | [optional] |
19
18
  | **aggregated_amount_limit** | **Integer** | Maximum discount amount per order. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $6 maximum discount on the entire order is written as 600. This value is definable for the following discount effects: - `APPLY_TO_ITEMS` (each item subtotal is discounted equally) - `APPLY_TO_ITEMS_BY_QUANTITY` (each unit of matched products has the same discount value) | [optional] |
20
- | **order_item_indices** | **Array<Integer>** | Determines the order in which the discount is applied to the products or SKUs sent in the `order` object in the request. The counting begins from `0`. | [optional] |
19
+ | **product_campaign_quantity_limit** | **Integer** | Limits the number of discounted item units (product, SKU, collection) that all customers can receive in a given campaign. If a product is selected, the limit covers all discounts across all SKUs belonging to that product. If a product collection is selected, the limit covers all products/SKUs within the collection. This limit is available on demand as part of campaign budget limits. Contact [Voucherify support](https://www.voucherify.io/contact-support) or your account manager to learn more. | [optional] |
20
+ | **product_campaign_quantity_limit_formula** | **String** | Formula used to dynamically calculate the maximum units per campaign. This limit is available on demand as part of campaign budget limits. Contact [Voucherify support](https://www.voucherify.io/contact-support) or your account manager to learn more. | [optional] |
21
+ | **product_customer_campaign_quantity_limit** | **Integer** | Limits the number of discounted item units (product, SKU, collection) that one customer can receive in a given campaign. This limit is available on demand as part of campaign budget limits. Contact [Voucherify support](https://www.voucherify.io/contact-support) or your account manager to learn more. | [optional] |
22
+ | **product_customer_campaign_quantity_limit_formula** | **String** | Formula used to dynamically calculate the maximum units per customer in a campaign. This limit is available on demand as part of campaign budget limits. Contact [Voucherify support](https://www.voucherify.io/contact-support) or your account manager to learn more. | [optional] |
23
+ | **product_in_collection_campaign_quantity_limit** | **Integer** | Limits the number of discounted item units of a given product in a collection that all customers can receive in a given campaign. This limit is available on demand as part of campaign budget limits. Contact [Voucherify support](https://www.voucherify.io/contact-support) or your account manager to learn more. | [optional] |
24
+ | **product_in_collection_campaign_quantity_limit_formula** | **String** | Formula used to dynamically calculate the maximum units per campaign for a product in a collection. This limit is available on demand as part of campaign budget limits. Contact [Voucherify support](https://www.voucherify.io/contact-support) or your account manager to learn more. | [optional] |
25
+ | **product_in_collection_customer_campaign_quantity_limit** | **Integer** | Limits the number of discounted item units of a given product in a collection that one customer can receive in a campaign. This limit is available on demand as part of campaign budget limits. Contact [Voucherify support](https://www.voucherify.io/contact-support) or your account manager to learn more. | [optional] |
26
+ | **product_in_collection_customer_campaign_quantity_limit_formula** | **String** | Formula used to dynamically calculate the maximum units per customer for a product in a collection. This limit is available on demand as part of campaign budget limits. Contact [Voucherify support](https://www.voucherify.io/contact-support) or your account manager to learn more. | [optional] |
27
+ | **product_promotion_tier_quantity_limit** | **Integer** | Limits the number of discounted item units that all customers can receive in a promotion tier. This limit is available on demand as part of campaign budget limits. Contact [Voucherify support](https://www.voucherify.io/contact-support) or your account manager to learn more. | [optional] |
28
+ | **product_promotion_tier_quantity_limit_formula** | **String** | Formula used to dynamically calculate the maximum units per promotion tier. This limit is available on demand as part of campaign budget limits. Contact [Voucherify support](https://www.voucherify.io/contact-support) or your account manager to learn more. | [optional] |
29
+ | **product_customer_promotion_tier_quantity_limit** | **Integer** | Limits the number of discounted item units that one customer can receive in a given promotion tier. This limit is available on demand as part of campaign budget limits. Contact [Voucherify support](https://www.voucherify.io/contact-support) or your account manager to learn more. | [optional] |
30
+ | **product_customer_promotion_tier_quantity_limit_formula** | **String** | Formula used to dynamically calculate the maximum units per customer in a promotion tier. This limit is available on demand as part of campaign budget limits. Contact [Voucherify support](https://www.voucherify.io/contact-support) or your account manager to learn more. | [optional] |
31
+ | **product_in_collection_promotion_tier_quantity_limit** | **Integer** | Limits the number of discounted item units of a given product in a collection that all customers can receive in a given promotion tier. This limit is available on demand as part of campaign budget limits. Contact [Voucherify support](https://www.voucherify.io/contact-support) or your account manager to learn more. | [optional] |
32
+ | **product_in_collection_promotion_tier_quantity_limit_formula** | **String** | Formula used to dynamically calculate the maximum units per promotion tier for a product in a collection. This limit is available on demand as part of campaign budget limits. Contact [Voucherify support](https://www.voucherify.io/contact-support) or your account manager to learn more. | [optional] |
33
+ | **product_in_collection_customer_promotion_tier_quantity_limit** | **Integer** | Limits the number of discounted item units of a given product in a collection that one customer can receive in a promotion tier. This limit is available on demand as part of campaign budget limits. Contact [Voucherify support](https://www.voucherify.io/contact-support) or your account manager to learn more. | [optional] |
34
+ | **product_in_collection_customer_promotion_tier_quantity_limit_formula** | **String** | Formula used to dynamically calculate the maximum units per customer in a promotion tier for a product in a collection. This limit is available on demand as part of campaign budget limits. Contact [Voucherify support](https://www.voucherify.io/contact-support) or your account manager to learn more. | [optional] |
35
+ | **order_item_indices** | **Array<Integer>** | Lists which order lines are (not) covered by the discount. The order in the array is determined by the sequence of applied discounts, while the numbers correspond to the order lines sent in the `order` object in the request. The first order line is assigned `0`, the second order line is assigned `1`, and so on. | [optional] |
36
+ | **order_item_units** | [**Array<ApplicableToOrderItemUnitsItem>**](ApplicableToOrderItemUnitsItem.md) | Lists which units within order lines are covered by the discount. The order line items are listed according to sequence of applied discounts while the `index` corresponds to the order line sent in the `order` object in the request. | [optional] |
21
37
  | **repeat** | **Integer** | Determines the recurrence of the discount, e.g. `\"repeat\": 3` means that the discount is applied to every third item. | [optional] |
22
38
  | **skip_initially** | **Integer** | Determines how many items are skipped before the discount is applied. | [optional] |
23
- | **target** | **String** | Determines to which kinds of objects the discount is applicable. `\"ITEM\"` includes products and SKUs. | [optional] |
39
+ | **target** | **String** | Determines to which kinds of objects the discount is applicable. `ITEM` includes products and SKUs. `UNIT` means particular units within an order line. | [optional] |
40
+ | **strict** | **Boolean** | | [optional] |
24
41
 
@@ -0,0 +1,10 @@
1
+ # VoucherifySdk::ApplicableToOrderItemUnitsItem
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **index** | **Integer** | Number assigned to the order line item in accordance with the order sent in the request. | [optional] |
8
+ | **units** | **Array<Integer>** | Numbers of units in the order line covered by the discount; e.g. `2, 5, 8` for 10 units with the setting `\"skip_initially\": 1`, `\"repeat\": 3`. The counting of units starts from `1`. The maximum quantity of all handled units is 1000. If the quantity of all order items exceeds 1000, this array is not returned, but `units_limit_exceeded: true`. However, the discount is calculated properly for all relevant units. | [optional] |
9
+ | **units_limit_exceeded** | **Boolean** | Returned as `true` only when the sum total of `quantity` of all order items exceeds 1000. | [optional] |
10
+
@@ -0,0 +1,14 @@
1
+ # VoucherifySdk::ApplicationDetailsItem
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **source_index** | **Integer** | Index number of the source item that is replaced. The enumeration starts from `0`, which represents the first item in the request, e.g., if the replaced item is passed as the second in the request, `source_index` equals `3`. | [optional] |
8
+ | **source_applied_quantity** | **Integer** | Number of source units that are replaced. | [optional] |
9
+ | **source_applied_quantity_amount** | **Integer** | Amount equal to the price of the units that are replaced. Determines the change of the amount of the source item quantity. | [optional] |
10
+ | **target_index** | **Integer** | Index number of the target item that is a replacement of the source item. The enumeration continues the values for the order items, e.g. if there are three items in the request, `target_index` equals `3`, as enumeration starts from `0`. | [optional] |
11
+ | **target_applied_quantity** | **Integer** | Number of added target units that are replacements. | [optional] |
12
+ | **target_applied_quantity_amount** | **Integer** | Amount equal to the price of the units that are replacements. Determines the change in the amount of the target item quantity. | [optional] |
13
+ | **target_applied_discount_amount** | **Integer** | Discount amount applied to the target item with regard to the replacement. Equals the `target_applied_quantity_amount` minus `source_applied_quantity_amount`. | [optional] |
14
+
@@ -6,6 +6,7 @@
6
6
  | ---- | ---- | ----------- | ----- |
7
7
  | **id** | **String** | Unique identifier of the campaign assignment. | [optional] |
8
8
  | **area_id** | **String** | Unique identifier of the area to which the campaign is assigned. | [optional] |
9
+ | **all_stores** | **Boolean** | Determines if the campaign is assigned to all of the stores in the area, i.e. if an area ID is passed in the `access_settings.assign.area_all_stores_ids` in the request. | [optional] |
9
10
  | **area_store_id** | **String** | Unique identifier of the store to which the campaign is assigned. | [optional] |
10
11
  | **created_at** | **Time** | Date and time when the assignment was made. The value is shown in the ISO 8601 format. | [optional] |
11
12
  | **object** | **String** | The type of the object represented by JSON. This object stores information about the campaign assignment to areas or stores. | [optional][default to 'area_store_campaign_assignment'] |
@@ -14,7 +14,7 @@ All URIs are relative to *https://api.voucherify.io*
14
14
 
15
15
  Get Async Action
16
16
 
17
- Check the result of a scheduled asynchronous operation. The table below lists the possible types of async actions. The types are different for each endpoint generating the async action. If you would like to learn more about importing data into Voucherify, read more [here](https://support.voucherify.io/article/574-data-import).
17
+ Check the result of a scheduled asynchronous operation. The table below lists the possible types of async actions. The types are different for each endpoint generating the async action.
18
18
 
19
19
  ### Examples
20
20
 
@@ -72,7 +72,7 @@ end
72
72
 
73
73
  List Async Actions
74
74
 
75
- Track asynchronous operations scheduled in your project. The table below lists the possible types of async actions. The types are different for each endpoint generating the async action. If you would like to learn more about importing data into Voucherify, read more [here](https://support.voucherify.io/article/574-data-import).
75
+ Track asynchronous operations scheduled in your project. The table below lists the possible types of async actions. The types are different for each endpoint generating the async action.
76
76
 
77
77
  ### Examples
78
78