addio-admin-sdk 1.7.86 → 1.7.87

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 (560) hide show
  1. package/.babelrc +17 -17
  2. package/.env +14 -0
  3. package/.env.dev +14 -14
  4. package/.github/workflows/publish_coverage.yam_ +69 -69
  5. package/addio-sdk-doc.md +1473 -1473
  6. package/changelog.md +537 -537
  7. package/dist/Interfaces/Address/index.d.ts +21 -21
  8. package/dist/Interfaces/Address/index.js +16 -16
  9. package/dist/Interfaces/Algolia/index.d.ts +164 -164
  10. package/dist/Interfaces/Algolia/index.js +2 -2
  11. package/dist/Interfaces/Attachement/index.d.ts +5 -5
  12. package/dist/Interfaces/Attachement/index.js +2 -2
  13. package/dist/Interfaces/Attribute/index.d.ts +52 -52
  14. package/dist/Interfaces/Attribute/index.js +10 -10
  15. package/dist/Interfaces/BGJob/index.d.ts +56 -56
  16. package/dist/Interfaces/BGJob/index.js +25 -25
  17. package/dist/Interfaces/BaseClass/index.d.ts +8 -8
  18. package/dist/Interfaces/BaseClass/index.js +2 -2
  19. package/dist/Interfaces/Blog/IBlogArticle.d.ts +18 -18
  20. package/dist/Interfaces/Blog/IBlogArticle.js +2 -2
  21. package/dist/Interfaces/Blog/IBlogAuthor.d.ts +7 -7
  22. package/dist/Interfaces/Blog/IBlogAuthor.js +2 -2
  23. package/dist/Interfaces/Blog/IBlogCategory.d.ts +9 -9
  24. package/dist/Interfaces/Blog/IBlogCategory.js +2 -2
  25. package/dist/Interfaces/Blog/IBlogComment.d.ts +13 -13
  26. package/dist/Interfaces/Blog/IBlogComment.js +2 -2
  27. package/dist/Interfaces/Blog/IBlogKeywords.d.ts +9 -9
  28. package/dist/Interfaces/Blog/IBlogKeywords.js +2 -2
  29. package/dist/Interfaces/Booking/index.d.ts +74 -74
  30. package/dist/Interfaces/Booking/index.js +17 -17
  31. package/dist/Interfaces/Brand/index.d.ts +15 -15
  32. package/dist/Interfaces/Brand/index.js +2 -2
  33. package/dist/Interfaces/CMS/index.d.ts +25 -25
  34. package/dist/Interfaces/CMS/index.js +2 -2
  35. package/dist/Interfaces/Cart/IElavonPayload.d.ts +93 -93
  36. package/dist/Interfaces/Cart/IElavonPayload.js +17 -17
  37. package/dist/Interfaces/Cart/IPandaPayload.d.ts +64 -64
  38. package/dist/Interfaces/Cart/IPandaPayload.js +18 -18
  39. package/dist/Interfaces/Cart/IPaymentCard.d.ts +22 -22
  40. package/dist/Interfaces/Cart/IPaymentCard.js +44 -44
  41. package/dist/Interfaces/Cart/IPaypalPayload.d.ts +9 -9
  42. package/dist/Interfaces/Cart/IPaypalPayload.js +2 -2
  43. package/dist/Interfaces/Cart/IPaysafePayload.d.ts +72 -72
  44. package/dist/Interfaces/Cart/IPaysafePayload.js +2 -2
  45. package/dist/Interfaces/Cart/IStripePayload.d.ts +66 -66
  46. package/dist/Interfaces/Cart/IStripePayload.js +2 -2
  47. package/dist/Interfaces/Cart/index.d.ts +424 -424
  48. package/dist/Interfaces/Cart/index.js +192 -192
  49. package/dist/Interfaces/Catalogue/index.d.ts +68 -68
  50. package/dist/Interfaces/Catalogue/index.js +37 -37
  51. package/dist/Interfaces/Category/index.d.ts +33 -33
  52. package/dist/Interfaces/Category/index.js +2 -2
  53. package/dist/Interfaces/Chart/index.d.ts +11 -11
  54. package/dist/Interfaces/Chart/index.js +2 -2
  55. package/dist/Interfaces/Class/index.d.ts +8 -8
  56. package/dist/Interfaces/Class/index.js +2 -2
  57. package/dist/Interfaces/Consent/index.d.ts +6 -6
  58. package/dist/Interfaces/Consent/index.js +2 -2
  59. package/dist/Interfaces/Context/IContextProps.d.ts +4 -4
  60. package/dist/Interfaces/Context/IContextProps.js +2 -2
  61. package/dist/Interfaces/Context/IContextState.d.ts +15 -15
  62. package/dist/Interfaces/Context/IContextState.js +2 -2
  63. package/dist/Interfaces/Customer/ICustomerBadge.d.ts +2 -2
  64. package/dist/Interfaces/Customer/ICustomerBadge.js +2 -2
  65. package/dist/Interfaces/Customer/ICustomerRating.d.ts +10 -10
  66. package/dist/Interfaces/Customer/ICustomerRating.js +2 -2
  67. package/dist/Interfaces/Customer/IStoreCredit.d.ts +12 -12
  68. package/dist/Interfaces/Customer/IStoreCredit.js +2 -2
  69. package/dist/Interfaces/Customer/index.d.ts +97 -97
  70. package/dist/Interfaces/Customer/index.js +141 -141
  71. package/dist/Interfaces/Declination/index.d.ts +114 -114
  72. package/dist/Interfaces/Declination/index.js +60 -60
  73. package/dist/Interfaces/Document/index.d.ts +8 -8
  74. package/dist/Interfaces/Document/index.js +2 -2
  75. package/dist/Interfaces/Elastic/index.d.ts +89 -89
  76. package/dist/Interfaces/Elastic/index.js +2 -2
  77. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.d.ts +11 -11
  78. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.js +2 -2
  79. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.d.ts +15 -15
  80. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.js +2 -2
  81. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.d.ts +12 -12
  82. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.js +2 -2
  83. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.d.ts +36 -36
  84. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.js +2 -2
  85. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.d.ts +12 -12
  86. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.js +2 -2
  87. package/dist/Interfaces/Email/CustomGR/ITransportEmail.d.ts +12 -12
  88. package/dist/Interfaces/Email/CustomGR/ITransportEmail.js +2 -2
  89. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.d.ts +12 -12
  90. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.js +2 -2
  91. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.d.ts +16 -16
  92. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.js +2 -2
  93. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.d.ts +15 -15
  94. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.js +2 -2
  95. package/dist/Interfaces/Email/IAbandonnedCartEmail.d.ts +29 -29
  96. package/dist/Interfaces/Email/IAbandonnedCartEmail.js +2 -2
  97. package/dist/Interfaces/Email/IAccountConfirmationEmail.d.ts +22 -22
  98. package/dist/Interfaces/Email/IAccountConfirmationEmail.js +2 -2
  99. package/dist/Interfaces/Email/IApplicationEmail.d.ts +19 -19
  100. package/dist/Interfaces/Email/IApplicationEmail.js +2 -2
  101. package/dist/Interfaces/Email/IBackInStockEmail.d.ts +21 -21
  102. package/dist/Interfaces/Email/IBackInStockEmail.js +2 -2
  103. package/dist/Interfaces/Email/IContactEmail.d.ts +20 -20
  104. package/dist/Interfaces/Email/IContactEmail.js +2 -2
  105. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.d.ts +15 -15
  106. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.js +2 -2
  107. package/dist/Interfaces/Email/ICustomerBookingEmail.d.ts +14 -14
  108. package/dist/Interfaces/Email/ICustomerBookingEmail.js +2 -2
  109. package/dist/Interfaces/Email/IEmail.d.ts +20 -20
  110. package/dist/Interfaces/Email/IEmail.js +56 -56
  111. package/dist/Interfaces/Email/IOrderConfirmationEmail.d.ts +47 -47
  112. package/dist/Interfaces/Email/IOrderConfirmationEmail.js +2 -2
  113. package/dist/Interfaces/Email/IPasswordResetEmail.d.ts +17 -17
  114. package/dist/Interfaces/Email/IPasswordResetEmail.js +2 -2
  115. package/dist/Interfaces/Email/IPhotoShootEmail.d.ts +14 -14
  116. package/dist/Interfaces/Email/IPhotoShootEmail.js +2 -2
  117. package/dist/Interfaces/Email/IPickupConfirmation.d.ts +23 -23
  118. package/dist/Interfaces/Email/IPickupConfirmation.js +2 -2
  119. package/dist/Interfaces/Email/IShippingConfirmation.d.ts +23 -23
  120. package/dist/Interfaces/Email/IShippingConfirmation.js +2 -2
  121. package/dist/Interfaces/Email/IWelcomeEmail.d.ts +19 -19
  122. package/dist/Interfaces/Email/IWelcomeEmail.js +2 -2
  123. package/dist/Interfaces/ExportSchema/index.d.ts +7 -7
  124. package/dist/Interfaces/ExportSchema/index.js +2 -2
  125. package/dist/Interfaces/ExternalService/BaseExternalService.d.ts +12 -12
  126. package/dist/Interfaces/ExternalService/BaseExternalService.js +2 -2
  127. package/dist/Interfaces/ExternalService/ExternalProductsService.d.ts +4 -4
  128. package/dist/Interfaces/ExternalService/ExternalProductsService.js +2 -2
  129. package/dist/Interfaces/ExternalService/index.d.ts +9 -9
  130. package/dist/Interfaces/ExternalService/index.js +2 -2
  131. package/dist/Interfaces/FirstOrderTracking/index.d.ts +5 -5
  132. package/dist/Interfaces/FirstOrderTracking/index.js +2 -2
  133. package/dist/Interfaces/G2/index.d.ts +556 -556
  134. package/dist/Interfaces/G2/index.js +36 -36
  135. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.d.ts +20 -20
  136. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.js +2 -2
  137. package/dist/Interfaces/Indexed/Product/index.d.ts +97 -97
  138. package/dist/Interfaces/Indexed/Product/index.js +212 -212
  139. package/dist/Interfaces/Inventory/index.d.ts +19 -19
  140. package/dist/Interfaces/Inventory/index.js +8 -8
  141. package/dist/Interfaces/Invoice/index.d.ts +4 -4
  142. package/dist/Interfaces/Invoice/index.js +2 -2
  143. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.d.ts +3 -3
  144. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.js +2 -2
  145. package/dist/Interfaces/MarketplacePublication/index.d.ts +23 -23
  146. package/dist/Interfaces/MarketplacePublication/index.js +22 -22
  147. package/dist/Interfaces/Menu/index.d.ts +23 -23
  148. package/dist/Interfaces/Menu/index.js +10 -10
  149. package/dist/Interfaces/Note/index.d.ts +10 -0
  150. package/dist/Interfaces/Note/index.js +8 -0
  151. package/dist/Interfaces/Note/index.js.map +1 -0
  152. package/dist/Interfaces/Operations/ICreatedBy.d.ts +6 -6
  153. package/dist/Interfaces/Operations/ICreatedBy.js +2 -2
  154. package/dist/Interfaces/Operations/IUpdate.d.ts +5 -5
  155. package/dist/Interfaces/Operations/IUpdate.js +2 -2
  156. package/dist/Interfaces/Order/index.d.ts +4 -4
  157. package/dist/Interfaces/Order/index.js +2 -2
  158. package/dist/Interfaces/Org/IRelUser.d.ts +9 -9
  159. package/dist/Interfaces/Org/IRelUser.js +2 -2
  160. package/dist/Interfaces/Org/index.d.ts +29 -29
  161. package/dist/Interfaces/Org/index.js +12 -12
  162. package/dist/Interfaces/Payment/index.d.ts +13 -13
  163. package/dist/Interfaces/Payment/index.js +2 -2
  164. package/dist/Interfaces/Product/IAttributeFamily.d.ts +6 -6
  165. package/dist/Interfaces/Product/IAttributeFamily.js +2 -2
  166. package/dist/Interfaces/Product/IImportProduct.d.ts +42 -42
  167. package/dist/Interfaces/Product/IImportProduct.js +791 -791
  168. package/dist/Interfaces/Product/IInventoryItem.d.ts +84 -84
  169. package/dist/Interfaces/Product/IInventoryItem.js +36 -36
  170. package/dist/Interfaces/Product/IPricing.d.ts +177 -177
  171. package/dist/Interfaces/Product/IPricing.js +174 -174
  172. package/dist/Interfaces/Product/index.d.ts +127 -127
  173. package/dist/Interfaces/Product/index.js +56 -56
  174. package/dist/Interfaces/ProductAttribute/index.d.ts +11 -11
  175. package/dist/Interfaces/ProductAttribute/index.js +2 -2
  176. package/dist/Interfaces/PromiseToPurchase/BankType.d.ts +41 -41
  177. package/dist/Interfaces/PromiseToPurchase/BankType.js +41 -41
  178. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.d.ts +33 -33
  179. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.js +15 -15
  180. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.d.ts +19 -19
  181. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.js +2 -2
  182. package/dist/Interfaces/PromiseToPurchase/index.d.ts +50 -50
  183. package/dist/Interfaces/PromiseToPurchase/index.js +13 -13
  184. package/dist/Interfaces/PurchaseOrder/index.d.ts +17 -17
  185. package/dist/Interfaces/PurchaseOrder/index.js +2 -2
  186. package/dist/Interfaces/Query/IBrandQueryOptions.d.ts +11 -11
  187. package/dist/Interfaces/Query/IBrandQueryOptions.js +2 -2
  188. package/dist/Interfaces/Query/ICategoryQueryOptions.d.ts +11 -11
  189. package/dist/Interfaces/Query/ICategoryQueryOptions.js +2 -2
  190. package/dist/Interfaces/Query/IProductQueryOptions.d.ts +16 -16
  191. package/dist/Interfaces/Query/IProductQueryOptions.js +2 -2
  192. package/dist/Interfaces/Quote/index.d.ts +5 -5
  193. package/dist/Interfaces/Quote/index.js +2 -2
  194. package/dist/Interfaces/Refunds/index.d.ts +106 -106
  195. package/dist/Interfaces/Refunds/index.js +2 -2
  196. package/dist/Interfaces/Rules/IDiscountRule.d.ts +137 -137
  197. package/dist/Interfaces/Rules/IDiscountRule.js +95 -95
  198. package/dist/Interfaces/Schedule/index.d.ts +48 -48
  199. package/dist/Interfaces/Schedule/index.js +2 -2
  200. package/dist/Interfaces/Services/IAddServiceResponse.d.ts +4 -4
  201. package/dist/Interfaces/Services/IAddServiceResponse.js +2 -2
  202. package/dist/Interfaces/Services/IService.d.ts +12 -12
  203. package/dist/Interfaces/Services/IService.js +2 -2
  204. package/dist/Interfaces/Services/IServiceSecret.d.ts +8 -8
  205. package/dist/Interfaces/Services/IServiceSecret.js +2 -2
  206. package/dist/Interfaces/Shipping/Shipstation/carriers.d.ts +10 -10
  207. package/dist/Interfaces/Shipping/Shipstation/carriers.js +2 -2
  208. package/dist/Interfaces/Shipping/Shipstation/order.d.ts +227 -227
  209. package/dist/Interfaces/Shipping/Shipstation/order.js +2 -2
  210. package/dist/Interfaces/Shipping/Shipstation/quote.d.ts +31 -31
  211. package/dist/Interfaces/Shipping/Shipstation/quote.js +2 -2
  212. package/dist/Interfaces/Shipping/Shiptime/order.d.ts +54 -54
  213. package/dist/Interfaces/Shipping/Shiptime/order.js +48 -48
  214. package/dist/Interfaces/Shipping/Shiptime/quote.d.ts +111 -111
  215. package/dist/Interfaces/Shipping/Shiptime/quote.js +2 -2
  216. package/dist/Interfaces/Slider/GR.d.ts +114 -114
  217. package/dist/Interfaces/Slider/GR.js +271 -271
  218. package/dist/Interfaces/Slider/index.d.ts +30 -30
  219. package/dist/Interfaces/Slider/index.js +2 -2
  220. package/dist/Interfaces/Space/IExternalService.d.ts +52 -52
  221. package/dist/Interfaces/Space/IExternalService.js +43 -43
  222. package/dist/Interfaces/Space/IMember.d.ts +16 -16
  223. package/dist/Interfaces/Space/IMember.js +9 -9
  224. package/dist/Interfaces/Space/index.d.ts +385 -385
  225. package/dist/Interfaces/Space/index.js +159 -159
  226. package/dist/Interfaces/Specials/gr.d.ts +61 -61
  227. package/dist/Interfaces/Specials/gr.js +2 -2
  228. package/dist/Interfaces/StockNotification/index.d.ts +7 -7
  229. package/dist/Interfaces/StockNotification/index.js +2 -2
  230. package/dist/Interfaces/Store/index.d.ts +62 -62
  231. package/dist/Interfaces/Store/index.js +27 -27
  232. package/dist/Interfaces/Supplier/ICommand.d.ts +11 -11
  233. package/dist/Interfaces/Supplier/ICommand.js +2 -2
  234. package/dist/Interfaces/Supplier/index.d.ts +36 -36
  235. package/dist/Interfaces/Supplier/index.js +24 -24
  236. package/dist/Interfaces/TCG/index.d.ts +110 -110
  237. package/dist/Interfaces/TCG/index.js +27 -27
  238. package/dist/Interfaces/Tag/index.d.ts +18 -18
  239. package/dist/Interfaces/Tag/index.js +2 -2
  240. package/dist/Interfaces/Tax/index.d.ts +13 -13
  241. package/dist/Interfaces/Tax/index.js +2 -2
  242. package/dist/Interfaces/TransferRequest/index.d.ts +103 -103
  243. package/dist/Interfaces/TransferRequest/index.js +43 -43
  244. package/dist/Interfaces/Translation/index.d.ts +8 -8
  245. package/dist/Interfaces/Translation/index.js +5 -5
  246. package/dist/Interfaces/Update/index.d.ts +10 -10
  247. package/dist/Interfaces/Update/index.js +2 -2
  248. package/dist/Interfaces/User/IUser.d.ts +65 -65
  249. package/dist/Interfaces/User/IUser.js +8 -8
  250. package/dist/Interfaces/Version/index.d.ts +11 -11
  251. package/dist/Interfaces/Version/index.js +2 -2
  252. package/dist/Interfaces/Wishlist/index.d.ts +7 -7
  253. package/dist/Interfaces/Wishlist/index.js +2 -2
  254. package/dist/constants/Interfaces/IBaseApi.d.ts +15 -15
  255. package/dist/constants/Interfaces/IBaseApi.js +2 -2
  256. package/dist/constants/Interfaces/IEndpointResult.d.ts +9 -9
  257. package/dist/constants/Interfaces/IEndpointResult.js +2 -2
  258. package/dist/constants/enums.d.ts +6 -6
  259. package/dist/constants/enums.js +10 -10
  260. package/dist/constants/services.d.ts +2 -2
  261. package/dist/constants/services.js +111 -111
  262. package/dist/constants/version.d.ts +2 -2
  263. package/dist/constants/version.js +5 -5
  264. package/dist/index.d.ts +32 -32
  265. package/dist/index.js +242 -242
  266. package/dist/lib/Attribute/index.d.ts +14 -14
  267. package/dist/lib/Attribute/index.js +143 -143
  268. package/dist/lib/BGJob/index.d.ts +9 -9
  269. package/dist/lib/BGJob/index.js +212 -212
  270. package/dist/lib/BackgroundWorker/index.d.ts +34 -34
  271. package/dist/lib/BackgroundWorker/index.js +59 -59
  272. package/dist/lib/Blog/BlogArticle.d.ts +5 -5
  273. package/dist/lib/Blog/BlogArticle.js +10 -10
  274. package/dist/lib/Blog/BlogAuthor.d.ts +5 -5
  275. package/dist/lib/Blog/BlogAuthor.js +10 -10
  276. package/dist/lib/Blog/BlogCategory.d.ts +5 -5
  277. package/dist/lib/Blog/BlogCategory.js +10 -10
  278. package/dist/lib/Blog/BlogKeyword.d.ts +5 -5
  279. package/dist/lib/Blog/BlogKeyword.js +10 -10
  280. package/dist/lib/Booking/index.d.ts +70 -70
  281. package/dist/lib/Booking/index.js +576 -576
  282. package/dist/lib/Brand/index.d.ts +17 -17
  283. package/dist/lib/Brand/index.js +113 -113
  284. package/dist/lib/Cart/index.d.ts +206 -206
  285. package/dist/lib/Cart/index.js +3164 -3164
  286. package/dist/lib/Catalogue/index.d.ts +9 -9
  287. package/dist/lib/Catalogue/index.js +69 -69
  288. package/dist/lib/Category/index.d.ts +27 -27
  289. package/dist/lib/Category/index.js +190 -190
  290. package/dist/lib/Class/index.d.ts +12 -12
  291. package/dist/lib/Class/index.js +58 -58
  292. package/dist/lib/Consent/index.d.ts +4 -4
  293. package/dist/lib/Consent/index.js +29 -29
  294. package/dist/lib/Customer/index.d.ts +11 -11
  295. package/dist/lib/Customer/index.js +68 -68
  296. package/dist/lib/Declination/index.d.ts +9 -9
  297. package/dist/lib/Declination/index.js +24 -24
  298. package/dist/lib/Discount/index.d.ts +18 -18
  299. package/dist/lib/Discount/index.js +470 -470
  300. package/dist/lib/ElasticSearch/index.d.ts +8 -8
  301. package/dist/lib/ElasticSearch/index.js +45 -45
  302. package/dist/lib/Elavon/index.d.ts +18 -18
  303. package/dist/lib/Elavon/index.js +130 -130
  304. package/dist/lib/Email/AbandonedCartEmail.d.ts +8 -8
  305. package/dist/lib/Email/AbandonedCartEmail.js +16 -16
  306. package/dist/lib/Email/AccountConfirmationEmail.d.ts +11 -11
  307. package/dist/lib/Email/AccountConfirmationEmail.js +22 -22
  308. package/dist/lib/Email/AdminOrderConfirmationEmail.d.ts +8 -8
  309. package/dist/lib/Email/AdminOrderConfirmationEmail.js +16 -16
  310. package/dist/lib/Email/ApplicationEmail.d.ts +8 -8
  311. package/dist/lib/Email/ApplicationEmail.js +16 -16
  312. package/dist/lib/Email/BackInStockEmail.d.ts +8 -8
  313. package/dist/lib/Email/BackInStockEmail.js +16 -16
  314. package/dist/lib/Email/ContactEmail.d.ts +8 -8
  315. package/dist/lib/Email/ContactEmail.js +16 -16
  316. package/dist/lib/Email/CustomerBookingAdminEmail.d.ts +8 -8
  317. package/dist/lib/Email/CustomerBookingAdminEmail.js +16 -16
  318. package/dist/lib/Email/CustomerBookingEmail.d.ts +8 -8
  319. package/dist/lib/Email/CustomerBookingEmail.js +16 -16
  320. package/dist/lib/Email/OrderConfirmationEmail.d.ts +8 -8
  321. package/dist/lib/Email/OrderConfirmationEmail.js +16 -16
  322. package/dist/lib/Email/OrderDenounciationEmail.d.ts +8 -8
  323. package/dist/lib/Email/OrderDenounciationEmail.js +16 -16
  324. package/dist/lib/Email/OrderSampleEmail.d.ts +8 -8
  325. package/dist/lib/Email/OrderSampleEmail.js +16 -16
  326. package/dist/lib/Email/OtherTypeEmails.d.ts +8 -8
  327. package/dist/lib/Email/OtherTypeEmails.js +19 -19
  328. package/dist/lib/Email/PasswordResetEmail.d.ts +8 -8
  329. package/dist/lib/Email/PasswordResetEmail.js +16 -16
  330. package/dist/lib/Email/PhotoShootEmail.d.ts +8 -8
  331. package/dist/lib/Email/PhotoShootEmail.js +16 -16
  332. package/dist/lib/Email/PickUpConfirmation.d.ts +8 -8
  333. package/dist/lib/Email/PickUpConfirmation.js +16 -16
  334. package/dist/lib/Email/ShippingConfirmation.d.ts +8 -8
  335. package/dist/lib/Email/ShippingConfirmation.js +16 -16
  336. package/dist/lib/Email/WelcomeEmail.d.ts +8 -8
  337. package/dist/lib/Email/WelcomeEmail.js +16 -16
  338. package/dist/lib/Email/index.d.ts +8 -8
  339. package/dist/lib/Email/index.js +23 -23
  340. package/dist/lib/ExternalService/Ebay.d.ts +62 -62
  341. package/dist/lib/ExternalService/Ebay.js +102 -102
  342. package/dist/lib/ExternalService/index.d.ts +5 -5
  343. package/dist/lib/ExternalService/index.js +10 -10
  344. package/dist/lib/FirstOrderTracking/index.d.ts +5 -5
  345. package/dist/lib/FirstOrderTracking/index.js +10 -10
  346. package/dist/lib/Indexed/IndexedCart.d.ts +13 -13
  347. package/dist/lib/Indexed/IndexedCart.js +86 -86
  348. package/dist/lib/Indexed/Product.d.ts +17 -17
  349. package/dist/lib/Indexed/Product.js +48 -48
  350. package/dist/lib/Inventory/index.d.ts +49 -49
  351. package/dist/lib/Inventory/index.js +314 -314
  352. package/dist/lib/Invoice/index.d.ts +5 -5
  353. package/dist/lib/Invoice/index.js +10 -10
  354. package/dist/lib/MarketplacePublication/index.d.ts +9 -9
  355. package/dist/lib/MarketplacePublication/index.js +118 -118
  356. package/dist/lib/Menu/index.d.ts +11 -11
  357. package/dist/lib/Menu/index.js +103 -103
  358. package/dist/lib/MongoDB/BaseAPI.d.ts +18 -18
  359. package/dist/lib/MongoDB/BaseAPI.js +200 -200
  360. package/dist/lib/Note/index.d.ts +4 -0
  361. package/dist/lib/Note/index.js +7 -0
  362. package/dist/lib/Note/index.js.map +1 -0
  363. package/dist/lib/Order/index.d.ts +7 -7
  364. package/dist/lib/Order/index.js +33 -33
  365. package/dist/lib/Org/index.d.ts +27 -27
  366. package/dist/lib/Org/index.js +175 -175
  367. package/dist/lib/PandaPay/index.d.ts +16 -16
  368. package/dist/lib/PandaPay/index.js +170 -170
  369. package/dist/lib/Paysafe/index.d.ts +11 -11
  370. package/dist/lib/Paysafe/index.js +40 -40
  371. package/dist/lib/Product/index.d.ts +154 -154
  372. package/dist/lib/Product/index.js +793 -793
  373. package/dist/lib/ProductAttribute/index.d.ts +15 -15
  374. package/dist/lib/ProductAttribute/index.js +45 -45
  375. package/dist/lib/PromiseToPurchase/index.d.ts +37 -37
  376. package/dist/lib/PromiseToPurchase/index.js +264 -264
  377. package/dist/lib/PurchaseOrder/index.d.ts +9 -9
  378. package/dist/lib/PurchaseOrder/index.js +16 -16
  379. package/dist/lib/Schedule/index.d.ts +5 -5
  380. package/dist/lib/Schedule/index.js +12 -12
  381. package/dist/lib/Service/Enum/ServiceEnum.d.ts +3 -3
  382. package/dist/lib/Service/Enum/ServiceEnum.js +7 -7
  383. package/dist/lib/Service/index.d.ts +5 -5
  384. package/dist/lib/Service/index.js +13 -13
  385. package/dist/lib/Shipment/index.d.ts +28 -28
  386. package/dist/lib/Shipment/index.js +357 -357
  387. package/dist/lib/Slider/index.d.ts +16 -16
  388. package/dist/lib/Slider/index.js +113 -113
  389. package/dist/lib/Space/index.d.ts +873 -873
  390. package/dist/lib/Space/index.js +5094 -5094
  391. package/dist/lib/StockNotification/index.d.ts +4 -4
  392. package/dist/lib/StockNotification/index.js +6 -6
  393. package/dist/lib/Store/index.d.ts +5 -5
  394. package/dist/lib/Store/index.js +12 -12
  395. package/dist/lib/Supplier/Command.d.ts +5 -5
  396. package/dist/lib/Supplier/Command.js +10 -10
  397. package/dist/lib/Supplier/index.d.ts +25 -25
  398. package/dist/lib/Supplier/index.js +22 -22
  399. package/dist/lib/Tags/index.d.ts +6 -6
  400. package/dist/lib/Tags/index.js +21 -21
  401. package/dist/lib/Tax/index.d.ts +8 -8
  402. package/dist/lib/Tax/index.js +54 -54
  403. package/dist/lib/TransferRequest/index.d.ts +112 -112
  404. package/dist/lib/TransferRequest/index.js +794 -794
  405. package/dist/lib/Update/index.d.ts +10 -10
  406. package/dist/lib/Update/index.js +22 -22
  407. package/dist/lib/User/index.d.ts +35 -35
  408. package/dist/lib/User/index.js +248 -248
  409. package/dist/lib/Wishlist/index.d.ts +5 -5
  410. package/dist/lib/Wishlist/index.js +10 -10
  411. package/dist/lib/base.d.ts +14 -14
  412. package/dist/lib/base.js +62 -62
  413. package/dist/lib/baseService.d.ts +17 -17
  414. package/dist/lib/baseService.js +43 -43
  415. package/dist/rules/GR/constants/data.d.ts +26 -26
  416. package/dist/rules/GR/constants/data.js +55 -55
  417. package/dist/rules/GR/constants/products.d.ts +8 -8
  418. package/dist/rules/GR/constants/products.js +234 -234
  419. package/dist/rules/GR/interfaces/cart.d.ts +84 -83
  420. package/dist/rules/GR/interfaces/cart.js +41 -40
  421. package/dist/rules/GR/interfaces/cart.js.map +1 -1
  422. package/dist/rules/GR/interfaces/data.d.ts +97 -97
  423. package/dist/rules/GR/interfaces/data.js +104 -104
  424. package/dist/rules/GR/interfaces/products.d.ts +61 -61
  425. package/dist/rules/GR/interfaces/products.js +10 -10
  426. package/dist/rules/GR/utils/cart.d.ts +53 -53
  427. package/dist/rules/GR/utils/cart.js +637 -631
  428. package/dist/rules/GR/utils/cart.js.map +1 -1
  429. package/dist/rules/GR/utils/data.d.ts +3 -3
  430. package/dist/rules/GR/utils/data.js +25 -25
  431. package/dist/rules/GR/utils/expedition.d.ts +71 -71
  432. package/dist/rules/GR/utils/expedition.js +1542 -1542
  433. package/dist/rules/GR/utils/g2.d.ts +176 -176
  434. package/dist/rules/GR/utils/g2.js +845 -845
  435. package/dist/rules/GR/utils/invoices.d.ts +24 -24
  436. package/dist/rules/GR/utils/invoices.js +174 -171
  437. package/dist/rules/GR/utils/invoices.js.map +1 -1
  438. package/dist/rules/GR/utils/products.d.ts +104 -104
  439. package/dist/rules/GR/utils/products.js +984 -984
  440. package/dist/rules/GR/utils/upsells.d.ts +79 -79
  441. package/dist/rules/GR/utils/upsells.js +183 -183
  442. package/dist/services/database/BaseProvider.d.ts +29 -29
  443. package/dist/services/database/BaseProvider.js +28 -28
  444. package/dist/services/database/BatchUtils.d.ts +14 -14
  445. package/dist/services/database/BatchUtils.js +43 -43
  446. package/dist/services/database/Config.d.ts +2 -2
  447. package/dist/services/database/Config.js +5 -5
  448. package/dist/services/database/DatabaseService.d.ts +41 -41
  449. package/dist/services/database/DatabaseService.js +152 -152
  450. package/dist/services/database/FirebaseProvider.d.ts +17 -17
  451. package/dist/services/database/FirebaseProvider.js +218 -218
  452. package/dist/services/database/NotFirebaseProvider.d.ts +35 -35
  453. package/dist/services/database/NotFirebaseProvider.js +243 -243
  454. package/dist/services/g2/G2OrderSlip.d.ts +42 -42
  455. package/dist/services/g2/G2OrderSlip.js +210 -210
  456. package/dist/services/g2/utils.d.ts +9 -9
  457. package/dist/services/g2/utils.js +703 -695
  458. package/dist/services/g2/utils.js.map +1 -1
  459. package/dist/services/logs/index.d.ts +20 -20
  460. package/dist/services/logs/index.js +61 -61
  461. package/dist/services/products/BaseClass.d.ts +50 -50
  462. package/dist/services/products/BaseClass.js +64 -64
  463. package/dist/services/products/TCGService.d.ts +29 -29
  464. package/dist/services/products/TCGService.js +499 -499
  465. package/dist/services/products/utils.d.ts +9 -9
  466. package/dist/services/products/utils.js +94 -94
  467. package/dist/utils/algolia.d.ts +6 -6
  468. package/dist/utils/algolia.js +21 -21
  469. package/dist/utils/anonymisation.d.ts +30 -30
  470. package/dist/utils/anonymisation.js +250 -250
  471. package/dist/utils/array.d.ts +5 -5
  472. package/dist/utils/array.js +14 -14
  473. package/dist/utils/aws.d.ts +14 -14
  474. package/dist/utils/aws.js +126 -126
  475. package/dist/utils/booking.d.ts +22 -22
  476. package/dist/utils/booking.js +118 -118
  477. package/dist/utils/cart.d.ts +103 -102
  478. package/dist/utils/cart.js +690 -652
  479. package/dist/utils/cart.js.map +1 -1
  480. package/dist/utils/categories.d.ts +2 -2
  481. package/dist/utils/categories.js +54 -54
  482. package/dist/utils/cmv.d.ts +10 -10
  483. package/dist/utils/cmv.js +107 -107
  484. package/dist/utils/console.d.ts +6 -6
  485. package/dist/utils/console.js +59 -59
  486. package/dist/utils/context.d.ts +20 -20
  487. package/dist/utils/context.js +61 -61
  488. package/dist/utils/currency.d.ts +6 -6
  489. package/dist/utils/currency.js +61 -61
  490. package/dist/utils/data.d.ts +31 -31
  491. package/dist/utils/data.js +293 -293
  492. package/dist/utils/date.d.ts +1 -1
  493. package/dist/utils/date.js +16 -16
  494. package/dist/utils/dimensions.d.ts +3 -3
  495. package/dist/utils/dimensions.js +16 -16
  496. package/dist/utils/discount.d.ts +46 -46
  497. package/dist/utils/discount.js +934 -934
  498. package/dist/utils/errors.d.ts +113 -113
  499. package/dist/utils/errors.js +113 -113
  500. package/dist/utils/file-admin.d.ts +8 -8
  501. package/dist/utils/file-admin.js +38 -38
  502. package/dist/utils/file.d.ts +38 -38
  503. package/dist/utils/file.js +200 -200
  504. package/dist/utils/firebase-admin.d.ts +2 -2
  505. package/dist/utils/firebase-admin.js +61 -61
  506. package/dist/utils/firebase.d.ts +41 -41
  507. package/dist/utils/firebase.js +131 -131
  508. package/dist/utils/import.d.ts +1 -1
  509. package/dist/utils/import.js +21 -21
  510. package/dist/utils/inventories.d.ts +49 -49
  511. package/dist/utils/inventories.js +392 -392
  512. package/dist/utils/locale.d.ts +15 -15
  513. package/dist/utils/locale.js +78 -78
  514. package/dist/utils/mailchimp.d.ts +58 -58
  515. package/dist/utils/mailchimp.js +495 -495
  516. package/dist/utils/mathUtils.d.ts +17 -17
  517. package/dist/utils/mathUtils.js +315 -315
  518. package/dist/utils/mongodb.d.ts +1 -1
  519. package/dist/utils/mongodb.js +22 -22
  520. package/dist/utils/object.d.ts +13 -13
  521. package/dist/utils/object.js +115 -115
  522. package/dist/utils/payment.d.ts +10 -10
  523. package/dist/utils/payment.js +23 -23
  524. package/dist/utils/products.d.ts +32 -32
  525. package/dist/utils/products.js +186 -186
  526. package/dist/utils/promiseToPurchase.d.ts +56 -56
  527. package/dist/utils/promiseToPurchase.js +195 -195
  528. package/dist/utils/prosprsearch.d.ts +26 -26
  529. package/dist/utils/prosprsearch.js +182 -182
  530. package/dist/utils/refunds.d.ts +2 -2
  531. package/dist/utils/refunds.js +21 -21
  532. package/dist/utils/sdc.d.ts +10 -10
  533. package/dist/utils/sdc.js +1302 -1302
  534. package/dist/utils/searchIndexes.d.ts +21 -21
  535. package/dist/utils/searchIndexes.js +210 -210
  536. package/dist/utils/services.d.ts +42 -42
  537. package/dist/utils/services.js +409 -409
  538. package/dist/utils/shipment.d.ts +110 -110
  539. package/dist/utils/shipment.js +345 -345
  540. package/dist/utils/simpletexting.d.ts +2 -2
  541. package/dist/utils/simpletexting.js +45 -45
  542. package/dist/utils/sliders.d.ts +4 -4
  543. package/dist/utils/sliders.js +24 -24
  544. package/dist/utils/string.d.ts +16 -16
  545. package/dist/utils/string.js +191 -191
  546. package/dist/utils/tcgService.d.ts +2 -2
  547. package/dist/utils/tcgService.js +8 -8
  548. package/dist/utils/tools.d.ts +1 -1
  549. package/dist/utils/tools.js +9 -9
  550. package/dist/utils/transferRequests.d.ts +19 -19
  551. package/dist/utils/transferRequests.js +43 -43
  552. package/dist/utils/update.d.ts +7 -7
  553. package/dist/utils/update.js +125 -125
  554. package/dist/utils/weight.d.ts +3 -3
  555. package/dist/utils/weight.js +16 -16
  556. package/dist/utils/zones.d.ts +11 -11
  557. package/dist/utils/zones.js +218 -218
  558. package/package.json +110 -110
  559. package/publish.sh +143 -143
  560. package/readme.md +182 -182
@@ -1,471 +1,471 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const console_1 = require("../../utils/console");
7
- const discount_1 = require("../../utils/discount");
8
- const Space_1 = __importDefault(require("../Space"));
9
- const chunk_1 = __importDefault(require("lodash/chunk"));
10
- const baseService_1 = require("../baseService");
11
- const DatabaseService_1 = __importDefault(require("../../services/database/DatabaseService"));
12
- const BatchUtils_1 = __importDefault(require("../../services/database/BatchUtils"));
13
- class Discount extends baseService_1.BaseServiceClass {
14
- constructor() {
15
- super(...arguments);
16
- this.data = () => this._data;
17
- this._spread = async () => {
18
- (0, console_1.workingMessage)('Spreading...');
19
- const associations = [];
20
- try {
21
- const association = await this._spreadTo(this.data().appliesTo.label);
22
- associations.push(association);
23
- }
24
- catch (error) {
25
- (0, console_1.errorMessage)(`Can't spread ${this.data().appliesTo.label}`);
26
- throw error;
27
- }
28
- (0, console_1.workingMessage)('Done spreading!');
29
- };
30
- this._unspread = async (label) => {
31
- (0, console_1.workingMessage)('Unspreading...');
32
- console.log('dans le _unspread');
33
- const associations = [];
34
- try {
35
- const association = await this._unspreadTo(!!label ? label : this.data().appliesTo.label);
36
- associations.push(association);
37
- }
38
- catch (error) {
39
- (0, console_1.errorMessage)(`Can't unspread ${this.data().appliesTo.label}`);
40
- throw error;
41
- }
42
- (0, console_1.workingMessage)('Done unspreading!');
43
- };
44
- this._spreadTo = async (typeOfSpread) => {
45
- try {
46
- switch (typeOfSpread) {
47
- case 'allproducts':
48
- return await this._spreadToProducts();
49
- case 'product':
50
- return await this._spreadToProduct();
51
- case 'category':
52
- return await this._spreadToProductCategories();
53
- default:
54
- break;
55
- }
56
- }
57
- catch (error) {
58
- console.log('error: ', error);
59
- }
60
- };
61
- this._unspreadTo = async (typeOfSpread) => {
62
- console.log('dans le _unspreadTo: ', typeOfSpread);
63
- switch (typeOfSpread) {
64
- case 'allproducts':
65
- return await this._unspreadToProducts();
66
- case 'product':
67
- return await this._unspreadToProduct();
68
- case 'category':
69
- console.log('calling unspread to Categories');
70
- return await this._unspreadToCategories();
71
- default:
72
- break;
73
- }
74
- };
75
- this._unspreadToProducts = async () => {
76
- if (DatabaseService_1.default.getPathParent(this._collection.path) == '/') {
77
- throw new Error(`Can't access products collection to fetch all products`);
78
- }
79
- try {
80
- const allProducts = await this._fetchProductsByBatch({});
81
- for (let products of (0, chunk_1.default)(allProducts, 100)) {
82
- const batch = new BatchUtils_1.default();
83
- for (const productSnap of products) {
84
- if (!productSnap.exists)
85
- continue;
86
- const productData = productSnap.data;
87
- if (!!!productData)
88
- continue;
89
- if (!!!productData.declinations)
90
- continue;
91
- if (!!!productData.declinations.length)
92
- continue;
93
- const declinations = productData.declinations;
94
- try {
95
- batch.set(productSnap.path, productSnap.id, {
96
- declinations: declinations.map((_declination, _dIndex) => {
97
- if (!!_declination.discount_rules.find((_dr) => _dr.id === this.data().id)) {
98
- const newDiscountRules = _declination.discount_rules
99
- .filter((_dr) => _dr.id !== this.data().id)
100
- .filter((_dr) => !!_dr);
101
- return Object.assign(Object.assign({}, _declination), { discount_rules: newDiscountRules });
102
- }
103
- return _declination;
104
- })
105
- }, { merge: true });
106
- }
107
- catch (error) {
108
- throw error;
109
- }
110
- }
111
- try {
112
- await batch.commit();
113
- }
114
- catch (error) {
115
- (0, console_1.errorMessage)(`Error while commiting products spread: ${error} - ${JSON.stringify(error)}`);
116
- throw error;
117
- }
118
- }
119
- }
120
- catch (error) {
121
- throw error;
122
- }
123
- };
124
- this._unspreadToProduct = async () => {
125
- if (DatabaseService_1.default.getPathParent(this._collection.path) == '/') {
126
- throw new Error(`Can't access products collection to fetch all products`);
127
- }
128
- const productSlug = this.data().appliesTo.value;
129
- const productSnap = await DatabaseService_1.default.getDocuments(DatabaseService_1.default.addToPath(DatabaseService_1.default.getPathParent(this._collection.path), 'products'), { query: [{ field: 'slug', operator: '==', value: productSlug }] });
130
- if (!!!productSnap.length)
131
- return;
132
- const product = productSnap[0];
133
- if (!product.exists)
134
- return;
135
- if (!!!product)
136
- return;
137
- const productData = product.data;
138
- if (!!!productData)
139
- return;
140
- if (!!!productData.declinations)
141
- return;
142
- const declinations = productData.declinations;
143
- try {
144
- await DatabaseService_1.default.saveDocument(product.path, product.id, product.timestamp, {
145
- declinations: declinations.map((_declination, _dIndex) => {
146
- if (!!_declination.discount_rules.find((_dr) => _dr.id === this.data().id)) {
147
- const newDiscountRules = _declination.discount_rules
148
- .filter((_dr) => _dr.id !== this.data().id)
149
- .filter((_dr) => !!_dr);
150
- return Object.assign(Object.assign({}, _declination), { discount_rules: newDiscountRules });
151
- }
152
- return _declination;
153
- })
154
- }, { merge: true });
155
- }
156
- catch (error) {
157
- throw error;
158
- }
159
- };
160
- this._spreadToProducts = async () => {
161
- if (DatabaseService_1.default.getPathParent(this._collection.path) == '/') {
162
- throw new Error(`Can't access products collection to fetch all products`);
163
- }
164
- const space = await Space_1.default.getCurrentSpaceWithRef(this._collection.path, this._user);
165
- if (!!!space)
166
- return;
167
- try {
168
- const allProducts = await this._fetchProductsByBatch();
169
- for (let products of (0, chunk_1.default)(allProducts, 100)) {
170
- const batch = new BatchUtils_1.default();
171
- for (const productSnap of products) {
172
- if (!productSnap.exists)
173
- continue;
174
- const productData = productSnap.data;
175
- if (!!!productData)
176
- continue;
177
- if (!!!productData.declinations)
178
- continue;
179
- if (!!!productData.declinations.length)
180
- continue;
181
- const declinations = productData.declinations;
182
- const declinationsToAddDiscount = declinations
183
- .filter((declination) => !!(0, discount_1.shouldApplyRuleToDeclination)(this.data(), declination))
184
- .map((d) => d.sku);
185
- const isSameSku = (sku) => {
186
- return !!declinationsToAddDiscount.some((aSku) => !!aSku && !!sku && aSku.toLowerCase().trim() === sku.toLowerCase().trim());
187
- };
188
- try {
189
- batch.set(productSnap.path, productSnap.id, {
190
- declinations: declinations.map((_declination, _dIndex) => {
191
- if (_declination.discount_rules.some((_dr) => _dr.id === this.data().id))
192
- return Object.assign(Object.assign({}, _declination), { discount_rules: _declination.discount_rules
193
- .map((_dr) => {
194
- if (_dr.id !== this.data().id)
195
- return _dr;
196
- if (!!isSameSku(_declination.sku)) {
197
- if (!!!this.data().draft)
198
- return this.data();
199
- }
200
- return undefined;
201
- })
202
- .filter((_dr) => !!_dr) });
203
- return Object.assign(Object.assign({}, _declination), { discount_rules: [
204
- ..._declination.discount_rules,
205
- ...(!!isSameSku(_declination.sku) ? [this.data()] : [])
206
- ] });
207
- })
208
- }, { merge: true });
209
- }
210
- catch (error) {
211
- console.log('error dans le catch: ', error);
212
- throw error;
213
- }
214
- }
215
- try {
216
- await batch.commit();
217
- }
218
- catch (error) {
219
- (0, console_1.errorMessage)(`Error while commiting products spread: ${error} - ${JSON.stringify(error)}`);
220
- throw error;
221
- }
222
- }
223
- console.log(`Batch is done`);
224
- }
225
- catch (error) {
226
- throw error;
227
- }
228
- };
229
- this._spreadToProduct = async () => {
230
- if (DatabaseService_1.default.getPathParent(this._collection.path) == '/') {
231
- throw new Error(`Can't access products collection to fetch all products`);
232
- }
233
- const productSlug = this.data().appliesTo.value;
234
- const productSnap = await DatabaseService_1.default.getDocuments(DatabaseService_1.default.addToPath(DatabaseService_1.default.getPathParent(this._collection.path), 'products'), { query: [{ field: 'slug', operator: '==', value: productSlug }] });
235
- if (!!!productSnap.length)
236
- return;
237
- const product = productSnap[0];
238
- if (!product.exists)
239
- return;
240
- if (!!!product)
241
- return;
242
- const productData = product.data;
243
- if (!!!productData)
244
- return;
245
- if (!!!productData.declinations)
246
- return;
247
- const declinations = productData.declinations;
248
- const space = await Space_1.default.getCurrentSpaceWithRef(this._collection.path, this._user);
249
- if (!!!space)
250
- return;
251
- const declinationsToAddDiscount = declinations.filter((declination) => !!(0, discount_1.shouldApplyRuleToDeclination)(this.data(), declination));
252
- try {
253
- await DatabaseService_1.default.saveDocument(product.path, product.id, product.timestamp, {
254
- declinations: declinations.map((_declination, _dIndex) => {
255
- if (!!_declination.discount_rules.find((_dr) => _dr.id === this.data().id))
256
- return Object.assign(Object.assign({}, _declination), { discount_rules: _declination.discount_rules
257
- .map((_dr) => {
258
- if (_dr.id !== this.data().id)
259
- return _dr;
260
- if (!!declinationsToAddDiscount.some((decliDiscount) => decliDiscount.sku.toLowerCase().trim() === _declination.sku.toLowerCase().trim())) {
261
- if (!!this.data().draft)
262
- return undefined;
263
- return this.data();
264
- }
265
- return undefined;
266
- })
267
- .filter((_dr) => !!_dr) });
268
- return Object.assign(Object.assign({}, _declination), { discount_rules: [
269
- ..._declination.discount_rules,
270
- ...(!!declinationsToAddDiscount.some((decliDiscount) => decliDiscount.sku.toLowerCase().trim() === _declination.sku.toLowerCase().trim())
271
- ? [this.data()]
272
- : [])
273
- ] });
274
- })
275
- }, { merge: true });
276
- }
277
- catch (error) {
278
- throw error;
279
- }
280
- };
281
- this._spreadToProductCategories = async () => {
282
- if (DatabaseService_1.default.getPathParent(this._collection.path) == '/') {
283
- throw new Error(`Can't access products collection to fetch all products`);
284
- }
285
- const discountData = this.data();
286
- if (!!!discountData)
287
- return;
288
- const space = await Space_1.default.getCurrentSpaceWithRef(this._collection.path, this._user);
289
- if (!!!space)
290
- return;
291
- try {
292
- const allProducts = await this._fetchProductsByBatch({
293
- queryToApply: [{ field: 'category', operator: '==', value: discountData.appliesTo.value }]
294
- });
295
- for (let products of (0, chunk_1.default)(allProducts, 20)) {
296
- const batch = new BatchUtils_1.default();
297
- for (const productSnap of products) {
298
- if (!productSnap.exists)
299
- continue;
300
- const productData = productSnap.data;
301
- if (!!!productData)
302
- continue;
303
- if (!!!productData.category)
304
- continue;
305
- if (!!!productData.declinations)
306
- continue;
307
- if (!!!productData.declinations.length)
308
- continue;
309
- const declinations = productData.declinations;
310
- if (!!discountData.rules && !!discountData.rules.length) {
311
- const rulesOnProduct = discountData.rules.filter((rule) => rule.field === 'product');
312
- if (!!rulesOnProduct.length) {
313
- const isProductSlugFoundInADiscountRule = rulesOnProduct.some((rule) => rule.ruleDetails.some((ruleDetail) => {
314
- return ruleDetail.operator == '=='
315
- ? ruleDetail.value.includes(productData.slug)
316
- : !ruleDetail.value.includes(productData.slug);
317
- }));
318
- const isRuleCurrentlyAppliedToDeclinations = declinations.some((decli) => (decli.discount_rules || []).some((rule) => rule.id == discountData.id));
319
- if (!isProductSlugFoundInADiscountRule && !isRuleCurrentlyAppliedToDeclinations)
320
- continue;
321
- }
322
- }
323
- const declinationsToAddDiscount = declinations.filter((declination) => !!(0, discount_1.shouldApplyRuleToDeclination)(this.data(), declination, productData.slug));
324
- try {
325
- batch.set(productSnap.path, productSnap.id, {
326
- declinations: declinations.map((_declination, _dIndex) => {
327
- if (!!_declination.discount_rules.find((_dr) => _dr.id === this.data().id))
328
- return Object.assign(Object.assign({}, _declination), { discount_rules: _declination.discount_rules
329
- .map((_dr) => {
330
- if (_dr.id !== this.data().id)
331
- return _dr;
332
- if (!!declinationsToAddDiscount.some((__declination) => __declination.sku.toLowerCase().trim() === _declination.sku.toLowerCase().trim())) {
333
- if (!!this.data().draft)
334
- return undefined;
335
- return this.data();
336
- }
337
- return undefined;
338
- })
339
- .filter((_dr) => !!_dr) });
340
- return Object.assign(Object.assign({}, _declination), { discount_rules: [
341
- ..._declination.discount_rules,
342
- ...(!!declinationsToAddDiscount.some((__declination) => __declination.sku.toLowerCase().trim() === _declination.sku.toLowerCase().trim())
343
- ? [this.data()]
344
- : [])
345
- ] });
346
- })
347
- }, { merge: true });
348
- }
349
- catch (error) {
350
- throw error;
351
- }
352
- }
353
- try {
354
- await batch.commit();
355
- }
356
- catch (error) {
357
- (0, console_1.errorMessage)(`Error while commiting products spread: ${error} - ${JSON.stringify(error)}`);
358
- throw error;
359
- }
360
- }
361
- }
362
- catch (error) {
363
- throw error;
364
- }
365
- };
366
- this._unspreadToCategories = async () => {
367
- if (DatabaseService_1.default.getPathParent(this._collection.path) == '/') {
368
- console.log('path is /, returning');
369
- throw new Error(`Can't access products collection to fetch all categories`);
370
- }
371
- const discountData = this.data();
372
- if (!!!discountData) {
373
- console.log('no discount data! Returning');
374
- return;
375
- }
376
- const space = await Space_1.default.getCurrentSpaceWithRef(this._collection.path, this._user);
377
- if (!!!space) {
378
- console.log('no space! returning');
379
- return;
380
- }
381
- try {
382
- const allProducts = await this._fetchProductsByBatch({
383
- queryToApply: [{ field: 'category', operator: '==', value: discountData.appliesTo.value }]
384
- });
385
- if (!!!allProducts.length) {
386
- console.log('no products with category found, returning!');
387
- return;
388
- }
389
- for (let products of (0, chunk_1.default)(allProducts, 20)) {
390
- const batch = new BatchUtils_1.default();
391
- for (const productSnap of products) {
392
- if (!productSnap.exists)
393
- continue;
394
- const productData = productSnap.data;
395
- if (!!!productData)
396
- continue;
397
- if (!!!productData.category)
398
- continue;
399
- if (!!!productData.declinations)
400
- continue;
401
- if (!!!productData.declinations.length)
402
- continue;
403
- const declinations = productData.declinations;
404
- const isRuleAlreadyInDecli = declinations.some((d) => (d.discount_rules || []).some((d) => d.id == discountData.id));
405
- if (!isRuleAlreadyInDecli)
406
- continue;
407
- try {
408
- batch.set(productSnap.path, productSnap.id, {
409
- declinations: declinations.map((_declination, _dIndex) => {
410
- if (!!_declination.discount_rules.some((_dr) => _dr.id === this.data().id)) {
411
- const newDiscountRules = _declination.discount_rules
412
- .filter((_dr) => _dr.id !== this.data().id)
413
- .filter((_dr) => !!_dr);
414
- return Object.assign(Object.assign({}, _declination), { discount_rules: newDiscountRules });
415
- }
416
- return _declination;
417
- })
418
- }, { merge: true });
419
- }
420
- catch (error) {
421
- throw error;
422
- }
423
- }
424
- try {
425
- await batch.commit();
426
- }
427
- catch (error) {
428
- (0, console_1.errorMessage)(`Error while commiting products unspread: ${error} - ${JSON.stringify(error)}`);
429
- throw error;
430
- }
431
- }
432
- }
433
- catch (error) {
434
- throw error;
435
- }
436
- };
437
- this._fetchProductsByBatch = async (props) => {
438
- let allProducts = [];
439
- let lastID = '';
440
- const fetchProductLimit = 50;
441
- const fetchProducts = async (lastID) => {
442
- const result = await DatabaseService_1.default.getDocuments(DatabaseService_1.default.addToPath(DatabaseService_1.default.getPathParent(this._collection.path), 'products'), Object.assign(Object.assign({ orderBy: !!props && !!props.orderByField ? props.orderByField : 'id', limit: !!props && !!props.fetchLimit ? props.fetchLimit : 50 }, (!!lastID ? { startAfter: lastID } : {})), (!!props && !!props.queryToApply ? { query: props.queryToApply } : {})));
443
- return result;
444
- };
445
- try {
446
- while (true) {
447
- const result = await fetchProducts(lastID);
448
- allProducts.push(...result);
449
- if (!!result.length) {
450
- const lastEntryData = result[result.length - 1].data;
451
- if (!!!lastEntryData || !!!lastEntryData.id) {
452
- console.log('cannot continue checks for bulk fetch, last entry has no data or no id. Returning found entries up to this point.');
453
- break;
454
- }
455
- lastID = lastEntryData.id;
456
- }
457
- if (result.length < fetchProductLimit)
458
- break;
459
- }
460
- }
461
- catch (e) {
462
- console.log('error on fetching products with category: ', e);
463
- }
464
- return allProducts;
465
- };
466
- this.spread = this._spread;
467
- this.unspread = this._unspread;
468
- }
469
- }
470
- exports.default = Discount;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const console_1 = require("../../utils/console");
7
+ const discount_1 = require("../../utils/discount");
8
+ const Space_1 = __importDefault(require("../Space"));
9
+ const chunk_1 = __importDefault(require("lodash/chunk"));
10
+ const baseService_1 = require("../baseService");
11
+ const DatabaseService_1 = __importDefault(require("../../services/database/DatabaseService"));
12
+ const BatchUtils_1 = __importDefault(require("../../services/database/BatchUtils"));
13
+ class Discount extends baseService_1.BaseServiceClass {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.data = () => this._data;
17
+ this._spread = async () => {
18
+ (0, console_1.workingMessage)('Spreading...');
19
+ const associations = [];
20
+ try {
21
+ const association = await this._spreadTo(this.data().appliesTo.label);
22
+ associations.push(association);
23
+ }
24
+ catch (error) {
25
+ (0, console_1.errorMessage)(`Can't spread ${this.data().appliesTo.label}`);
26
+ throw error;
27
+ }
28
+ (0, console_1.workingMessage)('Done spreading!');
29
+ };
30
+ this._unspread = async (label) => {
31
+ (0, console_1.workingMessage)('Unspreading...');
32
+ console.log('dans le _unspread');
33
+ const associations = [];
34
+ try {
35
+ const association = await this._unspreadTo(!!label ? label : this.data().appliesTo.label);
36
+ associations.push(association);
37
+ }
38
+ catch (error) {
39
+ (0, console_1.errorMessage)(`Can't unspread ${this.data().appliesTo.label}`);
40
+ throw error;
41
+ }
42
+ (0, console_1.workingMessage)('Done unspreading!');
43
+ };
44
+ this._spreadTo = async (typeOfSpread) => {
45
+ try {
46
+ switch (typeOfSpread) {
47
+ case 'allproducts':
48
+ return await this._spreadToProducts();
49
+ case 'product':
50
+ return await this._spreadToProduct();
51
+ case 'category':
52
+ return await this._spreadToProductCategories();
53
+ default:
54
+ break;
55
+ }
56
+ }
57
+ catch (error) {
58
+ console.log('error: ', error);
59
+ }
60
+ };
61
+ this._unspreadTo = async (typeOfSpread) => {
62
+ console.log('dans le _unspreadTo: ', typeOfSpread);
63
+ switch (typeOfSpread) {
64
+ case 'allproducts':
65
+ return await this._unspreadToProducts();
66
+ case 'product':
67
+ return await this._unspreadToProduct();
68
+ case 'category':
69
+ console.log('calling unspread to Categories');
70
+ return await this._unspreadToCategories();
71
+ default:
72
+ break;
73
+ }
74
+ };
75
+ this._unspreadToProducts = async () => {
76
+ if (DatabaseService_1.default.getPathParent(this._collection.path) == '/') {
77
+ throw new Error(`Can't access products collection to fetch all products`);
78
+ }
79
+ try {
80
+ const allProducts = await this._fetchProductsByBatch({});
81
+ for (let products of (0, chunk_1.default)(allProducts, 100)) {
82
+ const batch = new BatchUtils_1.default();
83
+ for (const productSnap of products) {
84
+ if (!productSnap.exists)
85
+ continue;
86
+ const productData = productSnap.data;
87
+ if (!!!productData)
88
+ continue;
89
+ if (!!!productData.declinations)
90
+ continue;
91
+ if (!!!productData.declinations.length)
92
+ continue;
93
+ const declinations = productData.declinations;
94
+ try {
95
+ batch.set(productSnap.path, productSnap.id, {
96
+ declinations: declinations.map((_declination, _dIndex) => {
97
+ if (!!_declination.discount_rules.find((_dr) => _dr.id === this.data().id)) {
98
+ const newDiscountRules = _declination.discount_rules
99
+ .filter((_dr) => _dr.id !== this.data().id)
100
+ .filter((_dr) => !!_dr);
101
+ return Object.assign(Object.assign({}, _declination), { discount_rules: newDiscountRules });
102
+ }
103
+ return _declination;
104
+ })
105
+ }, { merge: true });
106
+ }
107
+ catch (error) {
108
+ throw error;
109
+ }
110
+ }
111
+ try {
112
+ await batch.commit();
113
+ }
114
+ catch (error) {
115
+ (0, console_1.errorMessage)(`Error while commiting products spread: ${error} - ${JSON.stringify(error)}`);
116
+ throw error;
117
+ }
118
+ }
119
+ }
120
+ catch (error) {
121
+ throw error;
122
+ }
123
+ };
124
+ this._unspreadToProduct = async () => {
125
+ if (DatabaseService_1.default.getPathParent(this._collection.path) == '/') {
126
+ throw new Error(`Can't access products collection to fetch all products`);
127
+ }
128
+ const productSlug = this.data().appliesTo.value;
129
+ const productSnap = await DatabaseService_1.default.getDocuments(DatabaseService_1.default.addToPath(DatabaseService_1.default.getPathParent(this._collection.path), 'products'), { query: [{ field: 'slug', operator: '==', value: productSlug }] });
130
+ if (!!!productSnap.length)
131
+ return;
132
+ const product = productSnap[0];
133
+ if (!product.exists)
134
+ return;
135
+ if (!!!product)
136
+ return;
137
+ const productData = product.data;
138
+ if (!!!productData)
139
+ return;
140
+ if (!!!productData.declinations)
141
+ return;
142
+ const declinations = productData.declinations;
143
+ try {
144
+ await DatabaseService_1.default.saveDocument(product.path, product.id, product.timestamp, {
145
+ declinations: declinations.map((_declination, _dIndex) => {
146
+ if (!!_declination.discount_rules.find((_dr) => _dr.id === this.data().id)) {
147
+ const newDiscountRules = _declination.discount_rules
148
+ .filter((_dr) => _dr.id !== this.data().id)
149
+ .filter((_dr) => !!_dr);
150
+ return Object.assign(Object.assign({}, _declination), { discount_rules: newDiscountRules });
151
+ }
152
+ return _declination;
153
+ })
154
+ }, { merge: true });
155
+ }
156
+ catch (error) {
157
+ throw error;
158
+ }
159
+ };
160
+ this._spreadToProducts = async () => {
161
+ if (DatabaseService_1.default.getPathParent(this._collection.path) == '/') {
162
+ throw new Error(`Can't access products collection to fetch all products`);
163
+ }
164
+ const space = await Space_1.default.getCurrentSpaceWithRef(this._collection.path, this._user);
165
+ if (!!!space)
166
+ return;
167
+ try {
168
+ const allProducts = await this._fetchProductsByBatch();
169
+ for (let products of (0, chunk_1.default)(allProducts, 100)) {
170
+ const batch = new BatchUtils_1.default();
171
+ for (const productSnap of products) {
172
+ if (!productSnap.exists)
173
+ continue;
174
+ const productData = productSnap.data;
175
+ if (!!!productData)
176
+ continue;
177
+ if (!!!productData.declinations)
178
+ continue;
179
+ if (!!!productData.declinations.length)
180
+ continue;
181
+ const declinations = productData.declinations;
182
+ const declinationsToAddDiscount = declinations
183
+ .filter((declination) => !!(0, discount_1.shouldApplyRuleToDeclination)(this.data(), declination))
184
+ .map((d) => d.sku);
185
+ const isSameSku = (sku) => {
186
+ return !!declinationsToAddDiscount.some((aSku) => !!aSku && !!sku && aSku.toLowerCase().trim() === sku.toLowerCase().trim());
187
+ };
188
+ try {
189
+ batch.set(productSnap.path, productSnap.id, {
190
+ declinations: declinations.map((_declination, _dIndex) => {
191
+ if (_declination.discount_rules.some((_dr) => _dr.id === this.data().id))
192
+ return Object.assign(Object.assign({}, _declination), { discount_rules: _declination.discount_rules
193
+ .map((_dr) => {
194
+ if (_dr.id !== this.data().id)
195
+ return _dr;
196
+ if (!!isSameSku(_declination.sku)) {
197
+ if (!!!this.data().draft)
198
+ return this.data();
199
+ }
200
+ return undefined;
201
+ })
202
+ .filter((_dr) => !!_dr) });
203
+ return Object.assign(Object.assign({}, _declination), { discount_rules: [
204
+ ..._declination.discount_rules,
205
+ ...(!!isSameSku(_declination.sku) ? [this.data()] : [])
206
+ ] });
207
+ })
208
+ }, { merge: true });
209
+ }
210
+ catch (error) {
211
+ console.log('error dans le catch: ', error);
212
+ throw error;
213
+ }
214
+ }
215
+ try {
216
+ await batch.commit();
217
+ }
218
+ catch (error) {
219
+ (0, console_1.errorMessage)(`Error while commiting products spread: ${error} - ${JSON.stringify(error)}`);
220
+ throw error;
221
+ }
222
+ }
223
+ console.log(`Batch is done`);
224
+ }
225
+ catch (error) {
226
+ throw error;
227
+ }
228
+ };
229
+ this._spreadToProduct = async () => {
230
+ if (DatabaseService_1.default.getPathParent(this._collection.path) == '/') {
231
+ throw new Error(`Can't access products collection to fetch all products`);
232
+ }
233
+ const productSlug = this.data().appliesTo.value;
234
+ const productSnap = await DatabaseService_1.default.getDocuments(DatabaseService_1.default.addToPath(DatabaseService_1.default.getPathParent(this._collection.path), 'products'), { query: [{ field: 'slug', operator: '==', value: productSlug }] });
235
+ if (!!!productSnap.length)
236
+ return;
237
+ const product = productSnap[0];
238
+ if (!product.exists)
239
+ return;
240
+ if (!!!product)
241
+ return;
242
+ const productData = product.data;
243
+ if (!!!productData)
244
+ return;
245
+ if (!!!productData.declinations)
246
+ return;
247
+ const declinations = productData.declinations;
248
+ const space = await Space_1.default.getCurrentSpaceWithRef(this._collection.path, this._user);
249
+ if (!!!space)
250
+ return;
251
+ const declinationsToAddDiscount = declinations.filter((declination) => !!(0, discount_1.shouldApplyRuleToDeclination)(this.data(), declination));
252
+ try {
253
+ await DatabaseService_1.default.saveDocument(product.path, product.id, product.timestamp, {
254
+ declinations: declinations.map((_declination, _dIndex) => {
255
+ if (!!_declination.discount_rules.find((_dr) => _dr.id === this.data().id))
256
+ return Object.assign(Object.assign({}, _declination), { discount_rules: _declination.discount_rules
257
+ .map((_dr) => {
258
+ if (_dr.id !== this.data().id)
259
+ return _dr;
260
+ if (!!declinationsToAddDiscount.some((decliDiscount) => decliDiscount.sku.toLowerCase().trim() === _declination.sku.toLowerCase().trim())) {
261
+ if (!!this.data().draft)
262
+ return undefined;
263
+ return this.data();
264
+ }
265
+ return undefined;
266
+ })
267
+ .filter((_dr) => !!_dr) });
268
+ return Object.assign(Object.assign({}, _declination), { discount_rules: [
269
+ ..._declination.discount_rules,
270
+ ...(!!declinationsToAddDiscount.some((decliDiscount) => decliDiscount.sku.toLowerCase().trim() === _declination.sku.toLowerCase().trim())
271
+ ? [this.data()]
272
+ : [])
273
+ ] });
274
+ })
275
+ }, { merge: true });
276
+ }
277
+ catch (error) {
278
+ throw error;
279
+ }
280
+ };
281
+ this._spreadToProductCategories = async () => {
282
+ if (DatabaseService_1.default.getPathParent(this._collection.path) == '/') {
283
+ throw new Error(`Can't access products collection to fetch all products`);
284
+ }
285
+ const discountData = this.data();
286
+ if (!!!discountData)
287
+ return;
288
+ const space = await Space_1.default.getCurrentSpaceWithRef(this._collection.path, this._user);
289
+ if (!!!space)
290
+ return;
291
+ try {
292
+ const allProducts = await this._fetchProductsByBatch({
293
+ queryToApply: [{ field: 'category', operator: '==', value: discountData.appliesTo.value }]
294
+ });
295
+ for (let products of (0, chunk_1.default)(allProducts, 20)) {
296
+ const batch = new BatchUtils_1.default();
297
+ for (const productSnap of products) {
298
+ if (!productSnap.exists)
299
+ continue;
300
+ const productData = productSnap.data;
301
+ if (!!!productData)
302
+ continue;
303
+ if (!!!productData.category)
304
+ continue;
305
+ if (!!!productData.declinations)
306
+ continue;
307
+ if (!!!productData.declinations.length)
308
+ continue;
309
+ const declinations = productData.declinations;
310
+ if (!!discountData.rules && !!discountData.rules.length) {
311
+ const rulesOnProduct = discountData.rules.filter((rule) => rule.field === 'product');
312
+ if (!!rulesOnProduct.length) {
313
+ const isProductSlugFoundInADiscountRule = rulesOnProduct.some((rule) => rule.ruleDetails.some((ruleDetail) => {
314
+ return ruleDetail.operator == '=='
315
+ ? ruleDetail.value.includes(productData.slug)
316
+ : !ruleDetail.value.includes(productData.slug);
317
+ }));
318
+ const isRuleCurrentlyAppliedToDeclinations = declinations.some((decli) => (decli.discount_rules || []).some((rule) => rule.id == discountData.id));
319
+ if (!isProductSlugFoundInADiscountRule && !isRuleCurrentlyAppliedToDeclinations)
320
+ continue;
321
+ }
322
+ }
323
+ const declinationsToAddDiscount = declinations.filter((declination) => !!(0, discount_1.shouldApplyRuleToDeclination)(this.data(), declination, productData.slug));
324
+ try {
325
+ batch.set(productSnap.path, productSnap.id, {
326
+ declinations: declinations.map((_declination, _dIndex) => {
327
+ if (!!_declination.discount_rules.find((_dr) => _dr.id === this.data().id))
328
+ return Object.assign(Object.assign({}, _declination), { discount_rules: _declination.discount_rules
329
+ .map((_dr) => {
330
+ if (_dr.id !== this.data().id)
331
+ return _dr;
332
+ if (!!declinationsToAddDiscount.some((__declination) => __declination.sku.toLowerCase().trim() === _declination.sku.toLowerCase().trim())) {
333
+ if (!!this.data().draft)
334
+ return undefined;
335
+ return this.data();
336
+ }
337
+ return undefined;
338
+ })
339
+ .filter((_dr) => !!_dr) });
340
+ return Object.assign(Object.assign({}, _declination), { discount_rules: [
341
+ ..._declination.discount_rules,
342
+ ...(!!declinationsToAddDiscount.some((__declination) => __declination.sku.toLowerCase().trim() === _declination.sku.toLowerCase().trim())
343
+ ? [this.data()]
344
+ : [])
345
+ ] });
346
+ })
347
+ }, { merge: true });
348
+ }
349
+ catch (error) {
350
+ throw error;
351
+ }
352
+ }
353
+ try {
354
+ await batch.commit();
355
+ }
356
+ catch (error) {
357
+ (0, console_1.errorMessage)(`Error while commiting products spread: ${error} - ${JSON.stringify(error)}`);
358
+ throw error;
359
+ }
360
+ }
361
+ }
362
+ catch (error) {
363
+ throw error;
364
+ }
365
+ };
366
+ this._unspreadToCategories = async () => {
367
+ if (DatabaseService_1.default.getPathParent(this._collection.path) == '/') {
368
+ console.log('path is /, returning');
369
+ throw new Error(`Can't access products collection to fetch all categories`);
370
+ }
371
+ const discountData = this.data();
372
+ if (!!!discountData) {
373
+ console.log('no discount data! Returning');
374
+ return;
375
+ }
376
+ const space = await Space_1.default.getCurrentSpaceWithRef(this._collection.path, this._user);
377
+ if (!!!space) {
378
+ console.log('no space! returning');
379
+ return;
380
+ }
381
+ try {
382
+ const allProducts = await this._fetchProductsByBatch({
383
+ queryToApply: [{ field: 'category', operator: '==', value: discountData.appliesTo.value }]
384
+ });
385
+ if (!!!allProducts.length) {
386
+ console.log('no products with category found, returning!');
387
+ return;
388
+ }
389
+ for (let products of (0, chunk_1.default)(allProducts, 20)) {
390
+ const batch = new BatchUtils_1.default();
391
+ for (const productSnap of products) {
392
+ if (!productSnap.exists)
393
+ continue;
394
+ const productData = productSnap.data;
395
+ if (!!!productData)
396
+ continue;
397
+ if (!!!productData.category)
398
+ continue;
399
+ if (!!!productData.declinations)
400
+ continue;
401
+ if (!!!productData.declinations.length)
402
+ continue;
403
+ const declinations = productData.declinations;
404
+ const isRuleAlreadyInDecli = declinations.some((d) => (d.discount_rules || []).some((d) => d.id == discountData.id));
405
+ if (!isRuleAlreadyInDecli)
406
+ continue;
407
+ try {
408
+ batch.set(productSnap.path, productSnap.id, {
409
+ declinations: declinations.map((_declination, _dIndex) => {
410
+ if (!!_declination.discount_rules.some((_dr) => _dr.id === this.data().id)) {
411
+ const newDiscountRules = _declination.discount_rules
412
+ .filter((_dr) => _dr.id !== this.data().id)
413
+ .filter((_dr) => !!_dr);
414
+ return Object.assign(Object.assign({}, _declination), { discount_rules: newDiscountRules });
415
+ }
416
+ return _declination;
417
+ })
418
+ }, { merge: true });
419
+ }
420
+ catch (error) {
421
+ throw error;
422
+ }
423
+ }
424
+ try {
425
+ await batch.commit();
426
+ }
427
+ catch (error) {
428
+ (0, console_1.errorMessage)(`Error while commiting products unspread: ${error} - ${JSON.stringify(error)}`);
429
+ throw error;
430
+ }
431
+ }
432
+ }
433
+ catch (error) {
434
+ throw error;
435
+ }
436
+ };
437
+ this._fetchProductsByBatch = async (props) => {
438
+ let allProducts = [];
439
+ let lastID = '';
440
+ const fetchProductLimit = 50;
441
+ const fetchProducts = async (lastID) => {
442
+ const result = await DatabaseService_1.default.getDocuments(DatabaseService_1.default.addToPath(DatabaseService_1.default.getPathParent(this._collection.path), 'products'), Object.assign(Object.assign({ orderBy: !!props && !!props.orderByField ? props.orderByField : 'id', limit: !!props && !!props.fetchLimit ? props.fetchLimit : 50 }, (!!lastID ? { startAfter: lastID } : {})), (!!props && !!props.queryToApply ? { query: props.queryToApply } : {})));
443
+ return result;
444
+ };
445
+ try {
446
+ while (true) {
447
+ const result = await fetchProducts(lastID);
448
+ allProducts.push(...result);
449
+ if (!!result.length) {
450
+ const lastEntryData = result[result.length - 1].data;
451
+ if (!!!lastEntryData || !!!lastEntryData.id) {
452
+ console.log('cannot continue checks for bulk fetch, last entry has no data or no id. Returning found entries up to this point.');
453
+ break;
454
+ }
455
+ lastID = lastEntryData.id;
456
+ }
457
+ if (result.length < fetchProductLimit)
458
+ break;
459
+ }
460
+ }
461
+ catch (e) {
462
+ console.log('error on fetching products with category: ', e);
463
+ }
464
+ return allProducts;
465
+ };
466
+ this.spread = this._spread;
467
+ this.unspread = this._unspread;
468
+ }
469
+ }
470
+ exports.default = Discount;
471
471
  //# sourceMappingURL=index.js.map