addio-admin-sdk 1.7.90 → 1.7.96

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 (557) hide show
  1. package/.babelrc +17 -17
  2. package/.env +15 -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 +425 -425
  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 -10
  150. package/dist/Interfaces/Note/index.js +7 -7
  151. package/dist/Interfaces/Operations/ICreatedBy.d.ts +6 -6
  152. package/dist/Interfaces/Operations/ICreatedBy.js +2 -2
  153. package/dist/Interfaces/Operations/IUpdate.d.ts +5 -5
  154. package/dist/Interfaces/Operations/IUpdate.js +2 -2
  155. package/dist/Interfaces/Order/index.d.ts +4 -4
  156. package/dist/Interfaces/Order/index.js +2 -2
  157. package/dist/Interfaces/Org/IRelUser.d.ts +9 -9
  158. package/dist/Interfaces/Org/IRelUser.js +2 -2
  159. package/dist/Interfaces/Org/index.d.ts +29 -29
  160. package/dist/Interfaces/Org/index.js +12 -12
  161. package/dist/Interfaces/Payment/index.d.ts +13 -13
  162. package/dist/Interfaces/Payment/index.js +2 -2
  163. package/dist/Interfaces/Product/IAttributeFamily.d.ts +6 -6
  164. package/dist/Interfaces/Product/IAttributeFamily.js +2 -2
  165. package/dist/Interfaces/Product/IImportProduct.d.ts +42 -42
  166. package/dist/Interfaces/Product/IImportProduct.js +791 -791
  167. package/dist/Interfaces/Product/IInventoryItem.d.ts +84 -84
  168. package/dist/Interfaces/Product/IInventoryItem.js +36 -36
  169. package/dist/Interfaces/Product/IPricing.d.ts +177 -177
  170. package/dist/Interfaces/Product/IPricing.js +174 -174
  171. package/dist/Interfaces/Product/index.d.ts +127 -127
  172. package/dist/Interfaces/Product/index.js +56 -56
  173. package/dist/Interfaces/ProductAttribute/index.d.ts +11 -11
  174. package/dist/Interfaces/ProductAttribute/index.js +2 -2
  175. package/dist/Interfaces/PromiseToPurchase/BankType.d.ts +41 -41
  176. package/dist/Interfaces/PromiseToPurchase/BankType.js +41 -41
  177. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.d.ts +33 -33
  178. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.js +15 -15
  179. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.d.ts +19 -19
  180. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.js +2 -2
  181. package/dist/Interfaces/PromiseToPurchase/index.d.ts +50 -50
  182. package/dist/Interfaces/PromiseToPurchase/index.js +13 -13
  183. package/dist/Interfaces/PurchaseOrder/index.d.ts +17 -17
  184. package/dist/Interfaces/PurchaseOrder/index.js +2 -2
  185. package/dist/Interfaces/Query/IBrandQueryOptions.d.ts +11 -11
  186. package/dist/Interfaces/Query/IBrandQueryOptions.js +2 -2
  187. package/dist/Interfaces/Query/ICategoryQueryOptions.d.ts +11 -11
  188. package/dist/Interfaces/Query/ICategoryQueryOptions.js +2 -2
  189. package/dist/Interfaces/Query/IProductQueryOptions.d.ts +16 -16
  190. package/dist/Interfaces/Query/IProductQueryOptions.js +2 -2
  191. package/dist/Interfaces/Quote/index.d.ts +5 -5
  192. package/dist/Interfaces/Quote/index.js +2 -2
  193. package/dist/Interfaces/Refunds/index.d.ts +106 -106
  194. package/dist/Interfaces/Refunds/index.js +2 -2
  195. package/dist/Interfaces/Rules/IDiscountRule.d.ts +137 -137
  196. package/dist/Interfaces/Rules/IDiscountRule.js +95 -95
  197. package/dist/Interfaces/Schedule/index.d.ts +48 -48
  198. package/dist/Interfaces/Schedule/index.js +2 -2
  199. package/dist/Interfaces/Services/IAddServiceResponse.d.ts +4 -4
  200. package/dist/Interfaces/Services/IAddServiceResponse.js +2 -2
  201. package/dist/Interfaces/Services/IService.d.ts +12 -12
  202. package/dist/Interfaces/Services/IService.js +2 -2
  203. package/dist/Interfaces/Services/IServiceSecret.d.ts +8 -8
  204. package/dist/Interfaces/Services/IServiceSecret.js +2 -2
  205. package/dist/Interfaces/Shipping/Shipstation/carriers.d.ts +10 -10
  206. package/dist/Interfaces/Shipping/Shipstation/carriers.js +2 -2
  207. package/dist/Interfaces/Shipping/Shipstation/order.d.ts +227 -227
  208. package/dist/Interfaces/Shipping/Shipstation/order.js +2 -2
  209. package/dist/Interfaces/Shipping/Shipstation/quote.d.ts +31 -31
  210. package/dist/Interfaces/Shipping/Shipstation/quote.js +2 -2
  211. package/dist/Interfaces/Shipping/Shiptime/order.d.ts +54 -54
  212. package/dist/Interfaces/Shipping/Shiptime/order.js +48 -48
  213. package/dist/Interfaces/Shipping/Shiptime/quote.d.ts +111 -111
  214. package/dist/Interfaces/Shipping/Shiptime/quote.js +2 -2
  215. package/dist/Interfaces/Slider/GR.d.ts +114 -114
  216. package/dist/Interfaces/Slider/GR.js +271 -271
  217. package/dist/Interfaces/Slider/index.d.ts +30 -30
  218. package/dist/Interfaces/Slider/index.js +2 -2
  219. package/dist/Interfaces/Space/IExternalService.d.ts +52 -52
  220. package/dist/Interfaces/Space/IExternalService.js +43 -43
  221. package/dist/Interfaces/Space/IMember.d.ts +16 -16
  222. package/dist/Interfaces/Space/IMember.js +9 -9
  223. package/dist/Interfaces/Space/index.d.ts +390 -390
  224. package/dist/Interfaces/Space/index.js +160 -160
  225. package/dist/Interfaces/Specials/gr.d.ts +61 -61
  226. package/dist/Interfaces/Specials/gr.js +2 -2
  227. package/dist/Interfaces/StockNotification/index.d.ts +7 -7
  228. package/dist/Interfaces/StockNotification/index.js +2 -2
  229. package/dist/Interfaces/Store/index.d.ts +62 -62
  230. package/dist/Interfaces/Store/index.js +27 -27
  231. package/dist/Interfaces/Supplier/ICommand.d.ts +11 -11
  232. package/dist/Interfaces/Supplier/ICommand.js +2 -2
  233. package/dist/Interfaces/Supplier/index.d.ts +36 -36
  234. package/dist/Interfaces/Supplier/index.js +24 -24
  235. package/dist/Interfaces/TCG/index.d.ts +110 -110
  236. package/dist/Interfaces/TCG/index.js +27 -27
  237. package/dist/Interfaces/Tag/index.d.ts +18 -18
  238. package/dist/Interfaces/Tag/index.js +2 -2
  239. package/dist/Interfaces/Tax/index.d.ts +13 -13
  240. package/dist/Interfaces/Tax/index.js +2 -2
  241. package/dist/Interfaces/TransferRequest/index.d.ts +103 -103
  242. package/dist/Interfaces/TransferRequest/index.js +43 -43
  243. package/dist/Interfaces/Translation/index.d.ts +8 -8
  244. package/dist/Interfaces/Translation/index.js +5 -5
  245. package/dist/Interfaces/Update/index.d.ts +10 -10
  246. package/dist/Interfaces/Update/index.js +2 -2
  247. package/dist/Interfaces/User/IUser.d.ts +65 -65
  248. package/dist/Interfaces/User/IUser.js +8 -8
  249. package/dist/Interfaces/Version/index.d.ts +11 -11
  250. package/dist/Interfaces/Version/index.js +2 -2
  251. package/dist/Interfaces/Wishlist/index.d.ts +7 -7
  252. package/dist/Interfaces/Wishlist/index.js +2 -2
  253. package/dist/constants/Interfaces/IBaseApi.d.ts +15 -15
  254. package/dist/constants/Interfaces/IBaseApi.js +2 -2
  255. package/dist/constants/Interfaces/IEndpointResult.d.ts +9 -9
  256. package/dist/constants/Interfaces/IEndpointResult.js +2 -2
  257. package/dist/constants/enums.d.ts +6 -6
  258. package/dist/constants/enums.js +10 -10
  259. package/dist/constants/services.d.ts +2 -2
  260. package/dist/constants/services.js +111 -111
  261. package/dist/constants/version.d.ts +2 -2
  262. package/dist/constants/version.js +5 -5
  263. package/dist/index.d.ts +32 -32
  264. package/dist/index.js +242 -242
  265. package/dist/lib/Attribute/index.d.ts +14 -14
  266. package/dist/lib/Attribute/index.js +143 -143
  267. package/dist/lib/BGJob/index.d.ts +9 -9
  268. package/dist/lib/BGJob/index.js +212 -212
  269. package/dist/lib/BackgroundWorker/index.d.ts +34 -34
  270. package/dist/lib/BackgroundWorker/index.js +59 -59
  271. package/dist/lib/Blog/BlogArticle.d.ts +5 -5
  272. package/dist/lib/Blog/BlogArticle.js +10 -10
  273. package/dist/lib/Blog/BlogAuthor.d.ts +5 -5
  274. package/dist/lib/Blog/BlogAuthor.js +10 -10
  275. package/dist/lib/Blog/BlogCategory.d.ts +5 -5
  276. package/dist/lib/Blog/BlogCategory.js +10 -10
  277. package/dist/lib/Blog/BlogKeyword.d.ts +5 -5
  278. package/dist/lib/Blog/BlogKeyword.js +10 -10
  279. package/dist/lib/Booking/index.d.ts +70 -70
  280. package/dist/lib/Booking/index.js +576 -576
  281. package/dist/lib/Brand/index.d.ts +17 -17
  282. package/dist/lib/Brand/index.js +113 -113
  283. package/dist/lib/Cart/index.d.ts +206 -206
  284. package/dist/lib/Cart/index.js +3165 -3165
  285. package/dist/lib/Catalogue/index.d.ts +9 -9
  286. package/dist/lib/Catalogue/index.js +69 -69
  287. package/dist/lib/Category/index.d.ts +27 -27
  288. package/dist/lib/Category/index.js +190 -190
  289. package/dist/lib/Class/index.d.ts +12 -12
  290. package/dist/lib/Class/index.js +58 -58
  291. package/dist/lib/Consent/index.d.ts +4 -4
  292. package/dist/lib/Consent/index.js +29 -29
  293. package/dist/lib/Customer/index.d.ts +11 -11
  294. package/dist/lib/Customer/index.js +68 -68
  295. package/dist/lib/Declination/index.d.ts +9 -9
  296. package/dist/lib/Declination/index.js +24 -24
  297. package/dist/lib/Discount/index.d.ts +18 -18
  298. package/dist/lib/Discount/index.js +470 -470
  299. package/dist/lib/ElasticSearch/index.d.ts +8 -8
  300. package/dist/lib/ElasticSearch/index.js +45 -45
  301. package/dist/lib/Elavon/index.d.ts +18 -18
  302. package/dist/lib/Elavon/index.js +130 -130
  303. package/dist/lib/Email/AbandonedCartEmail.d.ts +8 -8
  304. package/dist/lib/Email/AbandonedCartEmail.js +16 -16
  305. package/dist/lib/Email/AccountConfirmationEmail.d.ts +11 -11
  306. package/dist/lib/Email/AccountConfirmationEmail.js +22 -22
  307. package/dist/lib/Email/AdminOrderConfirmationEmail.d.ts +8 -8
  308. package/dist/lib/Email/AdminOrderConfirmationEmail.js +16 -16
  309. package/dist/lib/Email/ApplicationEmail.d.ts +8 -8
  310. package/dist/lib/Email/ApplicationEmail.js +16 -16
  311. package/dist/lib/Email/BackInStockEmail.d.ts +8 -8
  312. package/dist/lib/Email/BackInStockEmail.js +16 -16
  313. package/dist/lib/Email/ContactEmail.d.ts +8 -8
  314. package/dist/lib/Email/ContactEmail.js +16 -16
  315. package/dist/lib/Email/CustomerBookingAdminEmail.d.ts +8 -8
  316. package/dist/lib/Email/CustomerBookingAdminEmail.js +16 -16
  317. package/dist/lib/Email/CustomerBookingEmail.d.ts +8 -8
  318. package/dist/lib/Email/CustomerBookingEmail.js +16 -16
  319. package/dist/lib/Email/OrderConfirmationEmail.d.ts +8 -8
  320. package/dist/lib/Email/OrderConfirmationEmail.js +16 -16
  321. package/dist/lib/Email/OrderDenounciationEmail.d.ts +8 -8
  322. package/dist/lib/Email/OrderDenounciationEmail.js +16 -16
  323. package/dist/lib/Email/OrderSampleEmail.d.ts +8 -8
  324. package/dist/lib/Email/OrderSampleEmail.js +16 -16
  325. package/dist/lib/Email/OtherTypeEmails.d.ts +8 -8
  326. package/dist/lib/Email/OtherTypeEmails.js +19 -19
  327. package/dist/lib/Email/PasswordResetEmail.d.ts +8 -8
  328. package/dist/lib/Email/PasswordResetEmail.js +16 -16
  329. package/dist/lib/Email/PhotoShootEmail.d.ts +8 -8
  330. package/dist/lib/Email/PhotoShootEmail.js +16 -16
  331. package/dist/lib/Email/PickUpConfirmation.d.ts +8 -8
  332. package/dist/lib/Email/PickUpConfirmation.js +16 -16
  333. package/dist/lib/Email/ShippingConfirmation.d.ts +8 -8
  334. package/dist/lib/Email/ShippingConfirmation.js +16 -16
  335. package/dist/lib/Email/WelcomeEmail.d.ts +8 -8
  336. package/dist/lib/Email/WelcomeEmail.js +16 -16
  337. package/dist/lib/Email/index.d.ts +8 -8
  338. package/dist/lib/Email/index.js +23 -23
  339. package/dist/lib/ExternalService/Ebay.d.ts +62 -62
  340. package/dist/lib/ExternalService/Ebay.js +102 -102
  341. package/dist/lib/ExternalService/index.d.ts +5 -5
  342. package/dist/lib/ExternalService/index.js +10 -10
  343. package/dist/lib/FirstOrderTracking/index.d.ts +5 -5
  344. package/dist/lib/FirstOrderTracking/index.js +10 -10
  345. package/dist/lib/Indexed/IndexedCart.d.ts +13 -13
  346. package/dist/lib/Indexed/IndexedCart.js +86 -86
  347. package/dist/lib/Indexed/Product.d.ts +17 -17
  348. package/dist/lib/Indexed/Product.js +48 -48
  349. package/dist/lib/Inventory/index.d.ts +49 -49
  350. package/dist/lib/Inventory/index.js +314 -314
  351. package/dist/lib/Invoice/index.d.ts +5 -5
  352. package/dist/lib/Invoice/index.js +10 -10
  353. package/dist/lib/MarketplacePublication/index.d.ts +9 -9
  354. package/dist/lib/MarketplacePublication/index.js +118 -118
  355. package/dist/lib/Menu/index.d.ts +11 -11
  356. package/dist/lib/Menu/index.js +105 -105
  357. package/dist/lib/MongoDB/BaseAPI.d.ts +18 -18
  358. package/dist/lib/MongoDB/BaseAPI.js +200 -200
  359. package/dist/lib/Note/index.d.ts +4 -4
  360. package/dist/lib/Note/index.js +6 -6
  361. package/dist/lib/Order/index.d.ts +7 -7
  362. package/dist/lib/Order/index.js +33 -33
  363. package/dist/lib/Org/index.d.ts +27 -27
  364. package/dist/lib/Org/index.js +175 -175
  365. package/dist/lib/PandaPay/index.d.ts +16 -16
  366. package/dist/lib/PandaPay/index.js +170 -170
  367. package/dist/lib/Paysafe/index.d.ts +11 -11
  368. package/dist/lib/Paysafe/index.js +40 -40
  369. package/dist/lib/Product/index.d.ts +154 -154
  370. package/dist/lib/Product/index.js +793 -793
  371. package/dist/lib/ProductAttribute/index.d.ts +15 -15
  372. package/dist/lib/ProductAttribute/index.js +45 -45
  373. package/dist/lib/PromiseToPurchase/index.d.ts +37 -37
  374. package/dist/lib/PromiseToPurchase/index.js +264 -264
  375. package/dist/lib/PurchaseOrder/index.d.ts +9 -9
  376. package/dist/lib/PurchaseOrder/index.js +16 -16
  377. package/dist/lib/Queue/index.d.ts +40 -0
  378. package/dist/lib/Queue/index.js +255 -0
  379. package/dist/lib/Queue/index.js.map +1 -0
  380. package/dist/lib/Schedule/index.d.ts +5 -5
  381. package/dist/lib/Schedule/index.js +12 -12
  382. package/dist/lib/Service/Enum/ServiceEnum.d.ts +3 -3
  383. package/dist/lib/Service/Enum/ServiceEnum.js +7 -7
  384. package/dist/lib/Service/index.d.ts +5 -5
  385. package/dist/lib/Service/index.js +13 -13
  386. package/dist/lib/Shipment/index.d.ts +28 -28
  387. package/dist/lib/Shipment/index.js +357 -357
  388. package/dist/lib/Slider/index.d.ts +16 -16
  389. package/dist/lib/Slider/index.js +113 -113
  390. package/dist/lib/Space/index.d.ts +883 -883
  391. package/dist/lib/Space/index.js +5134 -5134
  392. package/dist/lib/StockNotification/index.d.ts +4 -4
  393. package/dist/lib/StockNotification/index.js +6 -6
  394. package/dist/lib/Store/index.d.ts +5 -5
  395. package/dist/lib/Store/index.js +12 -12
  396. package/dist/lib/Supplier/Command.d.ts +5 -5
  397. package/dist/lib/Supplier/Command.js +10 -10
  398. package/dist/lib/Supplier/index.d.ts +25 -25
  399. package/dist/lib/Supplier/index.js +22 -22
  400. package/dist/lib/Tags/index.d.ts +6 -6
  401. package/dist/lib/Tags/index.js +21 -21
  402. package/dist/lib/Tax/index.d.ts +8 -8
  403. package/dist/lib/Tax/index.js +54 -54
  404. package/dist/lib/TransferRequest/index.d.ts +112 -112
  405. package/dist/lib/TransferRequest/index.js +794 -794
  406. package/dist/lib/Update/index.d.ts +10 -10
  407. package/dist/lib/Update/index.js +22 -22
  408. package/dist/lib/User/index.d.ts +35 -35
  409. package/dist/lib/User/index.js +248 -248
  410. package/dist/lib/Wishlist/index.d.ts +5 -5
  411. package/dist/lib/Wishlist/index.js +10 -10
  412. package/dist/lib/base.d.ts +14 -14
  413. package/dist/lib/base.js +62 -62
  414. package/dist/lib/baseService.d.ts +17 -17
  415. package/dist/lib/baseService.js +43 -43
  416. package/dist/rules/GR/constants/data.d.ts +26 -26
  417. package/dist/rules/GR/constants/data.js +55 -55
  418. package/dist/rules/GR/constants/products.d.ts +8 -8
  419. package/dist/rules/GR/constants/products.js +234 -234
  420. package/dist/rules/GR/interfaces/cart.d.ts +84 -84
  421. package/dist/rules/GR/interfaces/cart.js +41 -41
  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 -637
  428. package/dist/rules/GR/utils/data.d.ts +3 -3
  429. package/dist/rules/GR/utils/data.js +25 -25
  430. package/dist/rules/GR/utils/expedition.d.ts +71 -71
  431. package/dist/rules/GR/utils/expedition.js +1542 -1542
  432. package/dist/rules/GR/utils/g2.d.ts +176 -176
  433. package/dist/rules/GR/utils/g2.js +849 -849
  434. package/dist/rules/GR/utils/invoices.d.ts +24 -24
  435. package/dist/rules/GR/utils/invoices.js +174 -174
  436. package/dist/rules/GR/utils/products.d.ts +104 -104
  437. package/dist/rules/GR/utils/products.js +984 -984
  438. package/dist/rules/GR/utils/upsells.d.ts +79 -79
  439. package/dist/rules/GR/utils/upsells.js +183 -183
  440. package/dist/services/database/BaseProvider.d.ts +29 -29
  441. package/dist/services/database/BaseProvider.js +28 -28
  442. package/dist/services/database/BatchUtils.d.ts +14 -14
  443. package/dist/services/database/BatchUtils.js +43 -43
  444. package/dist/services/database/Config.d.ts +2 -2
  445. package/dist/services/database/Config.js +5 -5
  446. package/dist/services/database/DatabaseService.d.ts +41 -41
  447. package/dist/services/database/DatabaseService.js +152 -152
  448. package/dist/services/database/FirebaseProvider.d.ts +17 -17
  449. package/dist/services/database/FirebaseProvider.js +218 -218
  450. package/dist/services/database/NotFirebaseProvider.d.ts +35 -35
  451. package/dist/services/database/NotFirebaseProvider.js +243 -243
  452. package/dist/services/g2/G2OrderSlip.d.ts +42 -42
  453. package/dist/services/g2/G2OrderSlip.js +210 -210
  454. package/dist/services/g2/utils.d.ts +9 -9
  455. package/dist/services/g2/utils.js +703 -703
  456. package/dist/services/logs/index.d.ts +20 -20
  457. package/dist/services/logs/index.js +61 -61
  458. package/dist/services/products/BaseClass.d.ts +50 -50
  459. package/dist/services/products/BaseClass.js +64 -64
  460. package/dist/services/products/TCGService.d.ts +29 -29
  461. package/dist/services/products/TCGService.js +499 -499
  462. package/dist/services/products/utils.d.ts +9 -9
  463. package/dist/services/products/utils.js +94 -94
  464. package/dist/utils/algolia.d.ts +6 -6
  465. package/dist/utils/algolia.js +21 -21
  466. package/dist/utils/anonymisation.d.ts +30 -30
  467. package/dist/utils/anonymisation.js +250 -250
  468. package/dist/utils/array.d.ts +5 -5
  469. package/dist/utils/array.js +14 -14
  470. package/dist/utils/aws.d.ts +14 -14
  471. package/dist/utils/aws.js +126 -126
  472. package/dist/utils/booking.d.ts +22 -22
  473. package/dist/utils/booking.js +118 -118
  474. package/dist/utils/cart.d.ts +134 -134
  475. package/dist/utils/cart.js +867 -862
  476. package/dist/utils/cart.js.map +1 -1
  477. package/dist/utils/categories.d.ts +2 -2
  478. package/dist/utils/categories.js +54 -54
  479. package/dist/utils/cmv.d.ts +10 -10
  480. package/dist/utils/cmv.js +107 -107
  481. package/dist/utils/console.d.ts +6 -6
  482. package/dist/utils/console.js +59 -59
  483. package/dist/utils/context.d.ts +20 -20
  484. package/dist/utils/context.js +61 -61
  485. package/dist/utils/currency.d.ts +6 -6
  486. package/dist/utils/currency.js +61 -61
  487. package/dist/utils/data.d.ts +31 -31
  488. package/dist/utils/data.js +294 -294
  489. package/dist/utils/date.d.ts +1 -1
  490. package/dist/utils/date.js +16 -16
  491. package/dist/utils/dimensions.d.ts +3 -3
  492. package/dist/utils/dimensions.js +16 -16
  493. package/dist/utils/discount.d.ts +46 -46
  494. package/dist/utils/discount.js +934 -934
  495. package/dist/utils/errors.d.ts +113 -113
  496. package/dist/utils/errors.js +113 -113
  497. package/dist/utils/file-admin.d.ts +8 -8
  498. package/dist/utils/file-admin.js +38 -38
  499. package/dist/utils/file.d.ts +38 -38
  500. package/dist/utils/file.js +200 -200
  501. package/dist/utils/firebase-admin.d.ts +2 -2
  502. package/dist/utils/firebase-admin.js +61 -61
  503. package/dist/utils/firebase.d.ts +41 -41
  504. package/dist/utils/firebase.js +131 -131
  505. package/dist/utils/import.d.ts +1 -1
  506. package/dist/utils/import.js +21 -21
  507. package/dist/utils/inventories.d.ts +49 -49
  508. package/dist/utils/inventories.js +392 -392
  509. package/dist/utils/locale.d.ts +15 -15
  510. package/dist/utils/locale.js +78 -78
  511. package/dist/utils/mailchimp.d.ts +58 -58
  512. package/dist/utils/mailchimp.js +495 -495
  513. package/dist/utils/mathUtils.d.ts +17 -17
  514. package/dist/utils/mathUtils.js +315 -315
  515. package/dist/utils/mongodb.d.ts +1 -1
  516. package/dist/utils/mongodb.js +22 -22
  517. package/dist/utils/object.d.ts +13 -13
  518. package/dist/utils/object.js +115 -115
  519. package/dist/utils/payment.d.ts +10 -10
  520. package/dist/utils/payment.js +23 -23
  521. package/dist/utils/products.d.ts +32 -32
  522. package/dist/utils/products.js +186 -186
  523. package/dist/utils/promiseToPurchase.d.ts +56 -56
  524. package/dist/utils/promiseToPurchase.js +195 -195
  525. package/dist/utils/prosprsearch.d.ts +26 -26
  526. package/dist/utils/prosprsearch.js +182 -182
  527. package/dist/utils/refunds.d.ts +2 -2
  528. package/dist/utils/refunds.js +21 -21
  529. package/dist/utils/sdc.d.ts +10 -10
  530. package/dist/utils/sdc.js +1302 -1302
  531. package/dist/utils/searchIndexes.d.ts +21 -21
  532. package/dist/utils/searchIndexes.js +210 -210
  533. package/dist/utils/services.d.ts +42 -42
  534. package/dist/utils/services.js +409 -409
  535. package/dist/utils/shipment.d.ts +110 -110
  536. package/dist/utils/shipment.js +345 -345
  537. package/dist/utils/simpletexting.d.ts +2 -2
  538. package/dist/utils/simpletexting.js +45 -45
  539. package/dist/utils/sliders.d.ts +4 -4
  540. package/dist/utils/sliders.js +24 -24
  541. package/dist/utils/string.d.ts +16 -16
  542. package/dist/utils/string.js +191 -191
  543. package/dist/utils/tcgService.d.ts +2 -2
  544. package/dist/utils/tcgService.js +8 -8
  545. package/dist/utils/tools.d.ts +1 -1
  546. package/dist/utils/tools.js +9 -9
  547. package/dist/utils/transferRequests.d.ts +19 -19
  548. package/dist/utils/transferRequests.js +43 -43
  549. package/dist/utils/update.d.ts +7 -7
  550. package/dist/utils/update.js +125 -125
  551. package/dist/utils/weight.d.ts +3 -3
  552. package/dist/utils/weight.js +16 -16
  553. package/dist/utils/zones.d.ts +11 -11
  554. package/dist/utils/zones.js +218 -218
  555. package/package.json +110 -110
  556. package/publish.sh +143 -143
  557. package/readme.md +182 -182
@@ -1,500 +1,500 @@
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 Attribute_1 = require("../../Interfaces/Attribute");
7
- const Declination_1 = require("../../Interfaces/Declination");
8
- const IExternalService_1 = require("../../Interfaces/Space/IExternalService");
9
- const TCG_1 = require("../../Interfaces/TCG");
10
- const Category_1 = __importDefault(require("../../lib/Category"));
11
- const locale_1 = require("../../utils/locale");
12
- const object_1 = require("../../utils/object");
13
- const string_1 = require("../../utils/string");
14
- const DatabaseService_1 = __importDefault(require("../database/DatabaseService"));
15
- const BaseClass_1 = __importDefault(require("./BaseClass"));
16
- const tcg_formats = [
17
- {
18
- name: { fr: 'Carte seule', en: 'Single card' },
19
- slug: TCG_1.TCGProductFormatsEnum.CARD,
20
- width: 6.4,
21
- height: 0.1,
22
- length: 8.9,
23
- weight: 0.002
24
- },
25
- {
26
- name: { fr: 'Booster pack', en: 'Booster pack' },
27
- slug: TCG_1.TCGProductFormatsEnum.PACK,
28
- width: 9.6,
29
- height: 0.25,
30
- length: 17.3,
31
- weight: 0.023
32
- },
33
- {
34
- name: { fr: 'Bundle et autres', en: 'Bundle and others' },
35
- slug: TCG_1.TCGProductFormatsEnum.BUNDLE,
36
- width: 13.46,
37
- height: 5.1,
38
- length: 10.16,
39
- weight: 0.63
40
- }
41
- ];
42
- class TCGServiceClass extends BaseClass_1.default {
43
- constructor(space, orgId) {
44
- super(space, orgId, IExternalService_1.ExternalServiceSlugEnum.TCG_SERVICE);
45
- this._convertCardGameToGenericSupplier = (cardgame) => {
46
- return {
47
- id: cardgame.id,
48
- slug: cardgame.slug,
49
- name: [
50
- { lang: 'fr', value: cardgame.name_fr },
51
- { lang: 'en', value: cardgame.name_en }
52
- ],
53
- description: [
54
- { lang: 'fr', value: cardgame.description_fr },
55
- { lang: 'en', value: cardgame.description_en }
56
- ],
57
- image: !!cardgame.img_url ? { img_path: cardgame.img_url } : null
58
- };
59
- };
60
- }
61
- async getAllSuppliers() {
62
- try {
63
- const resultJson = await this.fetchApi(`/tcg/cardGames`);
64
- if (!resultJson || this.isErrorResult(resultJson))
65
- throw new Error(resultJson.error || 'Could not fetch data');
66
- return resultJson.map((game) => this._convertCardGameToGenericSupplier(game));
67
- }
68
- catch (e) {
69
- console.log('Error on fetching suppliers: ', e.toString());
70
- return [];
71
- }
72
- }
73
- async getSupplierBySlug(slug) {
74
- try {
75
- const resultJson = await this.fetchApi(`/tcg/cardGames/${slug}`);
76
- if (!!!resultJson || this.isErrorResult(resultJson))
77
- throw new Error(resultJson.error || 'Could not fetch data');
78
- return this._convertCardGameToGenericSupplier(resultJson);
79
- }
80
- catch (e) {
81
- console.log('Error on fetching supplier by slug: ', e.toString());
82
- return;
83
- }
84
- }
85
- async getCategories() {
86
- const converted = [];
87
- const externalService = await super.getExternalServiceData(IExternalService_1.ExternalServiceSlugEnum.TCG_SERVICE);
88
- if (!!!externalService)
89
- throw new Error('Could not find service');
90
- const newCardGameValues = (0, object_1.recursiveCheckObject)(externalService, 'external_service_params.cardgame_slugs');
91
- if (typeof newCardGameValues != 'undefined') {
92
- for (let slug of newCardGameValues) {
93
- try {
94
- const dataFetch = await this.getSupplierBySlug(slug);
95
- if (!!!dataFetch)
96
- throw new Error();
97
- const desc = dataFetch.description || [
98
- { lang: 'fr', value: '' },
99
- { lang: 'en', value: '' }
100
- ];
101
- converted.push({
102
- id: dataFetch.slug,
103
- name: dataFetch.name,
104
- slug: dataFetch.slug,
105
- description: desc,
106
- image: dataFetch.image || undefined,
107
- seo_info: { seoTitle: dataFetch.name, seoDescription: desc, seoImage: dataFetch.image || undefined },
108
- created_from_external_service: IExternalService_1.ExternalServiceSlugEnum.TCG_SERVICE
109
- });
110
- }
111
- catch (e) {
112
- console.log('Error on converting slug');
113
- }
114
- }
115
- }
116
- return converted;
117
- }
118
- async getBrands() {
119
- var _a, _b, _c, _d;
120
- const converted = [];
121
- const externalService = await super.getExternalServiceData(IExternalService_1.ExternalServiceSlugEnum.TCG_SERVICE);
122
- if (!!!externalService)
123
- throw new Error('Could not find service');
124
- const newCardGameValues = (0, object_1.recursiveCheckObject)(externalService, 'external_service_params.cardgame_slugs');
125
- if (typeof newCardGameValues != 'undefined') {
126
- const supplier = await this.fetchApi(`/tcg/cardGames`, externalService);
127
- if (this.isErrorResult(supplier))
128
- throw new Error('Could not fetch suppliers info');
129
- const brands = await this.fetchApi(`/tcg/brands`, externalService);
130
- if (this.isErrorResult(brands))
131
- throw new Error('Could not fetch brands info');
132
- for (let slug of newCardGameValues) {
133
- const brandSlug = supplier.reduce((prev, sup) => {
134
- return sup.slug == slug ? sup.brand_slug : prev;
135
- }, undefined);
136
- const thisBrand = brands.find((b) => b.slug == brandSlug);
137
- if (thisBrand) {
138
- converted.push({
139
- created_from_external_service: IExternalService_1.ExternalServiceSlugEnum.TCG_SERVICE,
140
- slug: thisBrand.slug,
141
- name: [
142
- { lang: 'fr', value: thisBrand.name_fr },
143
- { lang: 'en', value: thisBrand.name_en }
144
- ],
145
- description: [
146
- { lang: 'fr', value: (_a = thisBrand.description_fr) !== null && _a !== void 0 ? _a : '' },
147
- { lang: 'en', value: (_b = thisBrand.description_en) !== null && _b !== void 0 ? _b : '' }
148
- ],
149
- image: !!thisBrand.img_url ? { img_path: thisBrand.img_url } : undefined,
150
- id: thisBrand.slug,
151
- seo_info: {
152
- seoTitle: [
153
- { lang: 'fr', value: thisBrand.name_fr },
154
- { lang: 'en', value: thisBrand.name_en }
155
- ],
156
- seoDescription: [
157
- { lang: 'fr', value: (_c = thisBrand.description_fr) !== null && _c !== void 0 ? _c : '' },
158
- { lang: 'en', value: (_d = thisBrand.description_en) !== null && _d !== void 0 ? _d : '' }
159
- ],
160
- seoImage: !!thisBrand.img_url ? { img_path: thisBrand.img_url } : undefined
161
- }
162
- });
163
- }
164
- }
165
- }
166
- return converted;
167
- }
168
- async getAttributes() {
169
- var _a, _b;
170
- const converted = [];
171
- const externalService = await super.getExternalServiceData(IExternalService_1.ExternalServiceSlugEnum.TCG_SERVICE);
172
- if (!!!externalService)
173
- throw new Error('Could not find service');
174
- const newCardGameValues = (0, object_1.recursiveCheckObject)(externalService, 'external_service_params.cardgame_slugs');
175
- if (typeof newCardGameValues != 'undefined') {
176
- const supplierSlugs = newCardGameValues.map((s) => 'cardGameSlugs=' + s).join('&');
177
- if (supplierSlugs) {
178
- const attribs = await this.fetchApi(`/tcg/attributes?${supplierSlugs}`, externalService);
179
- if (this.isErrorResult(attribs))
180
- throw new Error('Could not fetch attributes info');
181
- for (let attrib of attribs) {
182
- converted.push({
183
- created_from_external_service: IExternalService_1.ExternalServiceSlugEnum.TCG_SERVICE,
184
- description: [
185
- { lang: 'fr', value: (_a = attrib.description_fr) !== null && _a !== void 0 ? _a : '' },
186
- { lang: 'en', value: (_b = attrib.description_en) !== null && _b !== void 0 ? _b : '' }
187
- ],
188
- is_facet: true,
189
- is_multiple: false,
190
- is_searchable: false,
191
- name: [
192
- { lang: 'fr', value: attrib.name_fr },
193
- { lang: 'en', value: attrib.name_en }
194
- ],
195
- id: attrib.slug,
196
- slug: attrib.slug,
197
- type: Attribute_1.AttributeTypeEnum.STRING,
198
- values: attrib.attributeValues.map((v) => ({
199
- slug: v.slug,
200
- value: [
201
- { lang: 'fr', value: v.name_fr },
202
- { lang: 'en', value: v.name_en }
203
- ],
204
- default_tag: v.default_tag,
205
- is_external: true,
206
- associated_to: v.game_slug_csv.split(','),
207
- other_details: v.image_url ? { image: v.image_url } : undefined
208
- }))
209
- });
210
- }
211
- }
212
- }
213
- return converted;
214
- }
215
- async getProduct(_slug, space) {
216
- var _a;
217
- if (space)
218
- this._spaceData = space;
219
- const product = await this.fetchApi('/tcg/cards/' + encodeURI(_slug));
220
- if (this.isErrorResult(product)) {
221
- if (product.status == 'not_found')
222
- return;
223
- throw new Error(product.error);
224
- }
225
- await this.getEcommAttributes();
226
- const attributes = [];
227
- const setAttr = this._attributes.find((x) => x.slug == 'tcg_set');
228
- const setAttributeValue = setAttr ? this.getSetsAttribute(product.setSlug, setAttr) : undefined;
229
- for (const attr of this._attributes) {
230
- attributes.push({
231
- attribute_id: attr.id,
232
- attribute_name: attr.name,
233
- is_multiple: false,
234
- values: [],
235
- default_value: attr.id == 'tcg_set' ? setAttributeValue : undefined
236
- });
237
- }
238
- const finishes = this.getPricesAndType(product);
239
- const shippingInfo = await this.getShippingInfo(product);
240
- const finishAttrib = this._attributes.find((x) => x.slug == 'tcg_finish');
241
- const productTypeAttrib = this._attributes.find((x) => x.slug == 'tcg_product_type');
242
- const categoryPath = `/the_beast/1.0.0/orgs/${this._orgId}/spaces/${this._spaceId}/categories`;
243
- const categoryData = await DatabaseService_1.default.getDocument(categoryPath, product.category);
244
- if (!categoryData.exists)
245
- throw new Error('Category not found, unable to continue');
246
- const category = new Category_1.default(categoryData.data, { path: categoryPath }, this._serviceSlug);
247
- const declinations = [];
248
- if (product.isSingle) {
249
- for (const finish of finishes) {
250
- const attrib = {
251
- attribute_id: 'tcg_finish',
252
- values: [
253
- {
254
- slug: finish.subType,
255
- value: [
256
- { lang: 'fr', value: finish.subType },
257
- { lang: 'en', value: finish.subType }
258
- ],
259
- default_tag: (0, string_1.string_to_slug)(finish.subType)
260
- }
261
- ]
262
- };
263
- if (finishAttrib) {
264
- const val = finishAttrib.values.find((x) => x.slug == finish.subType);
265
- if (val)
266
- attrib.values = [val];
267
- }
268
- const finishDeclis = this.createRecursiveDeclinations(product.category, product.slug, shippingInfo, setAttributeValue, [attrib], this._attributes.filter((x) => x.slug != 'tcg_finish' &&
269
- x.slug != 'tcg_product_type' &&
270
- x.values.some((y) => y.default_tag && y.associated_to && y.associated_to.some((z) => z == product.category))));
271
- const images = product.images.map((x) => ({ img_path: x }));
272
- declinations.push(...finishDeclis.map((d) => {
273
- const newPrice = category.costPriceRule(finish.price, d, 'sell');
274
- return Object.assign(Object.assign({}, d), { price: Object.assign(Object.assign({}, d.price), { regular: { amount: newPrice }, pdsf: { amount: finish.price } }), image_files: images });
275
- }));
276
- }
277
- }
278
- else {
279
- const productType = (_a = product.attributes.find((attr) => attr.name === 'ProductType')) === null || _a === void 0 ? void 0 : _a.value;
280
- const tcgProductType = productType ? `tcg_${productType}` : 'tcg_other';
281
- const attrib = {
282
- attribute_id: 'tcg_product_type',
283
- values: [
284
- {
285
- slug: tcgProductType,
286
- value: [
287
- { lang: 'fr', value: tcgProductType },
288
- { lang: 'en', value: tcgProductType }
289
- ],
290
- default_tag: undefined
291
- }
292
- ]
293
- };
294
- if (productTypeAttrib) {
295
- const val = productTypeAttrib.values.find((x) => x.slug == tcgProductType);
296
- if (val)
297
- attrib.values = [val];
298
- }
299
- const declination = [
300
- Object.assign(Object.assign({}, (0, Declination_1.emptyDeclination)()), { attributes: [
301
- attrib,
302
- ...(setAttributeValue ? [{ attribute_id: 'tcg_set', values: [setAttributeValue] }] : [])
303
- ], discount_rules: [], image_files: [], name: [
304
- { lang: 'fr', value: product.name.fr },
305
- { lang: 'en', value: product.name.en }
306
- ], created_from_external_service: this._serviceSlug, slug: product.slug, sku: product.slug + '_' + (productType ? productType : 'other'), price: { regular: { amount: 0 } }, shipping_info: shippingInfo, description: [] })
307
- ];
308
- const images = product.images.map((x) => ({ img_path: x }));
309
- declinations.push(...declination.map((d) => {
310
- var _a, _b, _c, _d;
311
- return Object.assign(Object.assign({}, d), { price: Object.assign(Object.assign({}, d.price), { regular: { amount: (_b = (_a = finishes === null || finishes === void 0 ? void 0 : finishes[0]) === null || _a === void 0 ? void 0 : _a.price) !== null && _b !== void 0 ? _b : 0 }, pdsf: { amount: (_d = (_c = finishes === null || finishes === void 0 ? void 0 : finishes[0]) === null || _c === void 0 ? void 0 : _c.price) !== null && _d !== void 0 ? _d : 0 } }), image_files: images });
312
- }));
313
- }
314
- return {
315
- draft: false,
316
- name: [
317
- { lang: 'fr', value: product.name.fr },
318
- { lang: 'en', value: product.name.en }
319
- ],
320
- slug: product.slug,
321
- brand: product.brandSlug,
322
- category: product.category,
323
- is_hidden_in_client_pos: !product.isSingle,
324
- is_presale: product.isPresale,
325
- release_date: product.releaseDate,
326
- created_from_external_service: IExternalService_1.ExternalServiceSlugEnum.TCG_SERVICE,
327
- description: [
328
- { lang: 'fr', value: product.description.fr },
329
- { lang: 'en', value: product.description.en }
330
- ],
331
- id: product.slug,
332
- product_attributes: attributes,
333
- image_files: product.images.map((x) => ({ img_path: x })),
334
- declinations: declinations,
335
- seo_info: {
336
- seoTitle: [
337
- { lang: 'fr', value: product.name.fr },
338
- { lang: 'en', value: product.name.en }
339
- ],
340
- seoDescription: [
341
- { lang: 'fr', value: product.description.fr },
342
- { lang: 'en', value: product.description.en }
343
- ],
344
- seoImage: product.images.length > 0 ? { img_path: product.images[0] } : undefined
345
- },
346
- default_size: shippingInfo.shipping_details
347
- };
348
- }
349
- async getPredefinedFormats(locale) {
350
- return tcg_formats.map((x) => (Object.assign(Object.assign({}, x), { dimension_unit: 'centimeters', weight_unit: 'kilograms', name: (0, locale_1.translateILang)(x.name, locale) })));
351
- }
352
- async getExternalServiceSupplierSlugs() {
353
- const externalService = await super.getExternalServiceData(IExternalService_1.ExternalServiceSlugEnum.TCG_SERVICE);
354
- if (!!!externalService)
355
- throw new Error('Could not find service');
356
- return (0, object_1.recursiveCheckObject)(externalService, 'external_service_params.cardgame_slugs');
357
- }
358
- async getExternalServiceBaseParentCategory() {
359
- const externalService = await super.getExternalServiceData(IExternalService_1.ExternalServiceSlugEnum.TCG_SERVICE);
360
- if (!!!externalService)
361
- throw new Error('Could not find service');
362
- return (0, object_1.recursiveCheckObject)(externalService, 'external_service_params.default_parent_cat');
363
- }
364
- async fetchApi(endpoint, externalService) {
365
- if (!externalService) {
366
- externalService = await super.getExternalServiceData(IExternalService_1.ExternalServiceSlugEnum.TCG_SERVICE);
367
- if (!!!externalService)
368
- throw new Error('Could not find service');
369
- }
370
- const urlToUse = externalService.external_service_infos.api_url;
371
- const query = await fetch(`${urlToUse}${endpoint}`, {
372
- method: 'GET',
373
- headers: { 'x-tcg-token': process.env.NEXT_PUBLIC_TCG_API_TOKEN || '' }
374
- });
375
- return (await query.json());
376
- }
377
- isErrorResult(obj) {
378
- return obj.status !== undefined;
379
- }
380
- async getEcommAttributes() {
381
- if (this._attributes)
382
- return;
383
- const docs = await DatabaseService_1.default.getDocuments(`/the_beast/1.0.0/orgs/${this._orgId}/spaces/${this._spaceId}/attributes`);
384
- this._attributes = docs
385
- .map((x) => x.data)
386
- .filter((x) => !x.draft && x.created_from_external_service == this._serviceSlug);
387
- }
388
- getSetsAttribute(slug, attr) {
389
- const entry = attr.values.find((x) => x.slug == slug);
390
- return {
391
- slug: slug,
392
- value: entry
393
- ? entry.value
394
- : [
395
- { lang: 'fr', value: slug },
396
- { lang: 'en', value: slug }
397
- ]
398
- };
399
- }
400
- getPricesAndType(card) {
401
- const result = [];
402
- if (card.priceHistory.length == 0 || card.priceHistory[0].prices.length == 0)
403
- return [{ price: 0, subType: 'normal' }];
404
- let lastDate = '';
405
- for (let p of card.priceHistory[0].prices) {
406
- if (!lastDate || lastDate == p.date) {
407
- lastDate = p.date;
408
- const subT = (p.subType || 'normal').toLowerCase();
409
- if (!result.some((x) => x.subType == subT)) {
410
- result.push({ price: p.market, subType: subT });
411
- }
412
- }
413
- }
414
- return result;
415
- }
416
- getNameFromAttributes(currentValues) {
417
- let fr = '';
418
- let en = '';
419
- for (let v of currentValues) {
420
- if (v.values.length == 0 || !v.values[0].default_tag || v.values[0].value.length == 0)
421
- continue;
422
- const valFr = v.values[0].value.find((x) => x.lang == 'fr') || v.values[0].value[0];
423
- const valEn = v.values[0].value.find((x) => x.lang == 'en') || v.values[0].value[0];
424
- fr += (fr != '' ? ' - ' : '') + valFr.value;
425
- en += (en != '' ? ' - ' : '') + valEn.value;
426
- }
427
- return [
428
- { lang: 'fr', value: fr },
429
- { lang: 'en', value: en }
430
- ];
431
- }
432
- getSkuFromAttributes(base, currentValues) {
433
- return (base +
434
- '_' +
435
- currentValues
436
- .filter((x) => x.values.length > 0 && x.values[0].default_tag)
437
- .map((x) => x.values[0].default_tag)
438
- .join('_'));
439
- }
440
- createRecursiveDeclinations(game, baseSlug, shipping, setAttributeValue, currentValues, otherAttribs) {
441
- if (otherAttribs.length == 0)
442
- return [];
443
- if (otherAttribs.length > 1) {
444
- const result = [];
445
- const nextAttribs = otherAttribs.slice(1);
446
- for (const v of otherAttribs[0].values) {
447
- if (v.default_tag && v.associated_to && v.associated_to.some((x) => x == game)) {
448
- result.push(...this.createRecursiveDeclinations(game, baseSlug, shipping, setAttributeValue, [...currentValues, { attribute_id: otherAttribs[0].id, values: [v] }], nextAttribs));
449
- }
450
- }
451
- return result;
452
- }
453
- const result = [];
454
- for (const v of otherAttribs[0].values) {
455
- if (v.default_tag && v.associated_to && v.associated_to.some((x) => x == game)) {
456
- const fullAttribs = [
457
- ...currentValues,
458
- { attribute_id: otherAttribs[0].id, values: [v] },
459
- ...(setAttributeValue ? [{ attribute_id: 'tcg_set', values: [setAttributeValue] }] : [])
460
- ];
461
- result.push(Object.assign(Object.assign({}, (0, Declination_1.emptyDeclination)()), { attributes: fullAttribs, discount_rules: [], image_files: [], name: this.getNameFromAttributes(fullAttribs), created_from_external_service: this._serviceSlug, slug: baseSlug, sku: this.getSkuFromAttributes(baseSlug, fullAttribs), price: { regular: { amount: 0 } }, shipping_info: shipping, description: [] }));
462
- }
463
- }
464
- return result;
465
- }
466
- async getShippingInfo(card) {
467
- const isPack = card.attributes.some((x) => x.name.toLowerCase() == 'producttype' && x.value == 'sealed_booster_packs');
468
- const formatSlug = card.isSingle
469
- ? TCG_1.TCGProductFormatsEnum.CARD
470
- : isPack
471
- ? TCG_1.TCGProductFormatsEnum.PACK
472
- : TCG_1.TCGProductFormatsEnum.BUNDLE;
473
- let format = tcg_formats.find((x) => x.slug == formatSlug);
474
- const spaceData = await this.getSpaceData();
475
- if (spaceData.transport_preferences.predefined_products) {
476
- const box = spaceData.transport_preferences.predefined_products.find((x) => x.slug == formatSlug);
477
- if (box)
478
- return {
479
- unit_measurments: 'centimeters',
480
- unit_weight: 'kilograms',
481
- height: box.height,
482
- length: box.length,
483
- width: box.width,
484
- weight: box.weight,
485
- shipping_details: formatSlug
486
- };
487
- }
488
- return {
489
- unit_measurments: 'centimeters',
490
- unit_weight: 'kilograms',
491
- height: format.height,
492
- length: format.length,
493
- width: format.width,
494
- weight: format.weight,
495
- shipping_details: formatSlug
496
- };
497
- }
498
- }
499
- exports.default = TCGServiceClass;
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 Attribute_1 = require("../../Interfaces/Attribute");
7
+ const Declination_1 = require("../../Interfaces/Declination");
8
+ const IExternalService_1 = require("../../Interfaces/Space/IExternalService");
9
+ const TCG_1 = require("../../Interfaces/TCG");
10
+ const Category_1 = __importDefault(require("../../lib/Category"));
11
+ const locale_1 = require("../../utils/locale");
12
+ const object_1 = require("../../utils/object");
13
+ const string_1 = require("../../utils/string");
14
+ const DatabaseService_1 = __importDefault(require("../database/DatabaseService"));
15
+ const BaseClass_1 = __importDefault(require("./BaseClass"));
16
+ const tcg_formats = [
17
+ {
18
+ name: { fr: 'Carte seule', en: 'Single card' },
19
+ slug: TCG_1.TCGProductFormatsEnum.CARD,
20
+ width: 6.4,
21
+ height: 0.1,
22
+ length: 8.9,
23
+ weight: 0.002
24
+ },
25
+ {
26
+ name: { fr: 'Booster pack', en: 'Booster pack' },
27
+ slug: TCG_1.TCGProductFormatsEnum.PACK,
28
+ width: 9.6,
29
+ height: 0.25,
30
+ length: 17.3,
31
+ weight: 0.023
32
+ },
33
+ {
34
+ name: { fr: 'Bundle et autres', en: 'Bundle and others' },
35
+ slug: TCG_1.TCGProductFormatsEnum.BUNDLE,
36
+ width: 13.46,
37
+ height: 5.1,
38
+ length: 10.16,
39
+ weight: 0.63
40
+ }
41
+ ];
42
+ class TCGServiceClass extends BaseClass_1.default {
43
+ constructor(space, orgId) {
44
+ super(space, orgId, IExternalService_1.ExternalServiceSlugEnum.TCG_SERVICE);
45
+ this._convertCardGameToGenericSupplier = (cardgame) => {
46
+ return {
47
+ id: cardgame.id,
48
+ slug: cardgame.slug,
49
+ name: [
50
+ { lang: 'fr', value: cardgame.name_fr },
51
+ { lang: 'en', value: cardgame.name_en }
52
+ ],
53
+ description: [
54
+ { lang: 'fr', value: cardgame.description_fr },
55
+ { lang: 'en', value: cardgame.description_en }
56
+ ],
57
+ image: !!cardgame.img_url ? { img_path: cardgame.img_url } : null
58
+ };
59
+ };
60
+ }
61
+ async getAllSuppliers() {
62
+ try {
63
+ const resultJson = await this.fetchApi(`/tcg/cardGames`);
64
+ if (!resultJson || this.isErrorResult(resultJson))
65
+ throw new Error(resultJson.error || 'Could not fetch data');
66
+ return resultJson.map((game) => this._convertCardGameToGenericSupplier(game));
67
+ }
68
+ catch (e) {
69
+ console.log('Error on fetching suppliers: ', e.toString());
70
+ return [];
71
+ }
72
+ }
73
+ async getSupplierBySlug(slug) {
74
+ try {
75
+ const resultJson = await this.fetchApi(`/tcg/cardGames/${slug}`);
76
+ if (!!!resultJson || this.isErrorResult(resultJson))
77
+ throw new Error(resultJson.error || 'Could not fetch data');
78
+ return this._convertCardGameToGenericSupplier(resultJson);
79
+ }
80
+ catch (e) {
81
+ console.log('Error on fetching supplier by slug: ', e.toString());
82
+ return;
83
+ }
84
+ }
85
+ async getCategories() {
86
+ const converted = [];
87
+ const externalService = await super.getExternalServiceData(IExternalService_1.ExternalServiceSlugEnum.TCG_SERVICE);
88
+ if (!!!externalService)
89
+ throw new Error('Could not find service');
90
+ const newCardGameValues = (0, object_1.recursiveCheckObject)(externalService, 'external_service_params.cardgame_slugs');
91
+ if (typeof newCardGameValues != 'undefined') {
92
+ for (let slug of newCardGameValues) {
93
+ try {
94
+ const dataFetch = await this.getSupplierBySlug(slug);
95
+ if (!!!dataFetch)
96
+ throw new Error();
97
+ const desc = dataFetch.description || [
98
+ { lang: 'fr', value: '' },
99
+ { lang: 'en', value: '' }
100
+ ];
101
+ converted.push({
102
+ id: dataFetch.slug,
103
+ name: dataFetch.name,
104
+ slug: dataFetch.slug,
105
+ description: desc,
106
+ image: dataFetch.image || undefined,
107
+ seo_info: { seoTitle: dataFetch.name, seoDescription: desc, seoImage: dataFetch.image || undefined },
108
+ created_from_external_service: IExternalService_1.ExternalServiceSlugEnum.TCG_SERVICE
109
+ });
110
+ }
111
+ catch (e) {
112
+ console.log('Error on converting slug');
113
+ }
114
+ }
115
+ }
116
+ return converted;
117
+ }
118
+ async getBrands() {
119
+ var _a, _b, _c, _d;
120
+ const converted = [];
121
+ const externalService = await super.getExternalServiceData(IExternalService_1.ExternalServiceSlugEnum.TCG_SERVICE);
122
+ if (!!!externalService)
123
+ throw new Error('Could not find service');
124
+ const newCardGameValues = (0, object_1.recursiveCheckObject)(externalService, 'external_service_params.cardgame_slugs');
125
+ if (typeof newCardGameValues != 'undefined') {
126
+ const supplier = await this.fetchApi(`/tcg/cardGames`, externalService);
127
+ if (this.isErrorResult(supplier))
128
+ throw new Error('Could not fetch suppliers info');
129
+ const brands = await this.fetchApi(`/tcg/brands`, externalService);
130
+ if (this.isErrorResult(brands))
131
+ throw new Error('Could not fetch brands info');
132
+ for (let slug of newCardGameValues) {
133
+ const brandSlug = supplier.reduce((prev, sup) => {
134
+ return sup.slug == slug ? sup.brand_slug : prev;
135
+ }, undefined);
136
+ const thisBrand = brands.find((b) => b.slug == brandSlug);
137
+ if (thisBrand) {
138
+ converted.push({
139
+ created_from_external_service: IExternalService_1.ExternalServiceSlugEnum.TCG_SERVICE,
140
+ slug: thisBrand.slug,
141
+ name: [
142
+ { lang: 'fr', value: thisBrand.name_fr },
143
+ { lang: 'en', value: thisBrand.name_en }
144
+ ],
145
+ description: [
146
+ { lang: 'fr', value: (_a = thisBrand.description_fr) !== null && _a !== void 0 ? _a : '' },
147
+ { lang: 'en', value: (_b = thisBrand.description_en) !== null && _b !== void 0 ? _b : '' }
148
+ ],
149
+ image: !!thisBrand.img_url ? { img_path: thisBrand.img_url } : undefined,
150
+ id: thisBrand.slug,
151
+ seo_info: {
152
+ seoTitle: [
153
+ { lang: 'fr', value: thisBrand.name_fr },
154
+ { lang: 'en', value: thisBrand.name_en }
155
+ ],
156
+ seoDescription: [
157
+ { lang: 'fr', value: (_c = thisBrand.description_fr) !== null && _c !== void 0 ? _c : '' },
158
+ { lang: 'en', value: (_d = thisBrand.description_en) !== null && _d !== void 0 ? _d : '' }
159
+ ],
160
+ seoImage: !!thisBrand.img_url ? { img_path: thisBrand.img_url } : undefined
161
+ }
162
+ });
163
+ }
164
+ }
165
+ }
166
+ return converted;
167
+ }
168
+ async getAttributes() {
169
+ var _a, _b;
170
+ const converted = [];
171
+ const externalService = await super.getExternalServiceData(IExternalService_1.ExternalServiceSlugEnum.TCG_SERVICE);
172
+ if (!!!externalService)
173
+ throw new Error('Could not find service');
174
+ const newCardGameValues = (0, object_1.recursiveCheckObject)(externalService, 'external_service_params.cardgame_slugs');
175
+ if (typeof newCardGameValues != 'undefined') {
176
+ const supplierSlugs = newCardGameValues.map((s) => 'cardGameSlugs=' + s).join('&');
177
+ if (supplierSlugs) {
178
+ const attribs = await this.fetchApi(`/tcg/attributes?${supplierSlugs}`, externalService);
179
+ if (this.isErrorResult(attribs))
180
+ throw new Error('Could not fetch attributes info');
181
+ for (let attrib of attribs) {
182
+ converted.push({
183
+ created_from_external_service: IExternalService_1.ExternalServiceSlugEnum.TCG_SERVICE,
184
+ description: [
185
+ { lang: 'fr', value: (_a = attrib.description_fr) !== null && _a !== void 0 ? _a : '' },
186
+ { lang: 'en', value: (_b = attrib.description_en) !== null && _b !== void 0 ? _b : '' }
187
+ ],
188
+ is_facet: true,
189
+ is_multiple: false,
190
+ is_searchable: false,
191
+ name: [
192
+ { lang: 'fr', value: attrib.name_fr },
193
+ { lang: 'en', value: attrib.name_en }
194
+ ],
195
+ id: attrib.slug,
196
+ slug: attrib.slug,
197
+ type: Attribute_1.AttributeTypeEnum.STRING,
198
+ values: attrib.attributeValues.map((v) => ({
199
+ slug: v.slug,
200
+ value: [
201
+ { lang: 'fr', value: v.name_fr },
202
+ { lang: 'en', value: v.name_en }
203
+ ],
204
+ default_tag: v.default_tag,
205
+ is_external: true,
206
+ associated_to: v.game_slug_csv.split(','),
207
+ other_details: v.image_url ? { image: v.image_url } : undefined
208
+ }))
209
+ });
210
+ }
211
+ }
212
+ }
213
+ return converted;
214
+ }
215
+ async getProduct(_slug, space) {
216
+ var _a;
217
+ if (space)
218
+ this._spaceData = space;
219
+ const product = await this.fetchApi('/tcg/cards/' + encodeURI(_slug));
220
+ if (this.isErrorResult(product)) {
221
+ if (product.status == 'not_found')
222
+ return;
223
+ throw new Error(product.error);
224
+ }
225
+ await this.getEcommAttributes();
226
+ const attributes = [];
227
+ const setAttr = this._attributes.find((x) => x.slug == 'tcg_set');
228
+ const setAttributeValue = setAttr ? this.getSetsAttribute(product.setSlug, setAttr) : undefined;
229
+ for (const attr of this._attributes) {
230
+ attributes.push({
231
+ attribute_id: attr.id,
232
+ attribute_name: attr.name,
233
+ is_multiple: false,
234
+ values: [],
235
+ default_value: attr.id == 'tcg_set' ? setAttributeValue : undefined
236
+ });
237
+ }
238
+ const finishes = this.getPricesAndType(product);
239
+ const shippingInfo = await this.getShippingInfo(product);
240
+ const finishAttrib = this._attributes.find((x) => x.slug == 'tcg_finish');
241
+ const productTypeAttrib = this._attributes.find((x) => x.slug == 'tcg_product_type');
242
+ const categoryPath = `/the_beast/1.0.0/orgs/${this._orgId}/spaces/${this._spaceId}/categories`;
243
+ const categoryData = await DatabaseService_1.default.getDocument(categoryPath, product.category);
244
+ if (!categoryData.exists)
245
+ throw new Error('Category not found, unable to continue');
246
+ const category = new Category_1.default(categoryData.data, { path: categoryPath }, this._serviceSlug);
247
+ const declinations = [];
248
+ if (product.isSingle) {
249
+ for (const finish of finishes) {
250
+ const attrib = {
251
+ attribute_id: 'tcg_finish',
252
+ values: [
253
+ {
254
+ slug: finish.subType,
255
+ value: [
256
+ { lang: 'fr', value: finish.subType },
257
+ { lang: 'en', value: finish.subType }
258
+ ],
259
+ default_tag: (0, string_1.string_to_slug)(finish.subType)
260
+ }
261
+ ]
262
+ };
263
+ if (finishAttrib) {
264
+ const val = finishAttrib.values.find((x) => x.slug == finish.subType);
265
+ if (val)
266
+ attrib.values = [val];
267
+ }
268
+ const finishDeclis = this.createRecursiveDeclinations(product.category, product.slug, shippingInfo, setAttributeValue, [attrib], this._attributes.filter((x) => x.slug != 'tcg_finish' &&
269
+ x.slug != 'tcg_product_type' &&
270
+ x.values.some((y) => y.default_tag && y.associated_to && y.associated_to.some((z) => z == product.category))));
271
+ const images = product.images.map((x) => ({ img_path: x }));
272
+ declinations.push(...finishDeclis.map((d) => {
273
+ const newPrice = category.costPriceRule(finish.price, d, 'sell');
274
+ return Object.assign(Object.assign({}, d), { price: Object.assign(Object.assign({}, d.price), { regular: { amount: newPrice }, pdsf: { amount: finish.price } }), image_files: images });
275
+ }));
276
+ }
277
+ }
278
+ else {
279
+ const productType = (_a = product.attributes.find((attr) => attr.name === 'ProductType')) === null || _a === void 0 ? void 0 : _a.value;
280
+ const tcgProductType = productType ? `tcg_${productType}` : 'tcg_other';
281
+ const attrib = {
282
+ attribute_id: 'tcg_product_type',
283
+ values: [
284
+ {
285
+ slug: tcgProductType,
286
+ value: [
287
+ { lang: 'fr', value: tcgProductType },
288
+ { lang: 'en', value: tcgProductType }
289
+ ],
290
+ default_tag: undefined
291
+ }
292
+ ]
293
+ };
294
+ if (productTypeAttrib) {
295
+ const val = productTypeAttrib.values.find((x) => x.slug == tcgProductType);
296
+ if (val)
297
+ attrib.values = [val];
298
+ }
299
+ const declination = [
300
+ Object.assign(Object.assign({}, (0, Declination_1.emptyDeclination)()), { attributes: [
301
+ attrib,
302
+ ...(setAttributeValue ? [{ attribute_id: 'tcg_set', values: [setAttributeValue] }] : [])
303
+ ], discount_rules: [], image_files: [], name: [
304
+ { lang: 'fr', value: product.name.fr },
305
+ { lang: 'en', value: product.name.en }
306
+ ], created_from_external_service: this._serviceSlug, slug: product.slug, sku: product.slug + '_' + (productType ? productType : 'other'), price: { regular: { amount: 0 } }, shipping_info: shippingInfo, description: [] })
307
+ ];
308
+ const images = product.images.map((x) => ({ img_path: x }));
309
+ declinations.push(...declination.map((d) => {
310
+ var _a, _b, _c, _d;
311
+ return Object.assign(Object.assign({}, d), { price: Object.assign(Object.assign({}, d.price), { regular: { amount: (_b = (_a = finishes === null || finishes === void 0 ? void 0 : finishes[0]) === null || _a === void 0 ? void 0 : _a.price) !== null && _b !== void 0 ? _b : 0 }, pdsf: { amount: (_d = (_c = finishes === null || finishes === void 0 ? void 0 : finishes[0]) === null || _c === void 0 ? void 0 : _c.price) !== null && _d !== void 0 ? _d : 0 } }), image_files: images });
312
+ }));
313
+ }
314
+ return {
315
+ draft: false,
316
+ name: [
317
+ { lang: 'fr', value: product.name.fr },
318
+ { lang: 'en', value: product.name.en }
319
+ ],
320
+ slug: product.slug,
321
+ brand: product.brandSlug,
322
+ category: product.category,
323
+ is_hidden_in_client_pos: !product.isSingle,
324
+ is_presale: product.isPresale,
325
+ release_date: product.releaseDate,
326
+ created_from_external_service: IExternalService_1.ExternalServiceSlugEnum.TCG_SERVICE,
327
+ description: [
328
+ { lang: 'fr', value: product.description.fr },
329
+ { lang: 'en', value: product.description.en }
330
+ ],
331
+ id: product.slug,
332
+ product_attributes: attributes,
333
+ image_files: product.images.map((x) => ({ img_path: x })),
334
+ declinations: declinations,
335
+ seo_info: {
336
+ seoTitle: [
337
+ { lang: 'fr', value: product.name.fr },
338
+ { lang: 'en', value: product.name.en }
339
+ ],
340
+ seoDescription: [
341
+ { lang: 'fr', value: product.description.fr },
342
+ { lang: 'en', value: product.description.en }
343
+ ],
344
+ seoImage: product.images.length > 0 ? { img_path: product.images[0] } : undefined
345
+ },
346
+ default_size: shippingInfo.shipping_details
347
+ };
348
+ }
349
+ async getPredefinedFormats(locale) {
350
+ return tcg_formats.map((x) => (Object.assign(Object.assign({}, x), { dimension_unit: 'centimeters', weight_unit: 'kilograms', name: (0, locale_1.translateILang)(x.name, locale) })));
351
+ }
352
+ async getExternalServiceSupplierSlugs() {
353
+ const externalService = await super.getExternalServiceData(IExternalService_1.ExternalServiceSlugEnum.TCG_SERVICE);
354
+ if (!!!externalService)
355
+ throw new Error('Could not find service');
356
+ return (0, object_1.recursiveCheckObject)(externalService, 'external_service_params.cardgame_slugs');
357
+ }
358
+ async getExternalServiceBaseParentCategory() {
359
+ const externalService = await super.getExternalServiceData(IExternalService_1.ExternalServiceSlugEnum.TCG_SERVICE);
360
+ if (!!!externalService)
361
+ throw new Error('Could not find service');
362
+ return (0, object_1.recursiveCheckObject)(externalService, 'external_service_params.default_parent_cat');
363
+ }
364
+ async fetchApi(endpoint, externalService) {
365
+ if (!externalService) {
366
+ externalService = await super.getExternalServiceData(IExternalService_1.ExternalServiceSlugEnum.TCG_SERVICE);
367
+ if (!!!externalService)
368
+ throw new Error('Could not find service');
369
+ }
370
+ const urlToUse = externalService.external_service_infos.api_url;
371
+ const query = await fetch(`${urlToUse}${endpoint}`, {
372
+ method: 'GET',
373
+ headers: { 'x-tcg-token': process.env.NEXT_PUBLIC_TCG_API_TOKEN || '' }
374
+ });
375
+ return (await query.json());
376
+ }
377
+ isErrorResult(obj) {
378
+ return obj.status !== undefined;
379
+ }
380
+ async getEcommAttributes() {
381
+ if (this._attributes)
382
+ return;
383
+ const docs = await DatabaseService_1.default.getDocuments(`/the_beast/1.0.0/orgs/${this._orgId}/spaces/${this._spaceId}/attributes`);
384
+ this._attributes = docs
385
+ .map((x) => x.data)
386
+ .filter((x) => !x.draft && x.created_from_external_service == this._serviceSlug);
387
+ }
388
+ getSetsAttribute(slug, attr) {
389
+ const entry = attr.values.find((x) => x.slug == slug);
390
+ return {
391
+ slug: slug,
392
+ value: entry
393
+ ? entry.value
394
+ : [
395
+ { lang: 'fr', value: slug },
396
+ { lang: 'en', value: slug }
397
+ ]
398
+ };
399
+ }
400
+ getPricesAndType(card) {
401
+ const result = [];
402
+ if (card.priceHistory.length == 0 || card.priceHistory[0].prices.length == 0)
403
+ return [{ price: 0, subType: 'normal' }];
404
+ let lastDate = '';
405
+ for (let p of card.priceHistory[0].prices) {
406
+ if (!lastDate || lastDate == p.date) {
407
+ lastDate = p.date;
408
+ const subT = (p.subType || 'normal').toLowerCase();
409
+ if (!result.some((x) => x.subType == subT)) {
410
+ result.push({ price: p.market, subType: subT });
411
+ }
412
+ }
413
+ }
414
+ return result;
415
+ }
416
+ getNameFromAttributes(currentValues) {
417
+ let fr = '';
418
+ let en = '';
419
+ for (let v of currentValues) {
420
+ if (v.values.length == 0 || !v.values[0].default_tag || v.values[0].value.length == 0)
421
+ continue;
422
+ const valFr = v.values[0].value.find((x) => x.lang == 'fr') || v.values[0].value[0];
423
+ const valEn = v.values[0].value.find((x) => x.lang == 'en') || v.values[0].value[0];
424
+ fr += (fr != '' ? ' - ' : '') + valFr.value;
425
+ en += (en != '' ? ' - ' : '') + valEn.value;
426
+ }
427
+ return [
428
+ { lang: 'fr', value: fr },
429
+ { lang: 'en', value: en }
430
+ ];
431
+ }
432
+ getSkuFromAttributes(base, currentValues) {
433
+ return (base +
434
+ '_' +
435
+ currentValues
436
+ .filter((x) => x.values.length > 0 && x.values[0].default_tag)
437
+ .map((x) => x.values[0].default_tag)
438
+ .join('_'));
439
+ }
440
+ createRecursiveDeclinations(game, baseSlug, shipping, setAttributeValue, currentValues, otherAttribs) {
441
+ if (otherAttribs.length == 0)
442
+ return [];
443
+ if (otherAttribs.length > 1) {
444
+ const result = [];
445
+ const nextAttribs = otherAttribs.slice(1);
446
+ for (const v of otherAttribs[0].values) {
447
+ if (v.default_tag && v.associated_to && v.associated_to.some((x) => x == game)) {
448
+ result.push(...this.createRecursiveDeclinations(game, baseSlug, shipping, setAttributeValue, [...currentValues, { attribute_id: otherAttribs[0].id, values: [v] }], nextAttribs));
449
+ }
450
+ }
451
+ return result;
452
+ }
453
+ const result = [];
454
+ for (const v of otherAttribs[0].values) {
455
+ if (v.default_tag && v.associated_to && v.associated_to.some((x) => x == game)) {
456
+ const fullAttribs = [
457
+ ...currentValues,
458
+ { attribute_id: otherAttribs[0].id, values: [v] },
459
+ ...(setAttributeValue ? [{ attribute_id: 'tcg_set', values: [setAttributeValue] }] : [])
460
+ ];
461
+ result.push(Object.assign(Object.assign({}, (0, Declination_1.emptyDeclination)()), { attributes: fullAttribs, discount_rules: [], image_files: [], name: this.getNameFromAttributes(fullAttribs), created_from_external_service: this._serviceSlug, slug: baseSlug, sku: this.getSkuFromAttributes(baseSlug, fullAttribs), price: { regular: { amount: 0 } }, shipping_info: shipping, description: [] }));
462
+ }
463
+ }
464
+ return result;
465
+ }
466
+ async getShippingInfo(card) {
467
+ const isPack = card.attributes.some((x) => x.name.toLowerCase() == 'producttype' && x.value == 'sealed_booster_packs');
468
+ const formatSlug = card.isSingle
469
+ ? TCG_1.TCGProductFormatsEnum.CARD
470
+ : isPack
471
+ ? TCG_1.TCGProductFormatsEnum.PACK
472
+ : TCG_1.TCGProductFormatsEnum.BUNDLE;
473
+ let format = tcg_formats.find((x) => x.slug == formatSlug);
474
+ const spaceData = await this.getSpaceData();
475
+ if (spaceData.transport_preferences.predefined_products) {
476
+ const box = spaceData.transport_preferences.predefined_products.find((x) => x.slug == formatSlug);
477
+ if (box)
478
+ return {
479
+ unit_measurments: 'centimeters',
480
+ unit_weight: 'kilograms',
481
+ height: box.height,
482
+ length: box.length,
483
+ width: box.width,
484
+ weight: box.weight,
485
+ shipping_details: formatSlug
486
+ };
487
+ }
488
+ return {
489
+ unit_measurments: 'centimeters',
490
+ unit_weight: 'kilograms',
491
+ height: format.height,
492
+ length: format.length,
493
+ width: format.width,
494
+ weight: format.weight,
495
+ shipping_details: formatSlug
496
+ };
497
+ }
498
+ }
499
+ exports.default = TCGServiceClass;
500
500
  //# sourceMappingURL=TCGService.js.map