addio-admin-sdk 1.7.86 → 1.7.87

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