@pisell/pisellos 0.0.568 → 0.10.1

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 (588) hide show
  1. package/dist/core/index.js +10 -6
  2. package/dist/index.d.ts +0 -1
  3. package/dist/index.js +0 -3
  4. package/dist/model/strategy/adapter/promotion/evaluator.js +3 -2
  5. package/dist/model/strategy/adapter/walletPass/evaluator.js +7 -5
  6. package/dist/model/strategy/adapter/walletPass/example.js +26 -3
  7. package/dist/model/strategy/adapter/walletPass/index.js +5 -5
  8. package/dist/model/strategy/adapter/walletPass/type.d.ts +0 -3
  9. package/dist/model/strategy/adapter/walletPass/utils.d.ts +0 -26
  10. package/dist/model/strategy/adapter/walletPass/utils.js +24 -96
  11. package/dist/model/strategy/strategy-example.js +19 -5
  12. package/dist/modules/BaseModule.d.ts +2 -2
  13. package/dist/modules/BaseModule.js +12 -14
  14. package/dist/modules/BookingContext/index.d.ts +48 -0
  15. package/dist/modules/BookingContext/index.js +566 -0
  16. package/dist/modules/BookingContext/types.d.ts +102 -0
  17. package/dist/modules/BookingContext/types.js +51 -0
  18. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +16 -0
  19. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +302 -0
  20. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +8 -0
  21. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +149 -0
  22. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +76 -0
  23. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.js +249 -0
  24. package/dist/modules/BookingContext/utils/flexible.d.ts +28 -0
  25. package/dist/modules/BookingContext/utils/flexible.js +56 -0
  26. package/dist/modules/BookingContext/utils/formatResourceList.d.ts +8 -0
  27. package/dist/modules/BookingContext/utils/formatResourceList.js +38 -0
  28. package/dist/modules/BookingContext/utils/index.d.ts +11 -0
  29. package/dist/modules/BookingContext/utils/index.js +11 -0
  30. package/dist/modules/BookingContext/utils/noResource.d.ts +13 -0
  31. package/dist/modules/BookingContext/utils/noResource.js +77 -0
  32. package/dist/modules/BookingContext/utils/orderLineDisplay.d.ts +1 -0
  33. package/dist/modules/BookingContext/utils/orderLineDisplay.js +36 -0
  34. package/dist/modules/BookingContext/utils/productExtend.d.ts +72 -0
  35. package/dist/modules/BookingContext/utils/productExtend.js +339 -0
  36. package/dist/modules/BookingContext/utils/resourceErrors.d.ts +41 -0
  37. package/dist/modules/BookingContext/utils/resourceErrors.js +74 -0
  38. package/dist/modules/BookingContext/utils/resourceSelection.d.ts +7 -0
  39. package/dist/modules/BookingContext/utils/resourceSelection.js +24 -0
  40. package/dist/modules/BookingContext/utils/resources.d.ts +80 -0
  41. package/dist/modules/BookingContext/utils/resources.js +486 -0
  42. package/dist/modules/BookingContext/utils/serviceTimes.d.ts +55 -0
  43. package/dist/modules/BookingContext/utils/serviceTimes.js +151 -0
  44. package/dist/modules/BookingContext/utils/timeSlices.d.ts +42 -0
  45. package/dist/modules/BookingContext/utils/timeSlices.js +100 -0
  46. package/dist/modules/Cart/index.js +3 -0
  47. package/dist/modules/Cart/utils/cartProduct.js +27 -5
  48. package/dist/modules/Cart/utils/cartResource.js +0 -2
  49. package/dist/modules/Cart/utils/changePrice.js +11 -11
  50. package/dist/modules/Customer/index.d.ts +20 -0
  51. package/dist/modules/Customer/index.js +172 -83
  52. package/dist/modules/Customer/types.d.ts +2 -0
  53. package/dist/modules/Date/index.js +5 -1
  54. package/dist/modules/Discount/index.d.ts +2 -2
  55. package/dist/modules/Discount/index.js +43 -30
  56. package/dist/modules/Discount/types.d.ts +1 -1
  57. package/dist/modules/OpenData/index.d.ts +8 -0
  58. package/dist/modules/OpenData/index.js +38 -16
  59. package/dist/modules/Order/index.d.ts +449 -24
  60. package/dist/modules/Order/index.js +5460 -574
  61. package/dist/modules/Order/types.d.ts +693 -88
  62. package/dist/modules/Order/types.js +68 -1
  63. package/dist/modules/Order/utils/bundleDiscountHydration.d.ts +5 -0
  64. package/dist/modules/Order/utils/bundleDiscountHydration.js +144 -0
  65. package/dist/modules/Order/utils/manualProductDiscount.d.ts +106 -0
  66. package/dist/modules/Order/utils/manualProductDiscount.js +210 -0
  67. package/dist/modules/Order/utils/orderCollectionIdentity.d.ts +53 -0
  68. package/dist/modules/Order/utils/orderCollectionIdentity.js +405 -0
  69. package/dist/modules/Order/utils.d.ts +167 -18
  70. package/dist/modules/Order/utils.js +960 -165
  71. package/dist/modules/Payment/index.d.ts +10 -9
  72. package/dist/modules/Payment/index.js +573 -746
  73. package/dist/modules/Payment/types.d.ts +44 -24
  74. package/dist/modules/Payment/utils.d.ts +1 -1
  75. package/dist/modules/Payment/utils.js +4 -3
  76. package/dist/modules/Payment/walletpass.d.ts +0 -2
  77. package/dist/modules/Payment/walletpass.js +49 -33
  78. package/dist/modules/Product/types.d.ts +29 -7
  79. package/dist/modules/ProductList/index.d.ts +17 -13
  80. package/dist/modules/ProductList/index.js +182 -81
  81. package/dist/modules/ProductList/types.d.ts +16 -0
  82. package/dist/modules/Quotation/index.d.ts +22 -2
  83. package/dist/modules/Quotation/index.js +108 -42
  84. package/dist/modules/Quotation/types.d.ts +19 -0
  85. package/dist/modules/ResourcePlanner/index.d.ts +24 -0
  86. package/dist/modules/ResourcePlanner/index.js +181 -0
  87. package/dist/modules/ResourcePlanner/planner.d.ts +14 -0
  88. package/dist/modules/ResourcePlanner/planner.js +1069 -0
  89. package/dist/modules/ResourcePlanner/types.d.ts +227 -0
  90. package/dist/modules/ResourcePlanner/types.js +1 -0
  91. package/dist/modules/Rules/index.d.ts +8 -10
  92. package/dist/modules/Rules/index.js +324 -513
  93. package/dist/modules/Rules/types.d.ts +14 -3
  94. package/dist/modules/SalesSummary/index.d.ts +23 -26
  95. package/dist/modules/SalesSummary/index.js +152 -46
  96. package/dist/modules/SalesSummary/types.d.ts +9 -1
  97. package/dist/modules/SalesSummary/utils.d.ts +3 -22
  98. package/dist/modules/SalesSummary/utils.js +804 -165
  99. package/dist/modules/Schedule/getDateIsInSchedule.js +14 -12
  100. package/dist/modules/Schedule/index.d.ts +18 -5
  101. package/dist/modules/Schedule/index.js +79 -24
  102. package/dist/modules/Schedule/types.d.ts +2 -0
  103. package/dist/modules/Schedule/utils.js +1 -0
  104. package/dist/modules/Step/index.js +1 -0
  105. package/dist/modules/Summary/index.js +4 -3
  106. package/dist/modules/Summary/utils.js +22 -43
  107. package/dist/modules/SurchargeList/index.d.ts +18 -0
  108. package/dist/modules/SurchargeList/index.js +185 -0
  109. package/dist/modules/SurchargeList/types.d.ts +15 -0
  110. package/dist/modules/SurchargeList/types.js +1 -0
  111. package/dist/modules/index.d.ts +3 -0
  112. package/dist/modules/index.js +4 -1
  113. package/dist/plugins/app.d.ts +2 -0
  114. package/dist/plugins/request.d.ts +1 -0
  115. package/dist/plugins/request.js +4 -1
  116. package/dist/plugins/window.js +6 -2
  117. package/dist/server/index.d.ts +462 -8
  118. package/dist/server/index.js +6168 -680
  119. package/dist/server/modules/floor-plan/index.d.ts +39 -0
  120. package/dist/server/modules/floor-plan/index.js +595 -0
  121. package/dist/server/modules/floor-plan/types.d.ts +43 -0
  122. package/dist/server/modules/floor-plan/types.js +13 -0
  123. package/dist/server/modules/index.d.ts +7 -2
  124. package/dist/server/modules/index.js +6 -0
  125. package/dist/server/modules/menu/index.js +41 -32
  126. package/dist/server/modules/order/index.d.ts +207 -14
  127. package/dist/server/modules/order/index.js +2328 -379
  128. package/dist/server/modules/order/types.d.ts +76 -5
  129. package/dist/server/modules/order/types.js +14 -1
  130. package/dist/server/modules/order/utils/filterBookings.d.ts +7 -1
  131. package/dist/server/modules/order/utils/filterBookings.js +118 -11
  132. package/dist/server/modules/order/utils/filterOrders.js +242 -14
  133. package/dist/server/modules/payment/index.d.ts +28 -0
  134. package/dist/server/modules/payment/index.js +305 -0
  135. package/dist/server/modules/payment/types.d.ts +9 -0
  136. package/dist/server/modules/payment/types.js +1 -0
  137. package/dist/server/modules/products/index.d.ts +105 -14
  138. package/dist/server/modules/products/index.js +1416 -521
  139. package/dist/server/modules/products/types.d.ts +34 -1
  140. package/dist/server/modules/products/types.js +4 -0
  141. package/dist/server/modules/quotation/index.d.ts +39 -0
  142. package/dist/server/modules/quotation/index.js +298 -77
  143. package/dist/server/modules/resource/index.d.ts +2 -3
  144. package/dist/server/modules/resource/index.js +109 -86
  145. package/dist/server/modules/schedule/index.d.ts +6 -4
  146. package/dist/server/modules/schedule/index.js +145 -106
  147. package/dist/server/test.json +713 -0
  148. package/dist/server/types.d.ts +2 -0
  149. package/dist/server/utils/product.js +3 -2
  150. package/dist/server/utils/small-ticket.d.ts +71 -0
  151. package/dist/server/utils/small-ticket.js +963 -0
  152. package/dist/solution/BaseSales/index.d.ts +378 -0
  153. package/dist/solution/BaseSales/index.js +4009 -0
  154. package/dist/solution/BaseSales/types.d.ts +394 -0
  155. package/dist/solution/BaseSales/types.js +40 -0
  156. package/dist/solution/BaseSales/utils/cartPromotion.d.ts +287 -0
  157. package/dist/solution/BaseSales/utils/cartPromotion.js +1450 -0
  158. package/dist/solution/BaseSales/utils/parseSalesResponse.d.ts +144 -0
  159. package/dist/solution/BaseSales/utils/parseSalesResponse.js +157 -0
  160. package/dist/solution/BaseSales/utils/quotationPrice.d.ts +18 -0
  161. package/dist/solution/BaseSales/utils/quotationPrice.js +250 -0
  162. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +63 -0
  163. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +218 -0
  164. package/dist/solution/BaseSales/utils.d.ts +40 -0
  165. package/dist/solution/BaseSales/utils.js +263 -0
  166. package/dist/solution/BookingByStep/index.d.ts +1 -1
  167. package/dist/solution/BookingByStep/index.js +60 -11
  168. package/dist/solution/BookingByStep/utils/capacity.js +11 -1
  169. package/dist/solution/BookingByStep/utils/resources.js +3 -1
  170. package/dist/solution/BookingByStep/utils/timeslots.js +43 -2
  171. package/dist/solution/BookingTicket/index.d.ts +393 -24
  172. package/dist/solution/BookingTicket/index.js +2508 -443
  173. package/dist/solution/BookingTicket/types.d.ts +191 -6
  174. package/dist/solution/BookingTicket/types.js +83 -10
  175. package/dist/solution/BookingTicket/utils/addProductDecision.d.ts +117 -0
  176. package/dist/solution/BookingTicket/utils/addProductDecision.js +346 -0
  177. package/dist/solution/BookingTicket/utils/addTimeAvailability.d.ts +35 -0
  178. package/dist/solution/BookingTicket/utils/addTimeAvailability.js +95 -0
  179. package/dist/solution/BookingTicket/utils/bookingStatus.d.ts +77 -0
  180. package/dist/solution/BookingTicket/utils/bookingStatus.js +136 -0
  181. package/dist/solution/BookingTicket/utils/cartView.d.ts +29 -0
  182. package/dist/solution/BookingTicket/utils/cartView.js +209 -0
  183. package/dist/solution/BookingTicket/utils/exampleData.d.ts +123 -0
  184. package/dist/solution/BookingTicket/utils/exampleData.js +183 -0
  185. package/dist/solution/BookingTicket/utils/orderCustomer.d.ts +4 -0
  186. package/dist/solution/BookingTicket/utils/orderCustomer.js +31 -0
  187. package/dist/solution/BookingTicket/utils/resolveBestAddTimePlan.d.ts +185 -0
  188. package/dist/solution/BookingTicket/utils/resolveBestAddTimePlan.js +438 -0
  189. package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +36 -0
  190. package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.js +400 -0
  191. package/dist/solution/BookingTicket/utils/scan/cloudSearch.d.ts +4 -0
  192. package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +42 -1
  193. package/dist/solution/BookingTicket/utils/scan/formatGlobalScan.d.ts +32 -0
  194. package/dist/solution/BookingTicket/utils/scan/formatGlobalScan.js +56 -0
  195. package/dist/solution/BookingTicket/utils/scan/handleScan.d.ts +3 -1
  196. package/dist/solution/BookingTicket/utils/scan/handleScan.js +42 -28
  197. package/dist/solution/BookingTicket/utils/scan/index.d.ts +5 -0
  198. package/dist/solution/BookingTicket/utils/scan/index.js +30 -14
  199. package/dist/solution/BookingTicket/utils/scan/scanProductValues.d.ts +21 -0
  200. package/dist/solution/BookingTicket/utils/scan/scanProductValues.js +150 -0
  201. package/dist/solution/BookingTicket/utils/sessionCatalogStale.d.ts +23 -0
  202. package/dist/solution/BookingTicket/utils/sessionCatalogStale.js +78 -0
  203. package/dist/solution/BuyTickets/index.js +12 -9
  204. package/dist/solution/Checkout/index.d.ts +1 -0
  205. package/dist/solution/Checkout/index.js +275 -209
  206. package/dist/solution/Checkout/utils/index.js +20 -8
  207. package/dist/solution/RegisterAndLogin/config.js +2 -10
  208. package/dist/solution/RegisterAndLogin/index.js +76 -30
  209. package/dist/solution/Sales/index.d.ts +50 -5
  210. package/dist/solution/Sales/index.js +484 -92
  211. package/dist/solution/Sales/types.d.ts +26 -2
  212. package/dist/solution/ScanOrder/index.d.ts +27 -21
  213. package/dist/solution/ScanOrder/index.js +519 -444
  214. package/dist/solution/ScanOrder/types.d.ts +33 -11
  215. package/dist/solution/ScanOrder/types.js +4 -5
  216. package/dist/solution/ScanOrder/utils.d.ts +4 -1
  217. package/dist/solution/ScanOrder/utils.js +109 -34
  218. package/dist/solution/ShopDiscount/index.js +18 -19
  219. package/dist/solution/ShopDiscount/types.d.ts +4 -5
  220. package/dist/solution/ShopDiscount/utils.d.ts +0 -9
  221. package/dist/solution/ShopDiscount/utils.js +0 -9
  222. package/dist/solution/UnifiedBookingSales/index.d.ts +183 -0
  223. package/dist/solution/UnifiedBookingSales/index.js +1871 -0
  224. package/dist/solution/UnifiedBookingSales/types.d.ts +143 -0
  225. package/dist/solution/UnifiedBookingSales/types.js +11 -0
  226. package/dist/solution/VenueBooking/index.d.ts +32 -51
  227. package/dist/solution/VenueBooking/index.js +741 -808
  228. package/dist/solution/VenueBooking/sales-section-4-annotated.json +0 -2
  229. package/dist/solution/VenueBooking/types.d.ts +1 -3
  230. package/dist/solution/VenueBooking/types.js +0 -1
  231. package/dist/solution/VenueBooking/utils/dateSummary.d.ts +2 -2
  232. package/dist/solution/VenueBooking/utils/dateSummary.js +25 -12
  233. package/dist/solution/VenueBooking/utils/slotMerge.d.ts +6 -0
  234. package/dist/solution/VenueBooking/utils/slotMerge.js +9 -3
  235. package/dist/solution/VenueBooking/utils/timeSlot.d.ts +0 -2
  236. package/dist/solution/VenueBooking/utils/timeSlot.js +4 -9
  237. package/dist/solution/index.d.ts +2 -0
  238. package/dist/solution/index.js +3 -1
  239. package/dist/types/index.d.ts +12 -2
  240. package/dist/utils/task.js +18 -15
  241. package/dist/utils/watch.js +1 -0
  242. package/lib/apis/picoding.js +0 -2
  243. package/lib/core/index.js +132 -130
  244. package/lib/effects/index.js +57 -46
  245. package/lib/index.d.ts +0 -1
  246. package/lib/index.js +50 -92
  247. package/lib/model/index.js +21 -14
  248. package/lib/model/strategy/adapter/dataVariant/adapter.js +50 -38
  249. package/lib/model/strategy/adapter/dataVariant/evaluator.js +236 -162
  250. package/lib/model/strategy/adapter/dataVariant/examples.js +237 -229
  251. package/lib/model/strategy/adapter/dataVariant/index.js +34 -39
  252. package/lib/model/strategy/adapter/dataVariant/type.js +28 -57
  253. package/lib/model/strategy/adapter/index.js +64 -100
  254. package/lib/model/strategy/adapter/itemRule/adapter.js +144 -156
  255. package/lib/model/strategy/adapter/itemRule/evaluator.js +48 -36
  256. package/lib/model/strategy/adapter/itemRule/examples.js +225 -295
  257. package/lib/model/strategy/adapter/itemRule/index.js +57 -83
  258. package/lib/model/strategy/adapter/itemRule/type.js +36 -97
  259. package/lib/model/strategy/adapter/promotion/adapter.js +63 -84
  260. package/lib/model/strategy/adapter/promotion/evaluator.js +233 -382
  261. package/lib/model/strategy/adapter/promotion/examples.js +159 -139
  262. package/lib/model/strategy/adapter/promotion/index.js +0 -1
  263. package/lib/model/strategy/adapter/promotion/type.js +35 -199
  264. package/lib/model/strategy/adapter/type.js +16 -4
  265. package/lib/model/strategy/adapter/walletPass/evaluator.js +152 -180
  266. package/lib/model/strategy/adapter/walletPass/example.js +190 -217
  267. package/lib/model/strategy/adapter/walletPass/index.js +51 -75
  268. package/lib/model/strategy/adapter/walletPass/locales.js +58 -36
  269. package/lib/model/strategy/adapter/walletPass/type.d.ts +0 -3
  270. package/lib/model/strategy/adapter/walletPass/type.js +16 -4
  271. package/lib/model/strategy/adapter/walletPass/utils.d.ts +0 -26
  272. package/lib/model/strategy/adapter/walletPass/utils.js +383 -676
  273. package/lib/model/strategy/engine.js +168 -270
  274. package/lib/model/strategy/index.js +34 -49
  275. package/lib/model/strategy/strategy-example.js +239 -243
  276. package/lib/model/strategy/type.js +40 -100
  277. package/lib/modules/Account/index.js +53 -39
  278. package/lib/modules/Account/types.js +33 -20
  279. package/lib/modules/AccountList/index.js +154 -116
  280. package/lib/modules/AccountList/types.js +31 -30
  281. package/lib/modules/AccountList/utils.js +30 -18
  282. package/lib/modules/BaseModule.d.ts +2 -2
  283. package/lib/modules/BaseModule.js +50 -29
  284. package/lib/modules/BookingContext/index.d.ts +48 -0
  285. package/lib/modules/BookingContext/index.js +368 -0
  286. package/lib/modules/BookingContext/types.d.ts +102 -0
  287. package/lib/modules/BookingContext/types.js +34 -0
  288. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +16 -0
  289. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +298 -0
  290. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +8 -0
  291. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +155 -0
  292. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +76 -0
  293. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +222 -0
  294. package/lib/modules/BookingContext/utils/flexible.d.ts +28 -0
  295. package/lib/modules/BookingContext/utils/flexible.js +80 -0
  296. package/lib/modules/BookingContext/utils/formatResourceList.d.ts +8 -0
  297. package/lib/modules/BookingContext/utils/formatResourceList.js +50 -0
  298. package/lib/modules/BookingContext/utils/index.d.ts +11 -0
  299. package/lib/modules/BookingContext/utils/index.js +43 -0
  300. package/lib/modules/BookingContext/utils/noResource.d.ts +13 -0
  301. package/lib/modules/BookingContext/utils/noResource.js +90 -0
  302. package/lib/modules/BookingContext/utils/orderLineDisplay.d.ts +1 -0
  303. package/lib/modules/BookingContext/utils/orderLineDisplay.js +56 -0
  304. package/lib/modules/BookingContext/utils/productExtend.d.ts +72 -0
  305. package/lib/modules/BookingContext/utils/productExtend.js +283 -0
  306. package/lib/modules/BookingContext/utils/resourceErrors.d.ts +41 -0
  307. package/lib/modules/BookingContext/utils/resourceErrors.js +80 -0
  308. package/lib/modules/BookingContext/utils/resourceSelection.d.ts +7 -0
  309. package/lib/modules/BookingContext/utils/resourceSelection.js +46 -0
  310. package/lib/modules/BookingContext/utils/resources.d.ts +80 -0
  311. package/lib/modules/BookingContext/utils/resources.js +377 -0
  312. package/lib/modules/BookingContext/utils/serviceTimes.d.ts +55 -0
  313. package/lib/modules/BookingContext/utils/serviceTimes.js +162 -0
  314. package/lib/modules/BookingContext/utils/timeSlices.d.ts +42 -0
  315. package/lib/modules/BookingContext/utils/timeSlices.js +124 -0
  316. package/lib/modules/Cart/index.js +124 -170
  317. package/lib/modules/Cart/types.js +51 -46
  318. package/lib/modules/Cart/utils/cartAccount.js +39 -40
  319. package/lib/modules/Cart/utils/cartDate.js +61 -56
  320. package/lib/modules/Cart/utils/cartDiscount.js +33 -28
  321. package/lib/modules/Cart/utils/cartNote.js +32 -27
  322. package/lib/modules/Cart/utils/cartProduct.js +261 -309
  323. package/lib/modules/Cart/utils/cartRelationForms.js +35 -29
  324. package/lib/modules/Cart/utils/cartResource.js +78 -72
  325. package/lib/modules/Cart/utils/changePrice.js +59 -31
  326. package/lib/modules/Cart/utils/index.js +48 -106
  327. package/lib/modules/Customer/constants.js +34 -13
  328. package/lib/modules/Customer/index.d.ts +20 -0
  329. package/lib/modules/Customer/index.js +207 -217
  330. package/lib/modules/Customer/types.d.ts +2 -0
  331. package/lib/modules/Customer/types.js +35 -38
  332. package/lib/modules/Date/index.js +115 -116
  333. package/lib/modules/Date/types.js +28 -16
  334. package/lib/modules/Date/utils.js +123 -174
  335. package/lib/modules/Discount/index.d.ts +2 -2
  336. package/lib/modules/Discount/index.js +133 -119
  337. package/lib/modules/Discount/types.d.ts +1 -1
  338. package/lib/modules/Discount/types.js +31 -9
  339. package/lib/modules/Guests/index.js +56 -30
  340. package/lib/modules/Guests/types.js +33 -23
  341. package/lib/modules/Holder/index.js +189 -209
  342. package/lib/modules/Holder/types.js +16 -4
  343. package/lib/modules/Holder/utils.js +49 -20
  344. package/lib/modules/OpenData/index.d.ts +8 -0
  345. package/lib/modules/OpenData/index.js +88 -63
  346. package/lib/modules/OpenData/types.js +16 -4
  347. package/lib/modules/OpenData/utils.js +78 -44
  348. package/lib/modules/Order/index.d.ts +449 -24
  349. package/lib/modules/Order/index.js +4184 -514
  350. package/lib/modules/Order/types.d.ts +693 -88
  351. package/lib/modules/Order/types.js +35 -24
  352. package/lib/modules/Order/utils/bundleDiscountHydration.d.ts +5 -0
  353. package/lib/modules/Order/utils/bundleDiscountHydration.js +139 -0
  354. package/lib/modules/Order/utils/manualProductDiscount.d.ts +106 -0
  355. package/lib/modules/Order/utils/manualProductDiscount.js +206 -0
  356. package/lib/modules/Order/utils/orderCollectionIdentity.d.ts +53 -0
  357. package/lib/modules/Order/utils/orderCollectionIdentity.js +415 -0
  358. package/lib/modules/Order/utils.d.ts +167 -18
  359. package/lib/modules/Order/utils.js +1085 -414
  360. package/lib/modules/Payment/cash.js +33 -20
  361. package/lib/modules/Payment/cashRecommendationAlgorithm.js +76 -145
  362. package/lib/modules/Payment/eftpos.js +30 -16
  363. package/lib/modules/Payment/index.d.ts +10 -9
  364. package/lib/modules/Payment/index.js +402 -636
  365. package/lib/modules/Payment/mx51.js +0 -1
  366. package/lib/modules/Payment/types.d.ts +44 -24
  367. package/lib/modules/Payment/types.js +107 -216
  368. package/lib/modules/Payment/utils.d.ts +1 -1
  369. package/lib/modules/Payment/utils.js +50 -52
  370. package/lib/modules/Payment/walletpass.d.ts +0 -2
  371. package/lib/modules/Payment/walletpass.js +216 -221
  372. package/lib/modules/Product/index.js +46 -51
  373. package/lib/modules/Product/types.d.ts +29 -7
  374. package/lib/modules/Product/types.js +16 -4
  375. package/lib/modules/Product/utils.js +33 -32
  376. package/lib/modules/ProductList/index.d.ts +17 -13
  377. package/lib/modules/ProductList/index.js +161 -120
  378. package/lib/modules/ProductList/types.d.ts +16 -0
  379. package/lib/modules/ProductList/types.js +31 -9
  380. package/lib/modules/Quotation/index.d.ts +22 -2
  381. package/lib/modules/Quotation/index.js +154 -64
  382. package/lib/modules/Quotation/types.d.ts +19 -0
  383. package/lib/modules/Quotation/types.js +16 -4
  384. package/lib/modules/Resource/index.js +59 -27
  385. package/lib/modules/Resource/types.js +32 -22
  386. package/lib/modules/Resource/utils.js +38 -30
  387. package/lib/modules/ResourcePlanner/index.d.ts +24 -0
  388. package/lib/modules/ResourcePlanner/index.js +148 -0
  389. package/lib/modules/ResourcePlanner/planner.d.ts +14 -0
  390. package/lib/modules/ResourcePlanner/planner.js +933 -0
  391. package/lib/modules/ResourcePlanner/types.d.ts +227 -0
  392. package/lib/modules/ResourcePlanner/types.js +17 -0
  393. package/lib/modules/Rules/index.d.ts +8 -10
  394. package/lib/modules/Rules/index.js +960 -1440
  395. package/lib/modules/Rules/types.d.ts +14 -3
  396. package/lib/modules/Rules/types.js +40 -17
  397. package/lib/modules/SalesSummary/index.d.ts +23 -26
  398. package/lib/modules/SalesSummary/index.js +134 -61
  399. package/lib/modules/SalesSummary/types.d.ts +9 -1
  400. package/lib/modules/SalesSummary/types.js +16 -4
  401. package/lib/modules/SalesSummary/utils.d.ts +3 -22
  402. package/lib/modules/SalesSummary/utils.js +814 -233
  403. package/lib/modules/ScanOrderLogger/index.js +79 -59
  404. package/lib/modules/ScanOrderLogger/providers/feishu.js +78 -54
  405. package/lib/modules/ScanOrderLogger/providers/grafana.js +36 -13
  406. package/lib/modules/ScanOrderLogger/types.js +16 -4
  407. package/lib/modules/Schedule/getDateIsInSchedule.js +169 -338
  408. package/lib/modules/Schedule/index.d.ts +18 -5
  409. package/lib/modules/Schedule/index.js +153 -104
  410. package/lib/modules/Schedule/type.js +16 -4
  411. package/lib/modules/Schedule/types.d.ts +2 -0
  412. package/lib/modules/Schedule/types.js +16 -4
  413. package/lib/modules/Schedule/utils.js +291 -433
  414. package/lib/modules/Step/index.js +52 -40
  415. package/lib/modules/Step/tyeps.js +16 -4
  416. package/lib/modules/Summary/index.js +71 -66
  417. package/lib/modules/Summary/types.js +16 -4
  418. package/lib/modules/Summary/utils.js +418 -791
  419. package/lib/modules/SurchargeList/index.d.ts +18 -0
  420. package/lib/modules/SurchargeList/index.js +109 -0
  421. package/lib/modules/SurchargeList/types.d.ts +15 -0
  422. package/lib/modules/SurchargeList/types.js +17 -0
  423. package/lib/modules/index.d.ts +3 -0
  424. package/lib/modules/index.js +63 -212
  425. package/lib/plugins/app.d.ts +2 -0
  426. package/lib/plugins/app.js +16 -4
  427. package/lib/plugins/index.js +25 -36
  428. package/lib/plugins/request.d.ts +1 -0
  429. package/lib/plugins/request.js +126 -137
  430. package/lib/plugins/shopStore.js +16 -4
  431. package/lib/plugins/user.js +16 -4
  432. package/lib/plugins/window.js +179 -171
  433. package/lib/server/index.d.ts +462 -8
  434. package/lib/server/index.js +4520 -1162
  435. package/lib/server/modules/floor-plan/index.d.ts +39 -0
  436. package/lib/server/modules/floor-plan/index.js +327 -0
  437. package/lib/server/modules/floor-plan/types.d.ts +43 -0
  438. package/lib/server/modules/floor-plan/types.js +34 -0
  439. package/lib/server/modules/index.d.ts +7 -2
  440. package/lib/server/modules/index.js +67 -84
  441. package/lib/server/modules/menu/index.js +122 -146
  442. package/lib/server/modules/menu/types.js +31 -18
  443. package/lib/server/modules/order/index.d.ts +207 -14
  444. package/lib/server/modules/order/index.js +1543 -285
  445. package/lib/server/modules/order/types.d.ts +76 -5
  446. package/lib/server/modules/order/types.js +32 -107
  447. package/lib/server/modules/order/utils/filterBookings.d.ts +7 -1
  448. package/lib/server/modules/order/utils/filterBookings.js +259 -176
  449. package/lib/server/modules/order/utils/filterOrders.js +293 -94
  450. package/lib/server/modules/payment/index.d.ts +28 -0
  451. package/lib/server/modules/payment/index.js +192 -0
  452. package/lib/server/modules/payment/types.d.ts +9 -0
  453. package/lib/server/modules/payment/types.js +17 -0
  454. package/lib/server/modules/products/index.d.ts +105 -14
  455. package/lib/server/modules/products/index.js +850 -475
  456. package/lib/server/modules/products/types.d.ts +34 -1
  457. package/lib/server/modules/products/types.js +34 -41
  458. package/lib/server/modules/quotation/index.d.ts +39 -0
  459. package/lib/server/modules/quotation/index.js +254 -75
  460. package/lib/server/modules/quotation/types.js +31 -21
  461. package/lib/server/modules/resource/index.d.ts +2 -3
  462. package/lib/server/modules/resource/index.js +240 -243
  463. package/lib/server/modules/resource/types.js +33 -42
  464. package/lib/server/modules/schedule/index.d.ts +6 -4
  465. package/lib/server/modules/schedule/index.js +146 -147
  466. package/lib/server/modules/schedule/types.js +21 -14
  467. package/lib/server/modules/schedule/utils.js +163 -334
  468. package/lib/server/test.json +713 -0
  469. package/lib/server/types.d.ts +2 -0
  470. package/lib/server/types.js +16 -4
  471. package/lib/server/utils/index.js +23 -25
  472. package/lib/server/utils/product.js +140 -197
  473. package/lib/server/utils/schedule.js +41 -34
  474. package/lib/server/utils/small-ticket.d.ts +71 -0
  475. package/lib/server/utils/small-ticket.js +904 -0
  476. package/lib/server/utils/time.js +49 -40
  477. package/lib/solution/BaseSales/index.d.ts +378 -0
  478. package/lib/solution/BaseSales/index.js +2533 -0
  479. package/lib/solution/BaseSales/types.d.ts +394 -0
  480. package/lib/solution/BaseSales/types.js +43 -0
  481. package/lib/solution/BaseSales/utils/cartPromotion.d.ts +287 -0
  482. package/lib/solution/BaseSales/utils/cartPromotion.js +1004 -0
  483. package/lib/solution/BaseSales/utils/parseSalesResponse.d.ts +144 -0
  484. package/lib/solution/BaseSales/utils/parseSalesResponse.js +160 -0
  485. package/lib/solution/BaseSales/utils/quotationPrice.d.ts +18 -0
  486. package/lib/solution/BaseSales/utils/quotationPrice.js +289 -0
  487. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +63 -0
  488. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +256 -0
  489. package/lib/solution/BaseSales/utils.d.ts +40 -0
  490. package/lib/solution/BaseSales/utils.js +244 -0
  491. package/lib/solution/BookingByStep/index.d.ts +1 -1
  492. package/lib/solution/BookingByStep/index.js +1340 -1530
  493. package/lib/solution/BookingByStep/types.js +99 -40
  494. package/lib/solution/BookingByStep/utils/capacity.js +160 -192
  495. package/lib/solution/BookingByStep/utils/products.js +52 -42
  496. package/lib/solution/BookingByStep/utils/resources.js +330 -527
  497. package/lib/solution/BookingByStep/utils/stock.js +44 -65
  498. package/lib/solution/BookingByStep/utils/timeslots.js +131 -129
  499. package/lib/solution/BookingTicket/index.d.ts +393 -24
  500. package/lib/solution/BookingTicket/index.js +1374 -184
  501. package/lib/solution/BookingTicket/types.d.ts +191 -6
  502. package/lib/solution/BookingTicket/types.js +79 -40
  503. package/lib/solution/BookingTicket/utils/addProductDecision.d.ts +117 -0
  504. package/lib/solution/BookingTicket/utils/addProductDecision.js +318 -0
  505. package/lib/solution/BookingTicket/utils/addTimeAvailability.d.ts +35 -0
  506. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +125 -0
  507. package/lib/solution/BookingTicket/utils/bookingStatus.d.ts +77 -0
  508. package/lib/solution/BookingTicket/utils/bookingStatus.js +107 -0
  509. package/lib/solution/BookingTicket/utils/cartView.d.ts +29 -0
  510. package/lib/solution/BookingTicket/utils/cartView.js +184 -0
  511. package/lib/solution/BookingTicket/utils/exampleData.d.ts +123 -0
  512. package/lib/solution/BookingTicket/utils/exampleData.js +0 -0
  513. package/lib/solution/BookingTicket/utils/orderCustomer.d.ts +4 -0
  514. package/lib/solution/BookingTicket/utils/orderCustomer.js +58 -0
  515. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.d.ts +185 -0
  516. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +254 -0
  517. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +36 -0
  518. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +169 -0
  519. package/lib/solution/BookingTicket/utils/scan/cloudSearch.d.ts +4 -0
  520. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +97 -64
  521. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.d.ts +32 -0
  522. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +51 -0
  523. package/lib/solution/BookingTicket/utils/scan/handleScan.d.ts +3 -1
  524. package/lib/solution/BookingTicket/utils/scan/handleScan.js +81 -82
  525. package/lib/solution/BookingTicket/utils/scan/index.d.ts +5 -0
  526. package/lib/solution/BookingTicket/utils/scan/index.js +109 -91
  527. package/lib/solution/BookingTicket/utils/scan/scanCache.js +43 -90
  528. package/lib/solution/BookingTicket/utils/scan/scanProductValues.d.ts +21 -0
  529. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +127 -0
  530. package/lib/solution/BookingTicket/utils/sessionCatalogStale.d.ts +23 -0
  531. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +85 -0
  532. package/lib/solution/BuyTickets/index.js +70 -67
  533. package/lib/solution/BuyTickets/types.js +38 -22
  534. package/lib/solution/Checkout/index.d.ts +1 -0
  535. package/lib/solution/Checkout/index.js +1169 -1463
  536. package/lib/solution/Checkout/types.js +61 -91
  537. package/lib/solution/Checkout/utils/index.js +156 -228
  538. package/lib/solution/PlaceOrder/index.js +0 -55
  539. package/lib/solution/RegisterAndLogin/config.js +462 -503
  540. package/lib/solution/RegisterAndLogin/index.js +630 -633
  541. package/lib/solution/RegisterAndLogin/types.js +76 -189
  542. package/lib/solution/RegisterAndLogin/utils.js +125 -183
  543. package/lib/solution/Sales/index.d.ts +50 -5
  544. package/lib/solution/Sales/index.js +498 -238
  545. package/lib/solution/Sales/types.d.ts +26 -2
  546. package/lib/solution/Sales/types.js +33 -27
  547. package/lib/solution/ScanOrder/index.d.ts +27 -21
  548. package/lib/solution/ScanOrder/index.js +936 -864
  549. package/lib/solution/ScanOrder/types.d.ts +33 -11
  550. package/lib/solution/ScanOrder/types.js +34 -34
  551. package/lib/solution/ScanOrder/utils.d.ts +4 -1
  552. package/lib/solution/ScanOrder/utils.js +422 -385
  553. package/lib/solution/ShopDiscount/index.js +233 -235
  554. package/lib/solution/ShopDiscount/types.d.ts +4 -5
  555. package/lib/solution/ShopDiscount/types.js +37 -15
  556. package/lib/solution/ShopDiscount/utils.d.ts +0 -9
  557. package/lib/solution/ShopDiscount/utils.js +172 -309
  558. package/lib/solution/UnifiedBookingSales/index.d.ts +183 -0
  559. package/lib/solution/UnifiedBookingSales/index.js +1076 -0
  560. package/lib/solution/UnifiedBookingSales/types.d.ts +143 -0
  561. package/lib/solution/UnifiedBookingSales/types.js +33 -0
  562. package/lib/solution/VenueBooking/index.d.ts +32 -51
  563. package/lib/solution/VenueBooking/index.js +1008 -984
  564. package/lib/solution/VenueBooking/sales-section-4-annotated.json +0 -2
  565. package/lib/solution/VenueBooking/types.d.ts +1 -3
  566. package/lib/solution/VenueBooking/types.js +39 -20
  567. package/lib/solution/VenueBooking/utils/dateSummary.d.ts +2 -2
  568. package/lib/solution/VenueBooking/utils/dateSummary.js +62 -25
  569. package/lib/solution/VenueBooking/utils/resource.js +54 -31
  570. package/lib/solution/VenueBooking/utils/slotMerge.d.ts +6 -0
  571. package/lib/solution/VenueBooking/utils/slotMerge.js +109 -90
  572. package/lib/solution/VenueBooking/utils/timeSlot.d.ts +0 -2
  573. package/lib/solution/VenueBooking/utils/timeSlot.js +133 -138
  574. package/lib/solution/VenueBooking/utils.js +67 -130
  575. package/lib/solution/index.d.ts +2 -0
  576. package/lib/solution/index.js +41 -102
  577. package/lib/store/createStore.js +29 -32
  578. package/lib/types/index.d.ts +12 -2
  579. package/lib/types/index.js +16 -4
  580. package/lib/utils/task.js +36 -36
  581. package/lib/utils/watch.js +47 -81
  582. package/package.json +2 -4
  583. package/dist/solution/Checkout/appointmentDemo.json +0 -1
  584. package/dist/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
  585. package/dist/solution/VenueBooking/utils/smartPricing.js +0 -233
  586. package/lib/solution/Checkout/appointmentDemo.json +0 -1
  587. package/lib/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
  588. package/lib/solution/VenueBooking/utils/smartPricing.js +0 -192
@@ -0,0 +1,144 @@
1
+ /**
2
+ * 把 `/order/sales/{id}` 响应(OrderData)解析为 ISalesDetail。
3
+ *
4
+ * - 纯函数:不依赖任何运行时模块/插件,便于单测与 view-model 适配
5
+ * - products 保留 tempOrder / 后端详情原字段,仅规范化集合身份并浅拷贝,避免丢失 product_sku 等协议字段
6
+ * - bookings 平铺保留服务端原顺序,同时输出 byProductUid 反查表与 rootBooking
7
+ * - header 收敛"非数组顶层字段",便于 ticketBooking view-model 直接消费
8
+ *
9
+ * 设计原则参考 `.cursor/rules/data-field-semantics.mdc`:
10
+ * - 字段命名以《统一 Sales 数据协议》为准(OrderData 类型)
11
+ * - root booking 以 `parent_id === 0` 判定,沿用 ticketBooking 现有约定
12
+ * (`packages/private-materials/src/components/ticketBooking/index.tsx`:
13
+ * `booking.parent_id === 0 ? 'list' : 'detail'`)
14
+ * - 不在此处发明等价关系;UI 侧(ticketBooking)若需要别的字段,由 view-model 适配层做转换
15
+ */
16
+ import type { BaseSalesOrderProduct } from '../types';
17
+ export interface ISalesDetailHeader {
18
+ order_id: number | string | null;
19
+ order_number?: string;
20
+ shop_order_number?: string;
21
+ shop_full_order_number?: string;
22
+ type?: string;
23
+ business_code?: string;
24
+ platform?: string;
25
+ sales_channel?: string;
26
+ order_sales_channel?: string;
27
+ vouchers?: any[];
28
+ status?: string;
29
+ payment_status?: string;
30
+ shipping_status?: string;
31
+ customer_id?: number | string | null;
32
+ customer_name?: string;
33
+ country_calling_code?: string;
34
+ phone?: string;
35
+ email?: string;
36
+ is_price_include_tax?: 0 | 1;
37
+ tax_title?: string;
38
+ tax_country_code?: string;
39
+ currency_code?: string;
40
+ currency_symbol?: string;
41
+ currency_format?: string;
42
+ is_deposit?: 0 | 1;
43
+ deposit_amount?: string;
44
+ shop_discount?: string;
45
+ surcharge_fee?: string;
46
+ note?: string;
47
+ schedule_date?: string;
48
+ created_at?: string;
49
+ updated_at?: string | number;
50
+ metadata?: Record<string, any> | null;
51
+ total_amount?: string | number;
52
+ [key: string]: any;
53
+ }
54
+ export interface ISalesDetailCustomer {
55
+ id: number | string | null;
56
+ name: string;
57
+ phone?: string;
58
+ email?: string;
59
+ country_calling_code?: string;
60
+ [key: string]: any;
61
+ }
62
+ export interface ISalesBooking {
63
+ schedule_event_id?: number | null;
64
+ booking_id?: string;
65
+ appointment_status?: string;
66
+ status?: string;
67
+ start_date?: string;
68
+ start_time?: string;
69
+ end_date?: string;
70
+ end_time?: string;
71
+ duration?: number;
72
+ sub_type?: string;
73
+ number?: number;
74
+ resources?: any[];
75
+ product?: any;
76
+ relation_products?: any[];
77
+ relation_type?: string;
78
+ relation_id?: number;
79
+ parent_id?: number | null;
80
+ item_type?: string;
81
+ product_uid?: string;
82
+ metadata?: Record<string, any> | null;
83
+ [key: string]: any;
84
+ }
85
+ export interface ISalesPayment {
86
+ order_payment_id?: number | null;
87
+ custom_payment_id?: number;
88
+ code?: string;
89
+ name?: string;
90
+ type?: string;
91
+ voucher_id?: number | null;
92
+ amount: string;
93
+ origin_amount?: string;
94
+ rounding_amount?: string;
95
+ status?: string;
96
+ payment_time?: string | null;
97
+ service_charge?: Record<string, any> | null;
98
+ metadata?: Record<string, any> | null;
99
+ [key: string]: any;
100
+ }
101
+ export interface ISalesSurcharge {
102
+ order_surcharge_id?: number | null;
103
+ surcharge_id?: number;
104
+ type?: string;
105
+ name?: Record<string, string>;
106
+ description?: Record<string, string>;
107
+ percentage?: string | null;
108
+ fixed?: string | null;
109
+ amount?: string;
110
+ [key: string]: any;
111
+ }
112
+ export interface ISalesDetail {
113
+ /** 顶部订单字段集合(不含 products / bookings / payments / surcharges 等大数组) */
114
+ header: ISalesDetailHeader;
115
+ /** 商品行快照(保留 tempOrder / 后端详情原字段) */
116
+ products: BaseSalesOrderProduct[];
117
+ /** 全部 bookings,按服务端原始顺序输出(含 root + child) */
118
+ bookings: ISalesBooking[];
119
+ /** root booking(parent_id === 0),多个时取首个,无则为 null */
120
+ rootBooking: ISalesBooking | null;
121
+ /** product_uid → bookings 反查表,便于商品行 ↔ booking 映射 */
122
+ bookingsByProductUid: Record<string, ISalesBooking[]>;
123
+ /** 支付列表 */
124
+ payments: ISalesPayment[];
125
+ /** 附加费 */
126
+ surcharges: ISalesSurcharge[];
127
+ /** 订单级折扣列表 */
128
+ discount_list: any[];
129
+ /** 客户信息(按 header 抽取,必要时透传 raw.customer) */
130
+ customer: ISalesDetailCustomer | null;
131
+ /** 服务端 summary(仅输出) */
132
+ summary: Record<string, any>;
133
+ /** 规范化后的响应快照,方便 UI 兜底使用 */
134
+ raw: Record<string, any>;
135
+ }
136
+ /**
137
+ * 将 `/order/sales/{id}` 响应解析为 ISalesDetail。
138
+ *
139
+ * 注意:
140
+ * - 入参允许是 `{ data: OrderData }` 或直接 `OrderData`,自动识别。
141
+ * - products/bookings/payments 在此补齐集合身份;其余 runtime 字段由 OrderModule hydrate 负责。
142
+ * - 不做远程请求;不修改入参;返回新对象。
143
+ */
144
+ export declare function parseSalesResponse(input: Record<string, any> | null | undefined): ISalesDetail;
@@ -0,0 +1,160 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/solution/BaseSales/utils/parseSalesResponse.ts
20
+ var parseSalesResponse_exports = {};
21
+ __export(parseSalesResponse_exports, {
22
+ parseSalesResponse: () => parseSalesResponse
23
+ });
24
+ module.exports = __toCommonJS(parseSalesResponse_exports);
25
+ var import_orderCollectionIdentity = require("../../../modules/Order/utils/orderCollectionIdentity");
26
+ var HEADER_KEYS = [
27
+ "order_id",
28
+ "order_number",
29
+ "shop_order_number",
30
+ "shop_full_order_number",
31
+ "type",
32
+ "business_code",
33
+ "platform",
34
+ "sales_channel",
35
+ "order_sales_channel",
36
+ "vouchers",
37
+ "status",
38
+ "payment_status",
39
+ "shipping_status",
40
+ "customer_id",
41
+ "customer_name",
42
+ "country_calling_code",
43
+ "phone",
44
+ "email",
45
+ "is_price_include_tax",
46
+ "tax_title",
47
+ "tax_country_code",
48
+ "currency_code",
49
+ "currency_symbol",
50
+ "currency_format",
51
+ "is_deposit",
52
+ "deposit_amount",
53
+ "shop_discount",
54
+ "surcharge_fee",
55
+ "note",
56
+ "schedule_date",
57
+ "created_at",
58
+ "updated_at",
59
+ "metadata",
60
+ "total_amount",
61
+ "shop_id",
62
+ "create_date",
63
+ "holder",
64
+ "relation_forms",
65
+ "contacts",
66
+ "contacts_info"
67
+ ];
68
+ function pickHeader(raw) {
69
+ const header = { order_id: (raw == null ? void 0 : raw.order_id) ?? null };
70
+ if (!raw || typeof raw !== "object")
71
+ return header;
72
+ for (const key of HEADER_KEYS) {
73
+ if (raw[key] !== void 0)
74
+ header[key] = raw[key];
75
+ }
76
+ return header;
77
+ }
78
+ function pickCustomer(raw) {
79
+ if (!raw || typeof raw !== "object")
80
+ return null;
81
+ const explicit = raw.customer;
82
+ if (explicit && typeof explicit === "object") {
83
+ return {
84
+ id: explicit.id ?? raw.customer_id ?? null,
85
+ name: explicit.name ?? raw.customer_name ?? "",
86
+ phone: explicit.phone ?? raw.phone,
87
+ email: explicit.email ?? raw.email,
88
+ country_calling_code: explicit.country_calling_code ?? raw.country_calling_code,
89
+ ...explicit
90
+ };
91
+ }
92
+ if (raw.customer_id == null && !raw.customer_name)
93
+ return null;
94
+ return {
95
+ id: raw.customer_id ?? null,
96
+ name: raw.customer_name ?? "",
97
+ phone: raw.phone,
98
+ email: raw.email,
99
+ country_calling_code: raw.country_calling_code
100
+ };
101
+ }
102
+ function isRootBooking(booking) {
103
+ if (!booking || typeof booking !== "object")
104
+ return false;
105
+ const parentId = booking.parent_id;
106
+ if (parentId === 0 || parentId === null || parentId === void 0)
107
+ return true;
108
+ return false;
109
+ }
110
+ function indexBookingsByProductUid(bookings) {
111
+ var _a;
112
+ const result = {};
113
+ for (const b of bookings) {
114
+ const uid = b && (b.product_uid || ((_a = b.metadata) == null ? void 0 : _a.product_uid)) || "";
115
+ if (!uid)
116
+ continue;
117
+ const key = String(uid);
118
+ if (!result[key])
119
+ result[key] = [];
120
+ result[key].push(b);
121
+ }
122
+ return result;
123
+ }
124
+ function parseSalesResponse(input) {
125
+ const sourceRaw = input && typeof input === "object" && input.data && input.order_id == null ? input.data : input || {};
126
+ const raw = (0, import_orderCollectionIdentity.normalizeOrderCollections)(sourceRaw).order;
127
+ const productsRaw = Array.isArray(raw == null ? void 0 : raw.products) ? raw.products : [];
128
+ const products = productsRaw.map((p) => {
129
+ const row = { ...p || {} };
130
+ const metadata = row.metadata && typeof row.metadata === "object" ? { ...row.metadata } : {};
131
+ delete metadata.price_schema_version;
132
+ delete row.identity_key;
133
+ return { ...row, metadata };
134
+ });
135
+ const bookingsRaw = Array.isArray(raw == null ? void 0 : raw.bookings) ? raw.bookings : [];
136
+ const bookings = bookingsRaw.map((b) => ({ ...b || {} }));
137
+ const rootBooking = bookings.find(isRootBooking) || null;
138
+ const bookingsByProductUid = indexBookingsByProductUid(bookings);
139
+ const payments = Array.isArray(raw == null ? void 0 : raw.payments) ? raw.payments.map((p) => ({ ...p || {} })) : [];
140
+ const surcharges = Array.isArray(raw == null ? void 0 : raw.surcharges) ? raw.surcharges.map((s) => ({ ...s || {} })) : [];
141
+ const discount_list = Array.isArray(raw == null ? void 0 : raw.discount_list) ? raw.discount_list.map((d) => ({ ...d || {} })) : [];
142
+ const summary = (raw == null ? void 0 : raw.summary) && typeof raw.summary === "object" ? { ...raw.summary } : {};
143
+ return {
144
+ header: pickHeader(raw),
145
+ products,
146
+ bookings,
147
+ rootBooking,
148
+ bookingsByProductUid,
149
+ payments,
150
+ surcharges,
151
+ discount_list,
152
+ customer: pickCustomer(raw),
153
+ summary,
154
+ raw
155
+ };
156
+ }
157
+ // Annotate the CommonJS export names for ESM import in node:
158
+ 0 && (module.exports = {
159
+ parseSalesResponse
160
+ });
@@ -0,0 +1,18 @@
1
+ import type { QuotationModule } from '../../../modules/Quotation';
2
+ import type { BaseSalesCalculateProductBookingPriceParams, BaseSalesProductBookingPriceResult } from '../types';
3
+ interface BuildBaseSalesQuotationPriceParams extends BaseSalesCalculateProductBookingPriceParams {
4
+ quotation?: (Pick<QuotationModule, 'getPriceForProduct' | 'getQuotationShelfId'> & {
5
+ getQuotationMatchForProduct?: (params: {
6
+ productId: number;
7
+ variantId?: number;
8
+ datetime: string;
9
+ channel?: string;
10
+ customer_id?: number | string;
11
+ }) => {
12
+ price: string | null;
13
+ quotationShelfId: number;
14
+ } | null;
15
+ }) | null;
16
+ }
17
+ export declare function calculateBaseSalesProductBookingPrice(params: BuildBaseSalesQuotationPriceParams): BaseSalesProductBookingPriceResult;
18
+ export {};
@@ -0,0 +1,289 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/solution/BaseSales/utils/quotationPrice.ts
30
+ var quotationPrice_exports = {};
31
+ __export(quotationPrice_exports, {
32
+ calculateBaseSalesProductBookingPrice: () => calculateBaseSalesProductBookingPrice
33
+ });
34
+ module.exports = __toCommonJS(quotationPrice_exports);
35
+ var import_dayjs = __toESM(require("dayjs"));
36
+ var import_decimal = __toESM(require("decimal.js"));
37
+ function toFiniteNumber(value, fallback = 0) {
38
+ const parsedValue = Number(value);
39
+ if (!Number.isFinite(parsedValue))
40
+ return fallback;
41
+ return parsedValue;
42
+ }
43
+ function toPositiveInt(value, fallback = 1) {
44
+ const parsedValue = Math.floor(Number(value));
45
+ if (!Number.isFinite(parsedValue) || parsedValue < 1)
46
+ return fallback;
47
+ return parsedValue;
48
+ }
49
+ function toPriceString(value) {
50
+ return new import_decimal.default(Number(value) || 0).toDecimalPlaces(2).toFixed(2);
51
+ }
52
+ function normalizeDateTime(value) {
53
+ if (typeof value !== "string" || !value.trim())
54
+ return null;
55
+ const normalized = value.includes(":") ? value : `${value} 00:00:00`;
56
+ const datetime = (0, import_dayjs.default)(normalized);
57
+ if (!datetime.isValid())
58
+ return null;
59
+ return datetime;
60
+ }
61
+ function buildBookingDateTime(date, time) {
62
+ if (typeof date !== "string" || !date.trim())
63
+ return null;
64
+ const timeText = typeof time === "string" && time.trim() ? time.trim() : "00:00";
65
+ const datetime = (0, import_dayjs.default)(`${date.trim()} ${timeText}`);
66
+ if (!datetime.isValid())
67
+ return null;
68
+ return datetime;
69
+ }
70
+ function getDurationUnit(type) {
71
+ const normalizedType = String(type || "").toLowerCase();
72
+ if (normalizedType === "day" || normalizedType === "days")
73
+ return "day";
74
+ if (normalizedType === "minute" || normalizedType === "minutes")
75
+ return "minute";
76
+ return null;
77
+ }
78
+ function getProductId(product) {
79
+ const productId = toFiniteNumber(product.product_id ?? product.id, NaN);
80
+ if (!Number.isFinite(productId))
81
+ return null;
82
+ return productId;
83
+ }
84
+ function getProductVariantId(product) {
85
+ const variantId = toFiniteNumber(
86
+ product.product_variant_id ?? product.variant_id,
87
+ 0
88
+ );
89
+ if (!Number.isFinite(variantId) || variantId <= 0)
90
+ return void 0;
91
+ return variantId;
92
+ }
93
+ function getFallbackPrice(params) {
94
+ const product = params.product || {};
95
+ return toPriceString(
96
+ params.fallback_price ?? product.price ?? product.selling_price ?? product.original_price ?? 0
97
+ );
98
+ }
99
+ function getProductQuantity(product) {
100
+ return toPositiveInt(product.num ?? product.quantity, 1);
101
+ }
102
+ function getBundleProductId(bundle) {
103
+ const productId = toFiniteNumber(
104
+ bundle.bundle_product_id ?? bundle._bundle_product_id,
105
+ NaN
106
+ );
107
+ if (!Number.isFinite(productId))
108
+ return null;
109
+ return productId;
110
+ }
111
+ function getBundleVariantId(bundle) {
112
+ const variantId = toFiniteNumber(
113
+ bundle.bundle_variant_id ?? bundle.variant_id,
114
+ 0
115
+ );
116
+ if (!Number.isFinite(variantId) || variantId <= 0)
117
+ return void 0;
118
+ return variantId;
119
+ }
120
+ function getBundleFallbackPrice(bundle) {
121
+ return toPriceString(
122
+ bundle.bundle_selling_price ?? bundle.price ?? bundle.original_price ?? bundle.base_price ?? 0
123
+ );
124
+ }
125
+ function shouldSplitByDuration(duration, start, end) {
126
+ if (!duration)
127
+ return false;
128
+ if (!start || !end || !end.isAfter(start))
129
+ return false;
130
+ const unit = getDurationUnit(duration.type);
131
+ const value = toFiniteNumber(duration.value);
132
+ return !!unit && value > 0;
133
+ }
134
+ function buildTimeSegments(params) {
135
+ const booking = params.booking || {};
136
+ const explicitDatetime = normalizeDateTime(params.datetime);
137
+ const bookingStart = buildBookingDateTime(booking.start_date, booking.start_time);
138
+ const start = bookingStart || explicitDatetime || (0, import_dayjs.default)();
139
+ const bookingEnd = buildBookingDateTime(booking.end_date, booking.end_time);
140
+ if (!shouldSplitByDuration(params.duration, start, bookingEnd)) {
141
+ return [{ start }];
142
+ }
143
+ const unit = getDurationUnit(params.duration.type);
144
+ const value = toFiniteNumber(params.duration.value);
145
+ const segments = [];
146
+ let cursor = start;
147
+ let guard = 0;
148
+ while (cursor.isBefore(bookingEnd) && guard < 1e4) {
149
+ const next = cursor.add(value, unit);
150
+ segments.push({
151
+ start: cursor,
152
+ end: next.isBefore(bookingEnd) ? next : bookingEnd ?? void 0
153
+ });
154
+ cursor = next;
155
+ guard += 1;
156
+ }
157
+ return segments.length ? segments : [{ start }];
158
+ }
159
+ function formatTimePoint(datetime) {
160
+ return datetime.format("YYYY-MM-DD HH:mm:ss");
161
+ }
162
+ function buildPriceSegment(params) {
163
+ const timePoint = formatTimePoint(params.segment.start);
164
+ const match = params.quotation && params.productId !== null && params.quotation.getQuotationMatchForProduct ? params.quotation.getQuotationMatchForProduct({
165
+ productId: params.productId,
166
+ variantId: params.variantId,
167
+ datetime: timePoint,
168
+ channel: params.channel,
169
+ customer_id: params.customerId
170
+ }) : null;
171
+ const quotedPrice = match ? match.price : params.quotation && params.productId !== null ? params.quotation.getPriceForProduct({
172
+ productId: params.productId,
173
+ variantId: params.variantId,
174
+ datetime: timePoint,
175
+ channel: params.channel,
176
+ customer_id: params.customerId
177
+ }) : null;
178
+ const unitPrice = toPriceString(quotedPrice ?? params.fallbackPrice);
179
+ const quotationShelfId = quotedPrice !== null ? (match == null ? void 0 : match.quotationShelfId) ?? (params.quotation && params.productId !== null ? params.quotation.getQuotationShelfId({
180
+ productId: params.productId,
181
+ variantId: params.variantId,
182
+ datetime: timePoint,
183
+ channel: params.channel,
184
+ customer_id: params.customerId
185
+ }) : 0) : 0;
186
+ return {
187
+ start_datetime: timePoint,
188
+ end_datetime: params.segment.end ? formatTimePoint(params.segment.end) : void 0,
189
+ time_point: timePoint,
190
+ unit_price: unitPrice,
191
+ quantity: 1,
192
+ total_price: unitPrice,
193
+ quotation_shelf_id: quotationShelfId,
194
+ source: quotedPrice !== null ? "quotation" : "fallback"
195
+ };
196
+ }
197
+ function calculatePriceForProduct(params) {
198
+ var _a;
199
+ const segments = params.segments.map((segment) => buildPriceSegment({
200
+ quotation: params.quotation,
201
+ productId: params.productId,
202
+ variantId: params.variantId,
203
+ customerId: params.customerId,
204
+ channel: params.channel,
205
+ fallbackPrice: params.fallbackPrice,
206
+ segment
207
+ }));
208
+ const unitPrice = segments.reduce(
209
+ (total, segment) => total.plus(segment.total_price),
210
+ new import_decimal.default(0)
211
+ );
212
+ const totalPrice = unitPrice.times(params.quantity);
213
+ const quotationShelfId = ((_a = segments.find((segment) => segment.quotation_shelf_id)) == null ? void 0 : _a.quotation_shelf_id) || 0;
214
+ return {
215
+ unitPrice,
216
+ totalPrice,
217
+ quotationShelfId,
218
+ segments
219
+ };
220
+ }
221
+ function calculateBundlePrices(params, segments) {
222
+ var _a;
223
+ const bundleList = ((_a = params.product) == null ? void 0 : _a.product_bundle) || [];
224
+ if (!bundleList.length)
225
+ return void 0;
226
+ return bundleList.map((bundle) => {
227
+ const productId = getBundleProductId(bundle);
228
+ const variantId = getBundleVariantId(bundle);
229
+ const quantity = getProductQuantity(bundle);
230
+ const price = calculatePriceForProduct({
231
+ quotation: params.quotation,
232
+ productId,
233
+ variantId,
234
+ customerId: params.customer_id,
235
+ channel: params.channel,
236
+ quantity,
237
+ fallbackPrice: getBundleFallbackPrice(bundle),
238
+ segments
239
+ });
240
+ return {
241
+ bundle_id: bundle.bundle_id ?? bundle.id,
242
+ group_id: bundle.group_id,
243
+ bundle_group_id: bundle.bundle_group_id,
244
+ bundle_product_id: productId,
245
+ bundle_variant_id: variantId ?? 0,
246
+ unit_price: price.unitPrice.toDecimalPlaces(2).toFixed(2),
247
+ total_price: price.totalPrice.toDecimalPlaces(2).toFixed(2),
248
+ quantity,
249
+ quotation_shelf_id: price.quotationShelfId,
250
+ source: price.segments.some((segment) => segment.source === "quotation") ? "quotation" : "fallback",
251
+ segments: price.segments
252
+ };
253
+ });
254
+ }
255
+ function calculateBaseSalesProductBookingPrice(params) {
256
+ const product = params.product || {};
257
+ const productId = getProductId(product);
258
+ const variantId = getProductVariantId(product);
259
+ const productQuantity = getProductQuantity(product);
260
+ const fallbackPrice = getFallbackPrice(params);
261
+ const timeSegments = buildTimeSegments(params);
262
+ const price = calculatePriceForProduct({
263
+ quotation: params.quotation,
264
+ productId,
265
+ variantId,
266
+ customerId: params.customer_id,
267
+ channel: params.channel,
268
+ quantity: productQuantity,
269
+ fallbackPrice,
270
+ segments: timeSegments
271
+ });
272
+ const bundlePrices = calculateBundlePrices(params, timeSegments);
273
+ return {
274
+ product_id: productId,
275
+ product_variant_id: variantId ?? 0,
276
+ customer_id: params.customer_id,
277
+ unit_price: price.unitPrice.toDecimalPlaces(2).toFixed(2),
278
+ total_price: price.totalPrice.toDecimalPlaces(2).toFixed(2),
279
+ quantity: productQuantity,
280
+ duration: params.duration,
281
+ quotation_shelf_id: price.quotationShelfId,
282
+ segments: price.segments,
283
+ ...bundlePrices ? { product_bundle: bundlePrices } : {}
284
+ };
285
+ }
286
+ // Annotate the CommonJS export names for ESM import in node:
287
+ 0 && (module.exports = {
288
+ calculateBaseSalesProductBookingPrice
289
+ });
@@ -0,0 +1,63 @@
1
+ import type { OrderProduct, OrderProductIdentity } from '../../../modules/Order/types';
2
+ import type { ProductData } from '../../../modules/Product/types';
3
+ export interface BaseProductDetailOptionItem {
4
+ option_group_item_id?: number | string;
5
+ option_group_id?: number | string;
6
+ num?: number | string;
7
+ quantity?: number | string;
8
+ price?: number | string;
9
+ add_price?: number | string;
10
+ [key: string]: any;
11
+ }
12
+ export interface BaseProductDetailBundleItem {
13
+ option?: BaseProductDetailOptionItem[];
14
+ [key: string]: any;
15
+ }
16
+ export interface BaseProductDetailPayload {
17
+ id?: number | string | null;
18
+ product_id?: number | string | null;
19
+ variant_id?: number | string | null;
20
+ product_variant_id?: number | string | null;
21
+ quantity?: number | string;
22
+ num?: number | string;
23
+ option?: BaseProductDetailOptionItem[];
24
+ options?: BaseProductDetailOptionItem[];
25
+ product_option_item?: BaseProductDetailOptionItem[];
26
+ product_sku?: Record<string, any>;
27
+ bundle?: BaseProductDetailBundleItem[];
28
+ product_bundle?: BaseProductDetailBundleItem[];
29
+ unique?: string;
30
+ unique_identification_number?: string;
31
+ session?: any;
32
+ form?: any;
33
+ service_times?: any;
34
+ machine_code?: string;
35
+ schedule_id?: number[];
36
+ duration?: number;
37
+ policy_id?: number;
38
+ source_shop_id?: number;
39
+ origin?: Record<string, any>;
40
+ _origin?: Record<string, any>;
41
+ price?: number | string;
42
+ selling_price?: number | string;
43
+ original_price?: number | string;
44
+ tax_fee?: number | string;
45
+ is_charge_tax?: number;
46
+ note?: string;
47
+ [key: string]: any;
48
+ }
49
+ export interface TransformBaseProductToOrderProductParams {
50
+ payload: BaseProductDetailPayload;
51
+ fallbackProductId?: number | string | null;
52
+ sourceProduct?: ProductData | Record<string, any> | null;
53
+ sourceItem?: ProductData | Record<string, any> | null;
54
+ }
55
+ export type BaseProductOrderProductInput = Partial<OrderProduct> & OrderProductIdentity & {
56
+ _origin?: Record<string, any>;
57
+ };
58
+ /**
59
+ * 将商品列表原始数据 + 商品详情选择回调转换成 OrderModule.addProductToOrder 入参。
60
+ *
61
+ * 注意:这里不生成 identity,缺省时由 OrderModule 自动补齐。
62
+ */
63
+ export declare function transformBaseProductToOrderProduct(params: TransformBaseProductToOrderProductParams): BaseProductOrderProductInput | null;