@pisell/pisellos 0.0.569 → 0.10.2

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 (328) 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/promotion/index.js +9 -0
  5. package/dist/model/strategy/adapter/walletPass/evaluator.js +7 -5
  6. package/dist/model/strategy/adapter/walletPass/example.js +26 -3
  7. package/dist/model/strategy/adapter/walletPass/index.js +5 -5
  8. package/dist/model/strategy/adapter/walletPass/type.d.ts +0 -3
  9. package/dist/model/strategy/adapter/walletPass/utils.d.ts +0 -26
  10. package/dist/model/strategy/adapter/walletPass/utils.js +17 -92
  11. package/dist/model/strategy/strategy-example.js +19 -5
  12. package/dist/modules/BaseModule.d.ts +1 -1
  13. package/dist/modules/BaseModule.js +8 -10
  14. package/dist/modules/Cart/index.js +3 -0
  15. package/dist/modules/Cart/utils/cartProduct.js +1 -0
  16. package/dist/modules/Cart/utils/cartResource.js +0 -2
  17. package/dist/modules/Cart/utils/changePrice.js +9 -16
  18. package/dist/modules/Date/index.js +5 -1
  19. package/dist/modules/Discount/index.d.ts +0 -1
  20. package/dist/modules/Discount/index.js +7 -22
  21. package/dist/modules/Discount/types.d.ts +0 -1
  22. package/dist/modules/OpenData/index.js +2 -0
  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 +49 -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.js +1909 -1572
  167. package/lib/modules/Order/types.js +35 -78
  168. package/lib/modules/Order/utils/bundleDiscountHydration.js +74 -41
  169. package/lib/modules/Order/utils/manualProductDiscount.js +123 -124
  170. package/lib/modules/Order/utils/orderCollectionIdentity.js +210 -148
  171. package/lib/modules/Order/utils.js +634 -799
  172. package/lib/modules/Payment/cash.js +33 -20
  173. package/lib/modules/Payment/cashRecommendationAlgorithm.js +76 -145
  174. package/lib/modules/Payment/eftpos.js +30 -16
  175. package/lib/modules/Payment/index.js +378 -518
  176. package/lib/modules/Payment/mx51.js +0 -1
  177. package/lib/modules/Payment/types.d.ts +4 -8
  178. package/lib/modules/Payment/types.js +107 -216
  179. package/lib/modules/Payment/utils.js +48 -51
  180. package/lib/modules/Payment/walletpass.d.ts +0 -2
  181. package/lib/modules/Payment/walletpass.js +211 -226
  182. package/lib/modules/Product/index.js +46 -51
  183. package/lib/modules/Product/types.js +16 -4
  184. package/lib/modules/Product/utils.js +33 -32
  185. package/lib/modules/ProductList/index.d.ts +1 -1
  186. package/lib/modules/ProductList/index.js +117 -117
  187. package/lib/modules/ProductList/types.d.ts +0 -1
  188. package/lib/modules/ProductList/types.js +31 -9
  189. package/lib/modules/Quotation/index.js +100 -66
  190. package/lib/modules/Quotation/types.js +16 -4
  191. package/lib/modules/Resource/index.js +59 -27
  192. package/lib/modules/Resource/types.js +32 -22
  193. package/lib/modules/Resource/utils.js +38 -30
  194. package/lib/modules/ResourcePlanner/index.js +61 -60
  195. package/lib/modules/ResourcePlanner/planner.js +384 -346
  196. package/lib/modules/ResourcePlanner/types.js +16 -4
  197. package/lib/modules/Rules/index.js +903 -1475
  198. package/lib/modules/Rules/types.js +40 -17
  199. package/lib/modules/SalesSummary/index.js +90 -85
  200. package/lib/modules/SalesSummary/types.js +16 -4
  201. package/lib/modules/SalesSummary/utils.js +427 -351
  202. package/lib/modules/ScanOrderLogger/index.js +79 -59
  203. package/lib/modules/ScanOrderLogger/providers/feishu.js +78 -54
  204. package/lib/modules/ScanOrderLogger/providers/grafana.js +36 -13
  205. package/lib/modules/ScanOrderLogger/types.js +16 -4
  206. package/lib/modules/Schedule/getDateIsInSchedule.js +163 -339
  207. package/lib/modules/Schedule/index.js +114 -100
  208. package/lib/modules/Schedule/type.js +16 -4
  209. package/lib/modules/Schedule/types.js +16 -4
  210. package/lib/modules/Schedule/utils.js +291 -433
  211. package/lib/modules/Step/index.js +52 -40
  212. package/lib/modules/Step/tyeps.js +16 -4
  213. package/lib/modules/Summary/index.js +71 -66
  214. package/lib/modules/Summary/types.js +16 -4
  215. package/lib/modules/Summary/utils.js +418 -791
  216. package/lib/modules/SurchargeList/index.js +60 -46
  217. package/lib/modules/SurchargeList/types.js +16 -4
  218. package/lib/modules/index.js +63 -245
  219. package/lib/plugins/app.js +16 -4
  220. package/lib/plugins/index.js +25 -36
  221. package/lib/plugins/request.js +126 -137
  222. package/lib/plugins/shopStore.js +16 -4
  223. package/lib/plugins/user.js +16 -4
  224. package/lib/plugins/window.js +179 -171
  225. package/lib/server/index.js +2337 -2675
  226. package/lib/server/modules/floor-plan/index.js +123 -102
  227. package/lib/server/modules/floor-plan/types.js +30 -15
  228. package/lib/server/modules/index.js +68 -106
  229. package/lib/server/modules/menu/index.js +122 -146
  230. package/lib/server/modules/menu/types.js +31 -18
  231. package/lib/server/modules/order/index.js +642 -567
  232. package/lib/server/modules/order/types.js +32 -117
  233. package/lib/server/modules/order/utils/filterBookings.js +194 -219
  234. package/lib/server/modules/order/utils/filterOrders.js +92 -118
  235. package/lib/server/modules/payment/index.js +83 -59
  236. package/lib/server/modules/payment/types.js +16 -4
  237. package/lib/server/modules/products/index.js +459 -575
  238. package/lib/server/modules/products/types.js +34 -44
  239. package/lib/server/modules/quotation/index.js +172 -137
  240. package/lib/server/modules/quotation/types.js +31 -21
  241. package/lib/server/modules/resource/index.js +184 -213
  242. package/lib/server/modules/resource/types.js +33 -42
  243. package/lib/server/modules/schedule/index.js +123 -135
  244. package/lib/server/modules/schedule/types.js +21 -14
  245. package/lib/server/modules/schedule/utils.js +163 -334
  246. package/lib/server/types.js +16 -4
  247. package/lib/server/utils/index.js +23 -25
  248. package/lib/server/utils/product.js +139 -196
  249. package/lib/server/utils/schedule.js +41 -34
  250. package/lib/server/utils/small-ticket.js +456 -478
  251. package/lib/server/utils/time.js +49 -40
  252. package/lib/solution/BaseSales/index.js +1016 -850
  253. package/lib/solution/BaseSales/types.js +37 -41
  254. package/lib/solution/BaseSales/utils/cartPromotion.js +460 -611
  255. package/lib/solution/BaseSales/utils/parseSalesResponse.js +105 -85
  256. package/lib/solution/BaseSales/utils/quotationPrice.js +114 -56
  257. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +143 -102
  258. package/lib/solution/BaseSales/utils.js +140 -155
  259. package/lib/solution/BookingByStep/index.d.ts +1 -1
  260. package/lib/solution/BookingByStep/index.js +1340 -1530
  261. package/lib/solution/BookingByStep/types.js +99 -40
  262. package/lib/solution/BookingByStep/utils/capacity.js +160 -192
  263. package/lib/solution/BookingByStep/utils/products.js +52 -42
  264. package/lib/solution/BookingByStep/utils/resources.js +330 -527
  265. package/lib/solution/BookingByStep/utils/stock.js +44 -65
  266. package/lib/solution/BookingByStep/utils/timeslots.js +131 -129
  267. package/lib/solution/BookingTicket/index.d.ts +1 -1
  268. package/lib/solution/BookingTicket/index.js +459 -543
  269. package/lib/solution/BookingTicket/types.js +77 -99
  270. package/lib/solution/BookingTicket/utils/addProductDecision.js +184 -219
  271. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +89 -58
  272. package/lib/solution/BookingTicket/utils/bookingStatus.js +78 -107
  273. package/lib/solution/BookingTicket/utils/cartView.js +94 -110
  274. package/lib/solution/BookingTicket/utils/exampleData.js +0 -185
  275. package/lib/solution/BookingTicket/utils/orderCustomer.js +41 -18
  276. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +86 -219
  277. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +93 -144
  278. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +91 -79
  279. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +41 -54
  280. package/lib/solution/BookingTicket/utils/scan/handleScan.js +81 -84
  281. package/lib/solution/BookingTicket/utils/scan/index.js +104 -98
  282. package/lib/solution/BookingTicket/utils/scan/scanCache.js +43 -90
  283. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +64 -52
  284. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +58 -56
  285. package/lib/solution/BuyTickets/index.js +70 -67
  286. package/lib/solution/BuyTickets/types.js +38 -22
  287. package/lib/solution/Checkout/index.js +1158 -1451
  288. package/lib/solution/Checkout/types.js +61 -91
  289. package/lib/solution/Checkout/utils/index.js +156 -228
  290. package/lib/solution/PlaceOrder/index.js +0 -55
  291. package/lib/solution/RegisterAndLogin/config.js +460 -493
  292. package/lib/solution/RegisterAndLogin/index.js +630 -633
  293. package/lib/solution/RegisterAndLogin/types.js +76 -189
  294. package/lib/solution/RegisterAndLogin/utils.js +125 -183
  295. package/lib/solution/Sales/index.js +320 -317
  296. package/lib/solution/Sales/types.js +33 -27
  297. package/lib/solution/ScanOrder/index.js +862 -831
  298. package/lib/solution/ScanOrder/types.js +34 -33
  299. package/lib/solution/ScanOrder/utils.js +371 -406
  300. package/lib/solution/ShopDiscount/index.js +233 -235
  301. package/lib/solution/ShopDiscount/types.d.ts +4 -5
  302. package/lib/solution/ShopDiscount/types.js +37 -15
  303. package/lib/solution/ShopDiscount/utils.d.ts +0 -9
  304. package/lib/solution/ShopDiscount/utils.js +172 -309
  305. package/lib/solution/UnifiedBookingSales/index.js +405 -379
  306. package/lib/solution/UnifiedBookingSales/types.js +31 -12
  307. package/lib/solution/VenueBooking/index.d.ts +3 -31
  308. package/lib/solution/VenueBooking/index.js +916 -967
  309. package/lib/solution/VenueBooking/types.d.ts +1 -3
  310. package/lib/solution/VenueBooking/types.js +39 -20
  311. package/lib/solution/VenueBooking/utils/dateSummary.d.ts +2 -2
  312. package/lib/solution/VenueBooking/utils/dateSummary.js +62 -25
  313. package/lib/solution/VenueBooking/utils/resource.js +54 -31
  314. package/lib/solution/VenueBooking/utils/slotMerge.js +107 -94
  315. package/lib/solution/VenueBooking/utils/timeSlot.d.ts +0 -2
  316. package/lib/solution/VenueBooking/utils/timeSlot.js +133 -138
  317. package/lib/solution/VenueBooking/utils.js +67 -130
  318. package/lib/solution/index.js +41 -124
  319. package/lib/store/createStore.js +29 -32
  320. package/lib/types/index.d.ts +1 -1
  321. package/lib/types/index.js +16 -4
  322. package/lib/utils/task.js +36 -36
  323. package/lib/utils/watch.js +47 -81
  324. package/package.json +2 -4
  325. package/dist/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
  326. package/dist/solution/VenueBooking/utils/smartPricing.js +0 -233
  327. package/lib/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
  328. package/lib/solution/VenueBooking/utils/smartPricing.js +0 -192
@@ -1,48 +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/BookingByStep/types.ts
20
+ var types_exports = {};
21
+ __export(types_exports, {
22
+ BookingByStepHooks: () => BookingByStepHooks,
23
+ createModule: () => createModule
5
24
  });
6
- exports.BookingByStepHooks = void 0;
7
- exports.createModule = createModule;
8
- var _modules = require("../../modules");
25
+ module.exports = __toCommonJS(types_exports);
26
+ var import_modules = require("../../modules");
9
27
  function createModule(moduleName, solutionName, name, version) {
10
28
  switch (moduleName) {
11
- case 'cart':
12
- return new _modules.CartModule(`${solutionName}_${name || moduleName}`, version);
13
- case 'summary':
14
- return new _modules.SummaryModule(`${solutionName}_${name || moduleName}`, version);
15
- case 'salesSummary':
16
- return new _modules.SalesSummaryModule(`${solutionName}_${name || moduleName}`, version);
17
- case 'step':
18
- return new _modules.StepModule(`${solutionName}_${name || moduleName}`, version);
19
- case 'products':
20
- return new _modules.ProductList(`${solutionName}_${name || moduleName}`, version);
21
- case 'date':
22
- return new _modules.DateModule(`${solutionName}_${name || moduleName}`, version);
23
- case 'accountList':
24
- return new _modules.AccountListModule(`${solutionName}_${name || moduleName}`, version);
25
- case 'order':
26
- return new _modules.OrderModule(`${solutionName}_${name || moduleName}`, version);
27
- case 'payment':
28
- return new _modules.PaymentModule(`${solutionName}_${name || moduleName}`, version);
29
- case 'schedule':
30
- return new _modules.ScheduleModule(`${solutionName}_${name || moduleName}`, version);
31
- case 'scanOrderLogger':
32
- return new _modules.ScanOrderLoggerModule(`${solutionName}_${name || moduleName}`, version);
33
- case 'holder':
34
- return new _modules.HolderModule(`${solutionName}_${name || moduleName}`, version);
29
+ case "cart":
30
+ return new import_modules.CartModule(
31
+ `${solutionName}_${name || moduleName}`,
32
+ version
33
+ );
34
+ case "summary":
35
+ return new import_modules.SummaryModule(
36
+ `${solutionName}_${name || moduleName}`,
37
+ version
38
+ );
39
+ case "salesSummary":
40
+ return new import_modules.SalesSummaryModule(
41
+ `${solutionName}_${name || moduleName}`,
42
+ version
43
+ );
44
+ case "step":
45
+ return new import_modules.StepModule(
46
+ `${solutionName}_${name || moduleName}`,
47
+ version
48
+ );
49
+ case "products":
50
+ return new import_modules.ProductList(
51
+ `${solutionName}_${name || moduleName}`,
52
+ version
53
+ );
54
+ case "date":
55
+ return new import_modules.DateModule(
56
+ `${solutionName}_${name || moduleName}`,
57
+ version
58
+ );
59
+ case "accountList":
60
+ return new import_modules.AccountListModule(
61
+ `${solutionName}_${name || moduleName}`,
62
+ version
63
+ );
64
+ case "order":
65
+ return new import_modules.OrderModule(
66
+ `${solutionName}_${name || moduleName}`,
67
+ version
68
+ );
69
+ case "payment":
70
+ return new import_modules.PaymentModule(
71
+ `${solutionName}_${name || moduleName}`,
72
+ version
73
+ );
74
+ case "schedule":
75
+ return new import_modules.ScheduleModule(
76
+ `${solutionName}_${name || moduleName}`,
77
+ version
78
+ );
79
+ case "scanOrderLogger":
80
+ return new import_modules.ScanOrderLoggerModule(
81
+ `${solutionName}_${name || moduleName}`,
82
+ version
83
+ );
84
+ case "holder":
85
+ return new import_modules.HolderModule(
86
+ `${solutionName}_${name || moduleName}`,
87
+ version
88
+ );
35
89
  default:
36
90
  throw new Error(`Unknown module type: ${moduleName}`);
37
91
  }
38
92
  }
39
- let BookingByStepHooks = exports.BookingByStepHooks = /*#__PURE__*/function (BookingByStepHooks) {
40
- BookingByStepHooks["onInited"] = "bookingByStep:onInited";
41
- BookingByStepHooks["onDestroy"] = "bookingByStep:onDestroy";
42
- BookingByStepHooks["onProductsLoaded"] = "bookingByStep:onProductsLoaded";
43
- BookingByStepHooks["onGuestsLoaded"] = "bookingByStep:onGuestsLoaded";
44
- BookingByStepHooks["onDateLoaded"] = "bookingByStep:onDateLoaded";
45
- BookingByStepHooks["onResourcesLoaded"] = "bookingByStep:onResourcesLoaded";
46
- BookingByStepHooks["onAccountLoaded"] = "bookingByStep:onAccountLoaded";
47
- return BookingByStepHooks;
48
- }({});
93
+ var BookingByStepHooks = /* @__PURE__ */ ((BookingByStepHooks2) => {
94
+ BookingByStepHooks2["onInited"] = "bookingByStep:onInited";
95
+ BookingByStepHooks2["onDestroy"] = "bookingByStep:onDestroy";
96
+ BookingByStepHooks2["onProductsLoaded"] = "bookingByStep:onProductsLoaded";
97
+ BookingByStepHooks2["onGuestsLoaded"] = "bookingByStep:onGuestsLoaded";
98
+ BookingByStepHooks2["onDateLoaded"] = "bookingByStep:onDateLoaded";
99
+ BookingByStepHooks2["onResourcesLoaded"] = "bookingByStep:onResourcesLoaded";
100
+ BookingByStepHooks2["onAccountLoaded"] = "bookingByStep:onAccountLoaded";
101
+ return BookingByStepHooks2;
102
+ })(BookingByStepHooks || {});
103
+ // Annotate the CommonJS export names for ESM import in node:
104
+ 0 && (module.exports = {
105
+ BookingByStepHooks,
106
+ createModule
107
+ });
@@ -1,57 +1,84 @@
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/BookingByStep/utils/capacity.ts
30
+ var capacity_exports = {};
31
+ __export(capacity_exports, {
32
+ calculateCartItemsCapacityUsageByResourceType: () => calculateCartItemsCapacityUsageByResourceType,
33
+ checkResourceCanUseByCapacity: () => checkResourceCanUseByCapacity,
34
+ checkSubResourcesCapacity: () => checkSubResourcesCapacity,
35
+ checkTimeSlotCapacity: () => checkTimeSlotCapacity,
36
+ formatDefaultCapacitys: () => formatDefaultCapacitys,
37
+ getCapacityInfoByCartItem: () => getCapacityInfoByCartItem,
38
+ getResourcesIdsByProduct: () => getResourcesIdsByProduct,
39
+ getSumCapacity: () => getSumCapacity
5
40
  });
6
- exports.calculateCartItemsCapacityUsageByResourceType = calculateCartItemsCapacityUsageByResourceType;
7
- exports.checkSubResourcesCapacity = exports.checkResourceCanUseByCapacity = void 0;
8
- exports.checkTimeSlotCapacity = checkTimeSlotCapacity;
9
- exports.formatDefaultCapacitys = void 0;
10
- exports.getCapacityInfoByCartItem = getCapacityInfoByCartItem;
11
- exports.getResourcesIdsByProduct = getResourcesIdsByProduct;
12
- exports.getSumCapacity = void 0;
13
- var _dayjs = _interopRequireDefault(require("dayjs"));
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
- /**
16
- * @title: 基于选择的商品格式化容量
17
- * @description:
18
- * @param {any} param1
19
- * @return {*}
20
- * @Author: zhiwei.Wang
21
- */
22
- const formatDefaultCapacitys = ({
41
+ module.exports = __toCommonJS(capacity_exports);
42
+ var import_dayjs = __toESM(require("dayjs"));
43
+ var formatDefaultCapacitys = ({
23
44
  capacity,
24
45
  product_bundle
25
46
  }) => {
26
- if (capacity?.type === 'package') {
27
- return (product_bundle || []).map(d => {
47
+ if ((capacity == null ? void 0 : capacity.type) === "package") {
48
+ return (product_bundle || []).map((d) => {
28
49
  const id = d.bundle_product_id;
29
50
  const variantId = d.bundle_variant_id;
30
- const item = (capacity?.package || []).find(item => item.product_id == id || item.product_id == variantId);
31
- if (!item && window?.sendWarningLog) {
51
+ const item = ((capacity == null ? void 0 : capacity.package) || []).find(
52
+ (item2) => item2.product_id == id || item2.product_id == variantId
53
+ );
54
+ if (!item && (window == null ? void 0 : window.sendWarningLog)) {
32
55
  window.sendWarningLog({
33
- title: '未找到套餐 capacity 配置',
34
- content: [{
35
- key: 'product_id',
36
- value: id
37
- }, {
38
- key: 'variant_id',
39
- value: variantId
40
- }, {
41
- key: 'package',
42
- value: JSON.stringify(capacity?.package || [])
43
- }]
56
+ title: "未找到套餐 capacity 配置",
57
+ content: [
58
+ {
59
+ key: "product_id",
60
+ value: id
61
+ },
62
+ {
63
+ key: "variant_id",
64
+ value: variantId
65
+ },
66
+ {
67
+ key: "package",
68
+ value: JSON.stringify((capacity == null ? void 0 : capacity.package) || [])
69
+ }
70
+ ]
44
71
  });
45
72
  }
46
73
  return {
47
- id: id,
74
+ id,
48
75
  value: item ? d.num || 0 : 0,
49
- name: item?.name || d?.title
76
+ name: (item == null ? void 0 : item.name) || (d == null ? void 0 : d.title)
50
77
  };
51
78
  });
52
79
  }
53
- if (capacity?.type === 'custom') {
54
- return (capacity?.custom || []).map(d => {
80
+ if ((capacity == null ? void 0 : capacity.type) === "custom") {
81
+ return ((capacity == null ? void 0 : capacity.custom) || []).map((d) => {
55
82
  return {
56
83
  id: d.id,
57
84
  value: d.min,
@@ -59,248 +86,178 @@ const formatDefaultCapacitys = ({
59
86
  };
60
87
  });
61
88
  }
62
-
63
- // 默认为1
64
- return [{
65
- id: 0,
66
- value: 1,
67
- name: ''
68
- }];
89
+ return [{ id: 0, value: 1, name: "" }];
69
90
  };
70
-
71
- /**
72
- * @title: 获取总容量
73
- * @description:
74
- * @param {object} capacity 为 formatDefaultCapacitys()的结果
75
- * @return {*}
76
- * @Author: zhiwei.Wang
77
- */
78
- exports.formatDefaultCapacitys = formatDefaultCapacitys;
79
- const getSumCapacity = ({
80
- capacity,
81
- num = 1
82
- }) => {
91
+ var getSumCapacity = ({ capacity, num = 1 }) => {
83
92
  let sum = 0;
84
93
  for (let item of capacity || []) {
85
94
  sum += item.value;
86
95
  }
87
96
  return sum * num;
88
97
  };
89
-
90
- /**
91
- * 给定购物车数据,返回对应的 capacity 信息和套餐 capacity
92
- *
93
- * @export
94
- * @param {CartItem} targetCartItem
95
- * @return {*}
96
- */
97
- exports.getSumCapacity = getSumCapacity;
98
98
  function getCapacityInfoByCartItem(targetCartItem) {
99
+ var _a;
99
100
  const formatCapacity = formatDefaultCapacitys({
100
- capacity: targetCartItem._productOrigin?.capacity,
101
+ capacity: (_a = targetCartItem._productOrigin) == null ? void 0 : _a.capacity,
101
102
  product_bundle: targetCartItem._origin.product.product_bundle
102
103
  });
103
- const currentCapacity = getSumCapacity({
104
- capacity: formatCapacity,
105
- num: targetCartItem?.num || 1
106
- });
104
+ const currentCapacity = getSumCapacity({ capacity: formatCapacity, num: (targetCartItem == null ? void 0 : targetCartItem.num) || 1 });
107
105
  return {
108
106
  formatCapacity,
109
107
  currentCapacity
110
108
  };
111
109
  }
112
-
113
- /**
114
- * @title: 传入资源,如果有子资源,会根据组合资源的 capacity 计算修改子资源的 capacity
115
- * @description:
116
- * @param {object} resource
117
- * @return {*}
118
- * @Author: jinglin.tan
119
- */
120
- const checkSubResourcesCapacity = resource => {
110
+ var checkSubResourcesCapacity = (resource) => {
121
111
  if (resource.children && resource.children.length) {
122
- let countCapacity = resource.capacity; // 100
112
+ let countCapacity = resource.capacity;
123
113
  resource.children.forEach((child, index) => {
124
114
  if (index === resource.children.length - 1) {
125
- // 如果是最后一个资源,直接拿剩余未分配完的容量去占用
126
- // 哪怕这个东西会超过资源本身的 capacity也得让他占,PRD 里有写
127
115
  child.capacity = countCapacity;
128
116
  return;
129
117
  }
130
118
  if (child.capacity <= countCapacity) {
131
- countCapacity -= child.capacity; // 100 - = 90
119
+ countCapacity -= child.capacity;
132
120
  } else {
133
- child.capacity = countCapacity; // 10
134
- countCapacity = 0; // 0
121
+ child.capacity = countCapacity;
122
+ countCapacity = 0;
135
123
  }
136
124
  });
137
125
  }
138
126
  };
139
-
140
- /**
141
- * 检查资源是否有足够的容量供额外使用
142
- * @param currentCapacity - 当前已使用的容量
143
- * @param requiredCapacity - 需要的额外容量
144
- * @param maxCapacity - 最大允许容量
145
- * @returns 如果资源可以容纳额外的容量则返回 true
146
- */
147
- exports.checkSubResourcesCapacity = checkSubResourcesCapacity;
148
- const checkResourceCanUseByCapacity = (currentCapacity, requiredCapacity, maxCapacity) => {
149
- // Handle edge cases early
127
+ var checkResourceCanUseByCapacity = (currentCapacity, requiredCapacity, maxCapacity) => {
150
128
  if (currentCapacity < 0 || requiredCapacity < 0 || maxCapacity <= 0) {
151
129
  return false;
152
130
  }
153
131
  return currentCapacity + requiredCapacity <= maxCapacity;
154
132
  };
155
-
156
- /**
157
- * 计算按资源类型分组的容量占用情况
158
- *
159
- * @param {CartItem[]} cartItems 购物车商品列表
160
- * @param {string} timeSlotStart 时间段开始时间
161
- * @param {string} timeSlotEnd 时间段结束时间
162
- * @param {ResourceItem[]} allProductResources 当前商品的所有资源列表
163
- * @return {Record<string, number>} 返回每种资源类型(form_id)的容量占用
164
- */
165
- exports.checkResourceCanUseByCapacity = checkResourceCanUseByCapacity;
166
133
  function calculateCartItemsCapacityUsageByResourceType({
167
134
  cartItems,
168
135
  timeSlotStart,
169
136
  timeSlotEnd,
170
137
  allProductResources
171
138
  }) {
172
- // 按 form_id 分组当前商品的资源
173
139
  const resourceTypeMap = {};
174
- allProductResources.forEach(resource => {
175
- const formId = resource.form_id?.toString() || 'default';
140
+ allProductResources.forEach((resource) => {
141
+ var _a;
142
+ const formId = ((_a = resource.form_id) == null ? void 0 : _a.toString()) || "default";
176
143
  if (!resourceTypeMap[formId]) {
177
144
  resourceTypeMap[formId] = [];
178
145
  }
179
146
  resourceTypeMap[formId].push(resource);
180
147
  });
181
-
182
- // 计算每种资源类型的容量占用
183
148
  const capacityUsageByType = {};
184
- Object.keys(resourceTypeMap).forEach(formId => {
149
+ Object.keys(resourceTypeMap).forEach((formId) => {
185
150
  let totalUsage = 0;
186
151
  const resourcesInThisType = resourceTypeMap[formId];
187
- const resourceIdsInThisType = resourcesInThisType.map(r => r.id);
188
- cartItems.forEach(cartItem => {
189
- // 检查该商品是否已经选定了时间
190
- if (!cartItem.start_time || !cartItem.end_time) return;
191
-
192
- // 构建该商品的时间段
152
+ const resourceIdsInThisType = resourcesInThisType.map((r) => r.id);
153
+ cartItems.forEach((cartItem) => {
154
+ if (!cartItem.start_time || !cartItem.end_time)
155
+ return;
193
156
  const itemStart = `${cartItem.start_date} ${cartItem.start_time}`;
194
157
  const itemEnd = `${cartItem.end_date || cartItem.start_date} ${cartItem.end_time}`;
195
-
196
- // 检查时间段是否有重叠
197
- const hasTimeOverlap = !((0, _dayjs.default)(itemEnd).isBefore((0, _dayjs.default)(timeSlotStart)) || (0, _dayjs.default)(itemStart).isAfter((0, _dayjs.default)(timeSlotEnd)));
198
- if (!hasTimeOverlap) return;
199
-
200
- // 检查该商品的资源配置中是否需要这种类型的资源
201
- // 由于购物车商品只选定了时间,没有选定具体资源,我们需要看商品的资源配置
158
+ const hasTimeOverlap = !((0, import_dayjs.default)(itemEnd).isBefore((0, import_dayjs.default)(timeSlotStart)) || (0, import_dayjs.default)(itemStart).isAfter((0, import_dayjs.default)(timeSlotEnd)));
159
+ if (!hasTimeOverlap)
160
+ return;
202
161
  const productResourceIds = getResourcesIdsByProduct(cartItem._productOrigin);
203
- const hasResourceTypeOverlap = productResourceIds.some(id => resourceIdsInThisType.includes(id));
204
- if (!hasResourceTypeOverlap) return;
205
-
206
- // 计算该商品的容量占用
207
- const {
208
- currentCapacity
209
- } = getCapacityInfoByCartItem(cartItem);
162
+ const hasResourceTypeOverlap = productResourceIds.some(
163
+ (id) => resourceIdsInThisType.includes(id)
164
+ );
165
+ if (!hasResourceTypeOverlap)
166
+ return;
167
+ const { currentCapacity } = getCapacityInfoByCartItem(cartItem);
210
168
  totalUsage += currentCapacity;
211
169
  });
212
170
  capacityUsageByType[formId] = totalUsage;
213
171
  });
214
172
  return capacityUsageByType;
215
173
  }
216
-
217
- /**
218
- * 获取商品的资源ID列表
219
- */
220
174
  function getResourcesIdsByProduct(product) {
175
+ var _a, _b, _c;
221
176
  const tempResourceIds = [];
222
- product?.product_resource?.resources?.forEach?.(resource => {
223
- if (resource?.status == 1) {
224
- if (resource?.default_resource?.length) {
225
- tempResourceIds.push(...resource?.default_resource);
226
- } else if (resource?.optional_resource?.length) {
227
- tempResourceIds.push(...resource?.optional_resource);
177
+ (_c = (_b = (_a = product == null ? void 0 : product.product_resource) == null ? void 0 : _a.resources) == null ? void 0 : _b.forEach) == null ? void 0 : _c.call(_b, (resource) => {
178
+ var _a2, _b2;
179
+ if ((resource == null ? void 0 : resource.status) == 1) {
180
+ if ((_a2 = resource == null ? void 0 : resource.default_resource) == null ? void 0 : _a2.length) {
181
+ tempResourceIds.push(...resource == null ? void 0 : resource.default_resource);
182
+ } else if ((_b2 = resource == null ? void 0 : resource.optional_resource) == null ? void 0 : _b2.length) {
183
+ tempResourceIds.push(...resource == null ? void 0 : resource.optional_resource);
228
184
  }
229
185
  }
230
186
  });
231
187
  return tempResourceIds;
232
188
  }
233
-
234
- /**
235
- * 检查特定时间段的容量是否足够
236
- */
237
189
  function checkTimeSlotCapacity(timeSlotStart, timeSlotEnd, cartItems, allResources) {
238
- // 按资源类型分组
190
+ var _a, _b;
239
191
  const resourceTypeMap = {};
240
- allResources.forEach(resource => {
241
- const formId = resource.form_id?.toString() || 'default';
192
+ allResources.forEach((resource) => {
193
+ var _a2;
194
+ const formId = ((_a2 = resource.form_id) == null ? void 0 : _a2.toString()) || "default";
242
195
  if (!resourceTypeMap[formId]) {
243
196
  resourceTypeMap[formId] = [];
244
197
  }
245
198
  resourceTypeMap[formId].push(resource);
246
199
  });
247
-
248
- // 计算每种资源类型需要的总容量
249
200
  const requiredCapacityByType = {};
250
- cartItems.forEach(cartItem => {
201
+ cartItems.forEach((cartItem) => {
251
202
  const productResourceIds = getResourcesIdsByProduct(cartItem._productOrigin);
252
- const {
253
- currentCapacity
254
- } = getCapacityInfoByCartItem(cartItem);
255
- Object.keys(resourceTypeMap).forEach(formId => {
203
+ const { currentCapacity } = getCapacityInfoByCartItem(cartItem);
204
+ Object.keys(resourceTypeMap).forEach((formId) => {
205
+ var _a2, _b2, _c, _d;
256
206
  const resourcesInType = resourceTypeMap[formId];
257
- const resourceIdsInType = resourcesInType.map(r => r.id);
258
- const selectType = cartItem._productOrigin?.product_resource?.resources?.find(r => r.id?.toString() === formId)?.type;
259
-
260
- // 检查该商品是否需要这种类型的资源
261
- const needsThisResourceType = productResourceIds.some(id => resourceIdsInType.includes(id));
207
+ const resourceIdsInType = resourcesInType.map((r) => r.id);
208
+ const selectType = (_d = (_c = (_b2 = (_a2 = cartItem._productOrigin) == null ? void 0 : _a2.product_resource) == null ? void 0 : _b2.resources) == null ? void 0 : _c.find((r) => {
209
+ var _a3;
210
+ return ((_a3 = r.id) == null ? void 0 : _a3.toString()) === formId;
211
+ })) == null ? void 0 : _d.type;
212
+ const needsThisResourceType = productResourceIds.some(
213
+ (id) => resourceIdsInType.includes(id)
214
+ );
262
215
  if (needsThisResourceType) {
263
- // 需要判断是单个预约还是多个预约,如果是单个预约,不用加 capacity,只用+1
264
- if (selectType === 'single') {
265
- requiredCapacityByType[formId] = (requiredCapacityByType[formId] || 0) + (cartItem?.num || 1);
216
+ if (selectType === "single") {
217
+ requiredCapacityByType[formId] = (requiredCapacityByType[formId] || 0) + ((cartItem == null ? void 0 : cartItem.num) || 1);
266
218
  } else {
267
219
  requiredCapacityByType[formId] = (requiredCapacityByType[formId] || 0) + currentCapacity;
268
220
  }
269
- // requiredCapacityByType[formId] = (requiredCapacityByType[formId] || 0) + currentCapacity;
270
221
  }
271
222
  });
272
223
  });
273
-
274
- // 检查每种资源类型是否有足够的容量
275
224
  for (const [formId, requiredCapacity] of Object.entries(requiredCapacityByType)) {
276
225
  const resourcesInType = resourceTypeMap[formId];
277
- if (resourcesInType.length === 0) continue;
278
-
279
- // 从购物车商品中获取正确的资源类型配置
226
+ if (resourcesInType.length === 0)
227
+ continue;
280
228
  let resourceTypeConfig = null;
281
229
  for (const cartItem of cartItems) {
282
- if (cartItem._productOrigin?.product_resource?.resources) {
283
- resourceTypeConfig = cartItem._productOrigin.product_resource.resources.find(r => r.id?.toString() === formId && r.status === 1);
284
- if (resourceTypeConfig) break;
230
+ if ((_b = (_a = cartItem._productOrigin) == null ? void 0 : _a.product_resource) == null ? void 0 : _b.resources) {
231
+ resourceTypeConfig = cartItem._productOrigin.product_resource.resources.find(
232
+ (r) => {
233
+ var _a2;
234
+ return ((_a2 = r.id) == null ? void 0 : _a2.toString()) === formId && r.status === 1;
235
+ }
236
+ );
237
+ if (resourceTypeConfig)
238
+ break;
285
239
  }
286
240
  }
287
-
288
- // 确定这种资源类型的预约类型
289
- const isMultipleBooking = resourceTypeConfig?.type === 'multiple';
241
+ const isMultipleBooking = (resourceTypeConfig == null ? void 0 : resourceTypeConfig.type) === "multiple";
242
+ console.log(`capacity.ts - 资源类型 ${formId} 配置:`, {
243
+ resourceTypeConfig,
244
+ type: resourceTypeConfig == null ? void 0 : resourceTypeConfig.type,
245
+ isMultipleBooking,
246
+ requiredCapacity
247
+ });
290
248
  if (isMultipleBooking) {
291
- // 多个预约:计算总可用容量
292
249
  let totalAvailableCapacity = 0;
293
- resourcesInType.forEach(resource => {
294
- // 过滤出在时间段内的资源时间片
295
- const availableTimes = resource.times.filter(time => {
296
- return !(0, _dayjs.default)(time.start_at).isAfter((0, _dayjs.default)(timeSlotStart), 'minute') && !(0, _dayjs.default)(time.end_at).isBefore((0, _dayjs.default)(timeSlotEnd), 'minute') || resource.onlyComputed && (0, _dayjs.default)(time.start_at).isBefore((0, _dayjs.default)(timeSlotEnd), 'minute') && (0, _dayjs.default)(time.end_at).isAfter((0, _dayjs.default)(timeSlotStart), 'minute');
250
+ resourcesInType.forEach((resource) => {
251
+ const availableTimes = resource.times.filter((time) => {
252
+ return !(0, import_dayjs.default)(time.start_at).isAfter((0, import_dayjs.default)(timeSlotStart), "minute") && !(0, import_dayjs.default)(time.end_at).isBefore((0, import_dayjs.default)(timeSlotEnd), "minute") || resource.onlyComputed && (0, import_dayjs.default)(time.start_at).isBefore((0, import_dayjs.default)(timeSlotEnd), "minute") && (0, import_dayjs.default)(time.end_at).isAfter((0, import_dayjs.default)(timeSlotStart), "minute");
297
253
  });
298
254
  if (availableTimes.length > 0) {
299
- // 简化逻辑:如果资源在时间段内有可用时间,就计算其容量
300
255
  totalAvailableCapacity += resource.capacity || 0;
301
256
  }
302
257
  });
258
+ console.log(`capacity.ts - 资源类型 ${formId} 多个预约检查: 总容量 ${totalAvailableCapacity}, 需求 ${requiredCapacity}`);
303
259
  if (totalAvailableCapacity < requiredCapacity) {
260
+ console.log(`资源类型 ${formId} 容量不足: 需要 ${requiredCapacity}, 可用 ${totalAvailableCapacity}`);
304
261
  return {
305
262
  success: false,
306
263
  required: requiredCapacity,
@@ -308,18 +265,18 @@ function checkTimeSlotCapacity(timeSlotStart, timeSlotEnd, cartItems, allResourc
308
265
  };
309
266
  }
310
267
  } else {
311
- // 单个预约:计算可用资源数量
312
268
  let availableResourceCount = 0;
313
- resourcesInType.forEach(resource => {
314
- // 过滤出在时间段内的资源时间片
315
- const availableTimes = resource.times.filter(time => {
316
- return !(0, _dayjs.default)(time.start_at).isAfter((0, _dayjs.default)(timeSlotStart), 'minute') && !(0, _dayjs.default)(time.end_at).isBefore((0, _dayjs.default)(timeSlotEnd), 'minute') || (0, _dayjs.default)(time.start_at).isBefore((0, _dayjs.default)(timeSlotEnd), 'minute') && (0, _dayjs.default)(time.end_at).isAfter((0, _dayjs.default)(timeSlotStart), 'minute');
269
+ resourcesInType.forEach((resource) => {
270
+ const availableTimes = resource.times.filter((time) => {
271
+ return !(0, import_dayjs.default)(time.start_at).isAfter((0, import_dayjs.default)(timeSlotStart), "minute") && !(0, import_dayjs.default)(time.end_at).isBefore((0, import_dayjs.default)(timeSlotEnd), "minute") || (0, import_dayjs.default)(time.start_at).isBefore((0, import_dayjs.default)(timeSlotEnd), "minute") && (0, import_dayjs.default)(time.end_at).isAfter((0, import_dayjs.default)(timeSlotStart), "minute");
317
272
  });
318
273
  if (availableTimes.length > 0) {
319
274
  availableResourceCount++;
320
275
  }
321
276
  });
277
+ console.log(`capacity.ts - 资源类型 ${formId} 单个预约检查: 可用资源数 ${availableResourceCount}, 需求 ${requiredCapacity}`);
322
278
  if (availableResourceCount < requiredCapacity) {
279
+ console.log(`资源类型 ${formId} 数量不足: 需要 ${requiredCapacity}, 可用 ${availableResourceCount}`);
323
280
  return {
324
281
  success: false,
325
282
  required: requiredCapacity,
@@ -333,4 +290,15 @@ function checkTimeSlotCapacity(timeSlotStart, timeSlotEnd, cartItems, allResourc
333
290
  required: 0,
334
291
  available: 0
335
292
  };
336
- }
293
+ }
294
+ // Annotate the CommonJS export names for ESM import in node:
295
+ 0 && (module.exports = {
296
+ calculateCartItemsCapacityUsageByResourceType,
297
+ checkResourceCanUseByCapacity,
298
+ checkSubResourcesCapacity,
299
+ checkTimeSlotCapacity,
300
+ formatDefaultCapacitys,
301
+ getCapacityInfoByCartItem,
302
+ getResourcesIdsByProduct,
303
+ getSumCapacity
304
+ });