@pisell/pisellos 0.0.567 → 0.0.569

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (557) hide show
  1. package/dist/core/index.js +6 -9
  2. package/dist/model/strategy/adapter/promotion/evaluator.js +3 -2
  3. package/dist/model/strategy/adapter/walletPass/evaluator.js +0 -2
  4. package/dist/model/strategy/adapter/walletPass/example.js +3 -26
  5. package/dist/model/strategy/adapter/walletPass/utils.js +7 -7
  6. package/dist/model/strategy/strategy-example.js +5 -19
  7. package/dist/modules/BaseModule.d.ts +2 -2
  8. package/dist/modules/BaseModule.js +4 -4
  9. package/dist/modules/BookingContext/index.d.ts +48 -0
  10. package/dist/modules/BookingContext/index.js +566 -0
  11. package/dist/modules/BookingContext/types.d.ts +102 -0
  12. package/dist/modules/BookingContext/types.js +51 -0
  13. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +16 -0
  14. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +302 -0
  15. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +8 -0
  16. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +149 -0
  17. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +76 -0
  18. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.js +249 -0
  19. package/dist/modules/BookingContext/utils/flexible.d.ts +28 -0
  20. package/dist/modules/BookingContext/utils/flexible.js +56 -0
  21. package/dist/modules/BookingContext/utils/formatResourceList.d.ts +8 -0
  22. package/dist/modules/BookingContext/utils/formatResourceList.js +38 -0
  23. package/dist/modules/BookingContext/utils/index.d.ts +11 -0
  24. package/dist/modules/BookingContext/utils/index.js +11 -0
  25. package/dist/modules/BookingContext/utils/noResource.d.ts +13 -0
  26. package/dist/modules/BookingContext/utils/noResource.js +77 -0
  27. package/dist/modules/BookingContext/utils/orderLineDisplay.d.ts +1 -0
  28. package/dist/modules/BookingContext/utils/orderLineDisplay.js +36 -0
  29. package/dist/modules/BookingContext/utils/productExtend.d.ts +72 -0
  30. package/dist/modules/BookingContext/utils/productExtend.js +339 -0
  31. package/dist/modules/BookingContext/utils/resourceErrors.d.ts +41 -0
  32. package/dist/modules/BookingContext/utils/resourceErrors.js +74 -0
  33. package/dist/modules/BookingContext/utils/resourceSelection.d.ts +7 -0
  34. package/dist/modules/BookingContext/utils/resourceSelection.js +24 -0
  35. package/dist/modules/BookingContext/utils/resources.d.ts +80 -0
  36. package/dist/modules/BookingContext/utils/resources.js +486 -0
  37. package/dist/modules/BookingContext/utils/serviceTimes.d.ts +55 -0
  38. package/dist/modules/BookingContext/utils/serviceTimes.js +151 -0
  39. package/dist/modules/BookingContext/utils/timeSlices.d.ts +42 -0
  40. package/dist/modules/BookingContext/utils/timeSlices.js +100 -0
  41. package/dist/modules/Cart/index.js +0 -3
  42. package/dist/modules/Cart/utils/cartProduct.js +26 -6
  43. package/dist/modules/Cart/utils/changePrice.js +27 -20
  44. package/dist/modules/Customer/index.d.ts +20 -0
  45. package/dist/modules/Customer/index.js +172 -83
  46. package/dist/modules/Customer/types.d.ts +2 -0
  47. package/dist/modules/Date/index.js +1 -5
  48. package/dist/modules/Discount/index.d.ts +2 -1
  49. package/dist/modules/Discount/index.js +37 -12
  50. package/dist/modules/Discount/types.d.ts +1 -0
  51. package/dist/modules/OpenData/index.d.ts +8 -0
  52. package/dist/modules/OpenData/index.js +35 -17
  53. package/dist/modules/Order/index.d.ts +449 -24
  54. package/dist/modules/Order/index.js +5437 -608
  55. package/dist/modules/Order/types.d.ts +693 -88
  56. package/dist/modules/Order/types.js +68 -1
  57. package/dist/modules/Order/utils/bundleDiscountHydration.d.ts +5 -0
  58. package/dist/modules/Order/utils/bundleDiscountHydration.js +144 -0
  59. package/dist/modules/Order/utils/manualProductDiscount.d.ts +106 -0
  60. package/dist/modules/Order/utils/manualProductDiscount.js +210 -0
  61. package/dist/modules/Order/utils/orderCollectionIdentity.d.ts +53 -0
  62. package/dist/modules/Order/utils/orderCollectionIdentity.js +405 -0
  63. package/dist/modules/Order/utils.d.ts +167 -18
  64. package/dist/modules/Order/utils.js +960 -165
  65. package/dist/modules/Payment/index.d.ts +10 -9
  66. package/dist/modules/Payment/index.js +508 -874
  67. package/dist/modules/Payment/types.d.ts +40 -16
  68. package/dist/modules/Payment/utils.d.ts +1 -1
  69. package/dist/modules/Payment/utils.js +4 -3
  70. package/dist/modules/Payment/walletpass.js +48 -34
  71. package/dist/modules/Product/types.d.ts +29 -7
  72. package/dist/modules/ProductList/index.d.ts +17 -13
  73. package/dist/modules/ProductList/index.js +184 -74
  74. package/dist/modules/ProductList/types.d.ts +17 -0
  75. package/dist/modules/Quotation/index.d.ts +22 -2
  76. package/dist/modules/Quotation/index.js +108 -42
  77. package/dist/modules/Quotation/types.d.ts +19 -0
  78. package/dist/modules/ResourcePlanner/index.d.ts +24 -0
  79. package/dist/modules/ResourcePlanner/index.js +181 -0
  80. package/dist/modules/ResourcePlanner/planner.d.ts +14 -0
  81. package/dist/modules/ResourcePlanner/planner.js +1069 -0
  82. package/dist/modules/ResourcePlanner/types.d.ts +227 -0
  83. package/dist/modules/ResourcePlanner/types.js +1 -0
  84. package/dist/modules/Rules/index.d.ts +8 -10
  85. package/dist/modules/Rules/index.js +219 -114
  86. package/dist/modules/Rules/types.d.ts +14 -3
  87. package/dist/modules/SalesSummary/index.d.ts +23 -26
  88. package/dist/modules/SalesSummary/index.js +152 -46
  89. package/dist/modules/SalesSummary/types.d.ts +9 -1
  90. package/dist/modules/SalesSummary/utils.d.ts +3 -22
  91. package/dist/modules/SalesSummary/utils.js +803 -163
  92. package/dist/modules/Schedule/getDateIsInSchedule.js +14 -7
  93. package/dist/modules/Schedule/index.d.ts +18 -5
  94. package/dist/modules/Schedule/index.js +78 -24
  95. package/dist/modules/Schedule/types.d.ts +2 -0
  96. package/dist/modules/Schedule/utils.js +0 -1
  97. package/dist/modules/Step/index.js +0 -1
  98. package/dist/modules/Summary/index.js +4 -3
  99. package/dist/modules/SurchargeList/index.d.ts +18 -0
  100. package/dist/modules/SurchargeList/index.js +185 -0
  101. package/dist/modules/SurchargeList/types.d.ts +15 -0
  102. package/dist/modules/SurchargeList/types.js +1 -0
  103. package/dist/modules/index.d.ts +3 -0
  104. package/dist/modules/index.js +4 -1
  105. package/dist/plugins/app.d.ts +2 -0
  106. package/dist/plugins/request.d.ts +1 -0
  107. package/dist/plugins/request.js +1 -4
  108. package/dist/plugins/window.js +2 -6
  109. package/dist/server/index.d.ts +462 -8
  110. package/dist/server/index.js +6137 -714
  111. package/dist/server/modules/floor-plan/index.d.ts +39 -0
  112. package/dist/server/modules/floor-plan/index.js +595 -0
  113. package/dist/server/modules/floor-plan/types.d.ts +43 -0
  114. package/dist/server/modules/floor-plan/types.js +13 -0
  115. package/dist/server/modules/index.d.ts +7 -2
  116. package/dist/server/modules/index.js +6 -0
  117. package/dist/server/modules/menu/index.js +32 -41
  118. package/dist/server/modules/order/index.d.ts +207 -14
  119. package/dist/server/modules/order/index.js +2326 -379
  120. package/dist/server/modules/order/types.d.ts +76 -5
  121. package/dist/server/modules/order/types.js +14 -1
  122. package/dist/server/modules/order/utils/filterBookings.d.ts +7 -1
  123. package/dist/server/modules/order/utils/filterBookings.js +118 -11
  124. package/dist/server/modules/order/utils/filterOrders.js +242 -14
  125. package/dist/server/modules/payment/index.d.ts +28 -0
  126. package/dist/server/modules/payment/index.js +305 -0
  127. package/dist/server/modules/payment/types.d.ts +9 -0
  128. package/dist/server/modules/payment/types.js +1 -0
  129. package/dist/server/modules/products/index.d.ts +105 -14
  130. package/dist/server/modules/products/index.js +1397 -540
  131. package/dist/server/modules/products/types.d.ts +34 -1
  132. package/dist/server/modules/products/types.js +4 -0
  133. package/dist/server/modules/quotation/index.d.ts +39 -0
  134. package/dist/server/modules/quotation/index.js +289 -86
  135. package/dist/server/modules/resource/index.d.ts +2 -3
  136. package/dist/server/modules/resource/index.js +105 -84
  137. package/dist/server/modules/schedule/index.d.ts +6 -4
  138. package/dist/server/modules/schedule/index.js +137 -114
  139. package/dist/server/test.json +713 -0
  140. package/dist/server/types.d.ts +2 -0
  141. package/dist/server/utils/product.js +2 -3
  142. package/dist/server/utils/small-ticket.d.ts +71 -0
  143. package/dist/server/utils/small-ticket.js +963 -0
  144. package/dist/solution/BaseSales/index.d.ts +378 -0
  145. package/dist/solution/BaseSales/index.js +4006 -0
  146. package/dist/solution/BaseSales/types.d.ts +394 -0
  147. package/dist/solution/BaseSales/types.js +40 -0
  148. package/dist/solution/BaseSales/utils/cartPromotion.d.ts +287 -0
  149. package/dist/solution/BaseSales/utils/cartPromotion.js +1450 -0
  150. package/dist/solution/BaseSales/utils/parseSalesResponse.d.ts +144 -0
  151. package/dist/solution/BaseSales/utils/parseSalesResponse.js +157 -0
  152. package/dist/solution/BaseSales/utils/quotationPrice.d.ts +18 -0
  153. package/dist/solution/BaseSales/utils/quotationPrice.js +250 -0
  154. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +63 -0
  155. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +218 -0
  156. package/dist/solution/BaseSales/utils.d.ts +40 -0
  157. package/dist/solution/BaseSales/utils.js +263 -0
  158. package/dist/solution/BookingByStep/index.js +7 -59
  159. package/dist/solution/BookingByStep/utils/capacity.js +1 -11
  160. package/dist/solution/BookingByStep/utils/resources.js +1 -3
  161. package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
  162. package/dist/solution/BookingTicket/index.d.ts +393 -24
  163. package/dist/solution/BookingTicket/index.js +2506 -445
  164. package/dist/solution/BookingTicket/types.d.ts +191 -6
  165. package/dist/solution/BookingTicket/types.js +83 -10
  166. package/dist/solution/BookingTicket/utils/addProductDecision.d.ts +117 -0
  167. package/dist/solution/BookingTicket/utils/addProductDecision.js +346 -0
  168. package/dist/solution/BookingTicket/utils/addTimeAvailability.d.ts +35 -0
  169. package/dist/solution/BookingTicket/utils/addTimeAvailability.js +95 -0
  170. package/dist/solution/BookingTicket/utils/bookingStatus.d.ts +77 -0
  171. package/dist/solution/BookingTicket/utils/bookingStatus.js +136 -0
  172. package/dist/solution/BookingTicket/utils/cartView.d.ts +29 -0
  173. package/dist/solution/BookingTicket/utils/cartView.js +209 -0
  174. package/dist/solution/BookingTicket/utils/exampleData.d.ts +123 -0
  175. package/dist/solution/BookingTicket/utils/exampleData.js +183 -0
  176. package/dist/solution/BookingTicket/utils/orderCustomer.d.ts +4 -0
  177. package/dist/solution/BookingTicket/utils/orderCustomer.js +31 -0
  178. package/dist/solution/BookingTicket/utils/resolveBestAddTimePlan.d.ts +185 -0
  179. package/dist/solution/BookingTicket/utils/resolveBestAddTimePlan.js +438 -0
  180. package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +36 -0
  181. package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.js +400 -0
  182. package/dist/solution/BookingTicket/utils/scan/cloudSearch.d.ts +4 -0
  183. package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +41 -1
  184. package/dist/solution/BookingTicket/utils/scan/formatGlobalScan.d.ts +32 -0
  185. package/dist/solution/BookingTicket/utils/scan/formatGlobalScan.js +56 -0
  186. package/dist/solution/BookingTicket/utils/scan/handleScan.d.ts +3 -1
  187. package/dist/solution/BookingTicket/utils/scan/handleScan.js +36 -34
  188. package/dist/solution/BookingTicket/utils/scan/index.d.ts +5 -0
  189. package/dist/solution/BookingTicket/utils/scan/index.js +26 -18
  190. package/dist/solution/BookingTicket/utils/scan/scanProductValues.d.ts +21 -0
  191. package/dist/solution/BookingTicket/utils/scan/scanProductValues.js +150 -0
  192. package/dist/solution/BookingTicket/utils/sessionCatalogStale.d.ts +23 -0
  193. package/dist/solution/BookingTicket/utils/sessionCatalogStale.js +78 -0
  194. package/dist/solution/BuyTickets/index.js +9 -12
  195. package/dist/solution/Checkout/index.d.ts +1 -0
  196. package/dist/solution/Checkout/index.js +199 -277
  197. package/dist/solution/Checkout/utils/index.js +8 -20
  198. package/dist/solution/RegisterAndLogin/config.js +2 -10
  199. package/dist/solution/RegisterAndLogin/index.js +30 -76
  200. package/dist/solution/Sales/index.d.ts +50 -5
  201. package/dist/solution/Sales/index.js +484 -92
  202. package/dist/solution/Sales/types.d.ts +26 -2
  203. package/dist/solution/ScanOrder/index.d.ts +27 -21
  204. package/dist/solution/ScanOrder/index.js +509 -454
  205. package/dist/solution/ScanOrder/types.d.ts +33 -11
  206. package/dist/solution/ScanOrder/types.js +4 -5
  207. package/dist/solution/ScanOrder/utils.d.ts +4 -1
  208. package/dist/solution/ScanOrder/utils.js +109 -34
  209. package/dist/solution/ShopDiscount/index.js +6 -11
  210. package/dist/solution/UnifiedBookingSales/index.d.ts +183 -0
  211. package/dist/solution/UnifiedBookingSales/index.js +1871 -0
  212. package/dist/solution/UnifiedBookingSales/types.d.ts +143 -0
  213. package/dist/solution/UnifiedBookingSales/types.js +11 -0
  214. package/dist/solution/VenueBooking/index.d.ts +34 -20
  215. package/dist/solution/VenueBooking/index.js +630 -505
  216. package/dist/solution/VenueBooking/sales-section-4-annotated.json +0 -2
  217. package/dist/solution/VenueBooking/utils/slotMerge.d.ts +6 -0
  218. package/dist/solution/VenueBooking/utils/slotMerge.js +9 -3
  219. package/dist/solution/index.d.ts +2 -0
  220. package/dist/solution/index.js +3 -1
  221. package/dist/types/index.d.ts +11 -1
  222. package/dist/utils/task.js +15 -18
  223. package/dist/utils/watch.js +0 -1
  224. package/lib/apis/picoding.js +2 -0
  225. package/lib/core/index.js +130 -131
  226. package/lib/effects/index.js +46 -57
  227. package/lib/index.js +92 -53
  228. package/lib/model/index.js +14 -21
  229. package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
  230. package/lib/model/strategy/adapter/dataVariant/evaluator.js +162 -236
  231. package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
  232. package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
  233. package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
  234. package/lib/model/strategy/adapter/index.js +100 -64
  235. package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
  236. package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
  237. package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
  238. package/lib/model/strategy/adapter/itemRule/index.js +83 -57
  239. package/lib/model/strategy/adapter/itemRule/type.js +97 -36
  240. package/lib/model/strategy/adapter/promotion/adapter.js +84 -63
  241. package/lib/model/strategy/adapter/promotion/evaluator.js +383 -232
  242. package/lib/model/strategy/adapter/promotion/examples.js +139 -159
  243. package/lib/model/strategy/adapter/promotion/index.js +1 -49
  244. package/lib/model/strategy/adapter/promotion/type.js +199 -35
  245. package/lib/model/strategy/adapter/type.js +4 -16
  246. package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -152
  247. package/lib/model/strategy/adapter/walletPass/example.js +217 -190
  248. package/lib/model/strategy/adapter/walletPass/index.js +75 -51
  249. package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
  250. package/lib/model/strategy/adapter/walletPass/type.js +4 -16
  251. package/lib/model/strategy/adapter/walletPass/utils.js +654 -402
  252. package/lib/model/strategy/engine.js +270 -168
  253. package/lib/model/strategy/index.js +49 -34
  254. package/lib/model/strategy/strategy-example.js +243 -239
  255. package/lib/model/strategy/type.js +100 -40
  256. package/lib/modules/Account/index.js +39 -53
  257. package/lib/modules/Account/types.js +20 -33
  258. package/lib/modules/AccountList/index.js +116 -154
  259. package/lib/modules/AccountList/types.js +30 -31
  260. package/lib/modules/AccountList/utils.js +18 -30
  261. package/lib/modules/BaseModule.d.ts +2 -2
  262. package/lib/modules/BaseModule.js +26 -49
  263. package/lib/modules/BookingContext/index.d.ts +48 -0
  264. package/lib/modules/BookingContext/index.js +390 -0
  265. package/lib/modules/BookingContext/types.d.ts +102 -0
  266. package/lib/modules/BookingContext/types.js +48 -0
  267. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +16 -0
  268. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +286 -0
  269. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +8 -0
  270. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +148 -0
  271. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +76 -0
  272. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +242 -0
  273. package/lib/modules/BookingContext/utils/flexible.d.ts +28 -0
  274. package/lib/modules/BookingContext/utils/flexible.js +63 -0
  275. package/lib/modules/BookingContext/utils/formatResourceList.d.ts +8 -0
  276. package/lib/modules/BookingContext/utils/formatResourceList.js +35 -0
  277. package/lib/modules/BookingContext/utils/index.d.ts +11 -0
  278. package/lib/modules/BookingContext/utils/index.js +126 -0
  279. package/lib/modules/BookingContext/utils/noResource.d.ts +13 -0
  280. package/lib/modules/BookingContext/utils/noResource.js +78 -0
  281. package/lib/modules/BookingContext/utils/orderLineDisplay.d.ts +1 -0
  282. package/lib/modules/BookingContext/utils/orderLineDisplay.js +29 -0
  283. package/lib/modules/BookingContext/utils/productExtend.d.ts +72 -0
  284. package/lib/modules/BookingContext/utils/productExtend.js +330 -0
  285. package/lib/modules/BookingContext/utils/resourceErrors.d.ts +41 -0
  286. package/lib/modules/BookingContext/utils/resourceErrors.js +80 -0
  287. package/lib/modules/BookingContext/utils/resourceSelection.d.ts +7 -0
  288. package/lib/modules/BookingContext/utils/resourceSelection.js +24 -0
  289. package/lib/modules/BookingContext/utils/resources.d.ts +80 -0
  290. package/lib/modules/BookingContext/utils/resources.js +419 -0
  291. package/lib/modules/BookingContext/utils/serviceTimes.d.ts +55 -0
  292. package/lib/modules/BookingContext/utils/serviceTimes.js +161 -0
  293. package/lib/modules/BookingContext/utils/timeSlices.d.ts +42 -0
  294. package/lib/modules/BookingContext/utils/timeSlices.js +114 -0
  295. package/lib/modules/Cart/index.js +170 -124
  296. package/lib/modules/Cart/types.js +46 -51
  297. package/lib/modules/Cart/utils/cartAccount.js +40 -39
  298. package/lib/modules/Cart/utils/cartDate.js +56 -61
  299. package/lib/modules/Cart/utils/cartDiscount.js +28 -33
  300. package/lib/modules/Cart/utils/cartNote.js +27 -32
  301. package/lib/modules/Cart/utils/cartProduct.js +331 -244
  302. package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
  303. package/lib/modules/Cart/utils/cartResource.js +72 -78
  304. package/lib/modules/Cart/utils/changePrice.js +37 -67
  305. package/lib/modules/Cart/utils/index.js +106 -48
  306. package/lib/modules/Customer/constants.js +13 -34
  307. package/lib/modules/Customer/index.d.ts +20 -0
  308. package/lib/modules/Customer/index.js +270 -154
  309. package/lib/modules/Customer/types.d.ts +2 -0
  310. package/lib/modules/Customer/types.js +38 -35
  311. package/lib/modules/Date/index.js +116 -115
  312. package/lib/modules/Date/types.js +16 -28
  313. package/lib/modules/Date/utils.js +174 -123
  314. package/lib/modules/Discount/index.d.ts +2 -1
  315. package/lib/modules/Discount/index.js +133 -113
  316. package/lib/modules/Discount/types.d.ts +1 -0
  317. package/lib/modules/Discount/types.js +9 -31
  318. package/lib/modules/Guests/index.js +30 -56
  319. package/lib/modules/Guests/types.js +23 -33
  320. package/lib/modules/Holder/index.js +209 -189
  321. package/lib/modules/Holder/types.js +4 -16
  322. package/lib/modules/Holder/utils.js +20 -49
  323. package/lib/modules/OpenData/index.d.ts +8 -0
  324. package/lib/modules/OpenData/index.js +81 -74
  325. package/lib/modules/OpenData/types.js +4 -16
  326. package/lib/modules/OpenData/utils.js +44 -78
  327. package/lib/modules/Order/index.d.ts +449 -24
  328. package/lib/modules/Order/index.js +3834 -489
  329. package/lib/modules/Order/types.d.ts +693 -88
  330. package/lib/modules/Order/types.js +78 -33
  331. package/lib/modules/Order/utils/bundleDiscountHydration.d.ts +5 -0
  332. package/lib/modules/Order/utils/bundleDiscountHydration.js +106 -0
  333. package/lib/modules/Order/utils/manualProductDiscount.d.ts +106 -0
  334. package/lib/modules/Order/utils/manualProductDiscount.js +207 -0
  335. package/lib/modules/Order/utils/orderCollectionIdentity.d.ts +53 -0
  336. package/lib/modules/Order/utils/orderCollectionIdentity.js +353 -0
  337. package/lib/modules/Order/utils.d.ts +167 -18
  338. package/lib/modules/Order/utils.js +1247 -345
  339. package/lib/modules/Payment/cash.js +20 -33
  340. package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
  341. package/lib/modules/Payment/eftpos.js +16 -30
  342. package/lib/modules/Payment/index.d.ts +10 -9
  343. package/lib/modules/Payment/index.js +542 -502
  344. package/lib/modules/Payment/mx51.js +1 -0
  345. package/lib/modules/Payment/types.d.ts +40 -16
  346. package/lib/modules/Payment/types.js +216 -107
  347. package/lib/modules/Payment/utils.d.ts +1 -1
  348. package/lib/modules/Payment/utils.js +53 -49
  349. package/lib/modules/Payment/walletpass.js +231 -203
  350. package/lib/modules/Product/index.js +51 -46
  351. package/lib/modules/Product/types.d.ts +29 -7
  352. package/lib/modules/Product/types.js +4 -16
  353. package/lib/modules/Product/utils.js +32 -33
  354. package/lib/modules/ProductList/index.d.ts +17 -13
  355. package/lib/modules/ProductList/index.js +160 -118
  356. package/lib/modules/ProductList/types.d.ts +17 -0
  357. package/lib/modules/ProductList/types.js +9 -31
  358. package/lib/modules/Quotation/index.d.ts +22 -2
  359. package/lib/modules/Quotation/index.js +123 -89
  360. package/lib/modules/Quotation/types.d.ts +19 -0
  361. package/lib/modules/Quotation/types.js +4 -16
  362. package/lib/modules/Resource/index.js +27 -59
  363. package/lib/modules/Resource/types.js +22 -32
  364. package/lib/modules/Resource/utils.js +30 -38
  365. package/lib/modules/ResourcePlanner/index.d.ts +24 -0
  366. package/lib/modules/ResourcePlanner/index.js +147 -0
  367. package/lib/modules/ResourcePlanner/planner.d.ts +14 -0
  368. package/lib/modules/ResourcePlanner/planner.js +895 -0
  369. package/lib/modules/ResourcePlanner/types.d.ts +227 -0
  370. package/lib/modules/ResourcePlanner/types.js +5 -0
  371. package/lib/modules/Rules/index.d.ts +8 -10
  372. package/lib/modules/Rules/index.js +1286 -894
  373. package/lib/modules/Rules/types.d.ts +14 -3
  374. package/lib/modules/Rules/types.js +17 -40
  375. package/lib/modules/SalesSummary/index.d.ts +23 -26
  376. package/lib/modules/SalesSummary/index.js +130 -71
  377. package/lib/modules/SalesSummary/types.d.ts +9 -1
  378. package/lib/modules/SalesSummary/types.js +4 -16
  379. package/lib/modules/SalesSummary/utils.d.ts +3 -22
  380. package/lib/modules/SalesSummary/utils.js +738 -250
  381. package/lib/modules/ScanOrderLogger/index.js +59 -79
  382. package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
  383. package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
  384. package/lib/modules/ScanOrderLogger/types.js +4 -16
  385. package/lib/modules/Schedule/getDateIsInSchedule.js +345 -171
  386. package/lib/modules/Schedule/index.d.ts +18 -5
  387. package/lib/modules/Schedule/index.js +139 -114
  388. package/lib/modules/Schedule/type.js +4 -16
  389. package/lib/modules/Schedule/types.d.ts +2 -0
  390. package/lib/modules/Schedule/types.js +4 -16
  391. package/lib/modules/Schedule/utils.js +433 -291
  392. package/lib/modules/Step/index.js +40 -52
  393. package/lib/modules/Step/tyeps.js +4 -16
  394. package/lib/modules/Summary/index.js +66 -70
  395. package/lib/modules/Summary/types.js +4 -16
  396. package/lib/modules/Summary/utils.js +782 -429
  397. package/lib/modules/SurchargeList/index.d.ts +18 -0
  398. package/lib/modules/SurchargeList/index.js +95 -0
  399. package/lib/modules/SurchargeList/types.d.ts +15 -0
  400. package/lib/modules/SurchargeList/types.js +5 -0
  401. package/lib/modules/index.d.ts +3 -0
  402. package/lib/modules/index.js +245 -57
  403. package/lib/plugins/app.d.ts +2 -0
  404. package/lib/plugins/app.js +4 -16
  405. package/lib/plugins/index.js +36 -25
  406. package/lib/plugins/request.d.ts +1 -0
  407. package/lib/plugins/request.js +137 -126
  408. package/lib/plugins/shopStore.js +4 -16
  409. package/lib/plugins/user.js +4 -16
  410. package/lib/plugins/window.js +171 -179
  411. package/lib/server/index.d.ts +462 -8
  412. package/lib/server/index.js +4668 -713
  413. package/lib/server/modules/floor-plan/index.d.ts +39 -0
  414. package/lib/server/modules/floor-plan/index.js +306 -0
  415. package/lib/server/modules/floor-plan/types.d.ts +43 -0
  416. package/lib/server/modules/floor-plan/types.js +19 -0
  417. package/lib/server/modules/index.d.ts +7 -2
  418. package/lib/server/modules/index.js +106 -59
  419. package/lib/server/modules/menu/index.js +146 -122
  420. package/lib/server/modules/menu/types.js +18 -31
  421. package/lib/server/modules/order/index.d.ts +207 -14
  422. package/lib/server/modules/order/index.js +1463 -316
  423. package/lib/server/modules/order/types.d.ts +76 -5
  424. package/lib/server/modules/order/types.js +117 -32
  425. package/lib/server/modules/order/utils/filterBookings.d.ts +7 -1
  426. package/lib/server/modules/order/utils/filterBookings.js +288 -146
  427. package/lib/server/modules/order/utils/filterOrders.js +318 -64
  428. package/lib/server/modules/payment/index.d.ts +28 -0
  429. package/lib/server/modules/payment/index.js +168 -0
  430. package/lib/server/modules/payment/types.d.ts +9 -0
  431. package/lib/server/modules/payment/types.js +5 -0
  432. package/lib/server/modules/products/index.d.ts +105 -14
  433. package/lib/server/modules/products/index.js +969 -383
  434. package/lib/server/modules/products/types.d.ts +34 -1
  435. package/lib/server/modules/products/types.js +44 -34
  436. package/lib/server/modules/quotation/index.d.ts +39 -0
  437. package/lib/server/modules/quotation/index.js +220 -77
  438. package/lib/server/modules/quotation/types.js +21 -31
  439. package/lib/server/modules/resource/index.d.ts +2 -3
  440. package/lib/server/modules/resource/index.js +269 -214
  441. package/lib/server/modules/resource/types.js +42 -33
  442. package/lib/server/modules/schedule/index.d.ts +6 -4
  443. package/lib/server/modules/schedule/index.js +158 -132
  444. package/lib/server/modules/schedule/types.js +14 -21
  445. package/lib/server/modules/schedule/utils.js +334 -163
  446. package/lib/server/test.json +713 -0
  447. package/lib/server/types.d.ts +2 -0
  448. package/lib/server/types.js +4 -16
  449. package/lib/server/utils/index.js +25 -23
  450. package/lib/server/utils/product.js +197 -140
  451. package/lib/server/utils/schedule.js +34 -41
  452. package/lib/server/utils/small-ticket.d.ts +71 -0
  453. package/lib/server/utils/small-ticket.js +926 -0
  454. package/lib/server/utils/time.js +40 -49
  455. package/lib/solution/BaseSales/index.d.ts +378 -0
  456. package/lib/solution/BaseSales/index.js +2367 -0
  457. package/lib/solution/BaseSales/types.d.ts +394 -0
  458. package/lib/solution/BaseSales/types.js +47 -0
  459. package/lib/solution/BaseSales/utils/cartPromotion.d.ts +287 -0
  460. package/lib/solution/BaseSales/utils/cartPromotion.js +1155 -0
  461. package/lib/solution/BaseSales/utils/parseSalesResponse.d.ts +144 -0
  462. package/lib/solution/BaseSales/utils/parseSalesResponse.js +140 -0
  463. package/lib/solution/BaseSales/utils/quotationPrice.d.ts +18 -0
  464. package/lib/solution/BaseSales/utils/quotationPrice.js +231 -0
  465. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +63 -0
  466. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +215 -0
  467. package/lib/solution/BaseSales/utils.d.ts +40 -0
  468. package/lib/solution/BaseSales/utils.js +259 -0
  469. package/lib/solution/BookingByStep/index.js +1530 -1343
  470. package/lib/solution/BookingByStep/types.js +40 -99
  471. package/lib/solution/BookingByStep/utils/capacity.js +192 -160
  472. package/lib/solution/BookingByStep/utils/products.js +42 -52
  473. package/lib/solution/BookingByStep/utils/resources.js +527 -330
  474. package/lib/solution/BookingByStep/utils/stock.js +65 -44
  475. package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
  476. package/lib/solution/BookingTicket/index.d.ts +393 -24
  477. package/lib/solution/BookingTicket/index.js +1459 -160
  478. package/lib/solution/BookingTicket/types.d.ts +191 -6
  479. package/lib/solution/BookingTicket/types.js +101 -66
  480. package/lib/solution/BookingTicket/utils/addProductDecision.d.ts +117 -0
  481. package/lib/solution/BookingTicket/utils/addProductDecision.js +353 -0
  482. package/lib/solution/BookingTicket/utils/addTimeAvailability.d.ts +35 -0
  483. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +94 -0
  484. package/lib/solution/BookingTicket/utils/bookingStatus.d.ts +77 -0
  485. package/lib/solution/BookingTicket/utils/bookingStatus.js +136 -0
  486. package/lib/solution/BookingTicket/utils/cartView.d.ts +29 -0
  487. package/lib/solution/BookingTicket/utils/cartView.js +200 -0
  488. package/lib/solution/BookingTicket/utils/exampleData.d.ts +123 -0
  489. package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
  490. package/lib/solution/BookingTicket/utils/orderCustomer.d.ts +4 -0
  491. package/lib/solution/BookingTicket/utils/orderCustomer.js +35 -0
  492. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.d.ts +185 -0
  493. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +387 -0
  494. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +36 -0
  495. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +220 -0
  496. package/lib/solution/BookingTicket/utils/scan/cloudSearch.d.ts +4 -0
  497. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +85 -80
  498. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.d.ts +32 -0
  499. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +64 -0
  500. package/lib/solution/BookingTicket/utils/scan/handleScan.d.ts +3 -1
  501. package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -80
  502. package/lib/solution/BookingTicket/utils/scan/index.d.ts +5 -0
  503. package/lib/solution/BookingTicket/utils/scan/index.js +103 -95
  504. package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
  505. package/lib/solution/BookingTicket/utils/scan/scanProductValues.d.ts +21 -0
  506. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +115 -0
  507. package/lib/solution/BookingTicket/utils/sessionCatalogStale.d.ts +23 -0
  508. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +83 -0
  509. package/lib/solution/BuyTickets/index.js +67 -70
  510. package/lib/solution/BuyTickets/types.js +22 -38
  511. package/lib/solution/Checkout/index.d.ts +1 -0
  512. package/lib/solution/Checkout/index.js +1461 -1169
  513. package/lib/solution/Checkout/types.js +91 -61
  514. package/lib/solution/Checkout/utils/index.js +228 -159
  515. package/lib/solution/PlaceOrder/index.js +55 -0
  516. package/lib/solution/RegisterAndLogin/config.js +495 -470
  517. package/lib/solution/RegisterAndLogin/index.js +633 -630
  518. package/lib/solution/RegisterAndLogin/types.js +189 -76
  519. package/lib/solution/RegisterAndLogin/utils.js +183 -125
  520. package/lib/solution/Sales/index.d.ts +50 -5
  521. package/lib/solution/Sales/index.js +495 -220
  522. package/lib/solution/Sales/types.d.ts +26 -2
  523. package/lib/solution/Sales/types.js +27 -33
  524. package/lib/solution/ScanOrder/index.d.ts +27 -21
  525. package/lib/solution/ScanOrder/index.js +908 -904
  526. package/lib/solution/ScanOrder/types.d.ts +33 -11
  527. package/lib/solution/ScanOrder/types.js +33 -34
  528. package/lib/solution/ScanOrder/utils.d.ts +4 -1
  529. package/lib/solution/ScanOrder/utils.js +457 -344
  530. package/lib/solution/ShopDiscount/index.js +230 -236
  531. package/lib/solution/ShopDiscount/types.js +15 -37
  532. package/lib/solution/ShopDiscount/utils.js +309 -172
  533. package/lib/solution/UnifiedBookingSales/index.d.ts +183 -0
  534. package/lib/solution/UnifiedBookingSales/index.js +1050 -0
  535. package/lib/solution/UnifiedBookingSales/types.d.ts +143 -0
  536. package/lib/solution/UnifiedBookingSales/types.js +14 -0
  537. package/lib/solution/VenueBooking/index.d.ts +34 -20
  538. package/lib/solution/VenueBooking/index.js +982 -950
  539. package/lib/solution/VenueBooking/sales-section-4-annotated.json +0 -2
  540. package/lib/solution/VenueBooking/types.js +20 -40
  541. package/lib/solution/VenueBooking/utils/dateSummary.js +22 -54
  542. package/lib/solution/VenueBooking/utils/resource.js +31 -54
  543. package/lib/solution/VenueBooking/utils/slotMerge.d.ts +6 -0
  544. package/lib/solution/VenueBooking/utils/slotMerge.js +96 -108
  545. package/lib/solution/VenueBooking/utils/smartPricing.js +112 -100
  546. package/lib/solution/VenueBooking/utils/timeSlot.js +133 -132
  547. package/lib/solution/VenueBooking/utils.js +130 -67
  548. package/lib/solution/index.d.ts +2 -0
  549. package/lib/solution/index.js +124 -37
  550. package/lib/store/createStore.js +32 -29
  551. package/lib/types/index.d.ts +11 -1
  552. package/lib/types/index.js +4 -16
  553. package/lib/utils/task.js +36 -36
  554. package/lib/utils/watch.js +81 -47
  555. package/package.json +2 -1
  556. package/dist/solution/Checkout/appointmentDemo.json +0 -1
  557. package/lib/solution/Checkout/appointmentDemo.json +0 -1
@@ -0,0 +1,43 @@
1
+ /**
2
+ * 平面图(floor-plan)Server 模块类型
3
+ * 与 GET /shop/schedule/floor-plan 系列接口数据结构对齐
4
+ */
5
+ export interface FloorPlanItem {
6
+ id: number;
7
+ shop_id?: number;
8
+ code: string;
9
+ name: string | Record<string, string>;
10
+ layout: unknown[];
11
+ canvas_width: number;
12
+ canvas_height: number;
13
+ sort: number;
14
+ status: number;
15
+ created_at?: string;
16
+ updated_at?: string;
17
+ }
18
+ export interface FloorPlanState {
19
+ list: FloorPlanItem[];
20
+ map: Map<string, FloorPlanItem>;
21
+ codeMap: Map<string, FloorPlanItem>;
22
+ }
23
+ /** pubsub / Ably 推送消息(与《平面图编辑器API文档》Socket 一节一致) */
24
+ export interface FloorPlanSyncMessage {
25
+ module?: string;
26
+ action?: string;
27
+ operation?: string;
28
+ id?: number;
29
+ ids?: number[];
30
+ body?: Partial<FloorPlanItem> & {
31
+ id?: number;
32
+ };
33
+ message_uuid?: string;
34
+ timestamp?: string;
35
+ _channelKey?: string;
36
+ }
37
+ export declare const FloorPlanHooks: {
38
+ /** 本地列表变更(预加载、合并、删除后) */
39
+ readonly onFloorPlansChanged: "server_floor_plan:onFloorPlansChanged";
40
+ /** pubsub 同步处理完成,供 Server 向订阅者推送最新查询结果 */
41
+ readonly onFloorPlanSyncCompleted: "server_floor_plan:onFloorPlanSyncCompleted";
42
+ };
43
+ export type FloorPlanHooksType = (typeof FloorPlanHooks)[keyof typeof FloorPlanHooks];
@@ -0,0 +1,13 @@
1
+ /**
2
+ * 平面图(floor-plan)Server 模块类型
3
+ * 与 GET /shop/schedule/floor-plan 系列接口数据结构对齐
4
+ */
5
+
6
+ /** pubsub / Ably 推送消息(与《平面图编辑器API文档》Socket 一节一致) */
7
+
8
+ export var FloorPlanHooks = {
9
+ /** 本地列表变更(预加载、合并、删除后) */
10
+ onFloorPlansChanged: 'server_floor_plan:onFloorPlansChanged',
11
+ /** pubsub 同步处理完成,供 Server 向订阅者推送最新查询结果 */
12
+ onFloorPlanSyncCompleted: 'server_floor_plan:onFloorPlanSyncCompleted'
13
+ };
@@ -3,7 +3,7 @@
3
3
  * 包含新增的 Products、Menu、Quotation 和扩展的 Schedule 模块
4
4
  */
5
5
  export { ProductsModule } from './products';
6
- export type { ProductsState } from './products/types';
6
+ export type { ProductIdScope, ProductsState } from './products/types';
7
7
  export { ProductsHooks } from './products/types';
8
8
  export { MenuModule } from './menu';
9
9
  export type { MenuState, MenuData } from './menu/types';
@@ -14,8 +14,13 @@ export { QuotationHooks } from './quotation/types';
14
14
  export { ScheduleModuleEx } from './schedule';
15
15
  export type { ScheduleState, ScheduleItem } from './schedule/types';
16
16
  export { OrderModule } from './order';
17
- export type { OrderState, OrderData, OrderId, OrderSummary, OrderBookingItem, OrderProductLineItem, OrderPaymentItem, OrderSurchargeItem, OrderProductDiscountItem, OrderWithoutBookings, BookingData, OrderFilters, BookingFilters, OrderFilterResult, BookingFilterResult, OrderModulePagedResult, } from './order/types';
17
+ export type { OrderState, OrderData, OrderId, OrderSummary, OrderBookingItem, OrderProductLineItem, OrderPaymentItem, OrderSurchargeItem, OrderProductDiscountItem, OrderWithoutBookings, BookingData, OrderFilters, BookingFilters, OrderFilterResult, OrderFilterRejectDetail, OrderFilterRejectedEntry, BookingFilterResult, OrderModulePagedResult, } from './order/types';
18
18
  export { OrderHooks } from './order/types';
19
+ export { PaymentServerModule } from './payment';
20
+ export type { PaymentMethod, PaymentMethodsChangedEventData, PaymentServerState } from './payment/types';
21
+ export { FloorPlanModule } from './floor-plan';
22
+ export type { FloorPlanItem, FloorPlanState, FloorPlanSyncMessage } from './floor-plan/types';
23
+ export { FloorPlanHooks } from './floor-plan/types';
19
24
  export { ResourceModule, resourceModule } from './resource';
20
25
  export type { ResourceState, ResourceData, ResourceId, ResourceBooking, ResourcePageQuery, ResourcePageResult, QueryOptions, ScheduleEventResource, } from './resource';
21
26
  export { ResourceHooks } from './resource';
@@ -21,6 +21,12 @@ export { ScheduleModuleEx } from "./schedule";
21
21
  export { OrderModule } from "./order";
22
22
  export { OrderHooks } from "./order/types";
23
23
 
24
+ // Payment 模块
25
+ export { PaymentServerModule } from "./payment";
26
+ // 平面图(floor-plan)
27
+ export { FloorPlanModule } from "./floor-plan";
28
+ export { FloorPlanHooks } from "./floor-plan/types";
29
+
24
30
  // Resource 模块
25
31
  export { ResourceModule, resourceModule } from "./resource";
26
32
  export { ResourceHooks } from "./resource";
@@ -84,9 +84,7 @@ export var MenuModule = /*#__PURE__*/function (_BaseModule) {
84
84
  app = appPlugin.getApp();
85
85
  this.dbManager = app.dbManager;
86
86
  this.logger = app.logger;
87
- if (this.dbManager) {
88
- console.log('[Menu] IndexDB Manager 已初始化');
89
- } else {
87
+ if (this.dbManager) {} else {
90
88
  console.warn('[Menu] IndexDB Manager 未找到');
91
89
  }
92
90
  }
@@ -262,7 +260,6 @@ export var MenuModule = /*#__PURE__*/function (_BaseModule) {
262
260
  } finally {
263
261
  _iterator2.f();
264
262
  }
265
- console.log("[Menu] Map \u7F13\u5B58\u5DF2\u540C\u6B65\uFF0C\u5171 ".concat(this.store.map.size, " \u4E2A\u9910\u724C"));
266
263
  }
267
264
 
268
265
  /**
@@ -285,33 +282,31 @@ export var MenuModule = /*#__PURE__*/function (_BaseModule) {
285
282
 
286
283
  // 同时清空 IndexDB 中的数据
287
284
  if (!this.dbManager) {
288
- _context4.next = 17;
285
+ _context4.next = 16;
289
286
  break;
290
287
  }
291
288
  _context4.prev = 5;
292
289
  _context4.next = 8;
293
290
  return this.dbManager.clear(INDEXDB_STORE_NAME);
294
291
  case 8:
295
- console.log('[Menu] IndexDB 缓存已清空');
296
292
  this.logInfo('IndexDB 缓存已清空');
297
- _context4.next = 17;
293
+ _context4.next = 16;
298
294
  break;
299
- case 12:
300
- _context4.prev = 12;
295
+ case 11:
296
+ _context4.prev = 11;
301
297
  _context4.t0 = _context4["catch"](5);
302
298
  errorMessage = _context4.t0 instanceof Error ? _context4.t0.message : String(_context4.t0);
303
299
  console.error('[Menu] 清空 IndexDB 缓存失败:', _context4.t0);
304
300
  this.logError('清空 IndexDB 缓存失败', {
305
301
  error: errorMessage
306
302
  });
307
- case 17:
308
- console.log('[Menu] 缓存已清空');
303
+ case 16:
309
304
  this.logInfo('缓存清空完成');
310
- case 19:
305
+ case 17:
311
306
  case "end":
312
307
  return _context4.stop();
313
308
  }
314
- }, _callee4, this, [[5, 12]]);
309
+ }, _callee4, this, [[5, 11]]);
315
310
  }));
316
311
  function clear() {
317
312
  return _clear.apply(this, arguments);
@@ -402,14 +397,13 @@ export var MenuModule = /*#__PURE__*/function (_BaseModule) {
402
397
  _context6.next = 10;
403
398
  return Promise.all(savePromises);
404
399
  case 10:
405
- console.log("[Menu] \u5DF2\u5C06 ".concat(menuList.length, " \u6761\u9910\u724C\u6570\u636E\u4FDD\u5B58\u5230 IndexDB"));
406
400
  this.logInfo('餐牌数据已保存到 IndexDB', {
407
401
  menuCount: menuList.length
408
402
  });
409
- _context6.next = 19;
403
+ _context6.next = 18;
410
404
  break;
411
- case 14:
412
- _context6.prev = 14;
405
+ case 13:
406
+ _context6.prev = 13;
413
407
  _context6.t0 = _context6["catch"](4);
414
408
  errorMessage = _context6.t0 instanceof Error ? _context6.t0.message : String(_context6.t0);
415
409
  console.error('[Menu] 保存数据到 IndexDB 失败:', _context6.t0);
@@ -417,11 +411,11 @@ export var MenuModule = /*#__PURE__*/function (_BaseModule) {
417
411
  menuCount: menuList.length,
418
412
  error: errorMessage
419
413
  });
420
- case 19:
414
+ case 18:
421
415
  case "end":
422
416
  return _context6.stop();
423
417
  }
424
- }, _callee6, this, [[4, 14]]);
418
+ }, _callee6, this, [[4, 13]]);
425
419
  }));
426
420
  function saveMenuToIndexDB(_x4) {
427
421
  return _saveMenuToIndexDB.apply(this, arguments);
@@ -441,19 +435,17 @@ export var MenuModule = /*#__PURE__*/function (_BaseModule) {
441
435
  return _regeneratorRuntime().wrap(function _callee7$(_context7) {
442
436
  while (1) switch (_context7.prev = _context7.next) {
443
437
  case 0:
444
- console.log('[Menu] 开始预加载数据...');
445
438
  startTime = Date.now();
446
439
  this.logInfo('开始预加载数据');
447
- _context7.prev = 3;
448
- _context7.next = 6;
440
+ _context7.prev = 2;
441
+ _context7.next = 5;
449
442
  return this.loadMenuFromIndexDB();
450
- case 6:
443
+ case 5:
451
444
  cachedData = _context7.sent;
452
445
  if (!(cachedData && cachedData.length > 0)) {
453
- _context7.next = 15;
446
+ _context7.next = 13;
454
447
  break;
455
448
  }
456
- console.log("[Menu] \u4ECE IndexDB \u52A0\u8F7D\u4E86 ".concat(cachedData.length, " \u6761\u9910\u724C\u6570\u636E"));
457
449
  // 将缓存数据放入 store
458
450
  this.store.menuList = cloneDeep(cachedData);
459
451
  // 同步更新 Map 缓存
@@ -466,31 +458,30 @@ export var MenuModule = /*#__PURE__*/function (_BaseModule) {
466
458
  source: 'IndexDB'
467
459
  });
468
460
  return _context7.abrupt("return");
469
- case 15:
470
- console.log('[Menu] IndexDB 中没有缓存数据,从服务器加载...');
461
+ case 13:
471
462
  this.logInfo('IndexDB 中没有缓存数据,准备从服务器加载');
472
- _context7.next = 24;
463
+ _context7.next = 21;
473
464
  break;
474
- case 19:
475
- _context7.prev = 19;
476
- _context7.t0 = _context7["catch"](3);
465
+ case 16:
466
+ _context7.prev = 16;
467
+ _context7.t0 = _context7["catch"](2);
477
468
  errorMessage = _context7.t0 instanceof Error ? _context7.t0.message : String(_context7.t0);
478
469
  console.warn('[Menu] 从 IndexDB 加载数据失败:', _context7.t0);
479
470
  this.logWarning('从 IndexDB 加载数据失败,准备从服务器加载', {
480
471
  error: errorMessage
481
472
  });
482
- case 24:
483
- _context7.next = 26;
473
+ case 21:
474
+ _context7.next = 23;
484
475
  return this.loadMenuList();
485
- case 26:
476
+ case 23:
486
477
  menuList = _context7.sent;
487
478
  if (!(menuList && menuList.length > 0)) {
488
- _context7.next = 37;
479
+ _context7.next = 34;
489
480
  break;
490
481
  }
491
- _context7.next = 30;
482
+ _context7.next = 27;
492
483
  return this.saveMenuToIndexDB(menuList);
493
- case 30:
484
+ case 27:
494
485
  this.store.menuList = cloneDeep(menuList);
495
486
  // 同步更新 Map 缓存
496
487
  this.syncMenuMap();
@@ -501,18 +492,18 @@ export var MenuModule = /*#__PURE__*/function (_BaseModule) {
501
492
  duration: "".concat(_duration2, "ms"),
502
493
  source: 'Server'
503
494
  });
504
- _context7.next = 39;
495
+ _context7.next = 36;
505
496
  break;
506
- case 37:
497
+ case 34:
507
498
  _duration3 = Date.now() - startTime;
508
499
  this.logWarning('预加载完成但未获取到数据', {
509
500
  duration: "".concat(_duration3, "ms")
510
501
  });
511
- case 39:
502
+ case 36:
512
503
  case "end":
513
504
  return _context7.stop();
514
505
  }
515
- }, _callee7, this, [[3, 19]]);
506
+ }, _callee7, this, [[2, 16]]);
516
507
  }));
517
508
  function preload() {
518
509
  return _preload.apply(this, arguments);
@@ -13,17 +13,28 @@ export declare class OrderModule extends BaseModule implements Module {
13
13
  private orderDataSource;
14
14
  private pendingSyncMessages;
15
15
  private syncTimer?;
16
- private readonly ORDER_SYNC_DEBOUNCE_MS;
17
- private resourceIdIndex;
16
+ private isProcessingSyncBatch;
17
+ private isIdlePhase;
18
18
  private logger;
19
19
  private storage;
20
+ private orderSQLiteSaveQueue; /** 按 storageKey 记录最近一次 SQLite 写入来源与时间,用于去重 */
21
+ private recentSqliteWriteByStorageKey;
22
+ /** 最近一次 SSE 全量拉取完成时间 */
23
+ private lastServerFullFetchAtMs;
20
24
  constructor(name?: string, version?: string);
25
+ /**
26
+ * 广播订单变更事件,兼容全量列表订阅并额外携带本次变更订单。
27
+ *
28
+ * @example
29
+ * await this.emitOrdersChanged([freshOrder], 'pubsub.bodyUpsert')
30
+ */
31
+ private emitOrdersChanged;
21
32
  initialize(core: PisellCore, options?: ModuleOptions): Promise<void>;
22
33
  /**
23
- * 记录信息日志
24
- * @param title 日志标题
25
- * @param metadata 日志元数据
26
- */
34
+ * 记录信息日志
35
+ * @param title 日志标题
36
+ * @param metadata 日志元数据
37
+ */
27
38
  private logInfo;
28
39
  /**
29
40
  * 记录错误日志
@@ -31,46 +42,190 @@ export declare class OrderModule extends BaseModule implements Module {
31
42
  * @param metadata 日志元数据
32
43
  */
33
44
  private logError;
45
+ private logWarning;
46
+ /**
47
+ * 在订单进入内存或 SQLite 前统一压缩子项强身份重复并补齐协议 UID。
48
+ * 仅记录计数与订单标识,不输出商品、预约、支付或客户明细。
49
+ */
50
+ private normalizeOrderCollectionsForIngress;
51
+ /**
52
+ * incoming 决定权威成员集合;同一持久化行仍从 existing 补齐 incoming 省略的本地展示字段。
53
+ */
54
+ private mergeAuthoritativeOrderCollection;
55
+ private reconcileOverwriteOrderCollections;
56
+ /**
57
+ * 记录订单最近一次 SQLite 写入,供 pubsub 回声去重使用。
58
+ *
59
+ * @example
60
+ * this.recordRecentSqliteWrite('upsertOrdersFromRemote', orders)
61
+ */
62
+ private recordRecentSqliteWrite;
63
+ /**
64
+ * 过滤 pubsub 触发的冗余 SQLite patch(业务 API 刚写入过的 update 回声)。
65
+ *
66
+ * @example
67
+ * const { toWrite, skipped } = this.filterRedundantPatchOrders('pubsub.bodyUpsert', orders, mergeActions)
68
+ */
69
+ private filterRedundantPatchOrders;
70
+ /**
71
+ * 过滤 pubsub HTTP 增量拉取 ids:本地刚由业务 API 写入的单可跳过 HTTP。
72
+ *
73
+ * @example
74
+ * const ids = this.filterRedundantHttpRefreshIds([99331, 99332])
75
+ */
76
+ private filterRedundantHttpRefreshIds;
77
+ /**
78
+ * 解析 pubsub 消息会走哪条同步分支,便于对照为何触发 HTTP 重拉或 body 直写。
79
+ *
80
+ * @example
81
+ * this.resolveSyncMessageRoute(msg)
82
+ * // => { route: 'httpRefresh.batchIds', ... }
83
+ */
84
+ private resolveSyncMessageRoute;
85
+ private updateCreateStore;
86
+ private getOrderSyncThrottleMs;
34
87
  preload(): Promise<void>;
35
88
  getOrders(): OrderData[];
36
89
  getOrderById(id: OrderId): OrderData | undefined;
37
- /** 按 order_id 查询(推荐) */
90
+ /** 按 order_id 查询内存订单。 */
38
91
  getOrderByOrderId(orderId: OrderId): OrderData | undefined;
92
+ getLocalOrderFromMemoryByLookup(lookup: OrderId): OrderData | null;
93
+ getLocalOrderByLookup(lookup: OrderId): Promise<OrderData | null>;
39
94
  loadOrdersByServer(): Promise<OrderData[]>;
40
- getOrdersByResourceId(resourceId: string | number): OrderData[];
95
+ /**
96
+ * 静默全量刷新:后台重新拉取全量 SSE 订单数据并更新本地
97
+ * 拿到完整数据后一次性替换 store,触发订单变更与同步完成事件
98
+ * @returns 刷新后的订单列表
99
+ */
100
+ silentRefresh(): Promise<OrderData[]>;
101
+ private normalizeOrderForMemoryList;
102
+ /**
103
+ * 仅覆盖本地已存在的订单;不存在则直接跳过,不落库、不 emit。
104
+ * 适用于"按 order_id 主动刷新本地订单详情"的代理场景。
105
+ */
106
+ overwriteExistingOrder(fresh: OrderData): Promise<{
107
+ overwritten: boolean;
108
+ }>;
109
+ /**
110
+ * 将远端拉取的订单合并进本地 store(已存在则更新,不存在则追加),落库并 emit onOrdersChanged。
111
+ * 供 /update/localOrder 等在「本地尚无该单」时写入新建单。
112
+ */
113
+ upsertOrdersFromRemote(freshOrders: OrderData[]): Promise<void>;
114
+ markOrderSyncedByExternalSaleNumber(params: {
115
+ externalSaleNumber: OrderId;
116
+ patch?: Partial<OrderData>;
117
+ }): Promise<{
118
+ updated: boolean;
119
+ order?: OrderData;
120
+ }>;
121
+ /**
122
+ * 将本地待同步订单按 SQLite storage key 合并进 store 并落库。
123
+ * checkout 离线兜底可能没有 order_id,但通常会有 external_sale_number。
124
+ */
125
+ upsertPendingSyncOrders(pendingOrders: OrderData[]): Promise<void>;
126
+ /**
127
+ * 通过 SSE 按自定义 query 拉取订单(支持 select/with 精简字段)
128
+ */
129
+ fetchOrdersBySSE(query?: Record<string, any>): Promise<OrderData[]>;
41
130
  getRoutes(): RouteDefinition[];
42
131
  destroy(): void;
43
132
  private syncOrdersMap;
44
- private extractResourceIds;
133
+ private getOrderMapKey;
134
+ private isBlankIdentityValue;
135
+ private getOrderIdentityEntries;
136
+ private getOrderIdentityKeys;
45
137
  private getOrderDateKey;
46
138
  /**
47
139
  * 初始化 OrderDataSource 实例
48
140
  */
49
141
  private initOrderDataSource;
50
142
  /**
51
- * 初始化 pubsub 订阅,监听订单变更
143
+ * 初始化 pubsub 订阅,监听订单变更(纯订阅,不拉数据;全量 SSE 由 loadOrdersByServer 负责)
52
144
  */
53
145
  private setupOrderSync;
54
146
  /**
55
- * 处理防抖后的同步消息批次
147
+ * 调度订单同步节流窗口(leading-edge throttle):
148
+ * - 空闲状态下收到的第一条消息立即触发批处理,无需等待;
149
+ * - 首条处理后进入冷却窗口,窗口期间的后续消息聚合,窗口结束后批量处理;
150
+ * - 若当前批处理执行中,则由批处理结束后决定是否开启下一轮窗口。
151
+ */
152
+ private scheduleOrderSyncThrottle;
153
+ /**
154
+ * 执行一次节流批处理并在需要时续约下一轮窗口。
155
+ * 批处理完成且无后续消息时恢复空闲状态,下一条消息将立即触发。
156
+ */
157
+ private flushOrderSyncMessagesByThrottle;
158
+ /**
159
+ * 处理节流窗口内聚合后的同步消息批次
56
160
  *
57
161
  * 后端统一发送 change 消息,不再区分新增/编辑/删除。
58
162
  * - 单条(id/order_id):若携带 body/data 则直接 upsert 到本地
59
163
  * - 批量(ids):通过 HTTP 按 ids 增量拉取,再 merge 到本地
164
+ *
165
+ * @example
166
+ * // pending 队列中存在 8 条消息时,仅处理一次批次并统一 merge
167
+ * await this.processOrderSyncMessages()
60
168
  */
61
169
  private processOrderSyncMessages;
62
170
  /**
63
- * 通过 HTTP 按 ids 增量拉取订单
171
+ * 通过 HTTP 按 ids 批量拉取订单详情(走 orderDataSource)。
172
+ *
173
+ * - 优先使用 `orderDataSource.fetchOrdersByIds`(如适配器实现了该方法)
174
+ * - 否则回退到 `orderDataSource.run({ http: { query: { ids } } })`
175
+ * - 失败统一返回空数组(由调用方按"返回缺失的 id" 判断单笔失败)
176
+ *
177
+ * @example
178
+ * const fresh = await orderModule.fetchOrdersByHttp(['96971', '96972'])
64
179
  */
65
- private fetchOrdersByHttp;
180
+ fetchOrdersByHttp(ids: OrderId[]): Promise<OrderData[]>;
66
181
  /**
67
182
  * 将增量订单合并到 store
68
183
  */
69
184
  private mergeOrdersToStore;
185
+ /**
186
+ * 在身份索引中查找与目标订单共享任一身份键的已存在订单下标。
187
+ * 返回所有命中键里最小的下标,等价于原 findOrderIndexByIdentity 的「取首个匹配」语义。
188
+ *
189
+ * @example
190
+ * const idx = this.lookupOrderIndexByIdentityKeys(identityKeyToIndex, freshIdentityKeys)
191
+ */
192
+ private lookupOrderIndexByIdentityKeys;
193
+ private isRemoteEchoMergeSource;
194
+ /**
195
+ * 将订单的全部身份键登记到索引并指向其在列表中的下标。
196
+ * 合并后订单新增的身份字段(如挂单同步后拿到 order_id)也会被登记。
197
+ *
198
+ * @example
199
+ * this.registerOrderIdentityKeys(identityKeyToIndex, mergedOrder, matchIndex)
200
+ */
201
+ private registerOrderIdentityKeys;
202
+ /**
203
+ * 合并热路径去重兜底:默认直接返回原列表(增量索引已保证无重复)。
204
+ * 仅当 ORDER_MERGE_SELF_CHECK 开启时,额外做一次全表压缩并在发现残留重复时告警。
205
+ */
206
+ private runOrderStoreSelfCheck;
70
207
  private normalizeOrderSyncMessage;
71
208
  private normalizeOrderSyncPayload;
72
209
  private uniqueOrderIds;
73
210
  private getIdKey;
211
+ private isOrderLookupMatch;
212
+ /**
213
+ * 解析订单 SQLite 主键,规则与宿主 OrderDataSource.getOrderStorageKey 一致。
214
+ *
215
+ * @example
216
+ * const key = this.getOrderStorageKey({ order_id: 1001, external_sale_number: 'S-1001' })
217
+ * // => 'S-1001'
218
+ */
219
+ private getOrderStorageKey;
220
+ private getOrderIdentityMatchKeys;
221
+ private doOrdersShareIdentity;
222
+ private findOrderIndexByIdentity;
223
+ private getOrderCompletenessScore;
224
+ private pickPreferredOrder;
225
+ private mergeOrderRecords;
226
+ private summarizeDuplicateOrders;
227
+ private logDuplicateOrders;
228
+ private compactOrderListByIdentity;
74
229
  /**
75
230
  * 当前订单拉取窗口:
76
231
  * - 优先使用 createdAtQuery.sales_time_between(已按营业日边界初始化)
@@ -82,6 +237,44 @@ export declare class OrderModule extends BaseModule implements Module {
82
237
  private getStorageItem;
83
238
  private setStorageItem;
84
239
  private loadOrdersFromSQLite;
85
- private saveOrdersToSQLite;
240
+ private isPendingSyncOrder;
241
+ private normalizeRemoteSyncedOrder;
242
+ private mergeRemoteSnapshotWithPendingOrders;
243
+ /**
244
+ * 串行执行订单 SQLite 写入任务,避免快照替换与增量 upsert 并发交错。
245
+ *
246
+ * @example
247
+ * await this.runInOrderSQLiteSaveQueue(async () => {
248
+ * await this.dbManager.bulkUpdate(INDEXDB_STORE_NAME, orders)
249
+ * })
250
+ */
251
+ private runInOrderSQLiteSaveQueue;
252
+ /**
253
+ * 批量增量 upsert 订单到 SQLite,不清空表;用于 pubsub / HTTP 增量合并。
254
+ *
255
+ * @example
256
+ * await this.patchOrdersInSQLite(freshOrders)
257
+ */
258
+ private patchOrdersInSQLite;
259
+ /**
260
+ * 单条 upsert 订单到 SQLite;用于 overwriteExistingOrder 等单条覆盖场景。
261
+ *
262
+ * @example
263
+ * await this.updateOrderInSQLite(freshOrder)
264
+ */
265
+ private updateOrderInSQLite;
266
+ /**
267
+ * 全量快照替换 orders 表(clear + bulkAdd),用于 SSE 全量拉取与营业日窗口裁剪。
268
+ *
269
+ * @example
270
+ * await this.replaceOrdersSnapshotInSQLite(orderList)
271
+ */
272
+ private replaceOrdersSnapshotInSQLite;
273
+ /**
274
+ * 清空订单模块的内存数据和本地 SQLite 订单表。
275
+ *
276
+ * @example
277
+ * await orderModule.clear()
278
+ */
86
279
  clear(): Promise<void>;
87
280
  }