@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,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
+ });