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