@pisell/pisellos 0.0.569 → 0.10.1

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 (329) hide show
  1. package/dist/core/index.js +10 -6
  2. package/dist/index.d.ts +0 -1
  3. package/dist/index.js +0 -3
  4. package/dist/model/strategy/adapter/walletPass/evaluator.js +7 -5
  5. package/dist/model/strategy/adapter/walletPass/example.js +26 -3
  6. package/dist/model/strategy/adapter/walletPass/index.js +5 -5
  7. package/dist/model/strategy/adapter/walletPass/type.d.ts +0 -3
  8. package/dist/model/strategy/adapter/walletPass/utils.d.ts +0 -26
  9. package/dist/model/strategy/adapter/walletPass/utils.js +17 -92
  10. package/dist/model/strategy/strategy-example.js +19 -5
  11. package/dist/modules/BaseModule.d.ts +1 -1
  12. package/dist/modules/BaseModule.js +8 -10
  13. package/dist/modules/Cart/index.js +3 -0
  14. package/dist/modules/Cart/utils/cartProduct.js +1 -0
  15. package/dist/modules/Cart/utils/cartResource.js +0 -2
  16. package/dist/modules/Cart/utils/changePrice.js +9 -16
  17. package/dist/modules/Date/index.js +5 -1
  18. package/dist/modules/Discount/index.d.ts +0 -1
  19. package/dist/modules/Discount/index.js +7 -22
  20. package/dist/modules/Discount/types.d.ts +0 -1
  21. package/dist/modules/OpenData/index.js +2 -0
  22. package/dist/modules/Order/index.d.ts +1 -1
  23. package/dist/modules/Order/index.js +70 -40
  24. package/dist/modules/Payment/index.js +162 -97
  25. package/dist/modules/Payment/types.d.ts +4 -8
  26. package/dist/modules/Payment/walletpass.d.ts +0 -2
  27. package/dist/modules/Payment/walletpass.js +5 -4
  28. package/dist/modules/ProductList/index.d.ts +1 -1
  29. package/dist/modules/ProductList/index.js +3 -12
  30. package/dist/modules/ProductList/types.d.ts +0 -1
  31. package/dist/modules/Rules/index.js +126 -427
  32. package/dist/modules/SalesSummary/utils.js +1 -2
  33. package/dist/modules/Schedule/getDateIsInSchedule.js +0 -5
  34. package/dist/modules/Schedule/index.js +1 -0
  35. package/dist/modules/Schedule/utils.js +1 -0
  36. package/dist/modules/Step/index.js +1 -0
  37. package/dist/modules/Summary/utils.js +22 -43
  38. package/dist/plugins/request.js +4 -1
  39. package/dist/plugins/window.js +6 -2
  40. package/dist/server/index.js +129 -97
  41. package/dist/server/modules/menu/index.js +41 -32
  42. package/dist/server/modules/order/index.js +4 -2
  43. package/dist/server/modules/products/index.js +42 -24
  44. package/dist/server/modules/quotation/index.js +38 -29
  45. package/dist/server/modules/resource/index.js +4 -3
  46. package/dist/server/modules/schedule/index.js +35 -27
  47. package/dist/server/utils/product.js +1 -0
  48. package/dist/solution/BaseSales/index.js +41 -38
  49. package/dist/solution/BookingByStep/index.d.ts +1 -1
  50. package/dist/solution/BookingByStep/index.js +60 -11
  51. package/dist/solution/BookingByStep/utils/capacity.js +11 -1
  52. package/dist/solution/BookingByStep/utils/resources.js +3 -1
  53. package/dist/solution/BookingByStep/utils/timeslots.js +43 -2
  54. package/dist/solution/BookingTicket/index.d.ts +1 -1
  55. package/dist/solution/BookingTicket/index.js +2 -0
  56. package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +7 -6
  57. package/dist/solution/BookingTicket/utils/scan/handleScan.js +31 -25
  58. package/dist/solution/BookingTicket/utils/scan/index.js +10 -6
  59. package/dist/solution/BuyTickets/index.js +12 -9
  60. package/dist/solution/Checkout/index.js +252 -177
  61. package/dist/solution/Checkout/utils/index.js +16 -4
  62. package/dist/solution/RegisterAndLogin/index.js +76 -30
  63. package/dist/solution/ScanOrder/index.js +60 -50
  64. package/dist/solution/ShopDiscount/index.js +14 -15
  65. package/dist/solution/ShopDiscount/types.d.ts +4 -5
  66. package/dist/solution/ShopDiscount/utils.d.ts +0 -9
  67. package/dist/solution/ShopDiscount/utils.js +0 -9
  68. package/dist/solution/VenueBooking/index.d.ts +3 -31
  69. package/dist/solution/VenueBooking/index.js +496 -651
  70. package/dist/solution/VenueBooking/types.d.ts +1 -3
  71. package/dist/solution/VenueBooking/types.js +0 -1
  72. package/dist/solution/VenueBooking/utils/dateSummary.d.ts +2 -2
  73. package/dist/solution/VenueBooking/utils/dateSummary.js +25 -12
  74. package/dist/solution/VenueBooking/utils/timeSlot.d.ts +0 -2
  75. package/dist/solution/VenueBooking/utils/timeSlot.js +4 -9
  76. package/dist/types/index.d.ts +1 -1
  77. package/dist/utils/task.js +18 -15
  78. package/dist/utils/watch.js +1 -0
  79. package/lib/apis/picoding.js +0 -2
  80. package/lib/core/index.js +132 -130
  81. package/lib/effects/index.js +57 -46
  82. package/lib/index.d.ts +0 -1
  83. package/lib/index.js +50 -92
  84. package/lib/model/index.js +21 -14
  85. package/lib/model/strategy/adapter/dataVariant/adapter.js +50 -38
  86. package/lib/model/strategy/adapter/dataVariant/evaluator.js +236 -162
  87. package/lib/model/strategy/adapter/dataVariant/examples.js +237 -229
  88. package/lib/model/strategy/adapter/dataVariant/index.js +34 -39
  89. package/lib/model/strategy/adapter/dataVariant/type.js +28 -57
  90. package/lib/model/strategy/adapter/index.js +64 -100
  91. package/lib/model/strategy/adapter/itemRule/adapter.js +144 -156
  92. package/lib/model/strategy/adapter/itemRule/evaluator.js +48 -36
  93. package/lib/model/strategy/adapter/itemRule/examples.js +225 -295
  94. package/lib/model/strategy/adapter/itemRule/index.js +57 -83
  95. package/lib/model/strategy/adapter/itemRule/type.js +36 -97
  96. package/lib/model/strategy/adapter/promotion/adapter.js +63 -84
  97. package/lib/model/strategy/adapter/promotion/evaluator.js +231 -381
  98. package/lib/model/strategy/adapter/promotion/examples.js +159 -139
  99. package/lib/model/strategy/adapter/promotion/index.js +0 -1
  100. package/lib/model/strategy/adapter/promotion/type.js +35 -199
  101. package/lib/model/strategy/adapter/type.js +16 -4
  102. package/lib/model/strategy/adapter/walletPass/evaluator.js +152 -180
  103. package/lib/model/strategy/adapter/walletPass/example.js +190 -217
  104. package/lib/model/strategy/adapter/walletPass/index.js +51 -75
  105. package/lib/model/strategy/adapter/walletPass/locales.js +58 -36
  106. package/lib/model/strategy/adapter/walletPass/type.d.ts +0 -3
  107. package/lib/model/strategy/adapter/walletPass/type.js +16 -4
  108. package/lib/model/strategy/adapter/walletPass/utils.d.ts +0 -26
  109. package/lib/model/strategy/adapter/walletPass/utils.js +383 -678
  110. package/lib/model/strategy/engine.js +168 -270
  111. package/lib/model/strategy/index.js +34 -49
  112. package/lib/model/strategy/strategy-example.js +239 -243
  113. package/lib/model/strategy/type.js +40 -100
  114. package/lib/modules/Account/index.js +53 -39
  115. package/lib/modules/Account/types.js +33 -20
  116. package/lib/modules/AccountList/index.js +154 -116
  117. package/lib/modules/AccountList/types.js +31 -30
  118. package/lib/modules/AccountList/utils.js +30 -18
  119. package/lib/modules/BaseModule.d.ts +1 -1
  120. package/lib/modules/BaseModule.js +46 -25
  121. package/lib/modules/BookingContext/index.js +136 -158
  122. package/lib/modules/BookingContext/types.js +32 -46
  123. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +143 -131
  124. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +82 -75
  125. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +150 -170
  126. package/lib/modules/BookingContext/utils/flexible.js +55 -38
  127. package/lib/modules/BookingContext/utils/formatResourceList.js +34 -19
  128. package/lib/modules/BookingContext/utils/index.js +41 -124
  129. package/lib/modules/BookingContext/utils/noResource.js +70 -58
  130. package/lib/modules/BookingContext/utils/orderLineDisplay.js +41 -14
  131. package/lib/modules/BookingContext/utils/productExtend.js +155 -202
  132. package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
  133. package/lib/modules/BookingContext/utils/resourceSelection.js +41 -19
  134. package/lib/modules/BookingContext/utils/resources.js +167 -209
  135. package/lib/modules/BookingContext/utils/serviceTimes.js +116 -115
  136. package/lib/modules/BookingContext/utils/timeSlices.js +80 -70
  137. package/lib/modules/Cart/index.js +124 -170
  138. package/lib/modules/Cart/types.js +51 -46
  139. package/lib/modules/Cart/utils/cartAccount.js +39 -40
  140. package/lib/modules/Cart/utils/cartDate.js +61 -56
  141. package/lib/modules/Cart/utils/cartDiscount.js +33 -28
  142. package/lib/modules/Cart/utils/cartNote.js +32 -27
  143. package/lib/modules/Cart/utils/cartProduct.js +251 -321
  144. package/lib/modules/Cart/utils/cartRelationForms.js +35 -29
  145. package/lib/modules/Cart/utils/cartResource.js +78 -72
  146. package/lib/modules/Cart/utils/changePrice.js +50 -28
  147. package/lib/modules/Cart/utils/index.js +48 -106
  148. package/lib/modules/Customer/constants.js +34 -13
  149. package/lib/modules/Customer/index.js +169 -232
  150. package/lib/modules/Customer/types.js +35 -38
  151. package/lib/modules/Date/index.js +115 -116
  152. package/lib/modules/Date/types.js +28 -16
  153. package/lib/modules/Date/utils.js +123 -174
  154. package/lib/modules/Discount/index.d.ts +0 -1
  155. package/lib/modules/Discount/index.js +128 -130
  156. package/lib/modules/Discount/types.d.ts +0 -1
  157. package/lib/modules/Discount/types.js +31 -9
  158. package/lib/modules/Guests/index.js +56 -30
  159. package/lib/modules/Guests/types.js +33 -23
  160. package/lib/modules/Holder/index.js +189 -209
  161. package/lib/modules/Holder/types.js +16 -4
  162. package/lib/modules/Holder/utils.js +49 -20
  163. package/lib/modules/OpenData/index.js +76 -69
  164. package/lib/modules/OpenData/types.js +16 -4
  165. package/lib/modules/OpenData/utils.js +78 -44
  166. package/lib/modules/Order/index.d.ts +1 -1
  167. package/lib/modules/Order/index.js +1909 -1572
  168. package/lib/modules/Order/types.js +35 -78
  169. package/lib/modules/Order/utils/bundleDiscountHydration.js +74 -41
  170. package/lib/modules/Order/utils/manualProductDiscount.js +123 -124
  171. package/lib/modules/Order/utils/orderCollectionIdentity.js +210 -148
  172. package/lib/modules/Order/utils.js +634 -799
  173. package/lib/modules/Payment/cash.js +33 -20
  174. package/lib/modules/Payment/cashRecommendationAlgorithm.js +76 -145
  175. package/lib/modules/Payment/eftpos.js +30 -16
  176. package/lib/modules/Payment/index.js +378 -518
  177. package/lib/modules/Payment/mx51.js +0 -1
  178. package/lib/modules/Payment/types.d.ts +4 -8
  179. package/lib/modules/Payment/types.js +107 -216
  180. package/lib/modules/Payment/utils.js +48 -51
  181. package/lib/modules/Payment/walletpass.d.ts +0 -2
  182. package/lib/modules/Payment/walletpass.js +211 -226
  183. package/lib/modules/Product/index.js +46 -51
  184. package/lib/modules/Product/types.js +16 -4
  185. package/lib/modules/Product/utils.js +33 -32
  186. package/lib/modules/ProductList/index.d.ts +1 -1
  187. package/lib/modules/ProductList/index.js +117 -117
  188. package/lib/modules/ProductList/types.d.ts +0 -1
  189. package/lib/modules/ProductList/types.js +31 -9
  190. package/lib/modules/Quotation/index.js +100 -66
  191. package/lib/modules/Quotation/types.js +16 -4
  192. package/lib/modules/Resource/index.js +59 -27
  193. package/lib/modules/Resource/types.js +32 -22
  194. package/lib/modules/Resource/utils.js +38 -30
  195. package/lib/modules/ResourcePlanner/index.js +61 -60
  196. package/lib/modules/ResourcePlanner/planner.js +384 -346
  197. package/lib/modules/ResourcePlanner/types.js +16 -4
  198. package/lib/modules/Rules/index.js +903 -1475
  199. package/lib/modules/Rules/types.js +40 -17
  200. package/lib/modules/SalesSummary/index.js +90 -85
  201. package/lib/modules/SalesSummary/types.js +16 -4
  202. package/lib/modules/SalesSummary/utils.js +427 -351
  203. package/lib/modules/ScanOrderLogger/index.js +79 -59
  204. package/lib/modules/ScanOrderLogger/providers/feishu.js +78 -54
  205. package/lib/modules/ScanOrderLogger/providers/grafana.js +36 -13
  206. package/lib/modules/ScanOrderLogger/types.js +16 -4
  207. package/lib/modules/Schedule/getDateIsInSchedule.js +163 -339
  208. package/lib/modules/Schedule/index.js +114 -100
  209. package/lib/modules/Schedule/type.js +16 -4
  210. package/lib/modules/Schedule/types.js +16 -4
  211. package/lib/modules/Schedule/utils.js +291 -433
  212. package/lib/modules/Step/index.js +52 -40
  213. package/lib/modules/Step/tyeps.js +16 -4
  214. package/lib/modules/Summary/index.js +71 -66
  215. package/lib/modules/Summary/types.js +16 -4
  216. package/lib/modules/Summary/utils.js +418 -791
  217. package/lib/modules/SurchargeList/index.js +60 -46
  218. package/lib/modules/SurchargeList/types.js +16 -4
  219. package/lib/modules/index.js +63 -245
  220. package/lib/plugins/app.js +16 -4
  221. package/lib/plugins/index.js +25 -36
  222. package/lib/plugins/request.js +126 -137
  223. package/lib/plugins/shopStore.js +16 -4
  224. package/lib/plugins/user.js +16 -4
  225. package/lib/plugins/window.js +179 -171
  226. package/lib/server/index.js +2337 -2675
  227. package/lib/server/modules/floor-plan/index.js +123 -102
  228. package/lib/server/modules/floor-plan/types.js +30 -15
  229. package/lib/server/modules/index.js +68 -106
  230. package/lib/server/modules/menu/index.js +122 -146
  231. package/lib/server/modules/menu/types.js +31 -18
  232. package/lib/server/modules/order/index.js +642 -567
  233. package/lib/server/modules/order/types.js +32 -117
  234. package/lib/server/modules/order/utils/filterBookings.js +194 -219
  235. package/lib/server/modules/order/utils/filterOrders.js +92 -118
  236. package/lib/server/modules/payment/index.js +83 -59
  237. package/lib/server/modules/payment/types.js +16 -4
  238. package/lib/server/modules/products/index.js +459 -575
  239. package/lib/server/modules/products/types.js +34 -44
  240. package/lib/server/modules/quotation/index.js +172 -137
  241. package/lib/server/modules/quotation/types.js +31 -21
  242. package/lib/server/modules/resource/index.js +184 -213
  243. package/lib/server/modules/resource/types.js +33 -42
  244. package/lib/server/modules/schedule/index.js +123 -135
  245. package/lib/server/modules/schedule/types.js +21 -14
  246. package/lib/server/modules/schedule/utils.js +163 -334
  247. package/lib/server/types.js +16 -4
  248. package/lib/server/utils/index.js +23 -25
  249. package/lib/server/utils/product.js +139 -196
  250. package/lib/server/utils/schedule.js +41 -34
  251. package/lib/server/utils/small-ticket.js +456 -478
  252. package/lib/server/utils/time.js +49 -40
  253. package/lib/solution/BaseSales/index.js +1016 -850
  254. package/lib/solution/BaseSales/types.js +37 -41
  255. package/lib/solution/BaseSales/utils/cartPromotion.js +460 -611
  256. package/lib/solution/BaseSales/utils/parseSalesResponse.js +105 -85
  257. package/lib/solution/BaseSales/utils/quotationPrice.js +114 -56
  258. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +143 -102
  259. package/lib/solution/BaseSales/utils.js +140 -155
  260. package/lib/solution/BookingByStep/index.d.ts +1 -1
  261. package/lib/solution/BookingByStep/index.js +1340 -1530
  262. package/lib/solution/BookingByStep/types.js +99 -40
  263. package/lib/solution/BookingByStep/utils/capacity.js +160 -192
  264. package/lib/solution/BookingByStep/utils/products.js +52 -42
  265. package/lib/solution/BookingByStep/utils/resources.js +330 -527
  266. package/lib/solution/BookingByStep/utils/stock.js +44 -65
  267. package/lib/solution/BookingByStep/utils/timeslots.js +131 -129
  268. package/lib/solution/BookingTicket/index.d.ts +1 -1
  269. package/lib/solution/BookingTicket/index.js +459 -543
  270. package/lib/solution/BookingTicket/types.js +77 -99
  271. package/lib/solution/BookingTicket/utils/addProductDecision.js +184 -219
  272. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +89 -58
  273. package/lib/solution/BookingTicket/utils/bookingStatus.js +78 -107
  274. package/lib/solution/BookingTicket/utils/cartView.js +94 -110
  275. package/lib/solution/BookingTicket/utils/exampleData.js +0 -185
  276. package/lib/solution/BookingTicket/utils/orderCustomer.js +41 -18
  277. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +86 -219
  278. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +93 -144
  279. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +91 -79
  280. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +41 -54
  281. package/lib/solution/BookingTicket/utils/scan/handleScan.js +81 -84
  282. package/lib/solution/BookingTicket/utils/scan/index.js +104 -98
  283. package/lib/solution/BookingTicket/utils/scan/scanCache.js +43 -90
  284. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +64 -52
  285. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +58 -56
  286. package/lib/solution/BuyTickets/index.js +70 -67
  287. package/lib/solution/BuyTickets/types.js +38 -22
  288. package/lib/solution/Checkout/index.js +1158 -1451
  289. package/lib/solution/Checkout/types.js +61 -91
  290. package/lib/solution/Checkout/utils/index.js +156 -228
  291. package/lib/solution/PlaceOrder/index.js +0 -55
  292. package/lib/solution/RegisterAndLogin/config.js +460 -493
  293. package/lib/solution/RegisterAndLogin/index.js +630 -633
  294. package/lib/solution/RegisterAndLogin/types.js +76 -189
  295. package/lib/solution/RegisterAndLogin/utils.js +125 -183
  296. package/lib/solution/Sales/index.js +320 -317
  297. package/lib/solution/Sales/types.js +33 -27
  298. package/lib/solution/ScanOrder/index.js +862 -831
  299. package/lib/solution/ScanOrder/types.js +34 -33
  300. package/lib/solution/ScanOrder/utils.js +371 -406
  301. package/lib/solution/ShopDiscount/index.js +233 -235
  302. package/lib/solution/ShopDiscount/types.d.ts +4 -5
  303. package/lib/solution/ShopDiscount/types.js +37 -15
  304. package/lib/solution/ShopDiscount/utils.d.ts +0 -9
  305. package/lib/solution/ShopDiscount/utils.js +172 -309
  306. package/lib/solution/UnifiedBookingSales/index.js +405 -379
  307. package/lib/solution/UnifiedBookingSales/types.js +31 -12
  308. package/lib/solution/VenueBooking/index.d.ts +3 -31
  309. package/lib/solution/VenueBooking/index.js +916 -967
  310. package/lib/solution/VenueBooking/types.d.ts +1 -3
  311. package/lib/solution/VenueBooking/types.js +39 -20
  312. package/lib/solution/VenueBooking/utils/dateSummary.d.ts +2 -2
  313. package/lib/solution/VenueBooking/utils/dateSummary.js +62 -25
  314. package/lib/solution/VenueBooking/utils/resource.js +54 -31
  315. package/lib/solution/VenueBooking/utils/slotMerge.js +107 -94
  316. package/lib/solution/VenueBooking/utils/timeSlot.d.ts +0 -2
  317. package/lib/solution/VenueBooking/utils/timeSlot.js +133 -138
  318. package/lib/solution/VenueBooking/utils.js +67 -130
  319. package/lib/solution/index.js +41 -124
  320. package/lib/store/createStore.js +29 -32
  321. package/lib/types/index.d.ts +1 -1
  322. package/lib/types/index.js +16 -4
  323. package/lib/utils/task.js +36 -36
  324. package/lib/utils/watch.js +47 -81
  325. package/package.json +2 -4
  326. package/dist/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
  327. package/dist/solution/VenueBooking/utils/smartPricing.js +0 -233
  328. package/lib/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
  329. package/lib/solution/VenueBooking/utils/smartPricing.js +0 -192
@@ -1,30 +1,53 @@
1
- "use strict";
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
2
28
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
29
+ // src/solution/BookingTicket/utils/addTimeAvailability.ts
30
+ var addTimeAvailability_exports = {};
31
+ __export(addTimeAvailability_exports, {
32
+ buildAddTimeCurrentItem: () => buildAddTimeCurrentItem,
33
+ isUsableAddTimeProduct: () => isUsableAddTimeProduct,
34
+ resolveBookingCanAddTime: () => resolveBookingCanAddTime
5
35
  });
6
- exports.buildAddTimeCurrentItem = buildAddTimeCurrentItem;
7
- exports.isUsableAddTimeProduct = isUsableAddTimeProduct;
8
- exports.resolveBookingCanAddTime = resolveBookingCanAddTime;
9
- var _dayjs = _interopRequireDefault(require("dayjs"));
10
- var _lodashEs = require("lodash-es");
11
- var _serviceTimes = require("../../../modules/BookingContext/utils/serviceTimes");
12
- var _timeSlices = require("../../../modules/BookingContext/utils/timeSlices");
13
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
- /**
15
- * 从 booking 与其关联商品行构建旧 `isUsableProduct` 所需的当前商品快照。
16
- *
17
- * @example
18
- * const currentItem = buildAddTimeCurrentItem({ booking, product, productsByUid });
19
- */
36
+ module.exports = __toCommonJS(addTimeAvailability_exports);
37
+ var import_dayjs = __toESM(require("dayjs"));
38
+ var import_lodash_es = require("lodash-es");
39
+ var import_serviceTimes = require("../../../modules/BookingContext/utils/serviceTimes");
40
+ var import_timeSlices = require("../../../modules/BookingContext/utils/timeSlices");
20
41
  function buildAddTimeCurrentItem({
21
42
  booking,
22
43
  product,
23
44
  productsByUid
24
45
  }) {
25
- if (!booking || !product) return null;
26
- const uid = product.metadata?.unique_identification_number;
27
- const origin = uid ? productsByUid?.[String(uid)]?.origin : undefined;
46
+ var _a, _b, _c;
47
+ if (!booking || !product)
48
+ return null;
49
+ const uid = (_a = product.metadata) == null ? void 0 : _a.unique_identification_number;
50
+ const origin = uid ? (_b = productsByUid == null ? void 0 : productsByUid[String(uid)]) == null ? void 0 : _b.origin : void 0;
28
51
  const sourceProduct = origin || booking.product || {};
29
52
  const startAt = booking.start_date && booking.start_time ? `${booking.start_date} ${booking.start_time}` : booking.start_date;
30
53
  const endAt = booking.end_date && booking.end_time ? `${booking.end_date} ${booking.end_time}` : booking.end_date;
@@ -33,12 +56,12 @@ function buildAddTimeCurrentItem({
33
56
  ...booking.product,
34
57
  product_id: product.product_id ?? sourceProduct.product_id ?? sourceProduct.id,
35
58
  id: sourceProduct.id ?? product.product_id,
36
- collection: sourceProduct.collection || booking.product?.collection || [],
59
+ collection: sourceProduct.collection || ((_c = booking.product) == null ? void 0 : _c.collection) || [],
37
60
  duration: sourceProduct.duration || booking.duration,
38
61
  _extend: {
39
- ...(sourceProduct._extend || {}),
40
- startDate: startAt ? (0, _dayjs.default)(startAt) : undefined,
41
- endDate: endAt ? (0, _dayjs.default)(endAt) : undefined,
62
+ ...sourceProduct._extend || {},
63
+ startDate: startAt ? (0, import_dayjs.default)(startAt) : void 0,
64
+ endDate: endAt ? (0, import_dayjs.default)(endAt) : void 0,
42
65
  start_date: booking.start_date,
43
66
  end_date: booking.end_date,
44
67
  start_time: booking.start_time,
@@ -47,48 +70,56 @@ function buildAddTimeCurrentItem({
47
70
  }
48
71
  };
49
72
  }
50
-
51
- /**
52
- * 判断当前 booking 是否允许打开加时入口,保持与旧 ticketBooking 的商品适用规则一致。
53
- *
54
- * @example
55
- * const canAddTime = resolveBookingCanAddTime({ booking, product, addTimeProducts, bookingConfig });
56
- */
57
73
  function resolveBookingCanAddTime(params) {
58
- const quickTime = params.bookingConfig?.config?.information_tab?.appointment_card?.quick_time;
59
- if (quickTime !== undefined && quickTime !== 1) return false;
74
+ var _a, _b, _c, _d;
75
+ const quickTime = (_d = (_c = (_b = (_a = params.bookingConfig) == null ? void 0 : _a.config) == null ? void 0 : _b.information_tab) == null ? void 0 : _c.appointment_card) == null ? void 0 : _d.quick_time;
76
+ if (quickTime !== void 0 && quickTime !== 1)
77
+ return false;
60
78
  const currentItem = buildAddTimeCurrentItem(params);
61
- if (!currentItem || (0, _serviceTimes.isMultiDayProduct)(currentItem)) return false;
62
- return (params.addTimeProducts || []).some(item => isUsableAddTimeProduct(item?.add_time, currentItem, params.shopOpeningHours));
79
+ if (!currentItem || (0, import_serviceTimes.isMultiDayProduct)(currentItem))
80
+ return false;
81
+ return (params.addTimeProducts || []).some(
82
+ (item) => isUsableAddTimeProduct(item == null ? void 0 : item.add_time, currentItem, params.shopOpeningHours)
83
+ );
63
84
  }
64
-
65
- /**
66
- * 判断一个加时商品是否适用于当前预约商品。
67
- *
68
- * @example
69
- * const usable = isUsableAddTimeProduct(addTime.add_time, currentItem, '23:59');
70
- */
71
85
  function isUsableAddTimeProduct(addTime, currentItem, shopOpeningHours) {
72
- if (!addTime || !currentItem) return false;
73
- if (addTime.additional_time_options === 'unlimited') {
74
- const startDate = (0, _dayjs.default)(currentItem._extend?.startDate);
75
- const endDate = (0, _dayjs.default)(currentItem._extend?.endDate);
76
- if (!startDate.isValid() || !endDate.isValid()) return false;
77
- const maxEndDate = (0, _timeSlices.getEndDate)(startDate, 'flexible', '', shopOpeningHours);
78
- if (endDate.isAfter(maxEndDate)) return false;
86
+ var _a, _b;
87
+ if (!addTime || !currentItem)
88
+ return false;
89
+ if (addTime.additional_time_options === "unlimited") {
90
+ const startDate = (0, import_dayjs.default)((_a = currentItem._extend) == null ? void 0 : _a.startDate);
91
+ const endDate = (0, import_dayjs.default)((_b = currentItem._extend) == null ? void 0 : _b.endDate);
92
+ if (!startDate.isValid() || !endDate.isValid())
93
+ return false;
94
+ const maxEndDate = (0, import_timeSlices.getEndDate)(startDate, "flexible", "", shopOpeningHours);
95
+ if (endDate.isAfter(maxEndDate))
96
+ return false;
79
97
  }
80
98
  const relationProduct = addTime.relation_product || {};
81
99
  const type = relationProduct.type;
82
100
  const products = Array.isArray(relationProduct.products) ? relationProduct.products : [];
83
- if (type === 'product_all') return true;
84
- if (type === 'product_collection') {
85
- return Boolean((0, _lodashEs.intersectionBy)(products.map(item => ({
86
- ...item,
87
- id: item.product_collection_id
88
- })), currentItem.collection || [], 'id').length);
101
+ if (type === "product_all")
102
+ return true;
103
+ if (type === "product_collection") {
104
+ return Boolean(
105
+ (0, import_lodash_es.intersectionBy)(
106
+ products.map((item) => ({
107
+ ...item,
108
+ id: item.product_collection_id
109
+ })),
110
+ currentItem.collection || [],
111
+ "id"
112
+ ).length
113
+ );
89
114
  }
90
- if (type === 'products') {
91
- return products.some(item => item.product_id == currentItem.product_id);
115
+ if (type === "products") {
116
+ return products.some((item) => item.product_id == currentItem.product_id);
92
117
  }
93
118
  return false;
94
- }
119
+ }
120
+ // Annotate the CommonJS export names for ESM import in node:
121
+ 0 && (module.exports = {
122
+ buildAddTimeCurrentItem,
123
+ isUsableAddTimeProduct,
124
+ resolveBookingCanAddTime
125
+ });
@@ -1,136 +1,107 @@
1
- "use strict";
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);
2
18
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
19
+ // src/solution/BookingTicket/utils/bookingStatus.ts
20
+ var bookingStatus_exports = {};
21
+ __export(bookingStatus_exports, {
22
+ applyBookingsStatus: () => applyBookingsStatus,
23
+ applyChildBookingStatus: () => applyChildBookingStatus,
24
+ resolveScheduleId: () => resolveScheduleId,
25
+ resolveStatusAfterTransition: () => resolveStatusAfterTransition,
26
+ restoreBookingsStatus: () => restoreBookingsStatus,
27
+ restoreChildBookingStatus: () => restoreChildBookingStatus
5
28
  });
6
- exports.applyBookingsStatus = applyBookingsStatus;
7
- exports.applyChildBookingStatus = applyChildBookingStatus;
8
- exports.resolveScheduleId = resolveScheduleId;
9
- exports.resolveStatusAfterTransition = resolveStatusAfterTransition;
10
- exports.restoreBookingsStatus = restoreBookingsStatus;
11
- exports.restoreChildBookingStatus = restoreChildBookingStatus;
12
- /**
13
- * BookingTicket - 预约状态相关纯函数。
14
- *
15
- * 该文件不持有任何运行时引用(无 request / store / effects),
16
- * 只做字段解析与本地数组的原地写入/回滚,便于独立单测与未来其他
17
- * booking 写操作(editBooking / cancelBooking 等)复用。
18
- *
19
- * 设计依据:参考 .cursor/rules/data-field-semantics.mdc,
20
- * 字段含义严格对齐既有协议(OrderTempOrder / parseSalesResponse),
21
- * 不发明等价关系。
22
- */
23
-
24
- /**
25
- * 子预约状态机转移动作(POST /schedule/booking-transition/{schedule_event_id})。
26
- *
27
- * @example
28
- * await bookingTicket.transitionChildBooking({
29
- * schedule_event_id: 301,
30
- * action: 'confirm',
31
- * });
32
- */
33
-
34
- /** 子预约状态转移入参 */
35
-
36
- /**
37
- * 从 tempOrder 解析用于调用 appointment-status 接口的 schedule id。
38
- *
39
- * 优先级:
40
- * 1. `tempOrder.metadata.appointment_booking_parent_schedule_id`
41
- * 2. `tempOrder.bookings` 中 `parent_id === 0` 的 `schedule_event_id`
42
- *
43
- * 都缺失时返回 null,由调用方决定如何抛错。
44
- */
29
+ module.exports = __toCommonJS(bookingStatus_exports);
45
30
  function resolveScheduleId(tempOrder) {
46
- if (!tempOrder) return null;
47
- const metaScheduleId = tempOrder.metadata?.appointment_booking_parent_schedule_id;
48
- if (metaScheduleId !== undefined && metaScheduleId !== null) {
31
+ var _a;
32
+ if (!tempOrder)
33
+ return null;
34
+ const metaScheduleId = (_a = tempOrder.metadata) == null ? void 0 : _a.appointment_booking_parent_schedule_id;
35
+ if (metaScheduleId !== void 0 && metaScheduleId !== null) {
49
36
  return metaScheduleId;
50
37
  }
51
38
  const bookings = Array.isArray(tempOrder.bookings) ? tempOrder.bookings : [];
52
- const rootBooking = bookings.find(b => b?.parent_id === 0);
53
- const fallback = rootBooking?.schedule_event_id;
54
- return fallback !== undefined && fallback !== null ? fallback : null;
39
+ const rootBooking = bookings.find((b) => (b == null ? void 0 : b.parent_id) === 0);
40
+ const fallback = rootBooking == null ? void 0 : rootBooking.schedule_event_id;
41
+ return fallback !== void 0 && fallback !== null ? fallback : null;
55
42
  }
56
-
57
- /**
58
- * 原地把所有 bookings 的 `appointment_status` 覆盖为新值,
59
- * 返回原 status 数组用于回滚(顺序与 bookings 一一对应)。
60
- *
61
- * - 元素为 null/undefined 时跳过写入(但占位仍保留以保证回滚下标对齐)
62
- * - 不会克隆 booking 对象,保持与 OrderModule.tempOrder 引用一致
63
- */
64
43
  function applyBookingsStatus(bookings, status) {
65
- if (!Array.isArray(bookings)) return [];
66
- const previous = bookings.map(b => b?.appointment_status);
67
- bookings.forEach(b => {
68
- if (b) b.appointment_status = status;
44
+ if (!Array.isArray(bookings))
45
+ return [];
46
+ const previous = bookings.map((b) => b == null ? void 0 : b.appointment_status);
47
+ bookings.forEach((b) => {
48
+ if (b)
49
+ b.appointment_status = status;
69
50
  });
70
51
  return previous;
71
52
  }
72
-
73
- /**
74
- * 把 applyBookingsStatus 的返回值原地写回,撤销乐观更新。
75
- * 长度不一致时按较短一方对齐(防御式编程,正常路径不会发生)。
76
- */
77
53
  function restoreBookingsStatus(bookings, previous) {
78
- if (!Array.isArray(bookings)) return;
54
+ if (!Array.isArray(bookings))
55
+ return;
79
56
  const len = Math.min(bookings.length, previous.length);
80
57
  for (let i = 0; i < len; i += 1) {
81
58
  const b = bookings[i];
82
- if (b) b.appointment_status = previous[i];
59
+ if (b)
60
+ b.appointment_status = previous[i];
83
61
  }
84
62
  }
85
-
86
- /**
87
- * 将状态机 action 解析为转移后的 `appointment_status`。
88
- *
89
- * `reschedule` 暂未在状态矩阵启用,返回 null 表示跳过乐观更新。
90
- *
91
- * @example
92
- * resolveStatusAfterTransition('confirm'); // 'confirmed'
93
- */
94
63
  function resolveStatusAfterTransition(action) {
95
64
  const map = {
96
- confirm: 'confirmed',
97
- reject: 'rejected',
98
- arrive: 'arrived',
99
- start: 'started',
100
- complete: 'completed',
101
- cancel: 'cancelled',
102
- no_show: 'no_show',
65
+ confirm: "confirmed",
66
+ reject: "rejected",
67
+ arrive: "arrived",
68
+ start: "started",
69
+ complete: "completed",
70
+ cancel: "cancelled",
71
+ no_show: "no_show",
103
72
  reschedule: null
104
73
  };
105
74
  return map[action] ?? null;
106
75
  }
107
-
108
- /**
109
- * 在 bookings 中按 `schedule_event_id` 定位子预约并乐观写入 `appointment_status`。
110
- *
111
- * @returns 写入前的 status;未命中时返回 undefined(调用方跳过回滚)
112
- *
113
- * @example
114
- * const prev = applyChildBookingStatus(tempOrder.bookings, 301, 'confirmed');
115
- */
116
76
  function applyChildBookingStatus(bookings, scheduleEventId, status) {
117
- if (!Array.isArray(bookings)) return undefined;
118
- const idx = bookings.findIndex(b => b && String(b.schedule_event_id) === String(scheduleEventId));
119
- if (idx === -1) return undefined;
120
- const previous = bookings[idx]?.appointment_status;
77
+ var _a;
78
+ if (!Array.isArray(bookings))
79
+ return void 0;
80
+ const idx = bookings.findIndex(
81
+ (b) => b && String(b.schedule_event_id) === String(scheduleEventId)
82
+ );
83
+ if (idx === -1)
84
+ return void 0;
85
+ const previous = (_a = bookings[idx]) == null ? void 0 : _a.appointment_status;
121
86
  bookings[idx].appointment_status = status;
122
87
  return previous;
123
88
  }
124
-
125
- /**
126
- * 撤销 applyChildBookingStatus 对单条子预约的乐观写入。
127
- *
128
- * @example
129
- * restoreChildBookingStatus(tempOrder.bookings, 301, prev);
130
- */
131
89
  function restoreChildBookingStatus(bookings, scheduleEventId, previous) {
132
- if (!Array.isArray(bookings) || previous === undefined) return;
133
- const idx = bookings.findIndex(b => b && String(b.schedule_event_id) === String(scheduleEventId));
134
- if (idx === -1) return;
90
+ if (!Array.isArray(bookings) || previous === void 0)
91
+ return;
92
+ const idx = bookings.findIndex(
93
+ (b) => b && String(b.schedule_event_id) === String(scheduleEventId)
94
+ );
95
+ if (idx === -1)
96
+ return;
135
97
  bookings[idx].appointment_status = previous;
136
- }
98
+ }
99
+ // Annotate the CommonJS export names for ESM import in node:
100
+ 0 && (module.exports = {
101
+ applyBookingsStatus,
102
+ applyChildBookingStatus,
103
+ resolveScheduleId,
104
+ resolveStatusAfterTransition,
105
+ restoreBookingsStatus,
106
+ restoreChildBookingStatus
107
+ });