@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
@@ -0,0 +1,151 @@
1
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
4
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
5
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
6
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
7
+ import dayjs from 'dayjs';
8
+ import { flexibleObj, getDurationValue } from "./flexible";
9
+
10
+ /**
11
+ * 判断商品是否为跨日预约(duration.type === 'days')。与 info2 isMultiDayProduct 等价。
12
+ */
13
+ export function isMultiDayProduct(product) {
14
+ var _product$duration;
15
+ return (product === null || product === void 0 || (_product$duration = product.duration) === null || _product$duration === void 0 ? void 0 : _product$duration.type) === 'days';
16
+ }
17
+
18
+ /**
19
+ * 判断 cacheItem 是否为 session 商品(extension_type ∈ session_product / session_ticket)。
20
+ */
21
+ export function isSessionProduct(cacheItem) {
22
+ return ['session_product', 'session_ticket'].includes(cacheItem === null || cacheItem === void 0 ? void 0 : cacheItem.extension_type);
23
+ }
24
+
25
+ /** 从 catalog `cartDetailValue` 或 `_extend.other` 取 session 快照。 */
26
+ export function getSessionFromItem(item) {
27
+ var _item$cartDetailValue, _item$cartDetailValue2, _item$_extend;
28
+ var session = (_item$cartDetailValue = item === null || item === void 0 || (_item$cartDetailValue2 = item.cartDetailValue) === null || _item$cartDetailValue2 === void 0 ? void 0 : _item$cartDetailValue2.session) !== null && _item$cartDetailValue !== void 0 ? _item$cartDetailValue : item === null || item === void 0 || (_item$_extend = item._extend) === null || _item$_extend === void 0 || (_item$_extend = _item$_extend.other) === null || _item$_extend === void 0 ? void 0 : _item$_extend.session;
29
+ return session && _typeof(session) === 'object' ? session : null;
30
+ }
31
+
32
+ /**
33
+ * 将 cartDetailValue.session 写入 _extend 的起止时间(与 info2 getServiceStartTimeAndEndTime 的 session 分支一致)。
34
+ * 日历日优先用 ctx.date,时分取自 session.start_at / end_at 或 session.start_time / end_time。
35
+ */
36
+ export function applySessionTimesToExtend(item, extend, ctx) {
37
+ var _extend$other$session, _extend$other, _session$start_time, _session$end_time;
38
+ var session = (_extend$other$session = extend === null || extend === void 0 || (_extend$other = extend.other) === null || _extend$other === void 0 ? void 0 : _extend$other.session) !== null && _extend$other$session !== void 0 ? _extend$other$session : getSessionFromItem(item);
39
+ if (!session || !isSessionProduct(item)) {
40
+ return extend;
41
+ }
42
+ var baseDate = ctx !== null && ctx !== void 0 && ctx.date ? dayjs(ctx.date) : dayjs();
43
+ var startAt = dayjs("".concat(baseDate.format('YYYY-MM-DD'), " ").concat(dayjs(session.start_at).format('HH:mm:ss')));
44
+ var endAt = dayjs("".concat(baseDate.format('YYYY-MM-DD'), " ").concat(dayjs(session.end_at).format('HH:mm:ss')));
45
+ var nextExtend = _objectSpread(_objectSpread({}, extend), {}, {
46
+ other: _objectSpread(_objectSpread({}, extend.other || {}), {}, {
47
+ session: session
48
+ }),
49
+ start_date: startAt,
50
+ startDate: startAt,
51
+ start_time: (_session$start_time = session.start_time) !== null && _session$start_time !== void 0 ? _session$start_time : dayjs(session.start_at).format('HH:mm'),
52
+ end_date: endAt,
53
+ endDate: endAt,
54
+ end_time: (_session$end_time = session.end_time) !== null && _session$end_time !== void 0 ? _session$end_time : dayjs(session.end_at).format('HH:mm')
55
+ });
56
+ return _objectSpread(_objectSpread({}, nextExtend), {}, {
57
+ duration: getDays({
58
+ _extend: nextExtend
59
+ }, 'minutes')
60
+ });
61
+ }
62
+
63
+ /**
64
+ * 是否应写入 booking(与 Product.utils isNormalProduct 对齐,并覆盖 session_ticket / cartDetailValue.session)。
65
+ */
66
+ export function isBookingProduct(item) {
67
+ var _item$schedules, _item$scheduleIds;
68
+ if (!item) return false;
69
+ if (item.duration) return true;
70
+ if (item !== null && item !== void 0 && (_item$schedules = item.schedules) !== null && _item$schedules !== void 0 && _item$schedules.length) return true;
71
+ if (item !== null && item !== void 0 && (_item$scheduleIds = item['schedule.ids']) !== null && _item$scheduleIds !== void 0 && _item$scheduleIds.length) return true;
72
+ if (isSessionProduct(item)) return true;
73
+ if (getSessionFromItem(item)) return true;
74
+ return false;
75
+ }
76
+
77
+ /**
78
+ * 处理 'now' 时间占位:'now' → 当前 HH:mm;其他原样返回。
79
+ * 与 info2 `getServeStartTime` 等价。
80
+ */
81
+ export function getServeStartTime(startTime) {
82
+ if (startTime === 'now') return dayjs().format('HH:mm');
83
+ return startTime || '';
84
+ }
85
+
86
+ /**
87
+ * 计算商品的开始结束时间(统一为 dayjs 实例)。
88
+ * 与 info2 `getServiceTimes` 行为等价:
89
+ * - 跨日商品:startDate = start_date + start_time,endDate = _extend.end_date 原样
90
+ * - session 商品:从 _extend.other.session 取 start_at / end_at
91
+ * - 普通商品:startDate + duration(含 flexible 处理)
92
+ */
93
+ export function getServiceTimes(service) {
94
+ var _service$_extend, _service$_extend2, _service$_extend6, _service$_extend7;
95
+ var startDate = dayjs("".concat(dayjs(service === null || service === void 0 || (_service$_extend = service._extend) === null || _service$_extend === void 0 ? void 0 : _service$_extend.start_date).format('YYYY-MM-DD'), " ").concat(getServeStartTime(service === null || service === void 0 || (_service$_extend2 = service._extend) === null || _service$_extend2 === void 0 ? void 0 : _service$_extend2.start_time)));
96
+ if (isMultiDayProduct(service)) {
97
+ var _service$_extend3, _service$_extend$end_, _service$_extend4, _service$_extend5;
98
+ var startTime = getServeStartTime(service === null || service === void 0 || (_service$_extend3 = service._extend) === null || _service$_extend3 === void 0 ? void 0 : _service$_extend3.start_time);
99
+ var endDateRaw = (_service$_extend$end_ = service === null || service === void 0 || (_service$_extend4 = service._extend) === null || _service$_extend4 === void 0 ? void 0 : _service$_extend4.end_date) !== null && _service$_extend$end_ !== void 0 ? _service$_extend$end_ : service === null || service === void 0 || (_service$_extend5 = service._extend) === null || _service$_extend5 === void 0 ? void 0 : _service$_extend5.endDate;
100
+ var endBase = dayjs(endDateRaw);
101
+ // 跨日结束日保留与开始相同的时刻(如 11:24),避免 end_date 仅日期时被解析为 00:00
102
+ var _endDate = endBase.isValid() ? dayjs("".concat(endBase.format('YYYY-MM-DD'), " ").concat(startTime)) : endBase;
103
+ return {
104
+ startDate: startDate,
105
+ endDate: _endDate
106
+ };
107
+ }
108
+ var session = service === null || service === void 0 || (_service$_extend6 = service._extend) === null || _service$_extend6 === void 0 || (_service$_extend6 = _service$_extend6.other) === null || _service$_extend6 === void 0 ? void 0 : _service$_extend6.session;
109
+ if (isSessionProduct(service) && session) {
110
+ return {
111
+ startDate: dayjs(session.start_at),
112
+ endDate: dayjs(session.end_at)
113
+ };
114
+ }
115
+ var endDate = startDate.add(flexibleObj.getValue(service === null || service === void 0 || (_service$_extend7 = service._extend) === null || _service$_extend7 === void 0 ? void 0 : _service$_extend7.duration), 'minute');
116
+ return {
117
+ startDate: startDate,
118
+ endDate: endDate
119
+ };
120
+ }
121
+
122
+ /**
123
+ * 跨日预约相关:把 _extend.start_date / end_date 都对齐到 dayjs startOf('day')。
124
+ * 与 info2 `formatDayDate` 等价。
125
+ */
126
+ export function formatDayDate(_extend) {
127
+ return {
128
+ start_date: dayjs(_extend === null || _extend === void 0 ? void 0 : _extend.start_date).startOf('day'),
129
+ end_date: dayjs(_extend === null || _extend === void 0 ? void 0 : _extend.end_date).startOf('day')
130
+ };
131
+ }
132
+
133
+ /**
134
+ * 计算跨日预约时长:
135
+ * - type='days' → end - start 的天数
136
+ * - type='minutes' → end - start 的分钟数
137
+ * 与 info2 `getDays` 等价。
138
+ */
139
+ export function getDays(cacheItem, type) {
140
+ var _cacheItem$_extend, _cacheItem$_extend2;
141
+ if (type === 'days') {
142
+ var _formatDayDate = formatDayDate(cacheItem._extend),
143
+ start_date = _formatDayDate.start_date,
144
+ end_date = _formatDayDate.end_date;
145
+ return end_date.diff(start_date, 'day');
146
+ }
147
+ var startDate = dayjs(cacheItem === null || cacheItem === void 0 || (_cacheItem$_extend = cacheItem._extend) === null || _cacheItem$_extend === void 0 ? void 0 : _cacheItem$_extend.start_date);
148
+ var endDate = dayjs(cacheItem === null || cacheItem === void 0 || (_cacheItem$_extend2 = cacheItem._extend) === null || _cacheItem$_extend2 === void 0 ? void 0 : _cacheItem$_extend2.end_date);
149
+ return endDate.diff(startDate, type);
150
+ }
151
+ export { getDurationValue };
@@ -0,0 +1,42 @@
1
+ import dayjs from 'dayjs';
2
+ import { getDurationValue } from './flexible';
3
+ export interface TimeSlice {
4
+ label: string;
5
+ value: string;
6
+ }
7
+ export interface DurationSlice {
8
+ label: string;
9
+ value: number;
10
+ }
11
+ export interface TimeSlicesResult {
12
+ timeSlices: TimeSlice[];
13
+ durationSlicesBasedOnTime: DurationSlice[];
14
+ }
15
+ /**
16
+ * 把一天切成等长时间槽,输出 timeSlices(开始时间标签)与 durationSlicesBasedOnTime(基于切片的时长选项)。
17
+ *
18
+ * 与 info2 `sliceDayIntoFiveMinutes` 行为等价;为了不依赖 `locales`,label 输出原始时间字符串('08:00 AM' / '90'),
19
+ * UI 侧需要本地化展示时可基于 value 自行包装。
20
+ *
21
+ * @param config booking config `basic.service_time`,{ value: minutes }
22
+ * @param isDay 是否跨日预约(true 时按 1~30 天切片)
23
+ */
24
+ export declare function sliceDayIntoFiveMinutes(config: {
25
+ value?: number;
26
+ } | undefined | null, isDay?: boolean): TimeSlicesResult;
27
+ /**
28
+ * 取「下一个 duration 选项」:优先用 defaultValue;否则在 array 中找匹配的;找不到取第一个。
29
+ * 与 info2 `findNextDuration` 等价。
30
+ */
31
+ export declare function findNextDuration(current: {
32
+ value?: number;
33
+ } | undefined, array: DurationSlice[], defaultValue?: number): number | undefined;
34
+ /** 取首选 time slice:若指定 date(HH:mm)则找第一个 >= date 的;否则第一个。 */
35
+ export declare function findNextSlice(params: {
36
+ timeSlices: TimeSlice[];
37
+ index?: number;
38
+ date?: string;
39
+ }): string | undefined;
40
+ /** 取 endDate;duration='flexible' 时取 endDate 与店铺营业时间的较小值,否则 startDate + duration 分钟。 */
41
+ export declare function getEndDate(startDate: dayjs.Dayjs, duration: string | number, endDate: any, shopOpeningHours?: string): dayjs.Dayjs;
42
+ export { getDurationValue };
@@ -0,0 +1,100 @@
1
+ import dayjs from 'dayjs';
2
+ import { getDurationValue } from "./flexible";
3
+ /**
4
+ * 把一天切成等长时间槽,输出 timeSlices(开始时间标签)与 durationSlicesBasedOnTime(基于切片的时长选项)。
5
+ *
6
+ * 与 info2 `sliceDayIntoFiveMinutes` 行为等价;为了不依赖 `locales`,label 输出原始时间字符串('08:00 AM' / '90'),
7
+ * UI 侧需要本地化展示时可基于 value 自行包装。
8
+ *
9
+ * @param config booking config `basic.service_time`,{ value: minutes }
10
+ * @param isDay 是否跨日预约(true 时按 1~30 天切片)
11
+ */
12
+ export function sliceDayIntoFiveMinutes(config, isDay) {
13
+ var startTime = dayjs().startOf('day');
14
+ var endTime = dayjs().endOf('day');
15
+ var timeSlice = config && config.value || 5;
16
+ var timeSlices = [];
17
+ var durationSlicesBasedOnTime = [];
18
+ var currentTime = startTime;
19
+ if (isDay) {
20
+ var currentDay = 1;
21
+ while (currentDay <= 30) {
22
+ timeSlices.push({
23
+ label: currentTime.format('hh:mm A'),
24
+ value: currentTime.format('HH:mm')
25
+ });
26
+ durationSlicesBasedOnTime.push({
27
+ label: String(currentDay),
28
+ value: currentDay
29
+ });
30
+ currentDay += 1;
31
+ }
32
+ return {
33
+ timeSlices: timeSlices,
34
+ durationSlicesBasedOnTime: durationSlicesBasedOnTime
35
+ };
36
+ }
37
+ while (currentTime.isBefore(endTime)) {
38
+ timeSlices.push({
39
+ label: currentTime.format('hh:mm A'),
40
+ value: currentTime.format('HH:mm')
41
+ });
42
+ var nextTime = currentTime.add(timeSlice, 'minute');
43
+ var durationValue = nextTime.diff(startTime, 'minute');
44
+ durationSlicesBasedOnTime.push({
45
+ label: String(durationValue),
46
+ value: durationValue
47
+ });
48
+ currentTime = nextTime;
49
+ }
50
+ return {
51
+ timeSlices: timeSlices,
52
+ durationSlicesBasedOnTime: durationSlicesBasedOnTime
53
+ };
54
+ }
55
+
56
+ /**
57
+ * 取「下一个 duration 选项」:优先用 defaultValue;否则在 array 中找匹配的;找不到取第一个。
58
+ * 与 info2 `findNextDuration` 等价。
59
+ */
60
+ export function findNextDuration(current, array, defaultValue) {
61
+ if (defaultValue !== undefined && defaultValue !== null) return defaultValue;
62
+ if (!array || array.length === 0) return undefined;
63
+ for (var i = 0; i < array.length; i += 1) {
64
+ if (array[i].value === (current === null || current === void 0 ? void 0 : current.value)) return array[i].value;
65
+ }
66
+ return array[0].value;
67
+ }
68
+
69
+ /** 取首选 time slice:若指定 date(HH:mm)则找第一个 >= date 的;否则第一个。 */
70
+ export function findNextSlice(params) {
71
+ var _timeSlices$index;
72
+ var timeSlices = params.timeSlices,
73
+ _params$index = params.index,
74
+ index = _params$index === void 0 ? 0 : _params$index,
75
+ _params$date = params.date,
76
+ date = _params$date === void 0 ? '' : _params$date;
77
+ var currentTimeValue = date || dayjs().format('HH:mm');
78
+ for (var i = 0; i < timeSlices.length; i += 1) {
79
+ if (timeSlices[i].value !== 'now' && timeSlices[i].value >= currentTimeValue) {
80
+ return timeSlices[i].value;
81
+ }
82
+ }
83
+ return (_timeSlices$index = timeSlices[index]) === null || _timeSlices$index === void 0 ? void 0 : _timeSlices$index.value;
84
+ }
85
+
86
+ /** 取 endDate;duration='flexible' 时取 endDate 与店铺营业时间的较小值,否则 startDate + duration 分钟。 */
87
+ export function getEndDate(startDate, duration, endDate, shopOpeningHours) {
88
+ if (duration === 'flexible') {
89
+ var openingDate = dayjs("".concat(startDate.format('YYYY-MM-DD'), " ").concat(shopOpeningHours || '23:59'));
90
+ if (dayjs(startDate).isAfter(openingDate)) {
91
+ openingDate = openingDate.add(1, 'day');
92
+ }
93
+ if (!endDate) return openingDate;
94
+ var endDateObj = dayjs(endDate);
95
+ if (endDateObj.isAfter(openingDate)) return openingDate;
96
+ return endDateObj;
97
+ }
98
+ return startDate.add(Number(duration), 'minute');
99
+ }
100
+ export { getDurationValue };
@@ -14,6 +14,7 @@ import Decimal from 'decimal.js';
14
14
  import { isNormalProduct } from "../../Product/utils";
15
15
  import { getDiscountAmount } from "../../../solution/ShopDiscount/utils";
16
16
  import { calcDiscountListDifference } from "../../Summary/utils";
17
+ import { getBundleSellingMagnitude } from "../../Order/utils";
17
18
 
18
19
  /** 与 Rules / ShopDiscount 一致的折扣入参,用于主价与 option 单价 */
19
20
  var toDiscountPayload = function toDiscountPayload(discountItem) {
@@ -182,7 +183,9 @@ export var formatProductToCartItemOrigin = function formatProductToCartItemOrigi
182
183
  product_id: product.id,
183
184
  product_variant_id: product_variant_id || 0,
184
185
  product_bundle: ((_origin$product2 = origin.product) === null || _origin$product2 === void 0 ? void 0 : _origin$product2.product_bundle) || [],
185
- product_option_item: ((_origin$product3 = origin.product) === null || _origin$product3 === void 0 ? void 0 : _origin$product3.product_option_item) || [],
186
+ product_sku: ((_origin$product3 = origin.product) === null || _origin$product3 === void 0 ? void 0 : _origin$product3.product_sku) || {
187
+ option: []
188
+ },
186
189
  metadata: {
187
190
  product_discount_difference: product_discount_difference
188
191
  }
@@ -195,7 +198,16 @@ export var formatProductToCartItemOrigin = function formatProductToCartItemOrigi
195
198
  origin.product.product_bundle = formatBundleToOrigin(bundle);
196
199
  }
197
200
  if (options !== null && options !== void 0 && options.length) {
198
- origin.product.product_option_item = formatOptionsToOrigin(options);
201
+ origin.product.product_sku = _objectSpread(_objectSpread({}, origin.product.product_sku || {}), {}, {
202
+ option: formatOptionsToOrigin(options).map(function (option) {
203
+ var _option$add_price;
204
+ var next = _objectSpread(_objectSpread({}, option), {}, {
205
+ add_price: (_option$add_price = option.add_price) !== null && _option$add_price !== void 0 ? _option$add_price : option.price
206
+ });
207
+ delete next.price;
208
+ return next;
209
+ })
210
+ });
199
211
  }
200
212
  }
201
213
  return origin;
@@ -325,7 +337,7 @@ export var formatOptionsToOrigin = function formatOptionsToOrigin(options) {
325
337
  return options.map(function (d) {
326
338
  return {
327
339
  num: d.num,
328
- option_group_item_id: d.product_option_item_id,
340
+ option_group_item_id: d.option_group_item_id,
329
341
  option_group_id: d.option_group_id
330
342
  };
331
343
  });
@@ -362,6 +374,7 @@ export var formatBundle = function formatBundle(bundle) {
362
374
  export var formatBundleToOrigin = function formatBundleToOrigin(bundle) {
363
375
  if (!(bundle !== null && bundle !== void 0 && bundle.length)) return [];
364
376
  return bundle.map(function (d) {
377
+ var _d$price, _d$price_type, _d$price_type_ext;
365
378
  var getBundleValueByKey = function getBundleValueByKey(key) {
366
379
  var _d$originBundleItem;
367
380
  return (d === null || d === void 0 ? void 0 : d[key]) || (d === null || d === void 0 || (_d$originBundleItem = d.originBundleItem) === null || _d$originBundleItem === void 0 ? void 0 : _d$originBundleItem[key]);
@@ -370,6 +383,14 @@ export var formatBundleToOrigin = function formatBundleToOrigin(bundle) {
370
383
  var _cur$metadata2;
371
384
  return pre + ((cur === null || cur === void 0 || (_cur$metadata2 = cur.metadata) === null || _cur$metadata2 === void 0 ? void 0 : _cur$metadata2.product_discount_difference) || 0);
372
385
  }, 0);
386
+ var normalizedBundle = _objectSpread(_objectSpread({}, d), {}, {
387
+ // 计算 markdown 净额时只传真实毛价;若仅有 bundle_selling_price,则由 helper 当历史净额兜底。
388
+ price: (_d$price = d === null || d === void 0 ? void 0 : d.price) !== null && _d$price !== void 0 ? _d$price : d === null || d === void 0 ? void 0 : d.custom_price,
389
+ bundle_selling_price: d === null || d === void 0 ? void 0 : d.bundle_selling_price,
390
+ price_type: (_d$price_type = d === null || d === void 0 ? void 0 : d.price_type) !== null && _d$price_type !== void 0 ? _d$price_type : d === null || d === void 0 ? void 0 : d.custom_price_type,
391
+ price_type_ext: (_d$price_type_ext = d === null || d === void 0 ? void 0 : d.price_type_ext) !== null && _d$price_type_ext !== void 0 ? _d$price_type_ext : d === null || d === void 0 ? void 0 : d.custom_price_type_ext,
392
+ option: getBundleValueByKey('option')
393
+ });
373
394
  return {
374
395
  bundle_group_id: getBundleValueByKey('group_id'),
375
396
  bundle_id: d.id,
@@ -380,8 +401,8 @@ export var formatBundleToOrigin = function formatBundleToOrigin(bundle) {
380
401
  extension_type: getBundleValueByKey('extension_type'),
381
402
  option: formatOptionsToOrigin(getBundleValueByKey('option')),
382
403
  discount_list: d.discount_list,
383
- "bundle_selling_price": d === null || d === void 0 ? void 0 : d.price,
384
- // "custom_price": d?.price,
404
+ "bundle_selling_price": getBundleSellingMagnitude(normalizedBundle).toFixed(2),
405
+ "custom_price": d === null || d === void 0 ? void 0 : d.price,
385
406
  metadata: {
386
407
  custom_product_bundle_map_id: d._id,
387
408
  product_discount_difference: product_discount_difference
@@ -10,7 +10,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
10
10
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
11
11
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
12
12
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
13
- import Decimal from "decimal.js";
13
+ import { getBundleSellingMagnitude } from "../../Order/utils";
14
14
  export function updateAllCartItemPrice(_x, _x2, _x3, _x4, _x5) {
15
15
  return _updateAllCartItemPrice.apply(this, arguments);
16
16
  }
@@ -23,8 +23,8 @@ function _updateAllCartItemPrice() {
23
23
  _iterator = _createForOfIteratorHelper(cartItems);
24
24
  _context2.prev = 1;
25
25
  _loop = /*#__PURE__*/_regeneratorRuntime().mark(function _loop() {
26
- var _item$_productOrigin, _bundle;
27
- var item, targetProduct, cartProduct, productInfo, bundle, _productInfo$variant;
26
+ var _item$_productOrigin$, _item$_productOrigin, _item$_origin, _targetProduct$varian, _ref, _targetVariant$price, _ref2, _targetVariant$base_p, _item$_productOrigin2, _bundle;
27
+ var item, targetProduct, cartProduct, productInfo, variantId, targetVariant, bundle, _productInfo$variant;
28
28
  return _regeneratorRuntime().wrap(function _loop$(_context) {
29
29
  while (1) switch (_context.prev = _context.next) {
30
30
  case 0:
@@ -40,10 +40,17 @@ function _updateAllCartItemPrice() {
40
40
  if (!productInfo) {
41
41
  productInfo = item._productOrigin;
42
42
  }
43
- bundle = item._bundleOrigin;
44
- productInfo.price = targetProduct === null || targetProduct === void 0 ? void 0 : targetProduct.price;
45
- productInfo.base_price = targetProduct === null || targetProduct === void 0 ? void 0 : targetProduct.base_price;
46
- productInfo.product_variant_id = (_item$_productOrigin = item._productOrigin) === null || _item$_productOrigin === void 0 ? void 0 : _item$_productOrigin.product_variant_id;
43
+
44
+ // 查找选择的规格id
45
+ variantId = (_item$_productOrigin$ = item === null || item === void 0 || (_item$_productOrigin = item._productOrigin) === null || _item$_productOrigin === void 0 ? void 0 : _item$_productOrigin.product_variant_id) !== null && _item$_productOrigin$ !== void 0 ? _item$_productOrigin$ : item === null || item === void 0 || (_item$_origin = item._origin) === null || _item$_origin === void 0 || (_item$_origin = _item$_origin.product) === null || _item$_origin === void 0 ? void 0 : _item$_origin.product_variant_id;
46
+ targetVariant = targetProduct === null || targetProduct === void 0 || (_targetProduct$varian = targetProduct.variant) === null || _targetProduct$varian === void 0 ? void 0 : _targetProduct$varian.find(function (variant) {
47
+ return Number(variant.id) === Number(variantId);
48
+ });
49
+ bundle = item._bundleOrigin; // productInfo.price = targetProduct?.price;
50
+ // productInfo.base_price = targetProduct?.base_price;
51
+ productInfo.price = (_ref = (_targetVariant$price = targetVariant === null || targetVariant === void 0 ? void 0 : targetVariant.price) !== null && _targetVariant$price !== void 0 ? _targetVariant$price : targetProduct === null || targetProduct === void 0 ? void 0 : targetProduct.price) !== null && _ref !== void 0 ? _ref : productInfo.price;
52
+ productInfo.base_price = (_ref2 = (_targetVariant$base_p = targetVariant === null || targetVariant === void 0 ? void 0 : targetVariant.base_price) !== null && _targetVariant$base_p !== void 0 ? _targetVariant$base_p : targetProduct === null || targetProduct === void 0 ? void 0 : targetProduct.base_price) !== null && _ref2 !== void 0 ? _ref2 : productInfo.base_price;
53
+ productInfo.product_variant_id = (_item$_productOrigin2 = item._productOrigin) === null || _item$_productOrigin2 === void 0 ? void 0 : _item$_productOrigin2.product_variant_id;
47
54
  bundle = (_bundle = bundle) === null || _bundle === void 0 ? void 0 : _bundle.map(function (n) {
48
55
  var _targetProduct$bundle;
49
56
  // 更新 bundle 的价格
@@ -54,18 +61,18 @@ function _updateAllCartItemPrice() {
54
61
  var targetBundleItem = targetBundle.bundle_item.find(function (m) {
55
62
  return m.id === n.id;
56
63
  });
57
- if (targetBundleItem.price_type === 'markdown') {
58
- targetBundleItem.price = new Decimal(targetBundleItem.price || 0).mul(-1).toNumber();
59
- }
60
- // 如果有选择 option,还需要加上 option 的价格
61
- if (n.option) {
62
- targetBundleItem.price = new Decimal(targetBundleItem.price || 0).add(n.option.reduce(function (pre, cur) {
63
- return pre + new Decimal(cur.price || 0).mul(cur.num || 1).toNumber();
64
- }, 0)).toNumber();
65
- }
66
64
  if (targetBundleItem) {
67
- return _objectSpread(_objectSpread({}, n), {}, {
65
+ var normalizedBundle = _objectSpread(_objectSpread({}, n), {}, {
68
66
  price: targetBundleItem.price,
67
+ custom_price: targetBundleItem.price,
68
+ price_type: targetBundleItem.price_type,
69
+ price_type_ext: targetBundleItem.price_type_ext
70
+ });
71
+ var bundleSellingPrice = getBundleSellingMagnitude(normalizedBundle).toFixed(2);
72
+ return _objectSpread(_objectSpread({}, n), {}, {
73
+ custom_price: targetBundleItem.price,
74
+ price: targetBundleItem.price_type === 'markdown' ? bundleSellingPrice : targetBundleItem.price,
75
+ bundle_selling_price: bundleSellingPrice,
69
76
  base_price: targetBundleItem.base_price
70
77
  });
71
78
  }
@@ -75,8 +82,8 @@ function _updateAllCartItemPrice() {
75
82
  // 如果有返回variant,则把对应variant的数据也补充进去
76
83
  if (targetProduct !== null && targetProduct !== void 0 && targetProduct.variant) {
77
84
  productInfo.variant = (_productInfo$variant = productInfo.variant) === null || _productInfo$variant === void 0 ? void 0 : _productInfo$variant.map(function (n) {
78
- var _targetProduct$varian;
79
- var targetVariant = (_targetProduct$varian = targetProduct.variant) === null || _targetProduct$varian === void 0 ? void 0 : _targetProduct$varian.find(function (m) {
85
+ var _targetProduct$varian2;
86
+ var targetVariant = (_targetProduct$varian2 = targetProduct.variant) === null || _targetProduct$varian2 === void 0 ? void 0 : _targetProduct$varian2.find(function (m) {
80
87
  return m.id === n.id;
81
88
  });
82
89
  if (targetVariant) {
@@ -99,7 +106,7 @@ function _updateAllCartItemPrice() {
99
106
  bundle: bundle,
100
107
  options: item._optionsOrigin
101
108
  });
102
- case 15:
109
+ case 17:
103
110
  case "end":
104
111
  return _context.stop();
105
112
  }
@@ -7,11 +7,25 @@ export declare class CustomerModule extends BaseModule implements Module, Custom
7
7
  private store;
8
8
  private request;
9
9
  private cacheId;
10
+ /**
11
+ * 判断两份选中客户的核心展示字段是否一致,用于避免重复 clone / emit。
12
+ *
13
+ * @example
14
+ * this.isSameSelectedCustomer(currentCustomer, nextCustomer);
15
+ */
16
+ private isSameSelectedCustomer;
10
17
  private openCache;
11
18
  private fatherModule;
12
19
  private otherParams;
13
20
  constructor(name?: string, version?: string);
14
21
  initialize(core: PisellCore, options?: ModuleOptions): Promise<void>;
22
+ /**
23
+ * 更新父级解决方案透传的运行态参数,并刷新客户模块缓存配置。
24
+ *
25
+ * @example
26
+ * customerModule.updateOtherParams({ isFranchisee: true, cacheId: 'cache-2' });
27
+ */
28
+ updateOtherParams(params: Record<string, any>): void;
15
29
  /**
16
30
  * 获取客户列表数据(内部方法)
17
31
  * @param params 查询参数
@@ -24,6 +38,12 @@ export declare class CustomerModule extends BaseModule implements Module, Custom
24
38
  * @param operation 操作名称
25
39
  */
26
40
  private handleCustomerListError;
41
+ /**
42
+ * 查询客户列表但不写入 customerList / pagination 状态。
43
+ *
44
+ * 用于按 ID 补齐客户等内部查询,避免把临时的 num/searchParams 污染到滚动列表。
45
+ */
46
+ queryCustomerList(params?: ShopGetCustomerListParams): Promise<ICustomerListResponse>;
27
47
  /**
28
48
  * 获取客户列表
29
49
  * @param params 查询参数