@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
@@ -17,13 +17,29 @@ export interface FormattedProductData extends ProductData {
17
17
  /** 购物车详情值 */
18
18
  cartDetailValue?: any;
19
19
  }
20
+ /**
21
+ * 商品轻量查询范围
22
+ */
23
+ export interface ProductIdScope {
24
+ /** 是否返回全部商品 ID */
25
+ isAllProducts?: boolean;
26
+ /** 指定商品 ID */
27
+ productIds?: number[];
28
+ /** 指定商品集合 ID */
29
+ collectionIds?: number[];
30
+ }
31
+ export interface ProductSnapshot {
32
+ cover?: ProductData['cover'];
33
+ holder_config?: ProductData['holder_config'];
34
+ }
20
35
  /**
21
36
  * 加载报价单商品价格参数
22
37
  */
23
38
  export interface LoadProductsPriceParams {
24
39
  ids: number[];
25
40
  schedule_date: string;
26
- customer_id?: number;
41
+ schedule_datetime?: string;
42
+ customer_id?: number | string;
27
43
  }
28
44
  /**
29
45
  * 加载报价单商品价格返回数据
@@ -47,6 +63,7 @@ export interface LoadProductsPriceData {
47
63
  bundle_product_id: number;
48
64
  bundle_variant_id: number;
49
65
  price: number;
66
+ base_price?: number | string;
50
67
  price_type: string;
51
68
  price_type_ext: string;
52
69
  }[];
@@ -97,6 +114,8 @@ export interface ProductSyncMessage {
97
114
  change_types?: string[];
98
115
  /** 关联商品 ID(product_collection / product_category / product_quotation 变更时携带) */
99
116
  relation_product_ids?: number[];
117
+ /** 关联商品 ID(product_data_variant 变更时携带) */
118
+ product_ids?: number[];
100
119
  message_uuid?: string;
101
120
  timestamp?: string;
102
121
  /** 内部标记:来源频道 key */
@@ -107,8 +126,22 @@ export interface ProductSyncMessage {
107
126
  */
108
127
  export interface ProductFormatterContext {
109
128
  schedule_date: string;
129
+ schedule_datetime?: string;
130
+ customer_id?: number | string;
110
131
  priceData?: LoadProductsPriceData[];
111
132
  scheduleModule?: any;
133
+ /** 全量餐牌列表,供智能定价 menu_match 等条件判断使用 */
134
+ menuList?: any[];
135
+ /** 全量日程列表,供智能定价 schedule_match 等条件判断使用 */
136
+ scheduleList?: any[];
137
+ /** 外部传入的策略上下文,仅承载定价条件,不参与商品集合筛选 */
138
+ strategy_context?: Record<string, any>;
139
+ /** 智能定价评估器,由宿主统一注入到 PisellOS context */
140
+ dataVariantEvaluator?: {
141
+ resolveProducts: (businessData: any) => {
142
+ products: ProductData[];
143
+ };
144
+ };
112
145
  locale?: string;
113
146
  }
114
147
  /**
@@ -1,36 +1,46 @@
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/products/types.ts
20
- var types_exports = {};
21
- __export(types_exports, {
22
- ProductsHooks: () => ProductsHooks
23
- });
24
- module.exports = __toCommonJS(types_exports);
25
- var ProductsHooks = /* @__PURE__ */ ((ProductsHooks2) => {
26
- ProductsHooks2["onProductsLoaded"] = "products:onProductsLoaded";
27
- ProductsHooks2["onProductsChanged"] = "products:onProductsChanged";
28
- ProductsHooks2["onProductSelected"] = "products:onProductSelected";
29
- ProductsHooks2["onProductsPriceApplied"] = "products:onProductsPriceApplied";
30
- ProductsHooks2["onProductsSyncCompleted"] = "products:onProductsSyncCompleted";
31
- return ProductsHooks2;
32
- })(ProductsHooks || {});
33
- // Annotate the CommonJS export names for ESM import in node:
34
- 0 && (module.exports = {
35
- ProductsHooks
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
36
5
  });
6
+ exports.ProductsHooks = void 0;
7
+ /**
8
+ * Products 模块状态
9
+ */
10
+ /**
11
+ * 商品格式化后数据
12
+ */
13
+ /**
14
+ * 商品轻量查询范围
15
+ */
16
+ /**
17
+ * 加载报价单商品价格参数
18
+ */
19
+ /**
20
+ * 加载报价单商品价格返回数据
21
+ */
22
+ /**
23
+ * 加载报价单商品价格返回数据
24
+ */
25
+ /**
26
+ * Products 模块状态
27
+ */
28
+ /**
29
+ * Products 模块钩子
30
+ */
31
+ let ProductsHooks = exports.ProductsHooks = /*#__PURE__*/function (ProductsHooks) {
32
+ ProductsHooks["onProductsLoaded"] = "products:onProductsLoaded";
33
+ ProductsHooks["onProductsChanged"] = "products:onProductsChanged";
34
+ ProductsHooks["onProductSelected"] = "products:onProductSelected";
35
+ ProductsHooks["onProductsPriceApplied"] = "products:onProductsPriceApplied";
36
+ ProductsHooks["onProductsSyncCompleted"] = "products:onProductsSyncCompleted";
37
+ return ProductsHooks;
38
+ }({});
39
+ /** pubsub 商品同步消息结构 */
40
+ /**
41
+ * 商品格式化器上下文
42
+ */
43
+ /**
44
+ * 商品格式化器类型
45
+ * 用于对商品数据进行处理和格式化(包括价格应用、字段扩展等)
46
+ */
@@ -1,6 +1,8 @@
1
1
  import { Module, PisellCore, ModuleOptions } from '../../../types';
2
2
  import { BaseModule } from '../../../modules/BaseModule';
3
3
  import { QuotationData } from './types';
4
+ import type { ScheduleItem } from '../../../modules/Schedule/types';
5
+ import type { QuotationCustomerScopeInfo } from '../../../modules/Quotation/types';
4
6
  /**
5
7
  * 报价单模块 - 用于管理报价单数据和计算商品价格
6
8
  */
@@ -10,6 +12,7 @@ export declare class QuotationModule extends BaseModule implements Module {
10
12
  private request;
11
13
  private store;
12
14
  private dbManager;
15
+ private scheduleResolver?;
13
16
  constructor(name?: string, version?: string);
14
17
  initialize(core: PisellCore, options?: ModuleOptions): Promise<void>;
15
18
  /**
@@ -25,10 +28,46 @@ export declare class QuotationModule extends BaseModule implements Module {
25
28
  * 获取报价单列表
26
29
  */
27
30
  getQuotationList(): QuotationData[];
31
+ loadQuotations(params?: {
32
+ channel?: string;
33
+ customer_id?: number | string;
34
+ }): Promise<void>;
35
+ setScheduleResolver(resolver: (id: number) => ScheduleItem | undefined): void;
36
+ getPriceForProduct(params: {
37
+ productId: number;
38
+ variantId?: number;
39
+ datetime: string;
40
+ channel?: string;
41
+ customer_id?: number | string;
42
+ }): string | null;
43
+ getQuotationMatchForProduct(params: {
44
+ productId: number;
45
+ variantId?: number;
46
+ datetime: string;
47
+ channel?: string;
48
+ customer_id?: number | string;
49
+ }): {
50
+ price: string | null;
51
+ quotationShelfId: number;
52
+ } | null;
53
+ getQuotationShelfId(params: {
54
+ productId: number;
55
+ variantId?: number;
56
+ datetime: string;
57
+ channel?: string;
58
+ customer_id?: number | string;
59
+ }): number;
60
+ getQuotationCustomerScopeInfo(): QuotationCustomerScopeInfo;
28
61
  /**
29
62
  * 清空缓存
30
63
  */
31
64
  clear(): Promise<void>;
65
+ private normalizeCustomerId;
66
+ private hasValidCustomerId;
67
+ private isQuotationVisibleForCustomer;
68
+ private isQuotationVisibleForChannel;
69
+ private isQuotationActiveAt;
70
+ private findProductData;
32
71
  /**
33
72
  * 从 IndexDB 加载报价单数据
34
73
  * @private
@@ -1,115 +1,255 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
-
19
- // src/server/modules/quotation/index.ts
20
- var quotation_exports = {};
21
- __export(quotation_exports, {
22
- QuotationModule: () => QuotationModule
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
23
5
  });
24
- module.exports = __toCommonJS(quotation_exports);
25
- var import_lodash_es = require("lodash-es");
26
- var import_BaseModule = require("../../../modules/BaseModule");
27
- var import_types = require("./types");
28
- var INDEXDB_STORE_NAME = "quotation";
29
- var QuotationModule = class extends import_BaseModule.BaseModule {
30
- // IndexDBManager 实例
6
+ exports.QuotationModule = void 0;
7
+ var _lodashEs = require("lodash-es");
8
+ var _dayjs = _interopRequireDefault(require("dayjs"));
9
+ var _isSameOrBefore = _interopRequireDefault(require("dayjs/plugin/isSameOrBefore"));
10
+ var _isSameOrAfter = _interopRequireDefault(require("dayjs/plugin/isSameOrAfter"));
11
+ var _BaseModule = require("../../../modules/BaseModule");
12
+ var _types = require("./types");
13
+ var _getDateIsInSchedule = require("../../../modules/Schedule/getDateIsInSchedule");
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+ _dayjs.default.extend(_isSameOrBefore.default);
16
+ _dayjs.default.extend(_isSameOrAfter.default);
17
+
18
+ /**
19
+ * IndexDB 存储名称
20
+ */
21
+ const INDEXDB_STORE_NAME = 'quotation';
22
+
23
+ /**
24
+ * 报价单模块 - 用于管理报价单数据和计算商品价格
25
+ */
26
+ class QuotationModule extends _BaseModule.BaseModule {
27
+ defaultName = 'quotation';
28
+ defaultVersion = '1.0.0';
29
+ request;
30
+ store;
31
+ dbManager; // IndexDBManager 实例
32
+ scheduleResolver;
31
33
  constructor(name, version) {
32
34
  super(name, version);
33
- this.defaultName = "quotation";
34
- this.defaultVersion = "1.0.0";
35
35
  }
36
36
  async initialize(core, options) {
37
- var _a;
38
37
  this.core = core;
39
- this.store = options == null ? void 0 : options.store;
40
- if (Array.isArray((_a = options == null ? void 0 : options.initialState) == null ? void 0 : _a.quotationList)) {
41
- this.store.quotationList = options == null ? void 0 : options.initialState.quotationList;
42
- this.core.effects.emit(import_types.QuotationHooks.onQuotationChanged, this.store.quotationList);
38
+ this.store = options?.store;
39
+ if (Array.isArray(options?.initialState?.quotationList)) {
40
+ this.store.quotationList = options?.initialState.quotationList;
41
+ this.core.effects.emit(_types.QuotationHooks.onQuotationChanged, this.store.quotationList);
43
42
  } else {
44
43
  this.store.quotationList = [];
45
44
  }
46
- this.request = core.getPlugin("request");
45
+
46
+ // 获取依赖的插件
47
+ this.request = core.getPlugin('request');
47
48
  if (!this.request) {
48
- throw new Error("QuotationModule 需要 request 插件支持");
49
+ throw new Error('QuotationModule 需要 request 插件支持');
49
50
  }
50
- const appPlugin = core.getPlugin("app");
51
+
52
+ // 获取并存储 dbManager
53
+ const appPlugin = core.getPlugin('app');
51
54
  if (appPlugin) {
52
55
  const app = appPlugin.getApp();
53
56
  this.dbManager = app.dbManager;
54
- if (this.dbManager) {
55
- console.log("[Quotation] IndexDB Manager 已初始化");
56
- } else {
57
- console.warn("[Quotation] IndexDB Manager 未找到");
57
+ if (this.dbManager) {} else {
58
+ console.warn('[Quotation] IndexDB Manager 未找到');
58
59
  }
59
60
  }
60
61
  }
62
+
61
63
  /**
62
64
  * 加载报价单列表(从服务器)
63
65
  * TODO: 接口地址待定
64
66
  */
65
67
  async loadQuotationList() {
66
- var _a;
67
68
  try {
68
- const response = await this.request.get(
69
- `/quotation`,
70
- {
71
- num: 999,
72
- skip: 1,
73
- status: "published"
74
- }
75
- );
76
- const quotationList = ((_a = response.data) == null ? void 0 : _a.list) || [];
69
+ // TODO: 替换为实际的接口地址
70
+ const response = await this.request.get(`/quotation`, {
71
+ num: 999,
72
+ skip: 1,
73
+ status: 'published'
74
+ });
75
+ const quotationList = response.data?.list || [];
76
+
77
+ // 保存到 IndexDB
77
78
  await this.saveQuotationToIndexDB(quotationList);
78
79
  await this.setQuotationList(quotationList);
79
80
  return quotationList;
80
81
  } catch (error) {
81
- console.error("[Quotation] 加载报价单数据失败:", error);
82
+ console.error('[Quotation] 加载报价单数据失败:', error);
82
83
  return [];
83
84
  }
84
85
  }
86
+
85
87
  /**
86
88
  * 设置报价单列表
87
89
  */
88
90
  async setQuotationList(quotationList) {
89
91
  this.store.quotationList = quotationList;
90
- await this.core.effects.emit(import_types.QuotationHooks.onQuotationLoaded, quotationList);
92
+ await this.core.effects.emit(_types.QuotationHooks.onQuotationLoaded, quotationList);
91
93
  }
94
+
92
95
  /**
93
96
  * 获取报价单列表
94
97
  */
95
98
  getQuotationList() {
96
99
  return this.store.quotationList;
97
100
  }
101
+ async loadQuotations(params) {
102
+ if (Array.isArray(this.store.quotationList) && this.store.quotationList.length > 0) {
103
+ this.store.quotationList.sort((a, b) => Number(a.sort ?? a.priority ?? 0) - Number(b.sort ?? b.priority ?? 0));
104
+ return;
105
+ }
106
+ const query = {};
107
+ if (params?.channel) query.channel = params.channel;
108
+ if (params?.channel === 'online_store') query.channel = 'online-store';
109
+ const res = await this.request.get('/quotation/available', query, {
110
+ useCache: false,
111
+ osServer: true
112
+ });
113
+ const list = res?.data?.list || res?.list || [];
114
+ list.sort((a, b) => Number(a.sort ?? a.priority ?? 0) - Number(b.sort ?? b.priority ?? 0));
115
+ this.store.quotationList = list;
116
+ await this.core.effects.emit(_types.QuotationHooks.onQuotationLoaded, this.store.quotationList);
117
+ }
118
+ setScheduleResolver(resolver) {
119
+ this.scheduleResolver = resolver;
120
+ }
121
+ getPriceForProduct(params) {
122
+ return this.getQuotationMatchForProduct(params)?.price ?? null;
123
+ }
124
+ getQuotationMatchForProduct(params) {
125
+ const {
126
+ productId,
127
+ variantId,
128
+ datetime,
129
+ channel,
130
+ customer_id
131
+ } = params;
132
+ for (const quotation of this.store.quotationList) {
133
+ if (!this.isQuotationVisibleForChannel(quotation, channel)) continue;
134
+ if (!this.isQuotationVisibleForCustomer(quotation, customer_id)) continue;
135
+ if (!this.isQuotationActiveAt(quotation, datetime)) continue;
136
+ const match = this.findProductData(quotation, productId, variantId);
137
+ if (!match) continue;
138
+ const value = match.value ?? match.final_price ?? match.discount_value;
139
+ if (Number(value) === 0) continue;
140
+ if (value === undefined || value === null || value === '') continue;
141
+ return {
142
+ price: String(value),
143
+ quotationShelfId: Number(quotation.id) || 0
144
+ };
145
+ }
146
+ return null;
147
+ }
148
+ getQuotationShelfId(params) {
149
+ return this.getQuotationMatchForProduct(params)?.quotationShelfId ?? 0;
150
+ }
151
+ getQuotationCustomerScopeInfo() {
152
+ const customerById = new Map();
153
+ const quotationScopes = this.store.quotationList.filter(quotation => Array.isArray(quotation?.customer) && quotation.customer.length > 0).map(quotation => {
154
+ const customerIds = [];
155
+ const customers = [];
156
+ const localSeen = new Set();
157
+ (quotation.customer || []).forEach(customer => {
158
+ const customerId = this.normalizeCustomerId(customer?.id);
159
+ if (!customerId || localSeen.has(customerId)) return;
160
+ localSeen.add(customerId);
161
+ customerIds.push(customerId);
162
+ customers.push(customer);
163
+ if (!customerById.has(customerId)) customerById.set(customerId, customer);
164
+ });
165
+ return {
166
+ quotationId: Number(quotation.id),
167
+ quotationName: String(quotation.name || ''),
168
+ customerIds,
169
+ customers
170
+ };
171
+ });
172
+ const result = {
173
+ quotationCount: this.store.quotationList.length,
174
+ hasCustomerScopedQuotations: quotationScopes.length > 0,
175
+ allQuotationsCustomerScoped: this.store.quotationList.length > 0 && quotationScopes.length === this.store.quotationList.length,
176
+ customerIds: Array.from(customerById.keys()),
177
+ customers: Array.from(customerById.values()),
178
+ quotationScopes
179
+ };
180
+ return result;
181
+ }
98
182
  /**
99
183
  * 清空缓存
100
184
  */
101
185
  async clear() {
102
186
  this.store.quotationList = [];
187
+
188
+ // 同时清空 IndexDB 中的数据
103
189
  if (this.dbManager) {
104
190
  try {
105
191
  await this.dbManager.clear(INDEXDB_STORE_NAME);
106
- console.log("[Quotation] IndexDB 缓存已清空");
107
192
  } catch (error) {
108
- console.error("[Quotation] 清空 IndexDB 缓存失败:", error);
193
+ console.error('[Quotation] 清空 IndexDB 缓存失败:', error);
109
194
  }
110
195
  }
111
- console.log("[Quotation] 缓存已清空");
112
196
  }
197
+ normalizeCustomerId(customerId) {
198
+ if (customerId === undefined || customerId === null || customerId === '') return null;
199
+ return String(customerId);
200
+ }
201
+ hasValidCustomerId(customerId) {
202
+ if (customerId === undefined || customerId === null || customerId === '') return false;
203
+ return Number(customerId) > 0;
204
+ }
205
+ isQuotationVisibleForCustomer(quotation, customerId) {
206
+ const customers = quotation.customer || [];
207
+ if (!Array.isArray(customers) || customers.length === 0) return true;
208
+ if (!this.hasValidCustomerId(customerId)) return false;
209
+ return customers.some(customer => String(customer.id) === String(customerId));
210
+ }
211
+ isQuotationVisibleForChannel(quotation, channel) {
212
+ if (!channel) return true;
213
+ const normalizedChannel = channel === 'online_store' ? 'online-store' : channel;
214
+ const channels = quotation.channel;
215
+ if (!Array.isArray(channels) || channels.length === 0) return true;
216
+ return channels.some(item => String(item) === normalizedChannel);
217
+ }
218
+ isQuotationActiveAt(quotation, datetime) {
219
+ const quotationSchedules = Array.isArray(quotation.schedule) ? quotation.schedule : [];
220
+ const scheduleIds = Array.isArray(quotation.schedule_ids) ? quotation.schedule_ids : [];
221
+ if (!quotationSchedules.length && !scheduleIds.length) return false;
222
+ const scheduleItems = [];
223
+ quotationSchedules.forEach(schedule => {
224
+ const full = this.scheduleResolver?.(schedule.id);
225
+ if (full) {
226
+ scheduleItems.push(full);
227
+ return;
228
+ }
229
+ if (this.scheduleResolver) return;
230
+ scheduleItems.push({
231
+ ...schedule,
232
+ repeat_type: schedule.repeat_type || 'none',
233
+ repeat_rule: schedule.repeat_rule || null,
234
+ time_slot: schedule.time_slot || []
235
+ });
236
+ });
237
+ scheduleIds.forEach(id => {
238
+ const full = this.scheduleResolver?.(id);
239
+ if (full) scheduleItems.push(full);
240
+ });
241
+ if (!scheduleItems.length) return false;
242
+ return (0, _getDateIsInSchedule.getDateIsInSchedule)(datetime, scheduleItems);
243
+ }
244
+ findProductData(quotation, productId, variantId) {
245
+ const productData = Array.isArray(quotation.product_data) ? quotation.product_data : Array.isArray(quotation.product_prices) ? quotation.product_prices : [];
246
+ if (variantId && variantId !== 0) {
247
+ const variantMatch = productData.find(item => Number(item.product_id) === productId && Number(item.variant_id || 0) === variantId);
248
+ if (variantMatch) return variantMatch;
249
+ }
250
+ return productData.find(item => Number(item.product_id) === productId && Number(item.variant_id || 0) === 0);
251
+ }
252
+
113
253
  /**
114
254
  * 从 IndexDB 加载报价单数据
115
255
  * @private
@@ -119,13 +259,15 @@ var QuotationModule = class extends import_BaseModule.BaseModule {
119
259
  return [];
120
260
  }
121
261
  try {
262
+ // 直接获取所有报价单记录
122
263
  const quotationList = await this.dbManager.getAll(INDEXDB_STORE_NAME);
123
264
  return quotationList || [];
124
265
  } catch (error) {
125
- console.error("[Quotation] 从 IndexDB 读取数据失败:", error);
266
+ console.error('[Quotation] 从 IndexDB 读取数据失败:', error);
126
267
  return [];
127
268
  }
128
269
  }
270
+
129
271
  /**
130
272
  * 保存报价单数据到 IndexDB
131
273
  * @private
@@ -135,43 +277,44 @@ var QuotationModule = class extends import_BaseModule.BaseModule {
135
277
  return;
136
278
  }
137
279
  try {
280
+ // 先清空现有的报价单数据
138
281
  await this.dbManager.clear(INDEXDB_STORE_NAME);
139
- const savePromises = quotationList.map(
140
- (quotation) => this.dbManager.add(INDEXDB_STORE_NAME, quotation)
141
- );
282
+
283
+ // 逐个保存报价单(每个报价单是独立的记录)
284
+ const savePromises = quotationList.map(quotation => this.dbManager.add(INDEXDB_STORE_NAME, quotation));
142
285
  await Promise.all(savePromises);
143
- console.log(`[Quotation] 已将 ${quotationList.length} 条报价单数据保存到 IndexDB`);
144
286
  } catch (error) {
145
- console.error("[Quotation] 保存数据到 IndexDB 失败:", error);
287
+ console.error('[Quotation] 保存数据到 IndexDB 失败:', error);
146
288
  }
147
289
  }
290
+
148
291
  /**
149
292
  * 预加载模块数据(统一接口)
150
293
  * 在模块注册后自动调用
151
294
  */
152
295
  async preload() {
153
- console.log("[Quotation] 开始预加载数据...");
154
296
  try {
297
+ // 1. 尝试从 IndexDB 加载数据
155
298
  const cachedData = await this.loadQuotationFromIndexDB();
156
299
  if (cachedData && cachedData.length > 0) {
157
- console.log(`[Quotation] 从 IndexDB 加载了 ${cachedData.length} 条报价单数据`);
158
- this.store.quotationList = (0, import_lodash_es.cloneDeep)(cachedData);
159
- this.core.effects.emit(import_types.QuotationHooks.onQuotationChanged, this.store.quotationList);
300
+ // 将缓存数据放入 store
301
+ this.store.quotationList = (0, _lodashEs.cloneDeep)(cachedData);
302
+ this.core.effects.emit(_types.QuotationHooks.onQuotationChanged, this.store.quotationList);
160
303
  return;
161
304
  }
162
- console.log("[Quotation] IndexDB 中没有缓存数据,从服务器加载...");
163
305
  } catch (error) {
164
- console.warn("[Quotation] 从 IndexDB 加载数据失败:", error);
306
+ console.warn('[Quotation] 从 IndexDB 加载数据失败:', error);
165
307
  }
308
+
309
+ // 2. 如果 IndexDB 中没有数据,从服务器加载
166
310
  const quotationList = await this.loadQuotationList();
311
+
312
+ // 3. 将服务器数据保存到 IndexDB 和 store
167
313
  if (quotationList && quotationList.length > 0) {
168
314
  await this.saveQuotationToIndexDB(quotationList);
169
- this.store.quotationList = (0, import_lodash_es.cloneDeep)(quotationList);
170
- this.core.effects.emit(import_types.QuotationHooks.onQuotationChanged, this.store.quotationList);
315
+ this.store.quotationList = (0, _lodashEs.cloneDeep)(quotationList);
316
+ this.core.effects.emit(_types.QuotationHooks.onQuotationChanged, this.store.quotationList);
171
317
  }
172
318
  }
173
- };
174
- // Annotate the CommonJS export names for ESM import in node:
175
- 0 && (module.exports = {
176
- QuotationModule
177
- });
319
+ }
320
+ exports.QuotationModule = QuotationModule;
@@ -1,33 +1,23 @@
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/quotation/types.ts
20
- var types_exports = {};
21
- __export(types_exports, {
22
- QuotationHooks: () => QuotationHooks
23
- });
24
- module.exports = __toCommonJS(types_exports);
25
- var QuotationHooks = /* @__PURE__ */ ((QuotationHooks2) => {
26
- QuotationHooks2["onQuotationLoaded"] = "quotation:onQuotationLoaded";
27
- QuotationHooks2["onQuotationChanged"] = "quotation:onQuotationChanged";
28
- return QuotationHooks2;
29
- })(QuotationHooks || {});
30
- // Annotate the CommonJS export names for ESM import in node:
31
- 0 && (module.exports = {
32
- QuotationHooks
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
33
5
  });
6
+ exports.QuotationHooks = void 0;
7
+ /**
8
+ * 报价单模块状态
9
+ */
10
+ /**
11
+ * 报价单数据结构
12
+ */
13
+ /**
14
+ * 报价单商品价格配置
15
+ */
16
+ /**
17
+ * 报价单模块钩子
18
+ */
19
+ let QuotationHooks = exports.QuotationHooks = /*#__PURE__*/function (QuotationHooks) {
20
+ QuotationHooks["onQuotationLoaded"] = "quotation:onQuotationLoaded";
21
+ QuotationHooks["onQuotationChanged"] = "quotation:onQuotationChanged";
22
+ return QuotationHooks;
23
+ }({});
@@ -50,20 +50,19 @@ export declare class ResourceModule extends BaseModule implements Module {
50
50
  /**
51
51
  * 创建预订
52
52
  */
53
- createBooking(booking: Partial<ResourceBooking>): ResourceBooking;
54
53
  /**
55
54
  * 更新预订
56
55
  */
57
- updateBooking(id: ResourceId, data: Partial<ResourceBooking>): ResourceBooking | undefined;
58
56
  /**
59
57
  * 删除预订
60
58
  */
61
- deleteBooking(id: ResourceId): boolean;
62
59
  /**
63
60
  * 清空缓存
64
61
  */
65
62
  clear(): Promise<void>;
66
63
  private attachBookingsToResource;
64
+ private normalizeIntegerIdValue;
65
+ private normalizeResourceIdFields;
67
66
  private normalizeResource;
68
67
  private safeEmit;
69
68
  private syncResourcesMap;