@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
@@ -1,105 +1,126 @@
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/solution/RegisterAndLogin/utils.ts
20
- var utils_exports = {};
21
- __export(utils_exports, {
22
- debounce: () => debounce,
23
- deepClone: () => deepClone,
24
- formatEmailDisplay: () => formatEmailDisplay,
25
- formatPhoneDisplay: () => formatPhoneDisplay,
26
- formatTimestamp: () => formatTimestamp,
27
- generateRandomString: () => generateRandomString,
28
- getDeviceType: () => getDeviceType,
29
- getOAuthProviderDisplayName: () => getOAuthProviderDisplayName,
30
- getOAuthProviderIconUrl: () => getOAuthProviderIconUrl,
31
- getTimeDifference: () => getTimeDifference,
32
- isAndroidDevice: () => isAndroidDevice,
33
- isIOSDevice: () => isIOSDevice,
34
- isMobileDevice: () => isMobileDevice,
35
- isTimestampExpired: () => isTimestampExpired,
36
- isWebAuthnSupported: () => isWebAuthnSupported,
37
- safeJsonParse: () => safeJsonParse,
38
- safeJsonStringify: () => safeJsonStringify,
39
- throttle: () => throttle,
40
- validateEmail: () => validateEmail,
41
- validatePassword: () => validatePassword,
42
- validatePhone: () => validatePhone,
43
- validateVerificationCode: () => validateVerificationCode
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
44
5
  });
45
- module.exports = __toCommonJS(utils_exports);
46
- var import_types = require("./types");
6
+ exports.debounce = debounce;
7
+ exports.deepClone = deepClone;
8
+ exports.formatEmailDisplay = formatEmailDisplay;
9
+ exports.formatPhoneDisplay = formatPhoneDisplay;
10
+ exports.formatTimestamp = formatTimestamp;
11
+ exports.generateRandomString = generateRandomString;
12
+ exports.getDeviceType = getDeviceType;
13
+ exports.getOAuthProviderDisplayName = getOAuthProviderDisplayName;
14
+ exports.getOAuthProviderIconUrl = getOAuthProviderIconUrl;
15
+ exports.getTimeDifference = getTimeDifference;
16
+ exports.isAndroidDevice = isAndroidDevice;
17
+ exports.isIOSDevice = isIOSDevice;
18
+ exports.isMobileDevice = isMobileDevice;
19
+ exports.isTimestampExpired = isTimestampExpired;
20
+ exports.isWebAuthnSupported = isWebAuthnSupported;
21
+ exports.safeJsonParse = safeJsonParse;
22
+ exports.safeJsonStringify = safeJsonStringify;
23
+ exports.throttle = throttle;
24
+ exports.validateEmail = validateEmail;
25
+ exports.validatePassword = validatePassword;
26
+ exports.validatePhone = validatePhone;
27
+ exports.validateVerificationCode = validateVerificationCode;
28
+ var _types = require("./types");
29
+ /**
30
+ * 注册登录工具函数
31
+ */
32
+
33
+ /**
34
+ * 验证邮箱格式
35
+ */
47
36
  function validateEmail(email) {
48
37
  const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
49
38
  return emailRegex.test(email);
50
39
  }
40
+
41
+ /**
42
+ * 验证手机号格式(支持多种国际格式)
43
+ */
51
44
  function validatePhone(phone) {
52
- const cleanPhone = phone.replace(/[^\d+]/g, "");
45
+ // 移除所有非数字字符(除了 + 号)
46
+ const cleanPhone = phone.replace(/[^\d+]/g, '');
47
+
48
+ // 基本的手机号验证规则
53
49
  const phoneRegex = /^(\+\d{1,3}[- ]?)?\d{10,14}$/;
54
50
  return phoneRegex.test(cleanPhone);
55
51
  }
52
+
53
+ /**
54
+ * 验证密码强度
55
+ */
56
56
  function validatePassword(password) {
57
57
  const errors = [];
58
58
  if (password.length < 8) {
59
- errors.push("密码长度至少为8位");
59
+ errors.push('密码长度至少为8位');
60
60
  }
61
61
  if (password.length > 128) {
62
- errors.push("密码长度不能超过128位");
62
+ errors.push('密码长度不能超过128位');
63
63
  }
64
64
  if (!/[a-z]/.test(password)) {
65
- errors.push("密码必须包含至少一个小写字母");
65
+ errors.push('密码必须包含至少一个小写字母');
66
66
  }
67
67
  if (!/[A-Z]/.test(password)) {
68
- errors.push("密码必须包含至少一个大写字母");
68
+ errors.push('密码必须包含至少一个大写字母');
69
69
  }
70
70
  if (!/\d/.test(password)) {
71
- errors.push("密码必须包含至少一个数字");
71
+ errors.push('密码必须包含至少一个数字');
72
72
  }
73
73
  if (!/[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/.test(password)) {
74
- errors.push("密码必须包含至少一个特殊字符");
74
+ errors.push('密码必须包含至少一个特殊字符');
75
75
  }
76
76
  return {
77
77
  isValid: errors.length === 0,
78
78
  errors
79
79
  };
80
80
  }
81
+
82
+ /**
83
+ * 验证验证码格式
84
+ */
81
85
  function validateVerificationCode(code, type) {
82
- const cleanCode = code.replace(/\s/g, "");
86
+ // 移除所有空格
87
+ const cleanCode = code.replace(/\s/g, '');
83
88
  switch (type) {
84
- case import_types.VerificationCodeType.EMAIL:
85
- case import_types.VerificationCodeType.SMS:
89
+ case _types.VerificationCodeType.EMAIL:
90
+ case _types.VerificationCodeType.SMS:
91
+ // 通常是4-8位数字
86
92
  return /^\d{4,8}$/.test(cleanCode);
87
93
  default:
88
94
  return false;
89
95
  }
90
96
  }
97
+
98
+ /**
99
+ * 格式化手机号显示
100
+ */
91
101
  function formatPhoneDisplay(phone) {
92
- const cleanPhone = phone.replace(/[^\d+]/g, "");
102
+ // 移除所有非数字字符(除了 + 号)
103
+ const cleanPhone = phone.replace(/[^\d+]/g, '');
104
+
105
+ // 如果是中国手机号(11位数字)
93
106
  if (/^\d{11}$/.test(cleanPhone)) {
94
- return cleanPhone.replace(/(\d{3})(\d{4})(\d{4})/, "$1 $2 $3");
107
+ return cleanPhone.replace(/(\d{3})(\d{4})(\d{4})/, '$1 $2 $3');
95
108
  }
96
- if (cleanPhone.startsWith("+")) {
109
+
110
+ // 如果是国际号码(以 + 开头)
111
+ if (cleanPhone.startsWith('+')) {
97
112
  return cleanPhone;
98
113
  }
114
+
115
+ // 其他格式保持原样
99
116
  return phone;
100
117
  }
118
+
119
+ /**
120
+ * 格式化邮箱显示(隐藏部分字符)
121
+ */
101
122
  function formatEmailDisplay(email, maskLength = 3) {
102
- const [localPart, domain] = email.split("@");
123
+ const [localPart, domain] = email.split('@');
103
124
  if (!localPart || !domain) {
104
125
  return email;
105
126
  }
@@ -108,76 +129,110 @@ function formatEmailDisplay(email, maskLength = 3) {
108
129
  }
109
130
  const visibleStart = localPart.substring(0, maskLength);
110
131
  const visibleEnd = localPart.substring(localPart.length - maskLength);
111
- const maskedPart = "*".repeat(localPart.length - maskLength * 2);
132
+ const maskedPart = '*'.repeat(localPart.length - maskLength * 2);
112
133
  return `${visibleStart}${maskedPart}${visibleEnd}@${domain}`;
113
134
  }
135
+
136
+ /**
137
+ * 生成随机字符串(用于状态参数等)
138
+ */
114
139
  function generateRandomString(length = 32) {
115
- const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
116
- let result = "";
140
+ const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
141
+ let result = '';
117
142
  for (let i = 0; i < length; i++) {
118
143
  result += chars.charAt(Math.floor(Math.random() * chars.length));
119
144
  }
120
145
  return result;
121
146
  }
147
+
148
+ /**
149
+ * 获取 OAuth 提供商的显示名称
150
+ */
122
151
  function getOAuthProviderDisplayName(provider) {
123
152
  const displayNames = {
124
- [import_types.OAuthProvider.FACEBOOK]: "Facebook",
125
- [import_types.OAuthProvider.APPLE]: "Apple",
126
- [import_types.OAuthProvider.GOOGLE]: "Google",
127
- [import_types.OAuthProvider.WECHAT]: "微信",
128
- [import_types.OAuthProvider.GITHUB]: "GitHub"
153
+ [_types.OAuthProvider.FACEBOOK]: 'Facebook',
154
+ [_types.OAuthProvider.APPLE]: 'Apple',
155
+ [_types.OAuthProvider.GOOGLE]: 'Google',
156
+ [_types.OAuthProvider.WECHAT]: '微信',
157
+ [_types.OAuthProvider.GITHUB]: 'GitHub'
129
158
  };
130
159
  return displayNames[provider] || provider;
131
160
  }
161
+
162
+ /**
163
+ * 获取 OAuth 提供商的图标 URL
164
+ */
132
165
  function getOAuthProviderIconUrl(provider) {
133
166
  const iconUrls = {
134
- [import_types.OAuthProvider.FACEBOOK]: "https://cdn.jsdelivr.net/npm/simple-icons@v9/icons/facebook.svg",
135
- [import_types.OAuthProvider.APPLE]: "https://cdn.jsdelivr.net/npm/simple-icons@v9/icons/apple.svg",
136
- [import_types.OAuthProvider.GOOGLE]: "https://cdn.jsdelivr.net/npm/simple-icons@v9/icons/google.svg",
137
- [import_types.OAuthProvider.WECHAT]: "https://cdn.jsdelivr.net/npm/simple-icons@v9/icons/wechat.svg",
138
- [import_types.OAuthProvider.GITHUB]: "https://cdn.jsdelivr.net/npm/simple-icons@v9/icons/github.svg"
167
+ [_types.OAuthProvider.FACEBOOK]: 'https://cdn.jsdelivr.net/npm/simple-icons@v9/icons/facebook.svg',
168
+ [_types.OAuthProvider.APPLE]: 'https://cdn.jsdelivr.net/npm/simple-icons@v9/icons/apple.svg',
169
+ [_types.OAuthProvider.GOOGLE]: 'https://cdn.jsdelivr.net/npm/simple-icons@v9/icons/google.svg',
170
+ [_types.OAuthProvider.WECHAT]: 'https://cdn.jsdelivr.net/npm/simple-icons@v9/icons/wechat.svg',
171
+ [_types.OAuthProvider.GITHUB]: 'https://cdn.jsdelivr.net/npm/simple-icons@v9/icons/github.svg'
139
172
  };
140
- return iconUrls[provider] || "";
173
+ return iconUrls[provider] || '';
141
174
  }
175
+
176
+ /**
177
+ * 检查是否在移动设备上
178
+ */
142
179
  function isMobileDevice() {
143
- if (typeof window === "undefined") {
180
+ if (typeof window === 'undefined') {
144
181
  return false;
145
182
  }
146
- return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
147
- navigator.userAgent
148
- );
183
+ return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
149
184
  }
185
+
186
+ /**
187
+ * 检查是否支持 WebAuthn
188
+ */
150
189
  function isWebAuthnSupported() {
151
- if (typeof window === "undefined") {
190
+ if (typeof window === 'undefined') {
152
191
  return false;
153
192
  }
154
193
  return !!(navigator.credentials && navigator.credentials.create);
155
194
  }
195
+
196
+ /**
197
+ * 检查是否在 iOS 设备上
198
+ */
156
199
  function isIOSDevice() {
157
- if (typeof window === "undefined") {
200
+ if (typeof window === 'undefined') {
158
201
  return false;
159
202
  }
160
203
  return /iPad|iPhone|iPod/.test(navigator.userAgent);
161
204
  }
205
+
206
+ /**
207
+ * 检查是否在 Android 设备上
208
+ */
162
209
  function isAndroidDevice() {
163
- if (typeof window === "undefined") {
210
+ if (typeof window === 'undefined') {
164
211
  return false;
165
212
  }
166
213
  return /Android/.test(navigator.userAgent);
167
214
  }
215
+
216
+ /**
217
+ * 获取设备类型
218
+ */
168
219
  function getDeviceType() {
169
- if (typeof window === "undefined") {
170
- return "desktop";
220
+ if (typeof window === 'undefined') {
221
+ return 'desktop';
171
222
  }
172
223
  const userAgent = navigator.userAgent;
173
224
  if (/iPad/.test(userAgent)) {
174
- return "tablet";
225
+ return 'tablet';
175
226
  }
176
227
  if (/Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent)) {
177
- return "mobile";
228
+ return 'mobile';
178
229
  }
179
- return "desktop";
230
+ return 'desktop';
180
231
  }
232
+
233
+ /**
234
+ * 防抖函数
235
+ */
181
236
  function debounce(func, wait) {
182
237
  let timeout = null;
183
238
  return (...args) => {
@@ -189,6 +244,10 @@ function debounce(func, wait) {
189
244
  }, wait);
190
245
  };
191
246
  }
247
+
248
+ /**
249
+ * 节流函数
250
+ */
192
251
  function throttle(func, wait) {
193
252
  let lastTime = 0;
194
253
  return (...args) => {
@@ -199,17 +258,21 @@ function throttle(func, wait) {
199
258
  }
200
259
  };
201
260
  }
261
+
262
+ /**
263
+ * 深拷贝对象
264
+ */
202
265
  function deepClone(obj) {
203
- if (obj === null || typeof obj !== "object") {
266
+ if (obj === null || typeof obj !== 'object') {
204
267
  return obj;
205
268
  }
206
269
  if (obj instanceof Date) {
207
270
  return new Date(obj.getTime());
208
271
  }
209
272
  if (obj instanceof Array) {
210
- return obj.map((item) => deepClone(item));
273
+ return obj.map(item => deepClone(item));
211
274
  }
212
- if (typeof obj === "object") {
275
+ if (typeof obj === 'object') {
213
276
  const cloned = {};
214
277
  for (const key in obj) {
215
278
  if (obj.hasOwnProperty(key)) {
@@ -220,60 +283,55 @@ function deepClone(obj) {
220
283
  }
221
284
  return obj;
222
285
  }
286
+
287
+ /**
288
+ * 安全的 JSON 解析
289
+ */
223
290
  function safeJsonParse(jsonString, defaultValue) {
224
291
  try {
225
292
  return JSON.parse(jsonString);
226
293
  } catch (error) {
227
- console.warn("JSON 解析失败:", error);
294
+ console.warn('JSON 解析失败:', error);
228
295
  return defaultValue;
229
296
  }
230
297
  }
231
- function safeJsonStringify(obj, defaultValue = "{}") {
298
+
299
+ /**
300
+ * 安全的 JSON 字符串化
301
+ */
302
+ function safeJsonStringify(obj, defaultValue = '{}') {
232
303
  try {
233
304
  return JSON.stringify(obj);
234
305
  } catch (error) {
235
- console.warn("JSON 字符串化失败:", error);
306
+ console.warn('JSON 字符串化失败:', error);
236
307
  return defaultValue;
237
308
  }
238
309
  }
239
- function formatTimestamp(timestamp, format = "YYYY-MM-DD HH:mm:ss") {
310
+
311
+ /**
312
+ * 格式化时间戳为可读时间
313
+ */
314
+ function formatTimestamp(timestamp, format = 'YYYY-MM-DD HH:mm:ss') {
240
315
  const date = new Date(timestamp);
241
316
  const year = date.getFullYear();
242
- const month = String(date.getMonth() + 1).padStart(2, "0");
243
- const day = String(date.getDate()).padStart(2, "0");
244
- const hours = String(date.getHours()).padStart(2, "0");
245
- const minutes = String(date.getMinutes()).padStart(2, "0");
246
- const seconds = String(date.getSeconds()).padStart(2, "0");
247
- return format.replace("YYYY", year.toString()).replace("MM", month).replace("DD", day).replace("HH", hours).replace("mm", minutes).replace("ss", seconds);
317
+ const month = String(date.getMonth() + 1).padStart(2, '0');
318
+ const day = String(date.getDate()).padStart(2, '0');
319
+ const hours = String(date.getHours()).padStart(2, '0');
320
+ const minutes = String(date.getMinutes()).padStart(2, '0');
321
+ const seconds = String(date.getSeconds()).padStart(2, '0');
322
+ return format.replace('YYYY', year.toString()).replace('MM', month).replace('DD', day).replace('HH', hours).replace('mm', minutes).replace('ss', seconds);
248
323
  }
324
+
325
+ /**
326
+ * 计算两个时间戳之间的差值(秒)
327
+ */
249
328
  function getTimeDifference(timestamp1, timestamp2) {
250
- return Math.abs(timestamp1 - timestamp2) / 1e3;
329
+ return Math.abs(timestamp1 - timestamp2) / 1000;
251
330
  }
252
- function isTimestampExpired(timestamp, expirationTime = 5 * 60 * 1e3) {
331
+
332
+ /**
333
+ * 检查时间戳是否过期
334
+ */
335
+ function isTimestampExpired(timestamp, expirationTime = 5 * 60 * 1000) {
253
336
  return Date.now() - timestamp > expirationTime;
254
- }
255
- // Annotate the CommonJS export names for ESM import in node:
256
- 0 && (module.exports = {
257
- debounce,
258
- deepClone,
259
- formatEmailDisplay,
260
- formatPhoneDisplay,
261
- formatTimestamp,
262
- generateRandomString,
263
- getDeviceType,
264
- getOAuthProviderDisplayName,
265
- getOAuthProviderIconUrl,
266
- getTimeDifference,
267
- isAndroidDevice,
268
- isIOSDevice,
269
- isMobileDevice,
270
- isTimestampExpired,
271
- isWebAuthnSupported,
272
- safeJsonParse,
273
- safeJsonStringify,
274
- throttle,
275
- validateEmail,
276
- validatePassword,
277
- validatePhone,
278
- validateVerificationCode
279
- });
337
+ }
@@ -2,7 +2,7 @@ import dayjs from 'dayjs';
2
2
  import { Module, ModuleOptions, PisellCore } from '../../types';
3
3
  import { BaseModule } from '../../modules/BaseModule';
4
4
  import type { RequestPlugin } from '../../plugins/request';
5
- import { SalesState, SalesModuleAPI, Reservation, SalesResourceBookingItem, SalesTimelineHighlights } from './types';
5
+ import { SalesState, SalesModuleAPI, Reservation, SalesResourceBookingItem, SalesResourceBookingItemWithGroups, SalesTimelineHighlights, ChangeBookingStatusParams, GetResourceBookingItemParams } from './types';
6
6
  import type { BookingData } from '../../server/modules/order/types';
7
7
  export * from './types';
8
8
  /**
@@ -14,6 +14,7 @@ export * from './types';
14
14
  * - 基础生命周期占位
15
15
  *
16
16
  * 不提前实现 store 编排、初始化流程细节、状态计算逻辑。
17
+ * TIPS:这块应该改名叫 ReservationModule 更合适一些,目前这边只服务于 Reservation 的 floormap 展示。
17
18
  */
18
19
  export declare class SalesImpl extends BaseModule implements Module, SalesModuleAPI {
19
20
  protected defaultName: string;
@@ -24,6 +25,7 @@ export declare class SalesImpl extends BaseModule implements Module, SalesModule
24
25
  protected options: ModuleOptions;
25
26
  protected otherParams: Record<string, any>;
26
27
  protected request: RequestPlugin;
28
+ private logger;
27
29
  constructor(name?: string, version?: string);
28
30
  initialize(core: PisellCore, options?: ModuleOptions): Promise<void>;
29
31
  /** 获取当前 store 快照 */
@@ -38,6 +40,8 @@ export declare class SalesImpl extends BaseModule implements Module, SalesModule
38
40
  setReservationList(reservationList: Reservation[]): Reservation[];
39
41
  /** 重置预约列表为空 */
40
42
  resetReservationList(): Reservation[];
43
+ cancelOrder(orderIds: Array<number | string>): Promise<any>;
44
+ changeBookingStatus(params: ChangeBookingStatusParams): Promise<any>;
41
45
  destroy(): Promise<void>;
42
46
  /**
43
47
  * 时间轴粒度(分钟)
@@ -76,6 +80,14 @@ export declare class SalesImpl extends BaseModule implements Module, SalesModule
76
80
  */
77
81
  private getBookingStatus;
78
82
  private getResourceId;
83
+ private getBookingAppointmentStatus;
84
+ private isBookingIncludedInStats;
85
+ private getBookingOrderPaymentStatus;
86
+ private countBookingOrders;
87
+ private countCompletedBookings;
88
+ private groupBookingsByResource;
89
+ private isBookingMatchedResource;
90
+ private sortMatchedBookings;
79
91
  /**
80
92
  * 资源下 bookings 的返回裁剪策略:
81
93
  * 1) 优先返回当前时刻正在进行中的预约(允许并发返回多条)
@@ -85,12 +97,45 @@ export declare class SalesImpl extends BaseModule implements Module, SalesModule
85
97
  */
86
98
  private pickBookingsForCurrentPoint;
87
99
  /**
88
- * 标准化单条 booking:
89
- * - 过滤终态(rejected/cancelled/completed)
90
- * - 注入 status / isTimeout / reserved_status
100
+ * 计算 booking 在 current 时刻的执行进度百分比(0-100)。
101
+ * - startAt/endAt 非法或 totalMinutes <= 0 返回 0
102
+ * - current 早于 startAt 返回 0,晚于 endAt 返回 100
103
+ */
104
+ private calcProgressPercent;
105
+ /**
106
+ * 标准化单条 booking 的分发入口:
107
+ * - 统一过滤 rejected / cancelled(视为没来过)
108
+ * - current === deviceCurrent 走实时分支(信任 appointment_status)
109
+ * - 否则走快照分支(纯时间窗判定,忽略 appointment_status 的 arrived/started/completed 差异)
91
110
  */
92
111
  private normalizeMatchedBooking;
93
- getResourceBookingList(currentTime: string, bookingList?: BookingData[]): Promise<SalesResourceBookingItem[]>;
112
+ private normalizeResourceBookings;
113
+ private buildCompletedBooking;
114
+ /**
115
+ * 实时模式(current === deviceCurrent):信任 appointment_status
116
+ * - 过滤 new / completed(实时视角下视为非活跃数据)
117
+ * - status 由 getBookingStatus 映射
118
+ * - occupied 且 current > endAt 标记 isTimeout + timeoutTime
119
+ * - reserved 且 current < startAt 标记 not_arrived,否则标记 late
120
+ */
121
+ private buildRealtimeBooking;
122
+ /**
123
+ * 快照模式(current !== deviceCurrent,过去或未来):忽略 appointment_status
124
+ * 的实时态差异,仅按 booking 时间窗判定,为 current 提供时间点快照视图。
125
+ *
126
+ * - new:视作尚未成为真实预约,过滤
127
+ * - locked:保留 status=locked,不计算 timeout/late/progress
128
+ * - 其他非终态:
129
+ * - startAt/endAt 非法 → 过滤
130
+ * - current > endAt → 过滤(已结束,不入池)
131
+ * - current ∈ [startAt, endAt] → occupied,附带 progressPercent
132
+ * - current < startAt → reserved + not_arrived,附带 remainingReserveTime
133
+ *
134
+ * 快照模式下 isTimeout 恒为 false,lateTime / timeoutTime 始终置空。
135
+ */
136
+ private buildSnapshotBooking;
137
+ getResourceBookingList(currentTime: string, bookingList?: BookingData[], deviceTime?: string): Promise<SalesResourceBookingItem[]>;
138
+ getResourceBookingItem(params: GetResourceBookingItemParams): Promise<SalesResourceBookingItemWithGroups | null>;
94
139
  }
95
140
  export { SalesImpl as Sales };
96
141
  export default SalesImpl;