@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,153 +1,151 @@
1
- "use strict";
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
2
28
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
29
+ // src/solution/BookingTicket/utils/addProductDecision.ts
30
+ var addProductDecision_exports = {};
31
+ __export(addProductDecision_exports, {
32
+ buildCacheItemFromCartDetail: () => buildCacheItemFromCartDetail,
33
+ buildCacheItemFromDetail: () => buildCacheItemFromDetail,
34
+ buildRequiresDetailPayload: () => buildRequiresDetailPayload,
35
+ decideAddProduct: () => decideAddProduct,
36
+ decideAfterDetail: () => decideAfterDetail,
37
+ decideAutoClose: () => decideAutoClose,
38
+ getIsEject: () => getIsEject,
39
+ getIsOnlySession: () => getIsOnlySession,
40
+ prepareBookingCacheItem: () => prepareBookingCacheItem,
41
+ transformDetailToProductAndBooking: () => transformDetailToProductAndBooking
5
42
  });
6
- exports.buildCacheItemFromCartDetail = buildCacheItemFromCartDetail;
7
- exports.buildCacheItemFromDetail = buildCacheItemFromDetail;
8
- exports.buildRequiresDetailPayload = buildRequiresDetailPayload;
9
- exports.decideAddProduct = decideAddProduct;
10
- exports.decideAfterDetail = decideAfterDetail;
11
- exports.decideAutoClose = decideAutoClose;
12
- exports.getIsEject = getIsEject;
13
- exports.getIsOnlySession = getIsOnlySession;
14
- exports.prepareBookingCacheItem = prepareBookingCacheItem;
15
- exports.transformDetailToProductAndBooking = transformDetailToProductAndBooking;
16
- var _dayjs = _interopRequireDefault(require("dayjs"));
17
- var _BookingContext = require("../../../modules/BookingContext");
18
- var _transformBaseProductToOrderProduct = require("../../BaseSales/utils/transformBaseProductToOrderProduct");
19
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
- /**
21
- * cart.addProduct 两阶段决策(与 ticketBooking `handleSelectProduct` 对齐):
22
- *
23
- * 1. `requiresDetail`:规格 / SKU / 套餐 / Session / 称重弹窗(门禁:`isOpenDetailModal` / `cartDetailValue` / `open_sold_weight`)
24
- * 2. `requiresBookingEdit`:资源 / 时间编辑抽屉(门禁:`getIsAutoClose` on prepared cacheItem)
25
- * 3. `add`:两关均通过,直接 transform + 加车
26
- */
27
-
28
- /** 资源 / 时间编辑抽屉所需的最小 payload。 */
29
-
30
- /**
31
- * 第一段:是否需要打开规格 / SKU 详情弹窗(与 addService `handleSelectProduct` 一致,不用 `getIsEject` 做门禁)。
32
- */
43
+ module.exports = __toCommonJS(addProductDecision_exports);
44
+ var import_dayjs = __toESM(require("dayjs"));
45
+ var import_BookingContext = require("../../../modules/BookingContext");
46
+ var import_transformBaseProductToOrderProduct = require("../../BaseSales/utils/transformBaseProductToOrderProduct");
33
47
  function needsSpecDetailModal(item) {
34
- if (item?.open_sold_weight) return true;
35
- if (item?.isOpenDetailModal) return true;
36
- if (!item?.cartDetailValue) return true;
48
+ if (item == null ? void 0 : item.open_sold_weight)
49
+ return true;
50
+ if (item == null ? void 0 : item.isOpenDetailModal)
51
+ return true;
52
+ if (!(item == null ? void 0 : item.cartDetailValue))
53
+ return true;
37
54
  return false;
38
55
  }
39
-
40
- /**
41
- * 第二段:预约商品是否仍需打开资源 / 时间编辑(与 info2 `cacheItem.autoClose` 等价)。
42
- */
43
56
  function needsBookingEdit(cacheItem, ctx) {
44
- if (isNormalBookingProduct(cacheItem)) return false;
45
- const isAutoAllocationOn = ctx?.isAutoAllocationOn || (() => true);
46
- return !(0, _BookingContext.getIsAutoClose)(cacheItem, isAutoAllocationOn);
57
+ if (isNormalBookingProduct(cacheItem))
58
+ return false;
59
+ const isAutoAllocationOn = (ctx == null ? void 0 : ctx.isAutoAllocationOn) || (() => true);
60
+ return !(0, import_BookingContext.getIsAutoClose)(cacheItem, isAutoAllocationOn);
47
61
  }
48
62
  function buildRequiresBookingEditPayload(cacheItem, ctx) {
49
63
  return {
50
64
  cacheItem,
51
- customerId: ctx?.customerId,
52
- date: typeof ctx?.date === 'string' ? ctx.date : null
65
+ customerId: ctx == null ? void 0 : ctx.customerId,
66
+ date: typeof (ctx == null ? void 0 : ctx.date) === "string" ? ctx.date : null
53
67
  };
54
68
  }
55
-
56
- /**
57
- * 加车主决策:对齐 `handleSelectProduct` 两段分支。
58
- */
59
69
  function decideAddProduct(item, ctx) {
60
70
  const derivedCtx = withDerivedBookingCtx(ctx);
61
71
  if (needsSpecDetailModal(item)) {
62
72
  return {
63
- action: 'requiresDetail',
73
+ action: "requiresDetail",
64
74
  payload: buildRequiresDetailPayload(item, derivedCtx)
65
75
  };
66
76
  }
67
- const cacheItem = prepareBookingCacheItem(buildCacheItemFromCartDetail(item, derivedCtx), derivedCtx);
77
+ const cacheItem = prepareBookingCacheItem(
78
+ buildCacheItemFromCartDetail(item, derivedCtx),
79
+ derivedCtx
80
+ );
68
81
  if (needsBookingEdit(cacheItem, derivedCtx)) {
69
82
  return {
70
- action: 'requiresBookingEdit',
83
+ action: "requiresBookingEdit",
71
84
  cacheItem,
72
85
  payload: buildRequiresBookingEditPayload(cacheItem, derivedCtx)
73
86
  };
74
87
  }
75
- return {
76
- action: 'add',
77
- cacheItem
78
- };
88
+ return { action: "add", cacheItem };
79
89
  }
80
-
81
- /**
82
- * 规格弹窗 callback 后的第二段决策(对齐 `handleBooking4Service` 内 `cacheItem.autoClose` 分支)。
83
- */
84
90
  function decideAfterDetail(cacheItem, ctx) {
85
91
  const derivedCtx = withDerivedBookingCtx(ctx);
86
92
  const extended = prepareBookingCacheItem(cacheItem, derivedCtx);
87
93
  if (needsBookingEdit(extended, derivedCtx)) {
88
94
  return {
89
- action: 'requiresBookingEdit',
95
+ action: "requiresBookingEdit",
90
96
  cacheItem: extended,
91
97
  payload: buildRequiresBookingEditPayload(extended, derivedCtx)
92
98
  };
93
99
  }
94
- return {
95
- action: 'add',
96
- cacheItem: extended
97
- };
100
+ return { action: "add", cacheItem: extended };
98
101
  }
99
-
100
- /**
101
- * @deprecated 请用 `decideAddProduct`;保留兼容:autoClose=true 仅表示可直接加车(action=add)。
102
- */
103
-
104
102
  function isNormalBookingProduct(item) {
105
- return !(0, _BookingContext.isBookingProduct)(item);
103
+ return !(0, import_BookingContext.isBookingProduct)(item);
106
104
  }
107
105
  function hasPreparedBookingExtend(cacheItem) {
108
- // 场次/时间已写入但资源仍未选中时,须继续走 getProductExtend(对齐 info2 必定调用 getProductExtend)。
109
- if ((0, _BookingContext.productNeedsResourceExtend)(cacheItem) && !(0, _BookingContext.hasActualResourceSelection)(cacheItem)) {
106
+ var _a;
107
+ if ((0, import_BookingContext.productNeedsResourceExtend)(cacheItem) && !(0, import_BookingContext.hasActualResourceSelection)(cacheItem)) {
110
108
  return false;
111
109
  }
112
- const ext = cacheItem?._extend || {};
113
- const hasResourceState = Boolean((0, _BookingContext.hasActualResourceSelection)(cacheItem) && ext.capacity && (ext.endDate || ext.end_date));
114
- const hasSessionState = Boolean((0, _BookingContext.isSessionProduct)(cacheItem) && ext.other?.session && ext.start_time && (ext.end_time || ext.endDate));
110
+ const ext = (cacheItem == null ? void 0 : cacheItem._extend) || {};
111
+ const hasResourceState = Boolean(
112
+ (0, import_BookingContext.hasActualResourceSelection)(cacheItem) && ext.capacity && (ext.endDate || ext.end_date)
113
+ );
114
+ const hasSessionState = Boolean(
115
+ (0, import_BookingContext.isSessionProduct)(cacheItem) && ((_a = ext.other) == null ? void 0 : _a.session) && ext.start_time && (ext.end_time || ext.endDate)
116
+ );
115
117
  const hasMultiDayState = Boolean(isNormalBookingProduct(cacheItem) === false && isMultiDayLike(cacheItem));
116
- const hasExplicitTimeState = Boolean(ext.duration && (ext.start_date || ext.startDate) && ext.start_time && (ext.end_date && ext.end_time || ext.endDate));
118
+ const hasExplicitTimeState = Boolean(
119
+ ext.duration && (ext.start_date || ext.startDate) && ext.start_time && (ext.end_date && ext.end_time || ext.endDate)
120
+ );
117
121
  return hasResourceState || hasSessionState || hasMultiDayState || hasExplicitTimeState;
118
122
  }
119
-
120
- /** 弹窗 / Host 使用的日历日,与 ticketBooking `state.date.format('YYYY-MM-DD')` 对齐。 */
121
123
  function formatBookingDateForUI(date) {
122
- if (date == null || date === '') return null;
123
- const parsed = (0, _dayjs.default)(date);
124
- return parsed.isValid() ? parsed.format('YYYY-MM-DD') : null;
124
+ if (date == null || date === "")
125
+ return null;
126
+ const parsed = (0, import_dayjs.default)(date);
127
+ return parsed.isValid() ? parsed.format("YYYY-MM-DD") : null;
125
128
  }
126
-
127
- /** 补齐 presetStartTime(decideAutoClose / transform 与 BookingTicket.buildAddProductCtx 共用)。 */
128
129
  function withDerivedBookingCtx(ctx) {
129
- if (!ctx) return {};
130
+ if (!ctx)
131
+ return {};
130
132
  return {
131
133
  ...ctx,
132
- presetStartTime: ctx.presetStartTime ?? (0, _BookingContext.derivePresetStartTimeFromDate)(ctx.date)
134
+ presetStartTime: ctx.presetStartTime ?? (0, import_BookingContext.derivePresetStartTimeFromDate)(ctx.date)
133
135
  };
134
136
  }
135
137
  function isMultiDayLike(cacheItem) {
136
- const ext = cacheItem?._extend || {};
137
- return Boolean(cacheItem?.duration?.type === 'days' && ext.duration && ext.start_date && ext.end_date);
138
+ var _a;
139
+ const ext = (cacheItem == null ? void 0 : cacheItem._extend) || {};
140
+ return Boolean(
141
+ ((_a = cacheItem == null ? void 0 : cacheItem.duration) == null ? void 0 : _a.type) === "days" && ext.duration && ext.start_date && ext.end_date
142
+ );
138
143
  }
139
-
140
- /**
141
- * 统一补齐预约商品的运行态字段。
142
- *
143
- * 新链路不再让决策和提交各自重建 cacheItem;这里作为唯一入口补齐
144
- * `_extend.resource / capacity / startDate / endDate` 等后续 booking mapper 需要的字段。
145
- */
146
144
  function prepareBookingCacheItem(cacheItem, ctx) {
147
145
  if (isNormalBookingProduct(cacheItem) || hasPreparedBookingExtend(cacheItem)) {
148
146
  return cacheItem;
149
147
  }
150
- return (0, _BookingContext.getProductExtend)({
148
+ return (0, import_BookingContext.getProductExtend)({
151
149
  cacheItem,
152
150
  ctx: withDerivedBookingCtx(ctx),
153
151
  isDisabledTime: true
@@ -155,83 +153,62 @@ function prepareBookingCacheItem(cacheItem, ctx) {
155
153
  }
156
154
  function decideAutoClose(item, ctx) {
157
155
  const decision = decideAddProduct(item, ctx);
158
- if (decision.action === 'add') {
159
- return {
160
- autoClose: true,
161
- cacheItem: decision.cacheItem
162
- };
156
+ if (decision.action === "add") {
157
+ return { autoClose: true, cacheItem: decision.cacheItem };
163
158
  }
164
- if (decision.action === 'requiresBookingEdit') {
165
- return {
166
- autoClose: false,
167
- cacheItem: decision.cacheItem
168
- };
159
+ if (decision.action === "requiresBookingEdit") {
160
+ return { autoClose: false, cacheItem: decision.cacheItem };
169
161
  }
170
- return {
171
- autoClose: false
172
- };
162
+ return { autoClose: false };
173
163
  }
174
-
175
- /**
176
- * 替代 info2 `getIsEject`:商品是否需要弹窗(含 type='detail' / option_group / bundle_group / variant / session / sold_by_weight)。
177
- */
178
- function getIsEject(item, type = 'select') {
179
- const isSession = (0, _BookingContext.isSessionProduct)(item);
180
- const isSoldByWeight = Boolean(item?.open_sold_weight);
181
- const need = type === 'detail' || (item?.bundle_group_count || 0) > 0 || (item?.option_group_count || 0) > 0 || (item?.is_variant || 0) > 0 || isSession || isSoldByWeight;
164
+ function getIsEject(item, type = "select") {
165
+ const isSession = (0, import_BookingContext.isSessionProduct)(item);
166
+ const isSoldByWeight = Boolean(item == null ? void 0 : item.open_sold_weight);
167
+ const need = type === "detail" || ((item == null ? void 0 : item.bundle_group_count) || 0) > 0 || ((item == null ? void 0 : item.option_group_count) || 0) > 0 || ((item == null ? void 0 : item.is_variant) || 0) > 0 || isSession || isSoldByWeight;
182
168
  return need ? 1 : 0;
183
169
  }
184
-
185
- /** 仅 session 商品(且没有 variant/option/package)。 */
186
170
  function getIsOnlySession(item) {
187
- const isSession = (0, _BookingContext.isSessionProduct)(item);
188
- return !((item?.bundle_group_count || 0) > 0 || (item?.option_group_count || 0) > 0 || (item?.is_variant || 0) > 0) && isSession;
171
+ const isSession = (0, import_BookingContext.isSessionProduct)(item);
172
+ return !(((item == null ? void 0 : item.bundle_group_count) || 0) > 0 || ((item == null ? void 0 : item.option_group_count) || 0) > 0 || ((item == null ? void 0 : item.is_variant) || 0) > 0) && isSession;
189
173
  }
190
-
191
- /**
192
- * 拼装 requiresDetail payload;showConfig 与 info2 弹窗内部判断一致。
193
- */
194
174
  function buildRequiresDetailPayload(item, ctx) {
195
175
  const isOnlySession = getIsOnlySession(item);
196
- const isEject = getIsEject(item, ctx?.type || 'select');
176
+ const isEject = getIsEject(item, (ctx == null ? void 0 : ctx.type) || "select");
197
177
  return {
198
178
  item,
199
179
  showConfig: {
200
- option: (item?.option_group_count || 0) > 0,
201
- session: (0, _BookingContext.isSessionProduct)(item),
202
- variant: (item?.is_variant || 0) > 0,
203
- package: (item?.bundle_group_count || 0) > 0,
204
- number: Boolean(item?.open_sold_weight)
180
+ option: ((item == null ? void 0 : item.option_group_count) || 0) > 0,
181
+ session: (0, import_BookingContext.isSessionProduct)(item),
182
+ variant: ((item == null ? void 0 : item.is_variant) || 0) > 0,
183
+ package: ((item == null ? void 0 : item.bundle_group_count) || 0) > 0,
184
+ number: Boolean(item == null ? void 0 : item.open_sold_weight)
205
185
  },
206
186
  isOnlySession,
207
187
  isEject: isEject ? 1 : 0,
208
- customerId: ctx?.customerId,
209
- date: formatBookingDateForUI(ctx?.date),
188
+ customerId: ctx == null ? void 0 : ctx.customerId,
189
+ date: formatBookingDateForUI(ctx == null ? void 0 : ctx.date),
210
190
  productData: item
211
191
  };
212
192
  }
213
-
214
- /**
215
- * 用 item.cartDetailValue 拼装一个 cacheItem 雏形(与 info2 `handleDirectAddService` 等价路径)。
216
- * 这里只补 `_extend.start_date / quantity / other` 等运行态字段;后续走 getProductExtend 才会补齐资源 / 时间。
217
- */
218
193
  function buildCacheItemFromCartDetail(item, ctx) {
194
+ var _a;
219
195
  const cartDetailValue = item.cartDetailValue || {};
220
196
  const other = JSON.parse(JSON.stringify(cartDetailValue || {}));
221
197
  other.session = cartDetailValue.session;
222
- /** 列表/接口可能只带 product_id 不带 id,勿用 item.id 覆盖掉已有 product_id */
223
198
  const resolvedId = item.id ?? item.product_id;
224
- let extend = (0, _BookingContext.applySessionTimesToExtend)(item, {
225
- start_date: ctx?.date || undefined,
226
- /** 列表连点 / 防抖合并时以 ctx.quantity 为准,避免 cartDetailValue 默认 1 盖掉合并数量 */
227
- quantity: ctx?.quantity ?? cartDetailValue?.quantity ?? 1,
228
- product_name: item.title,
229
- other,
230
- isNormalProduct: !(0, _BookingContext.isBookingProduct)(item),
231
- price: item?._extend?.price ?? item?.price
232
- }, {
233
- date: ctx?.date
234
- });
199
+ let extend = (0, import_BookingContext.applySessionTimesToExtend)(
200
+ item,
201
+ {
202
+ start_date: (ctx == null ? void 0 : ctx.date) || void 0,
203
+ /** 列表连点 / 防抖合并时以 ctx.quantity 为准,避免 cartDetailValue 默认 1 盖掉合并数量 */
204
+ quantity: (ctx == null ? void 0 : ctx.quantity) ?? (cartDetailValue == null ? void 0 : cartDetailValue.quantity) ?? 1,
205
+ product_name: item.title,
206
+ other,
207
+ isNormalProduct: !(0, import_BookingContext.isBookingProduct)(item),
208
+ price: ((_a = item == null ? void 0 : item._extend) == null ? void 0 : _a.price) ?? (item == null ? void 0 : item.price)
209
+ },
210
+ { date: ctx == null ? void 0 : ctx.date }
211
+ );
235
212
  return {
236
213
  ...item,
237
214
  id: resolvedId,
@@ -241,113 +218,101 @@ function buildCacheItemFromCartDetail(item, ctx) {
241
218
  new: 1
242
219
  };
243
220
  }
244
-
245
- /**
246
- * 用 Info2 callback 的 (e, extension_type, detail) 拼装 cacheItem。
247
- *
248
- * 保留 detail._extend 中的 pricing / note(规格弹窗改价、备注等),
249
- * 再叠加 session 时间、ctx.quantity 等运行态字段;other 以 callback `e` 为准。
250
- */
251
221
  function buildCacheItemFromDetail(item, detailResult, ctx) {
222
+ var _a, _b, _c;
252
223
  const _currentItem = detailResult.detail || item;
253
224
  const _detail = _currentItem;
254
- const detailExtend = _detail?._extend || {};
225
+ const detailExtend = (_detail == null ? void 0 : _detail._extend) || {};
255
226
  const other = JSON.parse(JSON.stringify(detailResult.e || {}));
256
- other.session = detailResult.e?.session;
227
+ other.session = (_a = detailResult.e) == null ? void 0 : _a.session;
257
228
  const resolvedId = _currentItem.id ?? _currentItem.product_id;
258
- const mergedItem = {
259
- ...item,
260
- ..._detail,
261
- extension_type: _detail.extension_type ?? item.extension_type
262
- };
263
- const runtimeExtend = (0, _BookingContext.applySessionTimesToExtend)(mergedItem, {
264
- start_date: ctx?.date || detailExtend.start_date || undefined,
265
- quantity: ctx?.quantity ?? detailResult.e?.quantity ?? detailExtend.quantity ?? 1,
266
- price: detailExtend.price ?? _detail?.price ?? item?.price,
267
- product_name: _currentItem.title ?? detailExtend.product_name,
268
- other,
269
- isNormalProduct: !(0, _BookingContext.isBookingProduct)(mergedItem)
270
- }, {
271
- date: ctx?.date
272
- });
229
+ const mergedItem = { ...item, ..._detail, extension_type: _detail.extension_type ?? item.extension_type };
230
+ const runtimeExtend = (0, import_BookingContext.applySessionTimesToExtend)(
231
+ mergedItem,
232
+ {
233
+ start_date: (ctx == null ? void 0 : ctx.date) || detailExtend.start_date || void 0,
234
+ quantity: (ctx == null ? void 0 : ctx.quantity) ?? ((_b = detailResult.e) == null ? void 0 : _b.quantity) ?? detailExtend.quantity ?? 1,
235
+ price: detailExtend.price ?? (_detail == null ? void 0 : _detail.price) ?? (item == null ? void 0 : item.price),
236
+ product_name: _currentItem.title ?? detailExtend.product_name,
237
+ other,
238
+ isNormalProduct: !(0, import_BookingContext.isBookingProduct)(mergedItem)
239
+ },
240
+ { date: ctx == null ? void 0 : ctx.date }
241
+ );
273
242
  const extend = {
274
243
  ...detailExtend,
275
244
  ...runtimeExtend,
276
245
  other
277
246
  };
278
- const note = detailExtend.note ?? _detail?.note;
247
+ const note = detailExtend.note ?? (_detail == null ? void 0 : _detail.note);
279
248
  return {
280
249
  ..._detail,
281
250
  id: resolvedId,
282
251
  product_id: resolvedId,
283
252
  extension_type: mergedItem.extension_type,
284
- _key: detailResult.e?.key,
285
- ...(note != null && note !== '' ? {
286
- note: String(note)
287
- } : {}),
253
+ _key: (_c = detailResult.e) == null ? void 0 : _c.key,
254
+ ...note != null && note !== "" ? { note: String(note) } : {},
288
255
  _extend: extend,
289
256
  new: 1
290
257
  };
291
258
  }
292
-
293
- /**
294
- * `transformDetailToProductAndBooking`:把 cacheItem 拆成 OS `addProductToOrder` 所需的 `(product, booking)`。
295
- *
296
- * - `product` 走 `transformBaseProductToOrderProduct`(沿用 BaseSales 现有 mapper)。
297
- * - `booking` 走 `cacheItemToBookingInput`(严格按 TEMP_ORDER_FIELDS_SUMMARY.md 协议)。
298
- * - 普通商品(无 duration / 无 schedules)不产 booking,与 info2 一致。
299
- */
300
259
  function transformDetailToProductAndBooking(cacheItem, ctx) {
301
260
  const preparedCacheItem = prepareBookingCacheItem(cacheItem, withDerivedBookingCtx(ctx));
302
261
  const payload = buildBasePayloadFromCacheItem(preparedCacheItem, ctx);
303
- const productInput = (0, _transformBaseProductToOrderProduct.transformBaseProductToOrderProduct)({
262
+ const productInput = (0, import_transformBaseProductToOrderProduct.transformBaseProductToOrderProduct)({
304
263
  payload,
305
264
  sourceProduct: preparedCacheItem
306
265
  });
307
266
  if (!productInput) {
308
- throw new Error('[BookingTicket] transformDetailToProductAndBooking: product transform failed (missing numeric item.id / item.product_id)');
267
+ throw new Error(
268
+ "[BookingTicket] transformDetailToProductAndBooking: product transform failed (missing numeric item.id / item.product_id)"
269
+ );
309
270
  }
310
271
  const isNormalProduct = isNormalBookingProduct(preparedCacheItem);
311
272
  let booking;
312
273
  if (!isNormalProduct) {
313
- booking = (0, _BookingContext.cacheItemToBookingInput)(preparedCacheItem, {
314
- bookingConfig: ctx?.bookingConfig
315
- });
274
+ booking = (0, import_BookingContext.cacheItemToBookingInput)(preparedCacheItem, { bookingConfig: ctx == null ? void 0 : ctx.bookingConfig });
316
275
  }
317
- return {
318
- product: productInput,
319
- booking,
320
- cacheItem: preparedCacheItem
321
- };
276
+ return { product: productInput, booking, cacheItem: preparedCacheItem };
322
277
  }
323
-
324
- /**
325
- * 把 cacheItem._extend.other 中的字段 + 顶层运行态拼成 `BaseProductDetailPayload`。
326
- */
327
278
  function buildBasePayloadFromCacheItem(cacheItem, ctx) {
328
- const other = cacheItem?._extend?.other || {};
329
- const quantity = ctx?.quantity != null && ctx.quantity > 0 ? ctx.quantity : cacheItem?._extend?.quantity ?? 1;
330
- const resolvedPid = cacheItem?.product_id ?? cacheItem?.id;
331
- const extend = cacheItem?._extend || {};
279
+ var _a, _b, _c, _d;
280
+ const other = ((_a = cacheItem == null ? void 0 : cacheItem._extend) == null ? void 0 : _a.other) || {};
281
+ const quantity = (ctx == null ? void 0 : ctx.quantity) != null && ctx.quantity > 0 ? ctx.quantity : ((_b = cacheItem == null ? void 0 : cacheItem._extend) == null ? void 0 : _b.quantity) ?? 1;
282
+ const resolvedPid = (cacheItem == null ? void 0 : cacheItem.product_id) ?? (cacheItem == null ? void 0 : cacheItem.id);
283
+ const extend = (cacheItem == null ? void 0 : cacheItem._extend) || {};
332
284
  return {
333
- id: cacheItem?.id ?? cacheItem?.product_id,
285
+ id: (cacheItem == null ? void 0 : cacheItem.id) ?? (cacheItem == null ? void 0 : cacheItem.product_id),
334
286
  product_id: resolvedPid,
335
- variant_id: other?.product_variant_id ?? other?.variant_id ?? 0,
287
+ variant_id: (other == null ? void 0 : other.product_variant_id) ?? (other == null ? void 0 : other.variant_id) ?? 0,
336
288
  quantity,
337
- option: other?.option || [],
338
- bundle: other?.bundle || extend?.skuValue?.bundle || extend?._skuValue?.bundle || [],
339
- unique: other?.unique,
340
- session: other?.session,
341
- note: extend?.note,
342
- price: extend?.price ?? cacheItem?.price,
343
- selling_price: extend?.price ?? cacheItem?.price,
344
- line_total: extend?.total,
345
- total: extend?.total,
346
- origin_total: extend?.origin_total,
347
- price_override: extend?.priceOverride,
348
- bundle_edit: extend?.bundle_edit,
349
- discount_reason: extend?.discount_reason,
350
- discount_list: cacheItem?.discount_list,
289
+ option: (other == null ? void 0 : other.option) || [],
290
+ bundle: (other == null ? void 0 : other.bundle) || ((_c = extend == null ? void 0 : extend.skuValue) == null ? void 0 : _c.bundle) || ((_d = extend == null ? void 0 : extend._skuValue) == null ? void 0 : _d.bundle) || [],
291
+ unique: other == null ? void 0 : other.unique,
292
+ session: other == null ? void 0 : other.session,
293
+ note: extend == null ? void 0 : extend.note,
294
+ price: (extend == null ? void 0 : extend.price) ?? (cacheItem == null ? void 0 : cacheItem.price),
295
+ selling_price: (extend == null ? void 0 : extend.price) ?? (cacheItem == null ? void 0 : cacheItem.price),
296
+ line_total: extend == null ? void 0 : extend.total,
297
+ total: extend == null ? void 0 : extend.total,
298
+ origin_total: extend == null ? void 0 : extend.origin_total,
299
+ price_override: extend == null ? void 0 : extend.priceOverride,
300
+ bundle_edit: extend == null ? void 0 : extend.bundle_edit,
301
+ discount_reason: extend == null ? void 0 : extend.discount_reason,
302
+ discount_list: cacheItem == null ? void 0 : cacheItem.discount_list,
351
303
  _extend: extend
352
304
  };
353
- }
305
+ }
306
+ // Annotate the CommonJS export names for ESM import in node:
307
+ 0 && (module.exports = {
308
+ buildCacheItemFromCartDetail,
309
+ buildCacheItemFromDetail,
310
+ buildRequiresDetailPayload,
311
+ decideAddProduct,
312
+ decideAfterDetail,
313
+ decideAutoClose,
314
+ getIsEject,
315
+ getIsOnlySession,
316
+ prepareBookingCacheItem,
317
+ transformDetailToProductAndBooking
318
+ });