addio-admin-sdk 1.7.89 → 1.7.90

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 (558) hide show
  1. package/.babelrc +17 -17
  2. package/.env.dev +14 -14
  3. package/.github/workflows/publish_coverage.yam_ +69 -69
  4. package/addio-sdk-doc.md +1473 -1473
  5. package/changelog.md +537 -537
  6. package/dist/Interfaces/Address/index.d.ts +21 -21
  7. package/dist/Interfaces/Address/index.js +16 -16
  8. package/dist/Interfaces/Algolia/index.d.ts +164 -164
  9. package/dist/Interfaces/Algolia/index.js +2 -2
  10. package/dist/Interfaces/Attachement/index.d.ts +5 -5
  11. package/dist/Interfaces/Attachement/index.js +2 -2
  12. package/dist/Interfaces/Attribute/index.d.ts +52 -52
  13. package/dist/Interfaces/Attribute/index.js +10 -10
  14. package/dist/Interfaces/BGJob/index.d.ts +56 -56
  15. package/dist/Interfaces/BGJob/index.js +25 -25
  16. package/dist/Interfaces/BaseClass/index.d.ts +8 -8
  17. package/dist/Interfaces/BaseClass/index.js +2 -2
  18. package/dist/Interfaces/Blog/IBlogArticle.d.ts +18 -18
  19. package/dist/Interfaces/Blog/IBlogArticle.js +2 -2
  20. package/dist/Interfaces/Blog/IBlogAuthor.d.ts +7 -7
  21. package/dist/Interfaces/Blog/IBlogAuthor.js +2 -2
  22. package/dist/Interfaces/Blog/IBlogCategory.d.ts +9 -9
  23. package/dist/Interfaces/Blog/IBlogCategory.js +2 -2
  24. package/dist/Interfaces/Blog/IBlogComment.d.ts +13 -13
  25. package/dist/Interfaces/Blog/IBlogComment.js +2 -2
  26. package/dist/Interfaces/Blog/IBlogKeywords.d.ts +9 -9
  27. package/dist/Interfaces/Blog/IBlogKeywords.js +2 -2
  28. package/dist/Interfaces/Booking/index.d.ts +74 -74
  29. package/dist/Interfaces/Booking/index.js +17 -17
  30. package/dist/Interfaces/Brand/index.d.ts +15 -15
  31. package/dist/Interfaces/Brand/index.js +2 -2
  32. package/dist/Interfaces/CMS/index.d.ts +25 -25
  33. package/dist/Interfaces/CMS/index.js +2 -2
  34. package/dist/Interfaces/Cart/IElavonPayload.d.ts +93 -93
  35. package/dist/Interfaces/Cart/IElavonPayload.js +17 -17
  36. package/dist/Interfaces/Cart/IPandaPayload.d.ts +64 -64
  37. package/dist/Interfaces/Cart/IPandaPayload.js +18 -18
  38. package/dist/Interfaces/Cart/IPaymentCard.d.ts +22 -22
  39. package/dist/Interfaces/Cart/IPaymentCard.js +44 -44
  40. package/dist/Interfaces/Cart/IPaypalPayload.d.ts +9 -9
  41. package/dist/Interfaces/Cart/IPaypalPayload.js +2 -2
  42. package/dist/Interfaces/Cart/IPaysafePayload.d.ts +72 -72
  43. package/dist/Interfaces/Cart/IPaysafePayload.js +2 -2
  44. package/dist/Interfaces/Cart/IStripePayload.d.ts +66 -66
  45. package/dist/Interfaces/Cart/IStripePayload.js +2 -2
  46. package/dist/Interfaces/Cart/index.d.ts +425 -425
  47. package/dist/Interfaces/Cart/index.js +192 -192
  48. package/dist/Interfaces/Catalogue/index.d.ts +68 -68
  49. package/dist/Interfaces/Catalogue/index.js +37 -37
  50. package/dist/Interfaces/Category/index.d.ts +33 -33
  51. package/dist/Interfaces/Category/index.js +2 -2
  52. package/dist/Interfaces/Chart/index.d.ts +11 -11
  53. package/dist/Interfaces/Chart/index.js +2 -2
  54. package/dist/Interfaces/Class/index.d.ts +8 -8
  55. package/dist/Interfaces/Class/index.js +2 -2
  56. package/dist/Interfaces/Consent/index.d.ts +6 -6
  57. package/dist/Interfaces/Consent/index.js +2 -2
  58. package/dist/Interfaces/Context/IContextProps.d.ts +4 -4
  59. package/dist/Interfaces/Context/IContextProps.js +2 -2
  60. package/dist/Interfaces/Context/IContextState.d.ts +15 -15
  61. package/dist/Interfaces/Context/IContextState.js +2 -2
  62. package/dist/Interfaces/Customer/ICustomerBadge.d.ts +2 -2
  63. package/dist/Interfaces/Customer/ICustomerBadge.js +2 -2
  64. package/dist/Interfaces/Customer/ICustomerRating.d.ts +10 -10
  65. package/dist/Interfaces/Customer/ICustomerRating.js +2 -2
  66. package/dist/Interfaces/Customer/IStoreCredit.d.ts +12 -12
  67. package/dist/Interfaces/Customer/IStoreCredit.js +2 -2
  68. package/dist/Interfaces/Customer/index.d.ts +97 -97
  69. package/dist/Interfaces/Customer/index.js +141 -141
  70. package/dist/Interfaces/Declination/index.d.ts +114 -114
  71. package/dist/Interfaces/Declination/index.js +60 -60
  72. package/dist/Interfaces/Document/index.d.ts +8 -8
  73. package/dist/Interfaces/Document/index.js +2 -2
  74. package/dist/Interfaces/Elastic/index.d.ts +89 -89
  75. package/dist/Interfaces/Elastic/index.js +2 -2
  76. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.d.ts +11 -11
  77. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.js +2 -2
  78. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.d.ts +15 -15
  79. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.js +2 -2
  80. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.d.ts +12 -12
  81. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.js +2 -2
  82. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.d.ts +36 -36
  83. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.js +2 -2
  84. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.d.ts +12 -12
  85. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.js +2 -2
  86. package/dist/Interfaces/Email/CustomGR/ITransportEmail.d.ts +12 -12
  87. package/dist/Interfaces/Email/CustomGR/ITransportEmail.js +2 -2
  88. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.d.ts +12 -12
  89. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.js +2 -2
  90. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.d.ts +16 -16
  91. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.js +2 -2
  92. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.d.ts +15 -15
  93. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.js +2 -2
  94. package/dist/Interfaces/Email/IAbandonnedCartEmail.d.ts +29 -29
  95. package/dist/Interfaces/Email/IAbandonnedCartEmail.js +2 -2
  96. package/dist/Interfaces/Email/IAccountConfirmationEmail.d.ts +22 -22
  97. package/dist/Interfaces/Email/IAccountConfirmationEmail.js +2 -2
  98. package/dist/Interfaces/Email/IApplicationEmail.d.ts +19 -19
  99. package/dist/Interfaces/Email/IApplicationEmail.js +2 -2
  100. package/dist/Interfaces/Email/IBackInStockEmail.d.ts +21 -21
  101. package/dist/Interfaces/Email/IBackInStockEmail.js +2 -2
  102. package/dist/Interfaces/Email/IContactEmail.d.ts +20 -20
  103. package/dist/Interfaces/Email/IContactEmail.js +2 -2
  104. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.d.ts +15 -15
  105. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.js +2 -2
  106. package/dist/Interfaces/Email/ICustomerBookingEmail.d.ts +14 -14
  107. package/dist/Interfaces/Email/ICustomerBookingEmail.js +2 -2
  108. package/dist/Interfaces/Email/IEmail.d.ts +20 -20
  109. package/dist/Interfaces/Email/IEmail.js +56 -56
  110. package/dist/Interfaces/Email/IOrderConfirmationEmail.d.ts +47 -47
  111. package/dist/Interfaces/Email/IOrderConfirmationEmail.js +2 -2
  112. package/dist/Interfaces/Email/IPasswordResetEmail.d.ts +17 -17
  113. package/dist/Interfaces/Email/IPasswordResetEmail.js +2 -2
  114. package/dist/Interfaces/Email/IPhotoShootEmail.d.ts +14 -14
  115. package/dist/Interfaces/Email/IPhotoShootEmail.js +2 -2
  116. package/dist/Interfaces/Email/IPickupConfirmation.d.ts +23 -23
  117. package/dist/Interfaces/Email/IPickupConfirmation.js +2 -2
  118. package/dist/Interfaces/Email/IShippingConfirmation.d.ts +23 -23
  119. package/dist/Interfaces/Email/IShippingConfirmation.js +2 -2
  120. package/dist/Interfaces/Email/IWelcomeEmail.d.ts +19 -19
  121. package/dist/Interfaces/Email/IWelcomeEmail.js +2 -2
  122. package/dist/Interfaces/ExportSchema/index.d.ts +7 -7
  123. package/dist/Interfaces/ExportSchema/index.js +2 -2
  124. package/dist/Interfaces/ExternalService/BaseExternalService.d.ts +12 -12
  125. package/dist/Interfaces/ExternalService/BaseExternalService.js +2 -2
  126. package/dist/Interfaces/ExternalService/ExternalProductsService.d.ts +4 -4
  127. package/dist/Interfaces/ExternalService/ExternalProductsService.js +2 -2
  128. package/dist/Interfaces/ExternalService/index.d.ts +9 -9
  129. package/dist/Interfaces/ExternalService/index.js +2 -2
  130. package/dist/Interfaces/FirstOrderTracking/index.d.ts +5 -5
  131. package/dist/Interfaces/FirstOrderTracking/index.js +2 -2
  132. package/dist/Interfaces/G2/index.d.ts +556 -556
  133. package/dist/Interfaces/G2/index.js +36 -36
  134. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.d.ts +20 -20
  135. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.js +2 -2
  136. package/dist/Interfaces/Indexed/Product/index.d.ts +97 -97
  137. package/dist/Interfaces/Indexed/Product/index.js +212 -212
  138. package/dist/Interfaces/Inventory/index.d.ts +19 -19
  139. package/dist/Interfaces/Inventory/index.js +8 -8
  140. package/dist/Interfaces/Invoice/index.d.ts +4 -4
  141. package/dist/Interfaces/Invoice/index.js +2 -2
  142. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.d.ts +3 -3
  143. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.js +2 -2
  144. package/dist/Interfaces/MarketplacePublication/index.d.ts +23 -23
  145. package/dist/Interfaces/MarketplacePublication/index.js +22 -22
  146. package/dist/Interfaces/Menu/index.d.ts +23 -23
  147. package/dist/Interfaces/Menu/index.js +10 -10
  148. package/dist/Interfaces/Note/index.d.ts +10 -10
  149. package/dist/Interfaces/Note/index.js +7 -7
  150. package/dist/Interfaces/Operations/ICreatedBy.d.ts +6 -6
  151. package/dist/Interfaces/Operations/ICreatedBy.js +2 -2
  152. package/dist/Interfaces/Operations/IUpdate.d.ts +5 -5
  153. package/dist/Interfaces/Operations/IUpdate.js +2 -2
  154. package/dist/Interfaces/Order/index.d.ts +4 -4
  155. package/dist/Interfaces/Order/index.js +2 -2
  156. package/dist/Interfaces/Org/IRelUser.d.ts +9 -9
  157. package/dist/Interfaces/Org/IRelUser.js +2 -2
  158. package/dist/Interfaces/Org/index.d.ts +29 -29
  159. package/dist/Interfaces/Org/index.js +12 -12
  160. package/dist/Interfaces/Payment/index.d.ts +13 -13
  161. package/dist/Interfaces/Payment/index.js +2 -2
  162. package/dist/Interfaces/Product/IAttributeFamily.d.ts +6 -6
  163. package/dist/Interfaces/Product/IAttributeFamily.js +2 -2
  164. package/dist/Interfaces/Product/IImportProduct.d.ts +42 -42
  165. package/dist/Interfaces/Product/IImportProduct.js +791 -791
  166. package/dist/Interfaces/Product/IInventoryItem.d.ts +84 -84
  167. package/dist/Interfaces/Product/IInventoryItem.js +36 -36
  168. package/dist/Interfaces/Product/IPricing.d.ts +177 -177
  169. package/dist/Interfaces/Product/IPricing.js +174 -174
  170. package/dist/Interfaces/Product/index.d.ts +127 -127
  171. package/dist/Interfaces/Product/index.js +56 -56
  172. package/dist/Interfaces/ProductAttribute/index.d.ts +11 -11
  173. package/dist/Interfaces/ProductAttribute/index.js +2 -2
  174. package/dist/Interfaces/PromiseToPurchase/BankType.d.ts +41 -41
  175. package/dist/Interfaces/PromiseToPurchase/BankType.js +41 -41
  176. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.d.ts +33 -33
  177. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.js +15 -15
  178. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.d.ts +19 -19
  179. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.js +2 -2
  180. package/dist/Interfaces/PromiseToPurchase/index.d.ts +50 -50
  181. package/dist/Interfaces/PromiseToPurchase/index.js +13 -13
  182. package/dist/Interfaces/PurchaseOrder/index.d.ts +17 -17
  183. package/dist/Interfaces/PurchaseOrder/index.js +2 -2
  184. package/dist/Interfaces/Query/IBrandQueryOptions.d.ts +11 -11
  185. package/dist/Interfaces/Query/IBrandQueryOptions.js +2 -2
  186. package/dist/Interfaces/Query/ICategoryQueryOptions.d.ts +11 -11
  187. package/dist/Interfaces/Query/ICategoryQueryOptions.js +2 -2
  188. package/dist/Interfaces/Query/IProductQueryOptions.d.ts +16 -16
  189. package/dist/Interfaces/Query/IProductQueryOptions.js +2 -2
  190. package/dist/Interfaces/Quote/index.d.ts +5 -5
  191. package/dist/Interfaces/Quote/index.js +2 -2
  192. package/dist/Interfaces/Refunds/index.d.ts +106 -106
  193. package/dist/Interfaces/Refunds/index.js +2 -2
  194. package/dist/Interfaces/Rules/IDiscountRule.d.ts +137 -137
  195. package/dist/Interfaces/Rules/IDiscountRule.js +95 -95
  196. package/dist/Interfaces/Schedule/index.d.ts +48 -48
  197. package/dist/Interfaces/Schedule/index.js +2 -2
  198. package/dist/Interfaces/Services/IAddServiceResponse.d.ts +4 -4
  199. package/dist/Interfaces/Services/IAddServiceResponse.js +2 -2
  200. package/dist/Interfaces/Services/IService.d.ts +12 -12
  201. package/dist/Interfaces/Services/IService.js +2 -2
  202. package/dist/Interfaces/Services/IServiceSecret.d.ts +8 -8
  203. package/dist/Interfaces/Services/IServiceSecret.js +2 -2
  204. package/dist/Interfaces/Shipping/Shipstation/carriers.d.ts +10 -10
  205. package/dist/Interfaces/Shipping/Shipstation/carriers.js +2 -2
  206. package/dist/Interfaces/Shipping/Shipstation/order.d.ts +227 -227
  207. package/dist/Interfaces/Shipping/Shipstation/order.js +2 -2
  208. package/dist/Interfaces/Shipping/Shipstation/quote.d.ts +31 -31
  209. package/dist/Interfaces/Shipping/Shipstation/quote.js +2 -2
  210. package/dist/Interfaces/Shipping/Shiptime/order.d.ts +54 -54
  211. package/dist/Interfaces/Shipping/Shiptime/order.js +48 -48
  212. package/dist/Interfaces/Shipping/Shiptime/quote.d.ts +111 -111
  213. package/dist/Interfaces/Shipping/Shiptime/quote.js +2 -2
  214. package/dist/Interfaces/Slider/GR.d.ts +114 -114
  215. package/dist/Interfaces/Slider/GR.js +271 -271
  216. package/dist/Interfaces/Slider/index.d.ts +30 -30
  217. package/dist/Interfaces/Slider/index.js +2 -2
  218. package/dist/Interfaces/Space/IExternalService.d.ts +52 -52
  219. package/dist/Interfaces/Space/IExternalService.js +43 -43
  220. package/dist/Interfaces/Space/IMember.d.ts +16 -16
  221. package/dist/Interfaces/Space/IMember.js +9 -9
  222. package/dist/Interfaces/Space/index.d.ts +390 -390
  223. package/dist/Interfaces/Space/index.js +160 -160
  224. package/dist/Interfaces/Specials/gr.d.ts +61 -61
  225. package/dist/Interfaces/Specials/gr.js +2 -2
  226. package/dist/Interfaces/StockNotification/index.d.ts +7 -7
  227. package/dist/Interfaces/StockNotification/index.js +2 -2
  228. package/dist/Interfaces/Store/index.d.ts +62 -62
  229. package/dist/Interfaces/Store/index.js +27 -27
  230. package/dist/Interfaces/Supplier/ICommand.d.ts +11 -11
  231. package/dist/Interfaces/Supplier/ICommand.js +2 -2
  232. package/dist/Interfaces/Supplier/index.d.ts +36 -36
  233. package/dist/Interfaces/Supplier/index.js +24 -24
  234. package/dist/Interfaces/TCG/index.d.ts +110 -110
  235. package/dist/Interfaces/TCG/index.js +27 -27
  236. package/dist/Interfaces/Tag/index.d.ts +18 -18
  237. package/dist/Interfaces/Tag/index.js +2 -2
  238. package/dist/Interfaces/Tax/index.d.ts +13 -13
  239. package/dist/Interfaces/Tax/index.js +2 -2
  240. package/dist/Interfaces/TransferRequest/index.d.ts +103 -103
  241. package/dist/Interfaces/TransferRequest/index.js +43 -43
  242. package/dist/Interfaces/Translation/index.d.ts +8 -8
  243. package/dist/Interfaces/Translation/index.js +5 -5
  244. package/dist/Interfaces/Update/index.d.ts +10 -10
  245. package/dist/Interfaces/Update/index.js +2 -2
  246. package/dist/Interfaces/User/IUser.d.ts +65 -65
  247. package/dist/Interfaces/User/IUser.js +8 -8
  248. package/dist/Interfaces/Version/index.d.ts +11 -11
  249. package/dist/Interfaces/Version/index.js +2 -2
  250. package/dist/Interfaces/Wishlist/index.d.ts +7 -7
  251. package/dist/Interfaces/Wishlist/index.js +2 -2
  252. package/dist/constants/Interfaces/IBaseApi.d.ts +15 -15
  253. package/dist/constants/Interfaces/IBaseApi.js +2 -2
  254. package/dist/constants/Interfaces/IEndpointResult.d.ts +9 -9
  255. package/dist/constants/Interfaces/IEndpointResult.js +2 -2
  256. package/dist/constants/enums.d.ts +6 -6
  257. package/dist/constants/enums.js +10 -10
  258. package/dist/constants/services.d.ts +2 -2
  259. package/dist/constants/services.js +111 -111
  260. package/dist/constants/version.d.ts +2 -2
  261. package/dist/constants/version.js +5 -5
  262. package/dist/index.d.ts +32 -32
  263. package/dist/index.js +242 -242
  264. package/dist/lib/Attribute/index.d.ts +14 -14
  265. package/dist/lib/Attribute/index.js +143 -143
  266. package/dist/lib/BGJob/index.d.ts +9 -9
  267. package/dist/lib/BGJob/index.js +212 -212
  268. package/dist/lib/BackgroundWorker/index.d.ts +34 -34
  269. package/dist/lib/BackgroundWorker/index.js +59 -59
  270. package/dist/lib/Blog/BlogArticle.d.ts +5 -5
  271. package/dist/lib/Blog/BlogArticle.js +10 -10
  272. package/dist/lib/Blog/BlogAuthor.d.ts +5 -5
  273. package/dist/lib/Blog/BlogAuthor.js +10 -10
  274. package/dist/lib/Blog/BlogCategory.d.ts +5 -5
  275. package/dist/lib/Blog/BlogCategory.js +10 -10
  276. package/dist/lib/Blog/BlogKeyword.d.ts +5 -5
  277. package/dist/lib/Blog/BlogKeyword.js +10 -10
  278. package/dist/lib/Booking/index.d.ts +70 -70
  279. package/dist/lib/Booking/index.js +576 -576
  280. package/dist/lib/Brand/index.d.ts +17 -17
  281. package/dist/lib/Brand/index.js +113 -113
  282. package/dist/lib/Cart/index.d.ts +206 -206
  283. package/dist/lib/Cart/index.js +3165 -3164
  284. package/dist/lib/Cart/index.js.map +1 -1
  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/Schedule/index.d.ts +5 -5
  378. package/dist/lib/Schedule/index.js +12 -12
  379. package/dist/lib/Service/Enum/ServiceEnum.d.ts +3 -3
  380. package/dist/lib/Service/Enum/ServiceEnum.js +7 -7
  381. package/dist/lib/Service/index.d.ts +5 -5
  382. package/dist/lib/Service/index.js +13 -13
  383. package/dist/lib/Shipment/index.d.ts +28 -28
  384. package/dist/lib/Shipment/index.js +357 -357
  385. package/dist/lib/Slider/index.d.ts +16 -16
  386. package/dist/lib/Slider/index.js +113 -113
  387. package/dist/lib/Space/index.d.ts +883 -883
  388. package/dist/lib/Space/index.js +5134 -5134
  389. package/dist/lib/StockNotification/index.d.ts +4 -4
  390. package/dist/lib/StockNotification/index.js +6 -6
  391. package/dist/lib/Store/index.d.ts +5 -5
  392. package/dist/lib/Store/index.js +12 -12
  393. package/dist/lib/Supplier/Command.d.ts +5 -5
  394. package/dist/lib/Supplier/Command.js +10 -10
  395. package/dist/lib/Supplier/index.d.ts +25 -25
  396. package/dist/lib/Supplier/index.js +22 -22
  397. package/dist/lib/Tags/index.d.ts +6 -6
  398. package/dist/lib/Tags/index.js +21 -21
  399. package/dist/lib/Tax/index.d.ts +8 -8
  400. package/dist/lib/Tax/index.js +54 -54
  401. package/dist/lib/TransferRequest/index.d.ts +112 -112
  402. package/dist/lib/TransferRequest/index.js +794 -794
  403. package/dist/lib/Update/index.d.ts +10 -10
  404. package/dist/lib/Update/index.js +22 -22
  405. package/dist/lib/User/index.d.ts +35 -35
  406. package/dist/lib/User/index.js +248 -248
  407. package/dist/lib/Wishlist/index.d.ts +5 -5
  408. package/dist/lib/Wishlist/index.js +10 -10
  409. package/dist/lib/base.d.ts +14 -14
  410. package/dist/lib/base.js +62 -62
  411. package/dist/lib/baseService.d.ts +17 -17
  412. package/dist/lib/baseService.js +43 -43
  413. package/dist/rules/GR/constants/data.d.ts +26 -26
  414. package/dist/rules/GR/constants/data.js +55 -55
  415. package/dist/rules/GR/constants/products.d.ts +8 -8
  416. package/dist/rules/GR/constants/products.js +234 -234
  417. package/dist/rules/GR/interfaces/cart.d.ts +84 -84
  418. package/dist/rules/GR/interfaces/cart.js +41 -41
  419. package/dist/rules/GR/interfaces/data.d.ts +97 -97
  420. package/dist/rules/GR/interfaces/data.js +104 -104
  421. package/dist/rules/GR/interfaces/products.d.ts +61 -61
  422. package/dist/rules/GR/interfaces/products.js +10 -10
  423. package/dist/rules/GR/utils/cart.d.ts +53 -53
  424. package/dist/rules/GR/utils/cart.js +637 -637
  425. package/dist/rules/GR/utils/data.d.ts +3 -3
  426. package/dist/rules/GR/utils/data.js +25 -25
  427. package/dist/rules/GR/utils/expedition.d.ts +71 -71
  428. package/dist/rules/GR/utils/expedition.js +1542 -1542
  429. package/dist/rules/GR/utils/g2.d.ts +176 -176
  430. package/dist/rules/GR/utils/g2.js +849 -849
  431. package/dist/rules/GR/utils/invoices.d.ts +24 -24
  432. package/dist/rules/GR/utils/invoices.js +174 -174
  433. package/dist/rules/GR/utils/products.d.ts +104 -104
  434. package/dist/rules/GR/utils/products.js +984 -984
  435. package/dist/rules/GR/utils/upsells.d.ts +79 -79
  436. package/dist/rules/GR/utils/upsells.js +183 -183
  437. package/dist/services/database/BaseProvider.d.ts +29 -29
  438. package/dist/services/database/BaseProvider.js +28 -28
  439. package/dist/services/database/BatchUtils.d.ts +14 -14
  440. package/dist/services/database/BatchUtils.js +43 -43
  441. package/dist/services/database/Config.d.ts +2 -2
  442. package/dist/services/database/Config.js +5 -5
  443. package/dist/services/database/DatabaseService.d.ts +41 -41
  444. package/dist/services/database/DatabaseService.js +152 -152
  445. package/dist/services/database/FirebaseProvider.d.ts +17 -17
  446. package/dist/services/database/FirebaseProvider.js +218 -218
  447. package/dist/services/database/NotFirebaseProvider.d.ts +35 -35
  448. package/dist/services/database/NotFirebaseProvider.js +243 -243
  449. package/dist/services/g2/G2OrderSlip.d.ts +42 -42
  450. package/dist/services/g2/G2OrderSlip.js +210 -210
  451. package/dist/services/g2/utils.d.ts +9 -9
  452. package/dist/services/g2/utils.js +703 -703
  453. package/dist/services/logs/index.d.ts +20 -20
  454. package/dist/services/logs/index.js +61 -61
  455. package/dist/services/products/BaseClass.d.ts +50 -50
  456. package/dist/services/products/BaseClass.js +64 -64
  457. package/dist/services/products/TCGService.d.ts +29 -29
  458. package/dist/services/products/TCGService.js +499 -499
  459. package/dist/services/products/utils.d.ts +9 -9
  460. package/dist/services/products/utils.js +94 -94
  461. package/dist/utils/algolia.d.ts +6 -6
  462. package/dist/utils/algolia.js +21 -21
  463. package/dist/utils/anonymisation.d.ts +30 -30
  464. package/dist/utils/anonymisation.js +250 -250
  465. package/dist/utils/array.d.ts +5 -5
  466. package/dist/utils/array.js +14 -14
  467. package/dist/utils/aws.d.ts +14 -14
  468. package/dist/utils/aws.js +126 -126
  469. package/dist/utils/booking.d.ts +22 -22
  470. package/dist/utils/booking.js +118 -118
  471. package/dist/utils/cart.d.ts +134 -134
  472. package/dist/utils/cart.js +862 -862
  473. package/dist/utils/categories.d.ts +2 -2
  474. package/dist/utils/categories.js +54 -54
  475. package/dist/utils/cmv.d.ts +10 -10
  476. package/dist/utils/cmv.js +107 -107
  477. package/dist/utils/console.d.ts +6 -6
  478. package/dist/utils/console.js +59 -59
  479. package/dist/utils/context.d.ts +20 -20
  480. package/dist/utils/context.js +61 -61
  481. package/dist/utils/currency.d.ts +6 -6
  482. package/dist/utils/currency.js +61 -61
  483. package/dist/utils/data.d.ts +31 -31
  484. package/dist/utils/data.js +294 -294
  485. package/dist/utils/date.d.ts +1 -1
  486. package/dist/utils/date.js +16 -16
  487. package/dist/utils/dimensions.d.ts +3 -3
  488. package/dist/utils/dimensions.js +16 -16
  489. package/dist/utils/discount.d.ts +46 -46
  490. package/dist/utils/discount.js +934 -934
  491. package/dist/utils/errors.d.ts +113 -113
  492. package/dist/utils/errors.js +113 -113
  493. package/dist/utils/file-admin.d.ts +8 -8
  494. package/dist/utils/file-admin.js +38 -38
  495. package/dist/utils/file.d.ts +38 -38
  496. package/dist/utils/file.js +200 -200
  497. package/dist/utils/firebase-admin.d.ts +2 -2
  498. package/dist/utils/firebase-admin.js +61 -61
  499. package/dist/utils/firebase.d.ts +41 -41
  500. package/dist/utils/firebase.js +131 -131
  501. package/dist/utils/import.d.ts +1 -1
  502. package/dist/utils/import.js +21 -21
  503. package/dist/utils/inventories.d.ts +49 -49
  504. package/dist/utils/inventories.js +392 -392
  505. package/dist/utils/locale.d.ts +15 -15
  506. package/dist/utils/locale.js +78 -78
  507. package/dist/utils/locale.js.map +1 -1
  508. package/dist/utils/mailchimp.d.ts +58 -58
  509. package/dist/utils/mailchimp.js +495 -495
  510. package/dist/utils/mathUtils.d.ts +17 -17
  511. package/dist/utils/mathUtils.js +315 -315
  512. package/dist/utils/mongodb.d.ts +1 -1
  513. package/dist/utils/mongodb.js +22 -22
  514. package/dist/utils/object.d.ts +13 -13
  515. package/dist/utils/object.js +115 -115
  516. package/dist/utils/payment.d.ts +10 -10
  517. package/dist/utils/payment.js +23 -23
  518. package/dist/utils/products.d.ts +32 -32
  519. package/dist/utils/products.js +186 -186
  520. package/dist/utils/promiseToPurchase.d.ts +56 -56
  521. package/dist/utils/promiseToPurchase.js +195 -195
  522. package/dist/utils/prosprsearch.d.ts +26 -26
  523. package/dist/utils/prosprsearch.js +182 -182
  524. package/dist/utils/refunds.d.ts +2 -2
  525. package/dist/utils/refunds.js +21 -21
  526. package/dist/utils/sdc.d.ts +10 -10
  527. package/dist/utils/sdc.js +1302 -1302
  528. package/dist/utils/searchIndexes.d.ts +21 -21
  529. package/dist/utils/searchIndexes.js +210 -210
  530. package/dist/utils/services.d.ts +42 -42
  531. package/dist/utils/services.js +409 -409
  532. package/dist/utils/shipment.d.ts +110 -110
  533. package/dist/utils/shipment.js +345 -345
  534. package/dist/utils/simpletexting.d.ts +2 -2
  535. package/dist/utils/simpletexting.js +45 -45
  536. package/dist/utils/sliders.d.ts +4 -4
  537. package/dist/utils/sliders.js +24 -24
  538. package/dist/utils/string.d.ts +16 -16
  539. package/dist/utils/string.js +191 -191
  540. package/dist/utils/tcgService.d.ts +2 -2
  541. package/dist/utils/tcgService.js +8 -8
  542. package/dist/utils/tools.d.ts +1 -1
  543. package/dist/utils/tools.js +9 -9
  544. package/dist/utils/transferRequests.d.ts +19 -19
  545. package/dist/utils/transferRequests.js +43 -43
  546. package/dist/utils/update.d.ts +7 -7
  547. package/dist/utils/update.js +125 -125
  548. package/dist/utils/weight.d.ts +3 -3
  549. package/dist/utils/weight.js +16 -16
  550. package/dist/utils/zones.d.ts +11 -11
  551. package/dist/utils/zones.js +218 -218
  552. package/package.json +110 -110
  553. package/publish.sh +143 -143
  554. package/readme.md +182 -182
  555. package/.env +0 -15
  556. package/dist/lib/Queue/index.d.ts +0 -40
  557. package/dist/lib/Queue/index.js +0 -255
  558. package/dist/lib/Queue/index.js.map +0 -1
@@ -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