@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
@@ -1,24 +1,36 @@
1
- "use strict";
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);
2
18
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
19
+ // src/model/strategy/adapter/dataVariant/evaluator.ts
20
+ var evaluator_exports = {};
21
+ __export(evaluator_exports, {
22
+ DataVariantEvaluator: () => DataVariantEvaluator,
23
+ default: () => evaluator_default
5
24
  });
6
- exports.default = exports.DataVariantEvaluator = void 0;
7
- var _engine = require("../../engine");
8
- var _getDateIsInSchedule = require("../../../../modules/Schedule/getDateIsInSchedule");
9
- var _adapter = require("./adapter");
10
- /**
11
- * Data Variant 评估器。
12
- *
13
- * 当前阶段只提供策略模型能力和示例验证,不接入 ProductList 业务链路。
14
- */
15
- class DataVariantEvaluator {
16
- adapter;
17
- strategyConfigs = [];
25
+ module.exports = __toCommonJS(evaluator_exports);
26
+ var import_engine = require("../../engine");
27
+ var import_getDateIsInSchedule = require("../../../../modules/Schedule/getDateIsInSchedule");
28
+ var import_adapter = require("./adapter");
29
+ var DataVariantEvaluator = class {
18
30
  constructor() {
19
- this.adapter = new _adapter.DataVariantAdapter();
31
+ this.strategyConfigs = [];
32
+ this.adapter = new import_adapter.DataVariantAdapter();
20
33
  }
21
-
22
34
  /**
23
35
  * 设置策略配置列表,仅保留 metadata.type === 'data_variant' 的策略。
24
36
  */
@@ -28,7 +40,6 @@ class DataVariantEvaluator {
28
40
  getStrategyConfigs() {
29
41
  return this.strategyConfigs;
30
42
  }
31
-
32
43
  /**
33
44
  * 批量解析商品 Data Variant。
34
45
  *
@@ -37,15 +48,28 @@ class DataVariantEvaluator {
37
48
  resolveProducts(businessData) {
38
49
  const strategyConfigs = businessData.strategyConfigs ? this.normalizeStrategyConfigs(businessData.strategyConfigs) : this.strategyConfigs;
39
50
  const menuScopeMap = this.buildMenuScopeMap(businessData.menuList || []);
40
- const scheduleTimePoints = this.buildScheduleTimePoints(strategyConfigs, businessData.scheduleList || []);
41
- const {
42
- globalEffectiveRuleMap,
43
- rawResults
44
- } = this.buildGlobalEffectiveRuleMap(strategyConfigs, businessData, menuScopeMap);
45
- const products = businessData.products.map(product => {
46
- const resolvedProduct = this.resolveProduct(product, businessData, globalEffectiveRuleMap, menuScopeMap);
47
- // 套餐子商品也可能携带 data_variants,需在同一策略上下文内继续评估并写回 bundle_item。
48
- return this.resolveProductBundleItems(resolvedProduct, businessData, globalEffectiveRuleMap, menuScopeMap);
51
+ const scheduleTimePoints = this.buildScheduleTimePoints(
52
+ strategyConfigs,
53
+ businessData.scheduleList || []
54
+ );
55
+ const { globalEffectiveRuleMap, rawResults } = this.buildGlobalEffectiveRuleMap(
56
+ strategyConfigs,
57
+ businessData,
58
+ menuScopeMap
59
+ );
60
+ const products = businessData.products.map((product) => {
61
+ const resolvedProduct = this.resolveProduct(
62
+ product,
63
+ businessData,
64
+ globalEffectiveRuleMap,
65
+ menuScopeMap
66
+ );
67
+ return this.resolveProductBundleItems(
68
+ resolvedProduct,
69
+ businessData,
70
+ globalEffectiveRuleMap,
71
+ menuScopeMap
72
+ );
49
73
  });
50
74
  return {
51
75
  products,
@@ -55,51 +79,55 @@ class DataVariantEvaluator {
55
79
  rawResults
56
80
  };
57
81
  }
58
-
59
82
  /**
60
83
  * 根据 operator/field 判断条件是否依赖当前商品。
61
84
  */
62
85
  getConditionScope(rule) {
63
- if (rule.operator === 'schedule_match') return 'global';
64
- if (rule.operator === 'menu_match') return 'product';
65
- if (rule.operator === 'product_match') return 'product';
66
- if (rule.field === 'product' || rule.field === 'productIdAndVariantId') {
67
- return 'product';
86
+ if (rule.operator === "schedule_match")
87
+ return "global";
88
+ if (rule.operator === "menu_match")
89
+ return "product";
90
+ if (rule.operator === "product_match")
91
+ return "product";
92
+ if (rule.field === "product" || rule.field === "productIdAndVariantId") {
93
+ return "product";
68
94
  }
69
- return 'global';
95
+ return "global";
70
96
  }
71
-
72
97
  /**
73
98
  * 将餐牌 partyroom_package 预构建为 Map/Set 索引。
74
99
  */
75
100
  buildMenuScopeMap(menuList) {
76
- const map = new Map();
101
+ const map = /* @__PURE__ */ new Map();
77
102
  for (const menu of menuList) {
78
- if (menu?.status && menu.status !== 'valid') continue;
79
- const menuId = this.toNumber(menu?.form_record_id);
80
- if (!menuId) continue;
103
+ if ((menu == null ? void 0 : menu.status) && menu.status !== "valid")
104
+ continue;
105
+ const menuId = this.toNumber(menu == null ? void 0 : menu.form_record_id);
106
+ if (!menuId)
107
+ continue;
81
108
  const scope = {
82
109
  isAllProducts: false,
83
- collectionIds: new Set(),
84
- productKeys: new Set(),
85
- productAllVariantIds: new Set()
110
+ collectionIds: /* @__PURE__ */ new Set(),
111
+ productKeys: /* @__PURE__ */ new Set(),
112
+ productAllVariantIds: /* @__PURE__ */ new Set()
86
113
  };
87
114
  const packageConfig = menu.partyroom_package;
88
- const products = Array.isArray(packageConfig?.products) ? packageConfig.products : [];
89
- if (packageConfig?.type === 'product_all') {
115
+ const products = Array.isArray(packageConfig == null ? void 0 : packageConfig.products) ? packageConfig.products : [];
116
+ if ((packageConfig == null ? void 0 : packageConfig.type) === "product_all") {
90
117
  scope.isAllProducts = true;
91
- } else if (packageConfig?.type === 'product_collection') {
118
+ } else if ((packageConfig == null ? void 0 : packageConfig.type) === "product_collection") {
92
119
  for (const item of products) {
93
120
  const collectionId = this.toNumber(item.product_collection_id);
94
121
  if (collectionId) {
95
122
  scope.collectionIds.add(collectionId);
96
123
  }
97
124
  }
98
- } else if (packageConfig?.type === 'products') {
125
+ } else if ((packageConfig == null ? void 0 : packageConfig.type) === "products") {
99
126
  for (const item of products) {
100
127
  const productId = this.toNumber(item.product_id);
101
128
  const variantId = this.toNumber(item.product_variant_id);
102
- if (!productId) continue;
129
+ if (!productId)
130
+ continue;
103
131
  if (variantId === 0) {
104
132
  scope.productAllVariantIds.add(productId);
105
133
  } else {
@@ -111,7 +139,6 @@ class DataVariantEvaluator {
111
139
  }
112
140
  return map;
113
141
  }
114
-
115
142
  /**
116
143
  * 从当前策略中所有 schedule_match.value 绑定的 schedule_id 提取时间点。
117
144
  *
@@ -119,25 +146,27 @@ class DataVariantEvaluator {
119
146
  */
120
147
  buildScheduleTimePoints(strategyConfigs, scheduleList) {
121
148
  const scheduleIds = this.collectScheduleIdsFromStrategies(strategyConfigs);
122
- if (!scheduleIds.length || !scheduleList.length) return [];
149
+ if (!scheduleIds.length || !scheduleList.length)
150
+ return [];
123
151
  const scheduleIdSet = new Set(scheduleIds);
124
- const matchedSchedules = scheduleList.filter(schedule => scheduleIdSet.has(Number(schedule.id)));
152
+ const matchedSchedules = scheduleList.filter(
153
+ (schedule) => scheduleIdSet.has(Number(schedule.id))
154
+ );
125
155
  return this.extractTimePointsFromSchedules(matchedSchedules);
126
156
  }
127
157
  buildGlobalEffectiveRuleMap(strategyConfigs, businessData, menuScopeMap) {
128
- const globalEffectiveRuleMap = new Map();
158
+ const globalEffectiveRuleMap = /* @__PURE__ */ new Map();
129
159
  const rawResults = [];
130
160
  const engine = this.createEngine(businessData, menuScopeMap);
131
161
  const context = this.adapter.prepareGlobalContext(businessData);
132
162
  for (const config of strategyConfigs) {
133
- if (!this.isStrategyActive(config)) continue;
134
- const {
135
- globalConfig,
136
- productRules
137
- } = this.splitStrategyConfig(config);
163
+ if (!this.isStrategyActive(config))
164
+ continue;
165
+ const { globalConfig, productRules } = this.splitStrategyConfig(config);
138
166
  const result = engine.evaluate(globalConfig, context);
139
167
  rawResults.push(result);
140
- if (!result.applicable) continue;
168
+ if (!result.applicable)
169
+ continue;
141
170
  globalEffectiveRuleMap.set(String(config.metadata.id), {
142
171
  ruleId: String(config.metadata.id),
143
172
  priority: this.getStrategyPriority(config),
@@ -146,18 +175,19 @@ class DataVariantEvaluator {
146
175
  globalResult: result
147
176
  });
148
177
  }
149
- return {
150
- globalEffectiveRuleMap,
151
- rawResults
152
- };
178
+ return { globalEffectiveRuleMap, rawResults };
153
179
  }
154
180
  resolveProduct(product, businessData, globalEffectiveRuleMap, menuScopeMap) {
155
181
  const dataVariants = this.getProductDataVariants(product);
156
- if (!dataVariants.length) return product;
182
+ if (!dataVariants.length)
183
+ return product;
157
184
  const matchedVariants = [];
158
185
  for (const variant of dataVariants) {
159
- const rule = globalEffectiveRuleMap.get(String(variant.data_variant_rule_id));
160
- if (!rule) continue;
186
+ const rule = globalEffectiveRuleMap.get(
187
+ String(variant.data_variant_rule_id)
188
+ );
189
+ if (!rule)
190
+ continue;
161
191
  if (!this.evaluateProductRules(rule, product, businessData, menuScopeMap)) {
162
192
  continue;
163
193
  }
@@ -168,10 +198,10 @@ class DataVariantEvaluator {
168
198
  variant
169
199
  });
170
200
  }
171
- if (!matchedVariants.length) return product;
201
+ if (!matchedVariants.length)
202
+ return product;
172
203
  return this.mergeMatchedVariants(product, matchedVariants);
173
204
  }
174
-
175
205
  /**
176
206
  * 解析套餐子商品上的 Data Variant 覆盖。
177
207
  *
@@ -182,14 +212,21 @@ class DataVariantEvaluator {
182
212
  if (!Array.isArray(bundleGroups) || bundleGroups.length === 0) {
183
213
  return product;
184
214
  }
185
- const resolvedGroups = bundleGroups.map(group => {
186
- const bundleItems = group?.bundle_item;
215
+ const resolvedGroups = bundleGroups.map((group) => {
216
+ const bundleItems = group == null ? void 0 : group.bundle_item;
187
217
  if (!Array.isArray(bundleItems) || bundleItems.length === 0) {
188
218
  return group;
189
219
  }
190
220
  return {
191
221
  ...group,
192
- bundle_item: bundleItems.map(item => this.resolveBundleItem(item, businessData, globalEffectiveRuleMap, menuScopeMap))
222
+ bundle_item: bundleItems.map(
223
+ (item) => this.resolveBundleItem(
224
+ item,
225
+ businessData,
226
+ globalEffectiveRuleMap,
227
+ menuScopeMap
228
+ )
229
+ )
193
230
  };
194
231
  });
195
232
  return {
@@ -197,7 +234,6 @@ class DataVariantEvaluator {
197
234
  bundle_group: resolvedGroups
198
235
  };
199
236
  }
200
-
201
237
  /**
202
238
  * 将 bundle_item 转为 DataVariantProduct 并评估 data_variants。
203
239
  */
@@ -206,10 +242,14 @@ class DataVariantEvaluator {
206
242
  if (!this.getProductDataVariants(bundleProduct).length) {
207
243
  return item;
208
244
  }
209
- const resolvedItem = this.resolveProduct(bundleProduct, businessData, globalEffectiveRuleMap, menuScopeMap);
245
+ const resolvedItem = this.resolveProduct(
246
+ bundleProduct,
247
+ businessData,
248
+ globalEffectiveRuleMap,
249
+ menuScopeMap
250
+ );
210
251
  return this.mergeBundleItemResolvedData(item, resolvedItem);
211
252
  }
212
-
213
253
  /**
214
254
  * bundle_item 的商品身份映射:bundle_product_id + bundle_variant_id。
215
255
  */
@@ -225,20 +265,18 @@ class DataVariantEvaluator {
225
265
  data_variants: item.data_variants
226
266
  };
227
267
  }
228
-
229
268
  /**
230
269
  * 仅回写命中的字段,避免污染 bundle_item 的结构字段。
231
270
  */
232
271
  mergeBundleItemResolvedData(originalItem, resolvedItem) {
272
+ var _a;
233
273
  const appliedInfo = resolvedItem._dataVariant;
234
- if (!appliedInfo?.appliedFields?.length) {
274
+ if (!((_a = appliedInfo == null ? void 0 : appliedInfo.appliedFields) == null ? void 0 : _a.length)) {
235
275
  return originalItem;
236
276
  }
237
- const result = {
238
- ...originalItem
239
- };
277
+ const result = { ...originalItem };
240
278
  for (const field of appliedInfo.appliedFields) {
241
- if (resolvedItem[field] !== undefined) {
279
+ if (resolvedItem[field] !== void 0) {
242
280
  result[field] = resolvedItem[field];
243
281
  }
244
282
  }
@@ -246,20 +284,20 @@ class DataVariantEvaluator {
246
284
  return result;
247
285
  }
248
286
  evaluateProductRules(rule, product, businessData, menuScopeMap) {
249
- if (!rule.productRules.length) return true;
287
+ if (!rule.productRules.length)
288
+ return true;
250
289
  const engine = this.createEngine(businessData, menuScopeMap);
251
290
  const context = this.adapter.prepareProductContext(businessData, product);
252
291
  const productOnlyConfig = {
253
292
  ...rule.strategyConfig,
254
293
  conditions: {
255
- operator: 'and',
294
+ operator: "and",
256
295
  rules: rule.productRules,
257
296
  actionIds: rule.strategyConfig.conditions.actionIds || []
258
297
  }
259
298
  };
260
299
  return engine.evaluate(productOnlyConfig, context).applicable;
261
300
  }
262
-
263
301
  /**
264
302
  * 拆分策略条件。
265
303
  *
@@ -269,7 +307,7 @@ class DataVariantEvaluator {
269
307
  const conditions = config.conditions;
270
308
  const globalRules = [];
271
309
  const productRules = [];
272
- if (conditions.operator !== 'and') {
310
+ if (conditions.operator !== "and") {
273
311
  return {
274
312
  globalConfig: {
275
313
  ...config,
@@ -283,7 +321,7 @@ class DataVariantEvaluator {
283
321
  productRules.push(...this.flattenConditionRules(rule));
284
322
  continue;
285
323
  }
286
- if (this.getConditionScope(rule) === 'product') {
324
+ if (this.getConditionScope(rule) === "product") {
287
325
  productRules.push(rule);
288
326
  } else {
289
327
  globalRules.push(rule);
@@ -293,7 +331,7 @@ class DataVariantEvaluator {
293
331
  globalConfig: {
294
332
  ...config,
295
333
  conditions: {
296
- operator: 'and',
334
+ operator: "and",
297
335
  rules: globalRules,
298
336
  actionIds: conditions.actionIds || []
299
337
  }
@@ -303,48 +341,62 @@ class DataVariantEvaluator {
303
341
  }
304
342
  createEngine(businessData, menuScopeMap) {
305
343
  const operatorHandlers = {
306
- schedule_match: (fieldValue, compareValue) => this.evaluateScheduleMatch(fieldValue, compareValue, businessData.scheduleList || []),
344
+ schedule_match: (fieldValue, compareValue) => this.evaluateScheduleMatch(
345
+ fieldValue,
346
+ compareValue,
347
+ businessData.scheduleList || []
348
+ ),
307
349
  menu_match: (fieldValue, compareValue) => this.evaluateMenuMatch(fieldValue, compareValue, menuScopeMap),
308
350
  array_intersects: (fieldValue, compareValue) => this.evaluateArrayIntersects(fieldValue, compareValue)
309
351
  };
310
- return new _engine.StrategyEngine({
352
+ return new import_engine.StrategyEngine({
311
353
  debug: false,
312
354
  enableTrace: false,
313
355
  operatorHandlers
314
356
  });
315
357
  }
316
358
  evaluateScheduleMatch(fieldValue, compareValue, scheduleList) {
317
- const scheduleDateTime = String(fieldValue || '');
359
+ const scheduleDateTime = String(fieldValue || "");
318
360
  const scheduleIds = this.normalizeNumberArray(compareValue);
319
- if (!scheduleIds.length) return true;
320
- if (!scheduleDateTime || !scheduleList?.length) return false;
321
- const matchedSchedules = scheduleList.filter(schedule => scheduleIds.includes(Number(schedule.id)));
322
- return (0, _getDateIsInSchedule.getDateIsInSchedule)(scheduleDateTime, matchedSchedules);
361
+ if (!scheduleIds.length)
362
+ return true;
363
+ if (!scheduleDateTime || !(scheduleList == null ? void 0 : scheduleList.length))
364
+ return false;
365
+ const matchedSchedules = scheduleList.filter(
366
+ (schedule) => scheduleIds.includes(Number(schedule.id))
367
+ );
368
+ return (0, import_getDateIsInSchedule.getDateIsInSchedule)(scheduleDateTime, matchedSchedules);
323
369
  }
324
370
  evaluateMenuMatch(fieldValue, compareValue, menuScopeMap) {
325
371
  const menuIds = this.normalizeNumberArray(compareValue);
326
- if (!menuIds.length) return true;
372
+ if (!menuIds.length)
373
+ return true;
327
374
  for (const menuId of menuIds) {
328
375
  const scope = menuScopeMap.get(menuId);
329
- if (!scope) continue;
330
- if (this.isProductInMenuScope(fieldValue, scope)) return true;
376
+ if (!scope)
377
+ continue;
378
+ if (this.isProductInMenuScope(fieldValue, scope))
379
+ return true;
331
380
  }
332
381
  return false;
333
382
  }
334
383
  evaluateArrayIntersects(fieldValue, compareValue) {
335
384
  const fieldValues = this.normalizeComparableArray(fieldValue);
336
385
  const compareValues = this.normalizeComparableArray(compareValue);
337
- if (!fieldValues.length || !compareValues.length) return false;
386
+ if (!fieldValues.length || !compareValues.length)
387
+ return false;
338
388
  const compareSet = new Set(compareValues);
339
- return fieldValues.some(item => compareSet.has(item));
389
+ return fieldValues.some((item) => compareSet.has(item));
340
390
  }
341
391
  collectScheduleIdsFromStrategies(strategyConfigs) {
342
- const scheduleIds = new Set();
392
+ const scheduleIds = /* @__PURE__ */ new Set();
343
393
  for (const config of strategyConfigs) {
344
- if (!this.isStrategyActive(config)) continue;
394
+ if (!this.isStrategyActive(config))
395
+ continue;
345
396
  const rules = this.flattenConditionRules(config.conditions);
346
397
  for (const rule of rules) {
347
- if (rule.operator !== 'schedule_match') continue;
398
+ if (rule.operator !== "schedule_match")
399
+ continue;
348
400
  for (const scheduleId of this.normalizeNumberArray(rule.value)) {
349
401
  scheduleIds.add(scheduleId);
350
402
  }
@@ -353,89 +405,95 @@ class DataVariantEvaluator {
353
405
  return Array.from(scheduleIds);
354
406
  }
355
407
  extractTimePointsFromSchedules(schedules) {
356
- const timePoints = new Set();
408
+ const timePoints = /* @__PURE__ */ new Set();
357
409
  for (const schedule of schedules) {
358
410
  switch (schedule.type) {
359
- case 'standard':
360
- {
361
- this.addDateTimePoint(timePoints, schedule.start_time);
362
- this.addDateTimePoint(timePoints, schedule.end_time);
363
- break;
364
- }
365
- case 'time-slots':
366
- {
367
- const slots = Array.isArray(schedule.time_slot) ? schedule.time_slot : [];
368
- for (const slot of slots) {
369
- this.addRawTimePoint(timePoints, slot.start_time);
370
- this.addRawTimePoint(timePoints, slot.end_time);
371
- }
372
- break;
411
+ case "standard": {
412
+ this.addDateTimePoint(timePoints, schedule.start_time);
413
+ this.addDateTimePoint(timePoints, schedule.end_time);
414
+ break;
415
+ }
416
+ case "time-slots": {
417
+ const slots = Array.isArray(schedule.time_slot) ? schedule.time_slot : [];
418
+ for (const slot of slots) {
419
+ this.addRawTimePoint(timePoints, slot.start_time);
420
+ this.addRawTimePoint(timePoints, slot.end_time);
373
421
  }
374
- case 'designation':
375
- {
376
- const designations = Array.isArray(schedule.designation) ? schedule.designation : schedule.designation ? [schedule.designation] : [];
377
- for (const designation of designations) {
378
- this.addRawTimePoint(timePoints, designation.start_time);
379
- this.addRawTimePoint(timePoints, designation.end_time);
380
- }
381
- break;
422
+ break;
423
+ }
424
+ case "designation": {
425
+ const designations = Array.isArray(schedule.designation) ? schedule.designation : schedule.designation ? [schedule.designation] : [];
426
+ for (const designation of designations) {
427
+ this.addRawTimePoint(timePoints, designation.start_time);
428
+ this.addRawTimePoint(timePoints, designation.end_time);
382
429
  }
430
+ break;
431
+ }
383
432
  default:
384
433
  break;
385
434
  }
386
435
  }
387
- return Array.from(timePoints).sort((a, b) => this.timeToMinutes(a) - this.timeToMinutes(b));
436
+ return Array.from(timePoints).sort(
437
+ (a, b) => this.timeToMinutes(a) - this.timeToMinutes(b)
438
+ );
388
439
  }
389
440
  addDateTimePoint(points, value) {
390
441
  const time = this.extractTimeFromDateTime(value);
391
- if (time) points.add(time);
442
+ if (time)
443
+ points.add(time);
392
444
  }
393
445
  addRawTimePoint(points, value) {
394
446
  const time = this.normalizeTime(value);
395
- if (time) points.add(time);
447
+ if (time)
448
+ points.add(time);
396
449
  }
397
450
  extractTimeFromDateTime(value) {
398
- if (!value) return null;
451
+ if (!value)
452
+ return null;
399
453
  const match = value.match(/(\d{1,2}):(\d{2})/);
400
- if (!match) return null;
401
- return `${match[1].padStart(2, '0')}:${match[2]}`;
454
+ if (!match)
455
+ return null;
456
+ return `${match[1].padStart(2, "0")}:${match[2]}`;
402
457
  }
403
458
  normalizeTime(value) {
404
- if (!value) return null;
459
+ if (!value)
460
+ return null;
405
461
  const match = value.match(/^(\d{1,2}):(\d{2})/);
406
- if (!match) return null;
407
- return `${match[1].padStart(2, '0')}:${match[2]}`;
462
+ if (!match)
463
+ return null;
464
+ return `${match[1].padStart(2, "0")}:${match[2]}`;
408
465
  }
409
466
  timeToMinutes(value) {
410
- const [hour, minute] = value.split(':').map(item => Number(item));
411
- if (!Number.isFinite(hour) || !Number.isFinite(minute)) return 0;
467
+ const [hour, minute] = value.split(":").map((item) => Number(item));
468
+ if (!Number.isFinite(hour) || !Number.isFinite(minute))
469
+ return 0;
412
470
  return hour * 60 + minute;
413
471
  }
414
472
  isProductInMenuScope(product, scope) {
415
- if (scope.isAllProducts) return true;
416
- if (!product || typeof product !== 'object') return false;
473
+ if (scope.isAllProducts)
474
+ return true;
475
+ if (!product || typeof product !== "object")
476
+ return false;
417
477
  const productId = this.toNumber(product.id ?? product.product_id);
418
478
  const variantId = this.toNumber(product.product_variant_id);
419
479
  const productKey = this.buildProductKey(productId, variantId);
420
- const collectionIds = Array.isArray(product.collection_ids) ? product.collection_ids.map(id => this.toNumber(id)) : [];
421
- return collectionIds.some(id => scope.collectionIds.has(id)) || scope.productKeys.has(productKey) || scope.productAllVariantIds.has(productId);
480
+ const collectionIds = Array.isArray(product.collection_ids) ? product.collection_ids.map((id) => this.toNumber(id)) : [];
481
+ return collectionIds.some((id) => scope.collectionIds.has(id)) || scope.productKeys.has(productKey) || scope.productAllVariantIds.has(productId);
422
482
  }
423
483
  mergeMatchedVariants(product, matchedVariants) {
424
- const original = {
425
- ...product
426
- };
484
+ const original = { ...product };
427
485
  const sortedVariants = [...matchedVariants].sort((a, b) => {
428
- if (a.priority !== b.priority) return a.priority - b.priority;
486
+ if (a.priority !== b.priority)
487
+ return a.priority - b.priority;
429
488
  return Number(a.ruleId) - Number(b.ruleId);
430
489
  });
431
- const result = {
432
- ...product
433
- };
490
+ const result = { ...product };
434
491
  const appliedRuleIds = [];
435
- const appliedFields = new Set();
492
+ const appliedFields = /* @__PURE__ */ new Set();
436
493
  for (const matched of sortedVariants) {
437
494
  for (const [key, value] of Object.entries(matched.data)) {
438
- if (value === undefined) continue;
495
+ if (value === void 0)
496
+ continue;
439
497
  result[key] = value;
440
498
  appliedFields.add(key);
441
499
  }
@@ -452,20 +510,31 @@ class DataVariantEvaluator {
452
510
  return Array.isArray(product.data_variants) ? product.data_variants : [];
453
511
  }
454
512
  normalizeStrategyConfigs(configs) {
455
- return configs.filter(config => config?.metadata?.type === 'data_variant');
513
+ return configs.filter(
514
+ (config) => {
515
+ var _a;
516
+ return ((_a = config == null ? void 0 : config.metadata) == null ? void 0 : _a.type) === "data_variant";
517
+ }
518
+ );
456
519
  }
457
520
  isStrategyActive(config) {
458
- const status = config.metadata.custom?.status;
459
- return !status || status === 'active';
521
+ var _a;
522
+ const status = (_a = config.metadata.custom) == null ? void 0 : _a.status;
523
+ return !status || status === "active";
460
524
  }
461
525
  getStrategyPriority(config) {
462
- const priority = Number(config.metadata.custom?.priority);
463
- if (Number.isFinite(priority)) return priority;
464
- return Math.max(0, ...config.actions.map(action => Number(action.priority || 0)));
526
+ var _a;
527
+ const priority = Number((_a = config.metadata.custom) == null ? void 0 : _a.priority);
528
+ if (Number.isFinite(priority))
529
+ return priority;
530
+ return Math.max(
531
+ 0,
532
+ ...config.actions.map((action) => Number(action.priority || 0))
533
+ );
465
534
  }
466
535
  createAlwaysTrueConditions(actionIds) {
467
536
  return {
468
- operator: 'and',
537
+ operator: "and",
469
538
  rules: [],
470
539
  actionIds
471
540
  };
@@ -482,16 +551,18 @@ class DataVariantEvaluator {
482
551
  return rules;
483
552
  }
484
553
  isConditionGroup(rule) {
485
- return 'rules' in rule && Array.isArray(rule.rules);
554
+ return "rules" in rule && Array.isArray(rule.rules);
486
555
  }
487
556
  normalizeNumberArray(value) {
488
- if (!Array.isArray(value)) return [];
489
- return value.map(item => this.toNumber(item)).filter(item => item > 0);
557
+ if (!Array.isArray(value))
558
+ return [];
559
+ return value.map((item) => this.toNumber(item)).filter((item) => item > 0);
490
560
  }
491
561
  normalizeComparableArray(value) {
492
- const list = Array.isArray(value) ? value : value == null || value === '' ? [] : [value];
493
- const normalized = list.map(item => {
494
- if (item == null || item === '') return '';
562
+ const list = Array.isArray(value) ? value : value == null || value === "" ? [] : [value];
563
+ const normalized = list.map((item) => {
564
+ if (item == null || item === "")
565
+ return "";
495
566
  const parsed = Number(item);
496
567
  return Number.isFinite(parsed) ? String(parsed) : String(item).trim();
497
568
  }).filter(Boolean);
@@ -504,6 +575,9 @@ class DataVariantEvaluator {
504
575
  const parsed = Number(value);
505
576
  return Number.isFinite(parsed) ? parsed : 0;
506
577
  }
507
- }
508
- exports.DataVariantEvaluator = DataVariantEvaluator;
509
- var _default = exports.default = DataVariantEvaluator;
578
+ };
579
+ var evaluator_default = DataVariantEvaluator;
580
+ // Annotate the CommonJS export names for ESM import in node:
581
+ 0 && (module.exports = {
582
+ DataVariantEvaluator
583
+ });