@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,39 @@
1
+ import { Module, PisellCore } from '../../../types';
2
+ import { BaseModule } from '../../../modules/BaseModule';
3
+ import { type FloorPlanItem } from './types';
4
+ /**
5
+ * 平面图模块:预加载列表、pubsub 同步、供 OS Server 路由读本地 store
6
+ */
7
+ export declare class FloorPlanModule extends BaseModule implements Module {
8
+ protected defaultName: string;
9
+ protected defaultVersion: string;
10
+ private store;
11
+ private request;
12
+ private logger;
13
+ private floorPlanDataSource;
14
+ private pendingSyncMessages;
15
+ private syncTimer?;
16
+ constructor(name?: string, version?: string);
17
+ initialize(core: PisellCore, options: any): Promise<void>;
18
+ private logInfo;
19
+ private logWarning;
20
+ private logError;
21
+ private idKey;
22
+ private syncMaps;
23
+ /** 与接口约定一致:sort 升序,id 降序 */
24
+ getSortedList(): FloorPlanItem[];
25
+ getById(id: number | string): FloorPlanItem | undefined;
26
+ getByCode(code: string): FloorPlanItem | undefined;
27
+ private replaceStore;
28
+ private mergeItems;
29
+ private removeByIds;
30
+ private loadListFromServer;
31
+ fetchByIdFromServer(id: number | string): Promise<FloorPlanItem | null>;
32
+ fetchByCodeFromServer(code: string): Promise<FloorPlanItem | null>;
33
+ preload(): Promise<void>;
34
+ private initFloorPlanDataSource;
35
+ private setupFloorPlanSync;
36
+ private processFloorPlanSyncMessages;
37
+ clear(): Promise<void>;
38
+ destroy(): void;
39
+ }
@@ -0,0 +1,306 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.FloorPlanModule = void 0;
7
+ var _BaseModule = require("../../../modules/BaseModule");
8
+ var _types = require("./types");
9
+ const FLOOR_PLAN_SYNC_DEBOUNCE_MS = 3000;
10
+
11
+ /**
12
+ * 平面图模块:预加载列表、pubsub 同步、供 OS Server 路由读本地 store
13
+ */
14
+ class FloorPlanModule extends _BaseModule.BaseModule {
15
+ defaultName = 'floor_plan';
16
+ defaultVersion = '1.0.0';
17
+ store;
18
+ request;
19
+ logger;
20
+ floorPlanDataSource;
21
+ pendingSyncMessages = [];
22
+ syncTimer;
23
+ constructor(name, version) {
24
+ super(name, version);
25
+ }
26
+ async initialize(core, options) {
27
+ this.core = core;
28
+ this.store = options.store;
29
+ if (Array.isArray(options?.initialState?.list) && options.initialState.list.length > 0) {
30
+ this.store.list = options.initialState.list;
31
+ this.syncMaps();
32
+ this.core.effects.emit(_types.FloorPlanHooks.onFloorPlansChanged, this.store.list);
33
+ } else {
34
+ this.store.list = [];
35
+ this.store.map = new Map();
36
+ this.store.codeMap = new Map();
37
+ }
38
+ this.request = core.getPlugin('request');
39
+ const appPlugin = core.getPlugin('app');
40
+ if (appPlugin) {
41
+ const app = appPlugin.getApp();
42
+ this.logger = app.logger;
43
+ }
44
+ this.initFloorPlanDataSource();
45
+ this.setupFloorPlanSync();
46
+ }
47
+ logInfo(title, metadata) {
48
+ try {
49
+ this.logger?.addLog?.({
50
+ type: 'info',
51
+ title: `[FloorPlanModule] ${title}`,
52
+ metadata: metadata || {}
53
+ });
54
+ } catch {
55
+ // ignore
56
+ }
57
+ }
58
+ logWarning(title, metadata) {
59
+ try {
60
+ this.logger?.addLog?.({
61
+ type: 'warning',
62
+ title: `[FloorPlanModule] ${title}`,
63
+ metadata: metadata || {}
64
+ });
65
+ } catch {
66
+ // ignore
67
+ }
68
+ }
69
+ logError(title, metadata) {
70
+ try {
71
+ this.logger?.addLog?.({
72
+ type: 'error',
73
+ title: `[FloorPlanModule] ${title}`,
74
+ metadata: metadata || {}
75
+ });
76
+ } catch {
77
+ // ignore
78
+ }
79
+ }
80
+ idKey(id) {
81
+ return String(id);
82
+ }
83
+ syncMaps() {
84
+ this.store.map = new Map();
85
+ this.store.codeMap = new Map();
86
+ for (const item of this.store.list) {
87
+ if (item?.id == null) continue;
88
+ const key = this.idKey(item.id);
89
+ this.store.map.set(key, item);
90
+ if (item.code) {
91
+ this.store.codeMap.set(String(item.code), item);
92
+ }
93
+ }
94
+ }
95
+
96
+ /** 与接口约定一致:sort 升序,id 降序 */
97
+ getSortedList() {
98
+ return [...this.store.list].sort((a, b) => {
99
+ const sortDiff = Number(a.sort ?? 0) - Number(b.sort ?? 0);
100
+ if (sortDiff !== 0) return sortDiff;
101
+ return Number(b.id) - Number(a.id);
102
+ });
103
+ }
104
+ getById(id) {
105
+ return this.store.map.get(this.idKey(id));
106
+ }
107
+ getByCode(code) {
108
+ return this.store.codeMap.get(String(code));
109
+ }
110
+ replaceStore(list) {
111
+ this.store.list = list.map(i => ({
112
+ ...i
113
+ }));
114
+ this.syncMaps();
115
+ }
116
+ mergeItems(items) {
117
+ if (items.length === 0) return;
118
+ const byId = new Map(this.store.map);
119
+ for (const item of items) {
120
+ if (item?.id == null) continue;
121
+ byId.set(this.idKey(item.id), {
122
+ ...item
123
+ });
124
+ }
125
+ this.store.list = Array.from(byId.values());
126
+ this.syncMaps();
127
+ }
128
+ removeByIds(ids) {
129
+ if (ids.length === 0) return;
130
+ const set = new Set(ids.map(id => this.idKey(id)));
131
+ this.store.list = this.store.list.filter(p => !set.has(this.idKey(p.id)));
132
+ this.syncMaps();
133
+ }
134
+ async loadListFromServer() {
135
+ try {
136
+ const res = await this.request.get(`/schedule/floor-plan`, {}, {
137
+ isShopApi: true
138
+ });
139
+ const body = res;
140
+ const raw = body?.data !== undefined ? body.data : body;
141
+ const list = Array.isArray(raw) ? raw : [];
142
+ return list;
143
+ } catch (e) {
144
+ this.logWarning('loadListFromServer 失败', {
145
+ error: e instanceof Error ? e.message : String(e)
146
+ });
147
+ return [];
148
+ }
149
+ }
150
+ async fetchByIdFromServer(id) {
151
+ try {
152
+ const res = await this.request.get(`/schedule/floor-plan/${id}`, {}, {
153
+ isShopApi: true
154
+ });
155
+ const body = res;
156
+ const data = body?.data !== undefined ? body.data : body;
157
+ return data && typeof data === 'object' ? data : null;
158
+ } catch {
159
+ return null;
160
+ }
161
+ }
162
+ async fetchByCodeFromServer(code) {
163
+ try {
164
+ const enc = encodeURIComponent(code);
165
+ const res = await this.request.get(`/schedule/floor-plan/code/${enc}`, {}, {
166
+ isShopApi: true
167
+ });
168
+ const body = res;
169
+ const data = body?.data !== undefined ? body.data : body;
170
+ return data && typeof data === 'object' ? data : null;
171
+ } catch {
172
+ return null;
173
+ }
174
+ }
175
+ async preload() {
176
+ this.logInfo('开始预加载平面图列表');
177
+ const list = await this.loadListFromServer();
178
+ if (list.length > 0) {
179
+ this.replaceStore(list);
180
+ this.core.effects.emit(_types.FloorPlanHooks.onFloorPlansChanged, this.getSortedList());
181
+ this.logInfo('预加载完成', {
182
+ count: list.length
183
+ });
184
+ } else {
185
+ this.logWarning('预加载完成但列表为空');
186
+ }
187
+ }
188
+ initFloorPlanDataSource() {
189
+ const Ctor = this.core.serverOptions?.All_DATA_SOURCES?.FloorPlanDataSource;
190
+ if (!Ctor) {
191
+ this.logWarning('FloorPlanDataSource 不可用,跳过 pubsub 同步');
192
+ return;
193
+ }
194
+ this.floorPlanDataSource = new Ctor();
195
+ this.logInfo('FloorPlanDataSource 实例已创建');
196
+ }
197
+ setupFloorPlanSync() {
198
+ if (!this.floorPlanDataSource) return;
199
+ const flush = () => {
200
+ if (this.syncTimer) clearTimeout(this.syncTimer);
201
+ this.syncTimer = setTimeout(() => {
202
+ this.processFloorPlanSyncMessages();
203
+ }, FLOOR_PLAN_SYNC_DEBOUNCE_MS);
204
+ };
205
+ this.floorPlanDataSource.run({
206
+ pubsub: {
207
+ callback: res => {
208
+ const data = res?.data || res;
209
+ if (!data || data.module !== 'floor_plan') return;
210
+ this.pendingSyncMessages.push({
211
+ ...data
212
+ });
213
+ flush();
214
+ }
215
+ }
216
+ }).catch(err => {
217
+ this.logError('setupFloorPlanSync: DataSource run 出错', {
218
+ error: err instanceof Error ? err.message : String(err)
219
+ });
220
+ });
221
+ this.logInfo('floor_plan pubsub 订阅已建立');
222
+ }
223
+ async processFloorPlanSyncMessages() {
224
+ const messages = [...this.pendingSyncMessages];
225
+ this.pendingSyncMessages = [];
226
+ if (messages.length === 0) return;
227
+ this.logInfo('processFloorPlanSyncMessages 开始', {
228
+ count: messages.length
229
+ });
230
+ let changed = false;
231
+ const deleteIds = [];
232
+ const bodyItems = [];
233
+ let needFullList = false;
234
+ const partialIds = new Set();
235
+ for (const msg of messages) {
236
+ if (msg.operation === 'delete' || msg.action === 'delete') {
237
+ if (msg.ids?.length) {
238
+ deleteIds.push(...msg.ids);
239
+ } else if (msg.id != null) {
240
+ deleteIds.push(msg.id);
241
+ }
242
+ continue;
243
+ }
244
+ const body = msg.body;
245
+ const hasBody = body && typeof body === 'object' && Object.keys(body).length > 0 && body.id != null;
246
+ if (hasBody) {
247
+ bodyItems.push(body);
248
+ continue;
249
+ }
250
+ if (msg.ids && msg.ids.length > 1) {
251
+ needFullList = true;
252
+ continue;
253
+ }
254
+ if (msg.ids?.length === 1) {
255
+ partialIds.add(msg.ids[0]);
256
+ } else if (msg.id != null) {
257
+ partialIds.add(msg.id);
258
+ }
259
+ }
260
+ const uniqueDeletes = [...new Set(deleteIds)];
261
+ if (uniqueDeletes.length > 0) {
262
+ this.removeByIds(uniqueDeletes);
263
+ changed = true;
264
+ }
265
+ if (bodyItems.length > 0) {
266
+ this.mergeItems(bodyItems);
267
+ changed = true;
268
+ }
269
+ if (needFullList) {
270
+ const list = await this.loadListFromServer();
271
+ this.replaceStore(list);
272
+ changed = true;
273
+ } else if (partialIds.size > 0) {
274
+ const fetched = [];
275
+ for (const id of partialIds) {
276
+ const one = await this.fetchByIdFromServer(id);
277
+ if (one) fetched.push(one);
278
+ }
279
+ if (fetched.length > 0) {
280
+ this.mergeItems(fetched);
281
+ changed = true;
282
+ }
283
+ }
284
+ if (changed) {
285
+ this.core.effects.emit(_types.FloorPlanHooks.onFloorPlansChanged, this.getSortedList());
286
+ this.core.effects.emit(_types.FloorPlanHooks.onFloorPlanSyncCompleted, null);
287
+ }
288
+ }
289
+ async clear() {
290
+ this.store.list = [];
291
+ this.store.map.clear();
292
+ this.store.codeMap.clear();
293
+ }
294
+ destroy() {
295
+ if (this.syncTimer) {
296
+ clearTimeout(this.syncTimer);
297
+ this.syncTimer = undefined;
298
+ }
299
+ this.pendingSyncMessages = [];
300
+ if (this.floorPlanDataSource?.destroy) {
301
+ this.floorPlanDataSource.destroy();
302
+ }
303
+ super.destroy();
304
+ }
305
+ }
306
+ exports.FloorPlanModule = FloorPlanModule;
@@ -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,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.FloorPlanHooks = void 0;
7
+ /**
8
+ * 平面图(floor-plan)Server 模块类型
9
+ * 与 GET /shop/schedule/floor-plan 系列接口数据结构对齐
10
+ */
11
+
12
+ /** pubsub / Ably 推送消息(与《平面图编辑器API文档》Socket 一节一致) */
13
+
14
+ const FloorPlanHooks = exports.FloorPlanHooks = {
15
+ /** 本地列表变更(预加载、合并、删除后) */
16
+ onFloorPlansChanged: 'server_floor_plan:onFloorPlansChanged',
17
+ /** pubsub 同步处理完成,供 Server 向订阅者推送最新查询结果 */
18
+ onFloorPlanSyncCompleted: 'server_floor_plan:onFloorPlanSyncCompleted'
19
+ };
@@ -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';
@@ -1,61 +1,108 @@
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);
1
+ "use strict";
18
2
 
19
- // src/server/modules/index.ts
20
- var modules_exports = {};
21
- __export(modules_exports, {
22
- MenuHooks: () => import_types2.MenuHooks,
23
- MenuModule: () => import_menu.MenuModule,
24
- OrderHooks: () => import_types4.OrderHooks,
25
- OrderModule: () => import_order.OrderModule,
26
- ProductsHooks: () => import_types.ProductsHooks,
27
- ProductsModule: () => import_products.ProductsModule,
28
- QuotationHooks: () => import_types3.QuotationHooks,
29
- QuotationModule: () => import_quotation.QuotationModule,
30
- ResourceHooks: () => import_resource2.ResourceHooks,
31
- ResourceModule: () => import_resource.ResourceModule,
32
- ScheduleModuleEx: () => import_schedule.ScheduleModuleEx,
33
- resourceModule: () => import_resource.resourceModule
34
- });
35
- module.exports = __toCommonJS(modules_exports);
36
- var import_products = require("./products");
37
- var import_types = require("./products/types");
38
- var import_menu = require("./menu");
39
- var import_types2 = require("./menu/types");
40
- var import_quotation = require("./quotation");
41
- var import_types3 = require("./quotation/types");
42
- var import_schedule = require("./schedule");
43
- var import_order = require("./order");
44
- var import_types4 = require("./order/types");
45
- var import_resource = require("./resource");
46
- var import_resource2 = require("./resource");
47
- // Annotate the CommonJS export names for ESM import in node:
48
- 0 && (module.exports = {
49
- MenuHooks,
50
- MenuModule,
51
- OrderHooks,
52
- OrderModule,
53
- ProductsHooks,
54
- ProductsModule,
55
- QuotationHooks,
56
- QuotationModule,
57
- ResourceHooks,
58
- ResourceModule,
59
- ScheduleModuleEx,
60
- resourceModule
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
61
5
  });
6
+ Object.defineProperty(exports, "FloorPlanHooks", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _types5.FloorPlanHooks;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "FloorPlanModule", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _floorPlan.FloorPlanModule;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "MenuHooks", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _types2.MenuHooks;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "MenuModule", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _menu.MenuModule;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "OrderHooks", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _types4.OrderHooks;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "OrderModule", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _order.OrderModule;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "PaymentServerModule", {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _payment.PaymentServerModule;
46
+ }
47
+ });
48
+ Object.defineProperty(exports, "ProductsHooks", {
49
+ enumerable: true,
50
+ get: function () {
51
+ return _types.ProductsHooks;
52
+ }
53
+ });
54
+ Object.defineProperty(exports, "ProductsModule", {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _products.ProductsModule;
58
+ }
59
+ });
60
+ Object.defineProperty(exports, "QuotationHooks", {
61
+ enumerable: true,
62
+ get: function () {
63
+ return _types3.QuotationHooks;
64
+ }
65
+ });
66
+ Object.defineProperty(exports, "QuotationModule", {
67
+ enumerable: true,
68
+ get: function () {
69
+ return _quotation.QuotationModule;
70
+ }
71
+ });
72
+ Object.defineProperty(exports, "ResourceHooks", {
73
+ enumerable: true,
74
+ get: function () {
75
+ return _resource.ResourceHooks;
76
+ }
77
+ });
78
+ Object.defineProperty(exports, "ResourceModule", {
79
+ enumerable: true,
80
+ get: function () {
81
+ return _resource.ResourceModule;
82
+ }
83
+ });
84
+ Object.defineProperty(exports, "ScheduleModuleEx", {
85
+ enumerable: true,
86
+ get: function () {
87
+ return _schedule.ScheduleModuleEx;
88
+ }
89
+ });
90
+ Object.defineProperty(exports, "resourceModule", {
91
+ enumerable: true,
92
+ get: function () {
93
+ return _resource.resourceModule;
94
+ }
95
+ });
96
+ var _products = require("./products");
97
+ var _types = require("./products/types");
98
+ var _menu = require("./menu");
99
+ var _types2 = require("./menu/types");
100
+ var _quotation = require("./quotation");
101
+ var _types3 = require("./quotation/types");
102
+ var _schedule = require("./schedule");
103
+ var _order = require("./order");
104
+ var _types4 = require("./order/types");
105
+ var _payment = require("./payment");
106
+ var _floorPlan = require("./floor-plan");
107
+ var _types5 = require("./floor-plan/types");
108
+ var _resource = require("./resource");