@pisell/pisellos 0.0.568 → 0.0.570

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 (455) hide show
  1. package/dist/effects/index.d.ts +2 -2
  2. package/dist/model/strategy/adapter/dataVariant/type.d.ts +3 -3
  3. package/dist/model/strategy/adapter/itemRule/type.d.ts +6 -6
  4. package/dist/model/strategy/adapter/promotion/evaluator.js +3 -2
  5. package/dist/model/strategy/adapter/promotion/type.d.ts +5 -5
  6. package/dist/model/strategy/adapter/walletPass/utils.js +7 -4
  7. package/dist/model/strategy/type.d.ts +1 -1
  8. package/dist/modules/BaseModule.d.ts +2 -2
  9. package/dist/modules/BaseModule.js +4 -4
  10. package/dist/modules/BookingContext/index.d.ts +48 -0
  11. package/dist/modules/BookingContext/index.js +566 -0
  12. package/dist/modules/BookingContext/types.d.ts +102 -0
  13. package/dist/modules/BookingContext/types.js +51 -0
  14. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +16 -0
  15. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +302 -0
  16. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +8 -0
  17. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +149 -0
  18. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +76 -0
  19. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.js +249 -0
  20. package/dist/modules/BookingContext/utils/flexible.d.ts +28 -0
  21. package/dist/modules/BookingContext/utils/flexible.js +56 -0
  22. package/dist/modules/BookingContext/utils/formatResourceList.d.ts +8 -0
  23. package/dist/modules/BookingContext/utils/formatResourceList.js +38 -0
  24. package/dist/modules/BookingContext/utils/index.d.ts +11 -0
  25. package/dist/modules/BookingContext/utils/index.js +11 -0
  26. package/dist/modules/BookingContext/utils/noResource.d.ts +13 -0
  27. package/dist/modules/BookingContext/utils/noResource.js +77 -0
  28. package/dist/modules/BookingContext/utils/orderLineDisplay.d.ts +1 -0
  29. package/dist/modules/BookingContext/utils/orderLineDisplay.js +36 -0
  30. package/dist/modules/BookingContext/utils/productExtend.d.ts +72 -0
  31. package/dist/modules/BookingContext/utils/productExtend.js +339 -0
  32. package/dist/modules/BookingContext/utils/resourceErrors.d.ts +41 -0
  33. package/dist/modules/BookingContext/utils/resourceErrors.js +74 -0
  34. package/dist/modules/BookingContext/utils/resourceSelection.d.ts +7 -0
  35. package/dist/modules/BookingContext/utils/resourceSelection.js +24 -0
  36. package/dist/modules/BookingContext/utils/resources.d.ts +80 -0
  37. package/dist/modules/BookingContext/utils/resources.js +486 -0
  38. package/dist/modules/BookingContext/utils/serviceTimes.d.ts +55 -0
  39. package/dist/modules/BookingContext/utils/serviceTimes.js +151 -0
  40. package/dist/modules/BookingContext/utils/timeSlices.d.ts +42 -0
  41. package/dist/modules/BookingContext/utils/timeSlices.js +100 -0
  42. package/dist/modules/Cart/utils/cartProduct.js +26 -5
  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 +3 -1
  47. package/dist/modules/Discount/index.d.ts +2 -1
  48. package/dist/modules/Discount/index.js +37 -9
  49. package/dist/modules/Discount/types.d.ts +2 -1
  50. package/dist/modules/Holder/types.d.ts +1 -1
  51. package/dist/modules/OpenData/index.d.ts +8 -0
  52. package/dist/modules/OpenData/index.js +36 -16
  53. package/dist/modules/OpenData/types.d.ts +1 -1
  54. package/dist/modules/Order/index.d.ts +448 -23
  55. package/dist/modules/Order/index.js +5417 -561
  56. package/dist/modules/Order/types.d.ts +693 -88
  57. package/dist/modules/Order/types.js +68 -1
  58. package/dist/modules/Order/utils/bundleDiscountHydration.d.ts +5 -0
  59. package/dist/modules/Order/utils/bundleDiscountHydration.js +144 -0
  60. package/dist/modules/Order/utils/manualProductDiscount.d.ts +106 -0
  61. package/dist/modules/Order/utils/manualProductDiscount.js +210 -0
  62. package/dist/modules/Order/utils/orderCollectionIdentity.d.ts +53 -0
  63. package/dist/modules/Order/utils/orderCollectionIdentity.js +405 -0
  64. package/dist/modules/Order/utils.d.ts +167 -18
  65. package/dist/modules/Order/utils.js +960 -165
  66. package/dist/modules/Payment/index.d.ts +10 -9
  67. package/dist/modules/Payment/index.js +465 -703
  68. package/dist/modules/Payment/types.d.ts +47 -23
  69. package/dist/modules/Payment/utils.d.ts +1 -1
  70. package/dist/modules/Payment/utils.js +4 -3
  71. package/dist/modules/Payment/walletpass.js +44 -29
  72. package/dist/modules/Product/index.d.ts +1 -1
  73. package/dist/modules/Product/types.d.ts +29 -7
  74. package/dist/modules/ProductList/index.d.ts +17 -13
  75. package/dist/modules/ProductList/index.js +184 -74
  76. package/dist/modules/ProductList/types.d.ts +17 -0
  77. package/dist/modules/Quotation/index.d.ts +22 -2
  78. package/dist/modules/Quotation/index.js +108 -42
  79. package/dist/modules/Quotation/types.d.ts +19 -0
  80. package/dist/modules/ResourcePlanner/index.d.ts +24 -0
  81. package/dist/modules/ResourcePlanner/index.js +181 -0
  82. package/dist/modules/ResourcePlanner/planner.d.ts +14 -0
  83. package/dist/modules/ResourcePlanner/planner.js +1069 -0
  84. package/dist/modules/ResourcePlanner/types.d.ts +227 -0
  85. package/dist/modules/ResourcePlanner/types.js +1 -0
  86. package/dist/modules/Rules/index.d.ts +8 -10
  87. package/dist/modules/Rules/index.js +222 -109
  88. package/dist/modules/Rules/types.d.ts +15 -4
  89. package/dist/modules/SalesSummary/index.d.ts +23 -26
  90. package/dist/modules/SalesSummary/index.js +152 -46
  91. package/dist/modules/SalesSummary/types.d.ts +9 -1
  92. package/dist/modules/SalesSummary/utils.d.ts +3 -22
  93. package/dist/modules/SalesSummary/utils.js +803 -163
  94. package/dist/modules/ScanOrderLogger/types.d.ts +2 -2
  95. package/dist/modules/Schedule/getDateIsInSchedule.d.ts +1 -1
  96. package/dist/modules/Schedule/getDateIsInSchedule.js +14 -7
  97. package/dist/modules/Schedule/index.d.ts +18 -5
  98. package/dist/modules/Schedule/index.js +78 -24
  99. package/dist/modules/Schedule/type.d.ts +7 -7
  100. package/dist/modules/Schedule/types.d.ts +11 -9
  101. package/dist/modules/Summary/index.js +4 -3
  102. package/dist/modules/SurchargeList/index.d.ts +18 -0
  103. package/dist/modules/SurchargeList/index.js +185 -0
  104. package/dist/modules/SurchargeList/types.d.ts +15 -0
  105. package/dist/modules/SurchargeList/types.js +1 -0
  106. package/dist/modules/index.d.ts +3 -0
  107. package/dist/modules/index.js +4 -1
  108. package/dist/plugins/app.d.ts +2 -0
  109. package/dist/plugins/request.d.ts +3 -2
  110. package/dist/server/index.d.ts +462 -8
  111. package/dist/server/index.js +6112 -656
  112. package/dist/server/modules/floor-plan/index.d.ts +39 -0
  113. package/dist/server/modules/floor-plan/index.js +595 -0
  114. package/dist/server/modules/floor-plan/types.d.ts +43 -0
  115. package/dist/server/modules/floor-plan/types.js +13 -0
  116. package/dist/server/modules/index.d.ts +7 -2
  117. package/dist/server/modules/index.js +6 -0
  118. package/dist/server/modules/menu/types.d.ts +1 -1
  119. package/dist/server/modules/order/index.d.ts +207 -14
  120. package/dist/server/modules/order/index.js +2326 -379
  121. package/dist/server/modules/order/types.d.ts +91 -20
  122. package/dist/server/modules/order/types.js +14 -1
  123. package/dist/server/modules/order/utils/filterBookings.d.ts +7 -1
  124. package/dist/server/modules/order/utils/filterBookings.js +118 -11
  125. package/dist/server/modules/order/utils/filterOrders.js +242 -14
  126. package/dist/server/modules/payment/index.d.ts +28 -0
  127. package/dist/server/modules/payment/index.js +305 -0
  128. package/dist/server/modules/payment/types.d.ts +9 -0
  129. package/dist/server/modules/payment/types.js +1 -0
  130. package/dist/server/modules/products/index.d.ts +105 -14
  131. package/dist/server/modules/products/index.js +1393 -516
  132. package/dist/server/modules/products/types.d.ts +35 -2
  133. package/dist/server/modules/products/types.js +4 -0
  134. package/dist/server/modules/quotation/index.d.ts +39 -0
  135. package/dist/server/modules/quotation/index.js +278 -66
  136. package/dist/server/modules/resource/index.d.ts +2 -3
  137. package/dist/server/modules/resource/index.js +108 -86
  138. package/dist/server/modules/resource/types.d.ts +1 -1
  139. package/dist/server/modules/schedule/index.d.ts +6 -4
  140. package/dist/server/modules/schedule/index.js +116 -85
  141. package/dist/server/modules/schedule/utils.d.ts +1 -1
  142. package/dist/server/test.json +713 -0
  143. package/dist/server/types.d.ts +6 -4
  144. package/dist/server/utils/product.js +2 -2
  145. package/dist/server/utils/small-ticket.d.ts +71 -0
  146. package/dist/server/utils/small-ticket.js +963 -0
  147. package/dist/solution/BaseSales/index.d.ts +378 -0
  148. package/dist/solution/BaseSales/index.js +4006 -0
  149. package/dist/solution/BaseSales/types.d.ts +394 -0
  150. package/dist/solution/BaseSales/types.js +40 -0
  151. package/dist/solution/BaseSales/utils/cartPromotion.d.ts +287 -0
  152. package/dist/solution/BaseSales/utils/cartPromotion.js +1450 -0
  153. package/dist/solution/BaseSales/utils/parseSalesResponse.d.ts +144 -0
  154. package/dist/solution/BaseSales/utils/parseSalesResponse.js +157 -0
  155. package/dist/solution/BaseSales/utils/quotationPrice.d.ts +18 -0
  156. package/dist/solution/BaseSales/utils/quotationPrice.js +250 -0
  157. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +63 -0
  158. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +218 -0
  159. package/dist/solution/BaseSales/utils.d.ts +40 -0
  160. package/dist/solution/BaseSales/utils.js +263 -0
  161. package/dist/solution/BookingByStep/index.d.ts +2 -2
  162. package/dist/solution/BookingByStep/utils/resources.d.ts +1 -1
  163. package/dist/solution/BookingTicket/index.d.ts +382 -25
  164. package/dist/solution/BookingTicket/index.js +2506 -443
  165. package/dist/solution/BookingTicket/types.d.ts +191 -6
  166. package/dist/solution/BookingTicket/types.js +83 -10
  167. package/dist/solution/BookingTicket/utils/addProductDecision.d.ts +117 -0
  168. package/dist/solution/BookingTicket/utils/addProductDecision.js +346 -0
  169. package/dist/solution/BookingTicket/utils/addTimeAvailability.d.ts +35 -0
  170. package/dist/solution/BookingTicket/utils/addTimeAvailability.js +95 -0
  171. package/dist/solution/BookingTicket/utils/bookingStatus.d.ts +77 -0
  172. package/dist/solution/BookingTicket/utils/bookingStatus.js +136 -0
  173. package/dist/solution/BookingTicket/utils/cartView.d.ts +29 -0
  174. package/dist/solution/BookingTicket/utils/cartView.js +209 -0
  175. package/dist/solution/BookingTicket/utils/exampleData.d.ts +123 -0
  176. package/dist/solution/BookingTicket/utils/exampleData.js +183 -0
  177. package/dist/solution/BookingTicket/utils/orderCustomer.d.ts +4 -0
  178. package/dist/solution/BookingTicket/utils/orderCustomer.js +31 -0
  179. package/dist/solution/BookingTicket/utils/resolveBestAddTimePlan.d.ts +185 -0
  180. package/dist/solution/BookingTicket/utils/resolveBestAddTimePlan.js +438 -0
  181. package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +36 -0
  182. package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.js +400 -0
  183. package/dist/solution/BookingTicket/utils/scan/cloudSearch.d.ts +4 -0
  184. package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +41 -1
  185. package/dist/solution/BookingTicket/utils/scan/formatGlobalScan.d.ts +32 -0
  186. package/dist/solution/BookingTicket/utils/scan/formatGlobalScan.js +56 -0
  187. package/dist/solution/BookingTicket/utils/scan/handleScan.d.ts +3 -1
  188. package/dist/solution/BookingTicket/utils/scan/handleScan.js +11 -3
  189. package/dist/solution/BookingTicket/utils/scan/index.d.ts +5 -0
  190. package/dist/solution/BookingTicket/utils/scan/index.js +20 -8
  191. package/dist/solution/BookingTicket/utils/scan/scanProductValues.d.ts +21 -0
  192. package/dist/solution/BookingTicket/utils/scan/scanProductValues.js +150 -0
  193. package/dist/solution/BookingTicket/utils/sessionCatalogStale.d.ts +23 -0
  194. package/dist/solution/BookingTicket/utils/sessionCatalogStale.js +78 -0
  195. package/dist/solution/Checkout/index.d.ts +1 -0
  196. package/dist/solution/Checkout/index.js +25 -34
  197. package/dist/solution/Checkout/utils/index.js +4 -4
  198. package/dist/solution/RegisterAndLogin/config.js +2 -10
  199. package/dist/solution/Sales/index.d.ts +50 -5
  200. package/dist/solution/Sales/index.js +484 -92
  201. package/dist/solution/Sales/types.d.ts +29 -5
  202. package/dist/solution/ScanOrder/index.d.ts +27 -21
  203. package/dist/solution/ScanOrder/index.js +499 -434
  204. package/dist/solution/ScanOrder/types.d.ts +38 -16
  205. package/dist/solution/ScanOrder/types.js +4 -5
  206. package/dist/solution/ScanOrder/utils.d.ts +4 -1
  207. package/dist/solution/ScanOrder/utils.js +109 -34
  208. package/dist/solution/ShopDiscount/index.js +4 -4
  209. package/dist/solution/ShopDiscount/types.d.ts +1 -1
  210. package/dist/solution/ShopDiscount/utils.d.ts +2 -2
  211. package/dist/solution/UnifiedBookingSales/index.d.ts +183 -0
  212. package/dist/solution/UnifiedBookingSales/index.js +1871 -0
  213. package/dist/solution/UnifiedBookingSales/types.d.ts +143 -0
  214. package/dist/solution/UnifiedBookingSales/types.js +11 -0
  215. package/dist/solution/VenueBooking/index.d.ts +29 -20
  216. package/dist/solution/VenueBooking/index.js +301 -213
  217. package/dist/solution/VenueBooking/sales-section-4-annotated.json +0 -2
  218. package/dist/solution/VenueBooking/types.d.ts +1 -1
  219. package/dist/solution/VenueBooking/utils/slotMerge.d.ts +6 -0
  220. package/dist/solution/VenueBooking/utils/slotMerge.js +9 -3
  221. package/dist/solution/index.d.ts +2 -0
  222. package/dist/solution/index.js +3 -1
  223. package/dist/types/index.d.ts +12 -2
  224. package/dist/utils/task.d.ts +2 -2
  225. package/dist/utils/watch.d.ts +2 -2
  226. package/lib/effects/index.d.ts +2 -2
  227. package/lib/model/strategy/adapter/dataVariant/type.d.ts +3 -3
  228. package/lib/model/strategy/adapter/itemRule/type.d.ts +6 -6
  229. package/lib/model/strategy/adapter/promotion/evaluator.js +3 -2
  230. package/lib/model/strategy/adapter/promotion/type.d.ts +5 -5
  231. package/lib/model/strategy/adapter/walletPass/utils.js +6 -4
  232. package/lib/model/strategy/type.d.ts +1 -1
  233. package/lib/modules/BaseModule.d.ts +2 -2
  234. package/lib/modules/BaseModule.js +4 -4
  235. package/lib/modules/BookingContext/index.d.ts +48 -0
  236. package/lib/modules/BookingContext/index.js +390 -0
  237. package/lib/modules/BookingContext/types.d.ts +102 -0
  238. package/lib/modules/BookingContext/types.js +48 -0
  239. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +16 -0
  240. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +286 -0
  241. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +8 -0
  242. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +148 -0
  243. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +76 -0
  244. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +242 -0
  245. package/lib/modules/BookingContext/utils/flexible.d.ts +28 -0
  246. package/lib/modules/BookingContext/utils/flexible.js +63 -0
  247. package/lib/modules/BookingContext/utils/formatResourceList.d.ts +8 -0
  248. package/lib/modules/BookingContext/utils/formatResourceList.js +35 -0
  249. package/lib/modules/BookingContext/utils/index.d.ts +11 -0
  250. package/lib/modules/BookingContext/utils/index.js +126 -0
  251. package/lib/modules/BookingContext/utils/noResource.d.ts +13 -0
  252. package/lib/modules/BookingContext/utils/noResource.js +78 -0
  253. package/lib/modules/BookingContext/utils/orderLineDisplay.d.ts +1 -0
  254. package/lib/modules/BookingContext/utils/orderLineDisplay.js +29 -0
  255. package/lib/modules/BookingContext/utils/productExtend.d.ts +72 -0
  256. package/lib/modules/BookingContext/utils/productExtend.js +330 -0
  257. package/lib/modules/BookingContext/utils/resourceErrors.d.ts +41 -0
  258. package/lib/modules/BookingContext/utils/resourceErrors.js +80 -0
  259. package/lib/modules/BookingContext/utils/resourceSelection.d.ts +7 -0
  260. package/lib/modules/BookingContext/utils/resourceSelection.js +24 -0
  261. package/lib/modules/BookingContext/utils/resources.d.ts +80 -0
  262. package/lib/modules/BookingContext/utils/resources.js +419 -0
  263. package/lib/modules/BookingContext/utils/serviceTimes.d.ts +55 -0
  264. package/lib/modules/BookingContext/utils/serviceTimes.js +161 -0
  265. package/lib/modules/BookingContext/utils/timeSlices.d.ts +42 -0
  266. package/lib/modules/BookingContext/utils/timeSlices.js +114 -0
  267. package/lib/modules/Cart/utils/cartProduct.js +27 -5
  268. package/lib/modules/Cart/utils/changePrice.js +20 -14
  269. package/lib/modules/Customer/index.d.ts +20 -0
  270. package/lib/modules/Customer/index.js +63 -10
  271. package/lib/modules/Customer/types.d.ts +3 -1
  272. package/lib/modules/Discount/index.d.ts +2 -1
  273. package/lib/modules/Discount/index.js +18 -2
  274. package/lib/modules/Discount/types.d.ts +2 -1
  275. package/lib/modules/Holder/types.d.ts +1 -1
  276. package/lib/modules/OpenData/index.d.ts +8 -0
  277. package/lib/modules/OpenData/index.js +21 -3
  278. package/lib/modules/OpenData/types.d.ts +1 -1
  279. package/lib/modules/Order/index.d.ts +448 -23
  280. package/lib/modules/Order/index.js +3641 -308
  281. package/lib/modules/Order/types.d.ts +693 -88
  282. package/lib/modules/Order/types.js +55 -1
  283. package/lib/modules/Order/utils/bundleDiscountHydration.d.ts +5 -0
  284. package/lib/modules/Order/utils/bundleDiscountHydration.js +106 -0
  285. package/lib/modules/Order/utils/manualProductDiscount.d.ts +106 -0
  286. package/lib/modules/Order/utils/manualProductDiscount.js +207 -0
  287. package/lib/modules/Order/utils/orderCollectionIdentity.d.ts +53 -0
  288. package/lib/modules/Order/utils/orderCollectionIdentity.js +353 -0
  289. package/lib/modules/Order/utils.d.ts +167 -18
  290. package/lib/modules/Order/utils.js +974 -138
  291. package/lib/modules/Payment/index.d.ts +10 -9
  292. package/lib/modules/Payment/index.js +30 -124
  293. package/lib/modules/Payment/types.d.ts +47 -23
  294. package/lib/modules/Payment/utils.d.ts +1 -1
  295. package/lib/modules/Payment/utils.js +4 -3
  296. package/lib/modules/Payment/walletpass.js +16 -6
  297. package/lib/modules/Product/index.d.ts +1 -1
  298. package/lib/modules/Product/types.d.ts +29 -7
  299. package/lib/modules/ProductList/index.d.ts +17 -13
  300. package/lib/modules/ProductList/index.js +92 -51
  301. package/lib/modules/ProductList/types.d.ts +17 -0
  302. package/lib/modules/Quotation/index.d.ts +22 -2
  303. package/lib/modules/Quotation/index.js +76 -20
  304. package/lib/modules/Quotation/types.d.ts +19 -0
  305. package/lib/modules/ResourcePlanner/index.d.ts +24 -0
  306. package/lib/modules/ResourcePlanner/index.js +147 -0
  307. package/lib/modules/ResourcePlanner/planner.d.ts +14 -0
  308. package/lib/modules/ResourcePlanner/planner.js +895 -0
  309. package/lib/modules/ResourcePlanner/types.d.ts +227 -0
  310. package/lib/modules/ResourcePlanner/types.js +5 -0
  311. package/lib/modules/Rules/index.d.ts +8 -10
  312. package/lib/modules/Rules/index.js +153 -61
  313. package/lib/modules/Rules/types.d.ts +15 -4
  314. package/lib/modules/SalesSummary/index.d.ts +23 -26
  315. package/lib/modules/SalesSummary/index.js +84 -16
  316. package/lib/modules/SalesSummary/types.d.ts +9 -1
  317. package/lib/modules/SalesSummary/utils.d.ts +3 -22
  318. package/lib/modules/SalesSummary/utils.js +616 -111
  319. package/lib/modules/ScanOrderLogger/types.d.ts +2 -2
  320. package/lib/modules/Schedule/getDateIsInSchedule.d.ts +1 -1
  321. package/lib/modules/Schedule/getDateIsInSchedule.js +14 -7
  322. package/lib/modules/Schedule/index.d.ts +18 -5
  323. package/lib/modules/Schedule/index.js +49 -14
  324. package/lib/modules/Schedule/type.d.ts +7 -7
  325. package/lib/modules/Schedule/types.d.ts +11 -9
  326. package/lib/modules/Summary/index.js +2 -2
  327. package/lib/modules/SurchargeList/index.d.ts +18 -0
  328. package/lib/modules/SurchargeList/index.js +95 -0
  329. package/lib/modules/SurchargeList/types.d.ts +15 -0
  330. package/lib/modules/SurchargeList/types.js +5 -0
  331. package/lib/modules/index.d.ts +3 -0
  332. package/lib/modules/index.js +33 -0
  333. package/lib/plugins/app.d.ts +2 -0
  334. package/lib/plugins/request.d.ts +3 -2
  335. package/lib/server/index.d.ts +462 -8
  336. package/lib/server/index.js +3901 -205
  337. package/lib/server/modules/floor-plan/index.d.ts +39 -0
  338. package/lib/server/modules/floor-plan/index.js +306 -0
  339. package/lib/server/modules/floor-plan/types.d.ts +43 -0
  340. package/lib/server/modules/floor-plan/types.js +19 -0
  341. package/lib/server/modules/index.d.ts +7 -2
  342. package/lib/server/modules/index.js +21 -0
  343. package/lib/server/modules/menu/types.d.ts +1 -1
  344. package/lib/server/modules/order/index.d.ts +207 -14
  345. package/lib/server/modules/order/index.js +1324 -141
  346. package/lib/server/modules/order/types.d.ts +91 -20
  347. package/lib/server/modules/order/types.js +11 -1
  348. package/lib/server/modules/order/utils/filterBookings.d.ts +7 -1
  349. package/lib/server/modules/order/utils/filterBookings.js +119 -11
  350. package/lib/server/modules/order/utils/filterOrders.js +238 -13
  351. package/lib/server/modules/payment/index.d.ts +28 -0
  352. package/lib/server/modules/payment/index.js +168 -0
  353. package/lib/server/modules/payment/types.d.ts +9 -0
  354. package/lib/server/modules/payment/types.js +5 -0
  355. package/lib/server/modules/products/index.d.ts +105 -14
  356. package/lib/server/modules/products/index.js +588 -97
  357. package/lib/server/modules/products/types.d.ts +35 -2
  358. package/lib/server/modules/products/types.js +3 -0
  359. package/lib/server/modules/quotation/index.d.ts +39 -0
  360. package/lib/server/modules/quotation/index.js +145 -1
  361. package/lib/server/modules/resource/index.d.ts +2 -3
  362. package/lib/server/modules/resource/index.js +71 -45
  363. package/lib/server/modules/resource/types.d.ts +1 -1
  364. package/lib/server/modules/schedule/index.d.ts +6 -4
  365. package/lib/server/modules/schedule/index.js +55 -44
  366. package/lib/server/modules/schedule/utils.d.ts +1 -1
  367. package/lib/server/test.json +713 -0
  368. package/lib/server/types.d.ts +6 -4
  369. package/lib/server/utils/product.js +2 -2
  370. package/lib/server/utils/small-ticket.d.ts +71 -0
  371. package/lib/server/utils/small-ticket.js +926 -0
  372. package/lib/solution/BaseSales/index.d.ts +378 -0
  373. package/lib/solution/BaseSales/index.js +2367 -0
  374. package/lib/solution/BaseSales/types.d.ts +394 -0
  375. package/lib/solution/BaseSales/types.js +47 -0
  376. package/lib/solution/BaseSales/utils/cartPromotion.d.ts +287 -0
  377. package/lib/solution/BaseSales/utils/cartPromotion.js +1155 -0
  378. package/lib/solution/BaseSales/utils/parseSalesResponse.d.ts +144 -0
  379. package/lib/solution/BaseSales/utils/parseSalesResponse.js +140 -0
  380. package/lib/solution/BaseSales/utils/quotationPrice.d.ts +18 -0
  381. package/lib/solution/BaseSales/utils/quotationPrice.js +231 -0
  382. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +63 -0
  383. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +215 -0
  384. package/lib/solution/BaseSales/utils.d.ts +40 -0
  385. package/lib/solution/BaseSales/utils.js +259 -0
  386. package/lib/solution/BookingByStep/index.d.ts +2 -2
  387. package/lib/solution/BookingByStep/utils/resources.d.ts +1 -1
  388. package/lib/solution/BookingTicket/index.d.ts +382 -25
  389. package/lib/solution/BookingTicket/index.js +1350 -76
  390. package/lib/solution/BookingTicket/types.d.ts +191 -6
  391. package/lib/solution/BookingTicket/types.js +71 -10
  392. package/lib/solution/BookingTicket/utils/addProductDecision.d.ts +117 -0
  393. package/lib/solution/BookingTicket/utils/addProductDecision.js +353 -0
  394. package/lib/solution/BookingTicket/utils/addTimeAvailability.d.ts +35 -0
  395. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +94 -0
  396. package/lib/solution/BookingTicket/utils/bookingStatus.d.ts +77 -0
  397. package/lib/solution/BookingTicket/utils/bookingStatus.js +136 -0
  398. package/lib/solution/BookingTicket/utils/cartView.d.ts +29 -0
  399. package/lib/solution/BookingTicket/utils/cartView.js +200 -0
  400. package/lib/solution/BookingTicket/utils/exampleData.d.ts +123 -0
  401. package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
  402. package/lib/solution/BookingTicket/utils/orderCustomer.d.ts +4 -0
  403. package/lib/solution/BookingTicket/utils/orderCustomer.js +35 -0
  404. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.d.ts +185 -0
  405. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +387 -0
  406. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +36 -0
  407. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +220 -0
  408. package/lib/solution/BookingTicket/utils/scan/cloudSearch.d.ts +4 -0
  409. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +24 -3
  410. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.d.ts +32 -0
  411. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +64 -0
  412. package/lib/solution/BookingTicket/utils/scan/handleScan.d.ts +3 -1
  413. package/lib/solution/BookingTicket/utils/scan/handleScan.js +4 -2
  414. package/lib/solution/BookingTicket/utils/scan/index.d.ts +5 -0
  415. package/lib/solution/BookingTicket/utils/scan/index.js +14 -2
  416. package/lib/solution/BookingTicket/utils/scan/scanProductValues.d.ts +21 -0
  417. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +115 -0
  418. package/lib/solution/BookingTicket/utils/sessionCatalogStale.d.ts +23 -0
  419. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +83 -0
  420. package/lib/solution/Checkout/index.d.ts +1 -0
  421. package/lib/solution/Checkout/index.js +18 -19
  422. package/lib/solution/Checkout/utils/index.js +4 -4
  423. package/lib/solution/RegisterAndLogin/config.js +2 -10
  424. package/lib/solution/Sales/index.d.ts +50 -5
  425. package/lib/solution/Sales/index.js +296 -39
  426. package/lib/solution/Sales/types.d.ts +29 -5
  427. package/lib/solution/ScanOrder/index.d.ts +27 -21
  428. package/lib/solution/ScanOrder/index.js +144 -103
  429. package/lib/solution/ScanOrder/types.d.ts +38 -16
  430. package/lib/solution/ScanOrder/types.js +4 -5
  431. package/lib/solution/ScanOrder/utils.d.ts +4 -1
  432. package/lib/solution/ScanOrder/utils.js +98 -26
  433. package/lib/solution/ShopDiscount/index.js +3 -3
  434. package/lib/solution/ShopDiscount/types.d.ts +1 -1
  435. package/lib/solution/ShopDiscount/utils.d.ts +2 -2
  436. package/lib/solution/UnifiedBookingSales/index.d.ts +183 -0
  437. package/lib/solution/UnifiedBookingSales/index.js +1050 -0
  438. package/lib/solution/UnifiedBookingSales/types.d.ts +143 -0
  439. package/lib/solution/UnifiedBookingSales/types.js +14 -0
  440. package/lib/solution/VenueBooking/index.d.ts +29 -20
  441. package/lib/solution/VenueBooking/index.js +169 -94
  442. package/lib/solution/VenueBooking/sales-section-4-annotated.json +0 -2
  443. package/lib/solution/VenueBooking/types.d.ts +1 -1
  444. package/lib/solution/VenueBooking/utils/slotMerge.d.ts +6 -0
  445. package/lib/solution/VenueBooking/utils/slotMerge.js +9 -3
  446. package/lib/solution/index.d.ts +2 -0
  447. package/lib/solution/index.js +22 -0
  448. package/lib/types/index.d.ts +12 -2
  449. package/lib/utils/task.d.ts +2 -2
  450. package/lib/utils/watch.d.ts +2 -2
  451. package/package.json +18 -19
  452. package/dist/model/strategy/adapter/promotion/index.d.ts +0 -4
  453. package/dist/solution/Checkout/appointmentDemo.json +0 -1
  454. package/lib/model/strategy/adapter/promotion/index.d.ts +0 -4
  455. 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,12 +126,26 @@ 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
  /**
115
148
  * 商品格式化器类型
116
149
  * 用于对商品数据进行处理和格式化(包括价格应用、字段扩展等)
117
150
  */
118
- export type ProductFormatter = (products: ProductData[], context: ProductFormatterContext) => ProductData[] | Promise<ProductData[]>;
151
+ export declare type ProductFormatter = (products: ProductData[], context: ProductFormatterContext) => ProductData[] | Promise<ProductData[]>;
@@ -10,6 +10,9 @@ exports.ProductsHooks = void 0;
10
10
  /**
11
11
  * 商品格式化后数据
12
12
  */
13
+ /**
14
+ * 商品轻量查询范围
15
+ */
13
16
  /**
14
17
  * 加载报价单商品价格参数
15
18
  */
@@ -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
@@ -5,8 +5,16 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.QuotationModule = void 0;
7
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"));
8
11
  var _BaseModule = require("../../../modules/BaseModule");
9
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
+
10
18
  /**
11
19
  * IndexDB 存储名称
12
20
  */
@@ -21,7 +29,7 @@ class QuotationModule extends _BaseModule.BaseModule {
21
29
  request;
22
30
  store;
23
31
  dbManager; // IndexDBManager 实例
24
-
32
+ scheduleResolver;
25
33
  constructor(name, version) {
26
34
  super(name, version);
27
35
  }
@@ -90,6 +98,87 @@ class QuotationModule extends _BaseModule.BaseModule {
90
98
  getQuotationList() {
91
99
  return this.store.quotationList;
92
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
+ }
93
182
  /**
94
183
  * 清空缓存
95
184
  */
@@ -105,6 +194,61 @@ class QuotationModule extends _BaseModule.BaseModule {
105
194
  }
106
195
  }
107
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
+ }
108
252
 
109
253
  /**
110
254
  * 从 IndexDB 加载报价单数据
@@ -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;
@@ -75,7 +75,6 @@ class ResourceModule extends _BaseModule.BaseModule {
75
75
  this.logger = app.logger;
76
76
  }
77
77
  this.initResourceDataSource();
78
- this.setupResourceSync();
79
78
  }
80
79
  logInfo(title, metadata) {
81
80
  if (this.logger) {
@@ -96,6 +95,7 @@ class ResourceModule extends _BaseModule.BaseModule {
96
95
  }
97
96
  }
98
97
  async preload() {
98
+ await this.setupResourceSync();
99
99
  const cachedResources = await this.loadResourcesFromSQLite();
100
100
  if (cachedResources.length > 0) {
101
101
  this.store.list = (0, _lodashEs.cloneDeep)(cachedResources).map(item => this.normalizeResource(item));
@@ -220,56 +220,57 @@ class ResourceModule extends _BaseModule.BaseModule {
220
220
  /**
221
221
  * 创建预订
222
222
  */
223
- createBooking(booking) {
224
- const id = booking?.id ?? Date.now();
225
- const normalized = {
226
- id,
227
- ...booking
228
- };
229
- this.store.bookings.push(normalized);
230
- const rid = normalized.resource_id ?? normalized.resourceId;
231
- if (rid !== undefined) {
232
- const existing = this.resourceIdIndex.get(rid) || [];
233
- existing.push(normalized);
234
- this.resourceIdIndex.set(rid, existing);
235
- }
223
+ // createBooking(booking: Partial<ResourceBooking>): ResourceBooking {
224
+ // const id = booking?.id ?? Date.now()
225
+ // const normalized: ResourceBooking = {
226
+ // id,
227
+ // ...booking,
228
+ // } as ResourceBooking
229
+
230
+ // this.store.bookings.push(normalized)
231
+
232
+ // const rid = normalized.resource_id ?? normalized.resourceId
233
+ // if (rid !== undefined) {
234
+ // const existing = this.resourceIdIndex.get(rid) || []
235
+ // existing.push(normalized)
236
+ // this.resourceIdIndex.set(rid, existing)
237
+ // }
236
238
 
237
- // this.saveBookingsToSQLite(this.store.bookings).catch(() => {})
238
- this.safeEmit(_types.ResourceHooks.onBookingsChanged, this.store.bookings);
239
- return normalized;
240
- }
239
+ // this.saveBookingsToSQLite(this.store.bookings).catch(() => {})
240
+ // this.safeEmit(ResourceHooks.onBookingsChanged, this.store.bookings)
241
+ // return normalized
242
+ // }
241
243
 
242
244
  /**
243
245
  * 更新预订
244
246
  */
245
- updateBooking(id, data) {
246
- const index = this.store.bookings.findIndex(b => this.getIdKey(b.id) === this.getIdKey(id));
247
- if (index === -1) return undefined;
248
- const old = this.store.bookings[index];
249
- const updated = {
250
- ...old,
251
- ...data,
252
- id: old.id
253
- };
254
- this.store.bookings[index] = updated;
255
- this.rebuildBookingsIndex();
256
- // this.saveBookingsToSQLite(this.store.bookings).catch(() => {})
257
- this.safeEmit(_types.ResourceHooks.onBookingsChanged, this.store.bookings);
258
- return updated;
259
- }
247
+ // updateBooking(id: ResourceId, data: Partial<ResourceBooking>): ResourceBooking | undefined {
248
+ // const index = this.store.bookings.findIndex(b => this.getIdKey(b.id) === this.getIdKey(id))
249
+ // if (index === -1) return undefined
250
+
251
+ // const old = this.store.bookings[index]
252
+ // const updated: ResourceBooking = { ...old, ...data, id: old.id } as ResourceBooking
253
+ // this.store.bookings[index] = updated
254
+
255
+ // this.rebuildBookingsIndex()
256
+ // this.saveBookingsToSQLite(this.store.bookings).catch(() => {})
257
+ // this.safeEmit(ResourceHooks.onBookingsChanged, this.store.bookings)
258
+ // return updated
259
+ // }
260
260
 
261
261
  /**
262
262
  * 删除预订
263
263
  */
264
- deleteBooking(id) {
265
- const index = this.store.bookings.findIndex(b => this.getIdKey(b.id) === this.getIdKey(id));
266
- if (index === -1) return false;
267
- this.store.bookings.splice(index, 1);
268
- this.rebuildBookingsIndex();
269
- // this.saveBookingsToSQLite(this.store.bookings).catch(() => {})
270
- this.safeEmit(_types.ResourceHooks.onBookingsChanged, this.store.bookings);
271
- return true;
272
- }
264
+ // deleteBooking(id: ResourceId): boolean {
265
+ // const index = this.store.bookings.findIndex(b => this.getIdKey(b.id) === this.getIdKey(id))
266
+ // if (index === -1) return false
267
+
268
+ // this.store.bookings.splice(index, 1)
269
+ // this.rebuildBookingsIndex()
270
+ // this.saveBookingsToSQLite(this.store.bookings).catch(() => {})
271
+ // this.safeEmit(ResourceHooks.onBookingsChanged, this.store.bookings)
272
+ // return true
273
+ // }
273
274
 
274
275
  /**
275
276
  * 清空缓存
@@ -301,11 +302,33 @@ class ResourceModule extends _BaseModule.BaseModule {
301
302
  bookings: this.getBookingsByResourceId(resource.id)
302
303
  };
303
304
  }
305
+ normalizeIntegerIdValue(value) {
306
+ if (typeof value !== 'string') return value;
307
+ const matched = value.match(/^(-?\d+)\.0+$/);
308
+ if (!matched) return value;
309
+ return matched[1];
310
+ }
311
+ normalizeResourceIdFields(resource) {
312
+ resource.id = this.normalizeIntegerIdValue(resource.id);
313
+ if (resource.form_record_id !== undefined) {
314
+ resource.form_record_id = this.normalizeIntegerIdValue(resource.form_record_id);
315
+ }
316
+ if (resource.form_id !== undefined) {
317
+ resource.form_id = this.normalizeIntegerIdValue(resource.form_id);
318
+ }
319
+ if (resource.resource_form_id !== undefined) {
320
+ resource.resource_form_id = this.normalizeIntegerIdValue(resource.resource_form_id);
321
+ }
322
+ if (resource.resource_id !== undefined) {
323
+ resource.resource_id = this.normalizeIntegerIdValue(resource.resource_id);
324
+ }
325
+ return resource;
326
+ }
304
327
  normalizeResource(resource) {
305
- const normalized = {
328
+ const normalized = this.normalizeResourceIdFields({
306
329
  ...resource,
307
- id: resource?.id ?? resource?.form_record_id ?? ''
308
- };
330
+ id: this.normalizeIntegerIdValue(resource?.id ?? resource?.form_record_id ?? '')
331
+ });
309
332
  if (normalized.form_record_id === undefined && normalized.id !== '') {
310
333
  normalized.form_record_id = normalized.id;
311
334
  }
@@ -473,6 +496,9 @@ class ResourceModule extends _BaseModule.BaseModule {
473
496
  }).catch(() => {
474
497
  // 忽略同步初始化异常
475
498
  });
499
+ this.logInfo('setupResourceSync: 资源列表查询结果', {
500
+ result
501
+ });
476
502
  if (result?.data?.list?.length) {
477
503
  await this.mergeResourcesToStore(result?.data?.list);
478
504
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Resource 模块主键类型
3
3
  */
4
- export type ResourceId = number | string;
4
+ export declare type ResourceId = number | string;
5
5
  /**
6
6
  * Sales / ScheduleEventResource:预约条目内关联资源(仅 ID 与占用,详情由设备端基准数据解析)
7
7
  * @see 统一 Sales 数据协议 3.4.1 resources
@@ -12,6 +12,7 @@ export declare class ScheduleModuleEx extends BaseModule implements Module, Sche
12
12
  private store;
13
13
  private dbManager;
14
14
  private logger;
15
+ private hasLoadedScheduleList;
15
16
  constructor(name?: string, version?: string);
16
17
  /**
17
18
  * 记录信息日志
@@ -41,6 +42,7 @@ export declare class ScheduleModuleEx extends BaseModule implements Module, Sche
41
42
  * 获取所有日程列表
42
43
  */
43
44
  getScheduleList(): ScheduleItem[];
45
+ isScheduleListLoaded(): boolean;
44
46
  /**
45
47
  * 根据 schedule IDs 获取日程数据
46
48
  * 使用 Map 快速查询,时间复杂度 O(m),m 为 ids 数量
@@ -64,15 +66,15 @@ export declare class ScheduleModuleEx extends BaseModule implements Module, Sche
64
66
  */
65
67
  getDateIsInSchedule(date: string, scheduleList: (ScheduleItem | number)[]): boolean;
66
68
  /**
67
- * 从 IndexDB 加载日程数据
69
+ * 从 SQLite 加载日程数据
68
70
  * @private
69
71
  */
70
- private loadScheduleFromIndexDB;
72
+ private loadScheduleFromSQLite;
71
73
  /**
72
- * 保存日程数据到 IndexDB
74
+ * 保存日程数据到 SQLite
73
75
  * @private
74
76
  */
75
- private saveScheduleToIndexDB;
77
+ private saveScheduleToSQLite;
76
78
  /**
77
79
  * 预加载模块数据(统一接口)
78
80
  * 在模块注册后自动调用