@pisell/pisellos 2.3.73 → 2.3.75

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 (296) hide show
  1. package/dist/core/index.d.ts +7 -0
  2. package/dist/core/index.js +111 -71
  3. package/dist/model/strategy/adapter/promotion/index.js +9 -0
  4. package/dist/model/strategy/adapter/walletPass/example.js +3 -26
  5. package/dist/model/strategy/strategy-example.js +5 -19
  6. package/dist/modules/Cart/index.js +0 -3
  7. package/dist/modules/Cart/utils/cartProduct.js +0 -1
  8. package/dist/modules/Date/index.js +1 -5
  9. package/dist/modules/Discount/index.js +2 -4
  10. package/dist/modules/OpenData/index.js +0 -2
  11. package/dist/modules/Order/index.d.ts +1 -1
  12. package/dist/modules/Order/index.js +36 -64
  13. package/dist/modules/Payment/index.js +97 -162
  14. package/dist/modules/Quotation/index.d.ts +6 -0
  15. package/dist/modules/Quotation/index.js +75 -19
  16. package/dist/modules/Rules/index.js +1 -4
  17. package/dist/modules/Schedule/index.js +0 -1
  18. package/dist/modules/Schedule/utils.js +0 -1
  19. package/dist/modules/Step/index.js +0 -1
  20. package/dist/plugins/request.d.ts +1 -0
  21. package/dist/plugins/request.js +1 -4
  22. package/dist/plugins/window.js +2 -6
  23. package/dist/server/index.d.ts +8 -2
  24. package/dist/server/index.js +303 -269
  25. package/dist/server/modules/floor-plan/index.d.ts +4 -0
  26. package/dist/server/modules/floor-plan/index.js +240 -98
  27. package/dist/server/modules/menu/index.js +75 -59
  28. package/dist/server/modules/order/index.d.ts +17 -7
  29. package/dist/server/modules/order/index.js +421 -211
  30. package/dist/server/modules/products/index.d.ts +8 -2
  31. package/dist/server/modules/products/index.js +191 -117
  32. package/dist/server/modules/quotation/index.js +29 -38
  33. package/dist/server/modules/resource/index.js +24 -17
  34. package/dist/server/modules/schedule/index.js +27 -35
  35. package/dist/server/utils/product.js +0 -1
  36. package/dist/solution/BaseSales/index.js +38 -41
  37. package/dist/solution/BookingByStep/index.d.ts +1 -1
  38. package/dist/solution/BookingByStep/index.js +7 -59
  39. package/dist/solution/BookingByStep/utils/capacity.js +1 -11
  40. package/dist/solution/BookingByStep/utils/resources.js +1 -3
  41. package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
  42. package/dist/solution/BookingTicket/index.js +0 -2
  43. package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +6 -7
  44. package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
  45. package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
  46. package/dist/solution/BuyTickets/index.js +9 -12
  47. package/dist/solution/Checkout/index.js +177 -252
  48. package/dist/solution/Checkout/utils/index.js +4 -16
  49. package/dist/solution/RegisterAndLogin/index.js +30 -76
  50. package/dist/solution/ScanOrder/index.js +50 -60
  51. package/dist/solution/ShopDiscount/index.js +2 -7
  52. package/dist/solution/VenueBooking/index.js +45 -55
  53. package/dist/utils/task.js +15 -18
  54. package/dist/utils/watch.js +0 -1
  55. package/lib/apis/picoding.js +2 -0
  56. package/lib/core/index.d.ts +7 -0
  57. package/lib/core/index.js +149 -131
  58. package/lib/effects/index.js +46 -57
  59. package/lib/index.js +82 -49
  60. package/lib/model/index.js +14 -21
  61. package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
  62. package/lib/model/strategy/adapter/dataVariant/evaluator.js +162 -236
  63. package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
  64. package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
  65. package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
  66. package/lib/model/strategy/adapter/index.js +100 -64
  67. package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
  68. package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
  69. package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
  70. package/lib/model/strategy/adapter/itemRule/index.js +83 -57
  71. package/lib/model/strategy/adapter/itemRule/type.js +97 -36
  72. package/lib/model/strategy/adapter/promotion/adapter.js +91 -69
  73. package/lib/model/strategy/adapter/promotion/evaluator.js +444 -310
  74. package/lib/model/strategy/adapter/promotion/examples.js +222 -234
  75. package/lib/model/strategy/adapter/promotion/index.js +1 -0
  76. package/lib/model/strategy/adapter/promotion/type.js +243 -36
  77. package/lib/model/strategy/adapter/type.js +4 -16
  78. package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -150
  79. package/lib/model/strategy/adapter/walletPass/example.js +217 -190
  80. package/lib/model/strategy/adapter/walletPass/index.js +75 -51
  81. package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
  82. package/lib/model/strategy/adapter/walletPass/type.js +4 -16
  83. package/lib/model/strategy/adapter/walletPass/utils.js +588 -378
  84. package/lib/model/strategy/engine.js +270 -168
  85. package/lib/model/strategy/index.js +49 -34
  86. package/lib/model/strategy/strategy-example.js +243 -239
  87. package/lib/model/strategy/type.js +100 -40
  88. package/lib/modules/Account/index.js +39 -53
  89. package/lib/modules/Account/types.js +20 -33
  90. package/lib/modules/AccountList/index.js +116 -154
  91. package/lib/modules/AccountList/types.js +30 -31
  92. package/lib/modules/AccountList/utils.js +18 -30
  93. package/lib/modules/BaseModule.js +23 -42
  94. package/lib/modules/BookingContext/index.js +158 -136
  95. package/lib/modules/BookingContext/types.js +46 -32
  96. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +138 -146
  97. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +78 -83
  98. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +170 -150
  99. package/lib/modules/BookingContext/utils/flexible.js +38 -55
  100. package/lib/modules/BookingContext/utils/formatResourceList.js +19 -34
  101. package/lib/modules/BookingContext/utils/index.js +124 -41
  102. package/lib/modules/BookingContext/utils/noResource.js +58 -70
  103. package/lib/modules/BookingContext/utils/orderLineDisplay.js +14 -41
  104. package/lib/modules/BookingContext/utils/productExtend.js +202 -155
  105. package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
  106. package/lib/modules/BookingContext/utils/resourceSelection.js +19 -41
  107. package/lib/modules/BookingContext/utils/resources.js +209 -167
  108. package/lib/modules/BookingContext/utils/serviceTimes.js +115 -116
  109. package/lib/modules/BookingContext/utils/timeSlices.js +76 -86
  110. package/lib/modules/Cart/index.js +170 -124
  111. package/lib/modules/Cart/types.js +46 -51
  112. package/lib/modules/Cart/utils/cartAccount.js +40 -39
  113. package/lib/modules/Cart/utils/cartDate.js +56 -61
  114. package/lib/modules/Cart/utils/cartDiscount.js +28 -33
  115. package/lib/modules/Cart/utils/cartNote.js +27 -32
  116. package/lib/modules/Cart/utils/cartProduct.js +321 -251
  117. package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
  118. package/lib/modules/Cart/utils/cartResource.js +70 -78
  119. package/lib/modules/Cart/utils/changePrice.js +22 -50
  120. package/lib/modules/Cart/utils/index.js +106 -48
  121. package/lib/modules/Customer/constants.js +13 -34
  122. package/lib/modules/Customer/index.js +235 -172
  123. package/lib/modules/Customer/types.js +38 -35
  124. package/lib/modules/Date/index.js +116 -115
  125. package/lib/modules/Date/types.js +16 -28
  126. package/lib/modules/Date/utils.js +174 -123
  127. package/lib/modules/Discount/index.js +122 -127
  128. package/lib/modules/Discount/types.js +9 -31
  129. package/lib/modules/Guests/index.js +30 -56
  130. package/lib/modules/Guests/types.js +23 -33
  131. package/lib/modules/Holder/index.js +209 -189
  132. package/lib/modules/Holder/types.js +4 -16
  133. package/lib/modules/Holder/utils.js +20 -49
  134. package/lib/modules/OpenData/index.js +70 -76
  135. package/lib/modules/OpenData/types.js +4 -16
  136. package/lib/modules/OpenData/utils.js +44 -78
  137. package/lib/modules/Order/index.d.ts +1 -1
  138. package/lib/modules/Order/index.js +1713 -2118
  139. package/lib/modules/Order/payment-utils.js +77 -120
  140. package/lib/modules/Order/types.js +88 -35
  141. package/lib/modules/Order/utils/bundleDiscountHydration.js +41 -74
  142. package/lib/modules/Order/utils/discountProductLineIdentity.js +142 -100
  143. package/lib/modules/Order/utils/manualProductDiscount.js +124 -123
  144. package/lib/modules/Order/utils/orderCollectionIdentity.js +184 -244
  145. package/lib/modules/Order/utils.js +814 -647
  146. package/lib/modules/Payment/cash.js +20 -33
  147. package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
  148. package/lib/modules/Payment/eftpos.js +16 -30
  149. package/lib/modules/Payment/index.js +532 -399
  150. package/lib/modules/Payment/mx51.js +1 -0
  151. package/lib/modules/Payment/types.js +230 -108
  152. package/lib/modules/Payment/utils.js +52 -51
  153. package/lib/modules/Payment/walletpass.js +485 -660
  154. package/lib/modules/Product/index.js +51 -46
  155. package/lib/modules/Product/types.js +4 -16
  156. package/lib/modules/Product/utils.js +32 -33
  157. package/lib/modules/ProductList/index.js +113 -123
  158. package/lib/modules/ProductList/types.js +9 -31
  159. package/lib/modules/Quotation/index.d.ts +6 -0
  160. package/lib/modules/Quotation/index.js +110 -103
  161. package/lib/modules/Quotation/types.js +4 -16
  162. package/lib/modules/Resource/index.js +27 -59
  163. package/lib/modules/Resource/types.js +22 -32
  164. package/lib/modules/Resource/utils.js +30 -38
  165. package/lib/modules/ResourcePlanner/index.js +25 -23
  166. package/lib/modules/ResourcePlanner/localClock.js +54 -119
  167. package/lib/modules/ResourcePlanner/planner.js +589 -770
  168. package/lib/modules/ResourcePlanner/types.js +10 -29
  169. package/lib/modules/Rules/index.js +1218 -959
  170. package/lib/modules/Rules/types.js +17 -40
  171. package/lib/modules/SalesSummary/index.js +85 -90
  172. package/lib/modules/SalesSummary/types.js +4 -16
  173. package/lib/modules/SalesSummary/utils.js +355 -430
  174. package/lib/modules/ScanOrderLogger/index.js +59 -79
  175. package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
  176. package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
  177. package/lib/modules/ScanOrderLogger/types.js +4 -16
  178. package/lib/modules/Schedule/getDateIsInSchedule.js +334 -163
  179. package/lib/modules/Schedule/index.js +100 -114
  180. package/lib/modules/Schedule/type.js +4 -16
  181. package/lib/modules/Schedule/types.js +4 -16
  182. package/lib/modules/Schedule/utils.js +433 -291
  183. package/lib/modules/Step/index.js +40 -52
  184. package/lib/modules/Step/tyeps.js +4 -16
  185. package/lib/modules/Summary/index.js +66 -71
  186. package/lib/modules/Summary/types.js +4 -16
  187. package/lib/modules/Summary/utils.js +773 -418
  188. package/lib/modules/SurchargeList/index.js +46 -60
  189. package/lib/modules/SurchargeList/types.js +4 -16
  190. package/lib/modules/index.js +245 -63
  191. package/lib/plugins/app.js +4 -16
  192. package/lib/plugins/index.js +36 -25
  193. package/lib/plugins/request.d.ts +1 -0
  194. package/lib/plugins/request.js +137 -126
  195. package/lib/plugins/shopStore.js +4 -16
  196. package/lib/plugins/user.js +4 -16
  197. package/lib/plugins/window.js +171 -179
  198. package/lib/server/index.d.ts +8 -2
  199. package/lib/server/index.js +3083 -2663
  200. package/lib/server/modules/floor-plan/index.d.ts +4 -0
  201. package/lib/server/modules/floor-plan/index.js +159 -127
  202. package/lib/server/modules/floor-plan/types.js +15 -30
  203. package/lib/server/modules/index.js +106 -68
  204. package/lib/server/modules/menu/index.js +170 -124
  205. package/lib/server/modules/menu/types.js +18 -31
  206. package/lib/server/modules/order/index.d.ts +17 -7
  207. package/lib/server/modules/order/index.js +916 -977
  208. package/lib/server/modules/order/types.js +122 -33
  209. package/lib/server/modules/order/utils/filterBookings.js +219 -194
  210. package/lib/server/modules/order/utils/filterOrders.js +118 -92
  211. package/lib/server/modules/payment/index.js +59 -83
  212. package/lib/server/modules/payment/types.js +4 -16
  213. package/lib/server/modules/products/index.d.ts +8 -2
  214. package/lib/server/modules/products/index.js +656 -471
  215. package/lib/server/modules/products/types.js +44 -34
  216. package/lib/server/modules/quotation/index.js +137 -172
  217. package/lib/server/modules/quotation/types.js +21 -31
  218. package/lib/server/modules/resource/index.js +225 -186
  219. package/lib/server/modules/resource/types.js +42 -33
  220. package/lib/server/modules/schedule/index.js +135 -123
  221. package/lib/server/modules/schedule/types.js +14 -21
  222. package/lib/server/modules/schedule/utils.js +334 -163
  223. package/lib/server/types.js +4 -16
  224. package/lib/server/utils/index.js +25 -23
  225. package/lib/server/utils/product.js +196 -139
  226. package/lib/server/utils/schedule.js +34 -41
  227. package/lib/server/utils/small-ticket.js +479 -456
  228. package/lib/server/utils/time.js +40 -49
  229. package/lib/solution/BaseSales/index.js +1186 -1410
  230. package/lib/solution/BaseSales/types.js +42 -38
  231. package/lib/solution/BaseSales/utils/cartPromotion.js +642 -498
  232. package/lib/solution/BaseSales/utils/parseSalesResponse.js +85 -105
  233. package/lib/solution/BaseSales/utils/quotationPrice.js +56 -114
  234. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +108 -145
  235. package/lib/solution/BaseSales/utils.js +158 -143
  236. package/lib/solution/BookingByStep/index.d.ts +1 -1
  237. package/lib/solution/BookingByStep/index.js +1527 -1340
  238. package/lib/solution/BookingByStep/types.js +40 -99
  239. package/lib/solution/BookingByStep/utils/capacity.js +192 -160
  240. package/lib/solution/BookingByStep/utils/products.js +42 -52
  241. package/lib/solution/BookingByStep/utils/resources.js +527 -330
  242. package/lib/solution/BookingByStep/utils/stock.js +65 -44
  243. package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
  244. package/lib/solution/BookingTicket/index.js +607 -522
  245. package/lib/solution/BookingTicket/types.js +99 -77
  246. package/lib/solution/BookingTicket/utils/addProductDecision.js +226 -189
  247. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +58 -89
  248. package/lib/solution/BookingTicket/utils/bookingStatus.js +107 -78
  249. package/lib/solution/BookingTicket/utils/cartView.js +114 -99
  250. package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
  251. package/lib/solution/BookingTicket/utils/orderCustomer.js +18 -41
  252. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +219 -86
  253. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +168 -116
  254. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +79 -91
  255. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +54 -41
  256. package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -81
  257. package/lib/solution/BookingTicket/utils/scan/index.js +98 -104
  258. package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
  259. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +52 -64
  260. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +56 -58
  261. package/lib/solution/BookingTicket/utils/weighingProductSku.js +34 -48
  262. package/lib/solution/BuyTickets/index.js +67 -70
  263. package/lib/solution/BuyTickets/types.js +22 -38
  264. package/lib/solution/Checkout/index.js +1451 -1158
  265. package/lib/solution/Checkout/types.js +91 -61
  266. package/lib/solution/Checkout/utils/index.js +228 -156
  267. package/lib/solution/PlaceOrder/index.js +55 -0
  268. package/lib/solution/RegisterAndLogin/config.js +493 -460
  269. package/lib/solution/RegisterAndLogin/index.js +633 -630
  270. package/lib/solution/RegisterAndLogin/types.js +189 -76
  271. package/lib/solution/RegisterAndLogin/utils.js +183 -125
  272. package/lib/solution/Sales/index.js +328 -324
  273. package/lib/solution/Sales/types.js +27 -33
  274. package/lib/solution/ScanOrder/index.js +832 -864
  275. package/lib/solution/ScanOrder/types.js +33 -34
  276. package/lib/solution/ScanOrder/utils.js +409 -374
  277. package/lib/solution/ShopDiscount/index.js +226 -232
  278. package/lib/solution/ShopDiscount/types.js +15 -37
  279. package/lib/solution/ShopDiscount/utils.js +300 -172
  280. package/lib/solution/UnifiedBookingSales/index.js +1035 -1201
  281. package/lib/solution/UnifiedBookingSales/remoteOccupancyCache.js +99 -159
  282. package/lib/solution/UnifiedBookingSales/types.js +10 -32
  283. package/lib/solution/VenueBooking/index.js +811 -879
  284. package/lib/solution/VenueBooking/types.js +19 -39
  285. package/lib/solution/VenueBooking/utils/dateSummary.js +27 -56
  286. package/lib/solution/VenueBooking/utils/resource.js +31 -54
  287. package/lib/solution/VenueBooking/utils/slotMerge.js +94 -107
  288. package/lib/solution/VenueBooking/utils/timeSlot.js +132 -132
  289. package/lib/solution/VenueBooking/utils.js +130 -67
  290. package/lib/solution/index.js +124 -41
  291. package/lib/store/createStore.js +32 -29
  292. package/lib/types/index.js +4 -16
  293. package/lib/utils/payment-number.js +26 -46
  294. package/lib/utils/task.js +36 -36
  295. package/lib/utils/watch.js +81 -47
  296. package/package.json +2 -1
@@ -1,84 +1,62 @@
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);
1
+ "use strict";
18
2
 
19
- // src/modules/Order/payment-utils.ts
20
- var payment_utils_exports = {};
21
- __export(payment_utils_exports, {
22
- ensureOrderPaymentNumber: () => ensureOrderPaymentNumber,
23
- getOrderPaymentIdentityKeys: () => getOrderPaymentIdentityKeys,
24
- hasOrderPaymentIdentityOverlap: () => hasOrderPaymentIdentityOverlap,
25
- isIdentifiedPendingOrderPayment: () => isIdentifiedPendingOrderPayment,
26
- isPendingOrderPayment: () => isPendingOrderPayment,
27
- mergeOrderPaymentListsByIdentity: () => mergeOrderPaymentListsByIdentity,
28
- mergeOrderPaymentRecord: () => mergeOrderPaymentRecord,
29
- mergeOrderPaymentSnapshot: () => mergeOrderPaymentSnapshot,
30
- mergeOrderPaymentTransactions: () => mergeOrderPaymentTransactions,
31
- resolveOrderPaymentIdentity: () => resolveOrderPaymentIdentity
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
32
5
  });
33
- module.exports = __toCommonJS(payment_utils_exports);
34
- var PAYMENT_IDENTITY_TYPES = [
35
- "payment_number",
36
- "order_payment_id",
37
- "unique_payment_number"
38
- ];
6
+ exports.ensureOrderPaymentNumber = ensureOrderPaymentNumber;
7
+ exports.getOrderPaymentIdentityKeys = getOrderPaymentIdentityKeys;
8
+ exports.hasOrderPaymentIdentityOverlap = hasOrderPaymentIdentityOverlap;
9
+ exports.isIdentifiedPendingOrderPayment = isIdentifiedPendingOrderPayment;
10
+ exports.isPendingOrderPayment = isPendingOrderPayment;
11
+ exports.mergeOrderPaymentListsByIdentity = mergeOrderPaymentListsByIdentity;
12
+ exports.mergeOrderPaymentRecord = mergeOrderPaymentRecord;
13
+ exports.mergeOrderPaymentSnapshot = mergeOrderPaymentSnapshot;
14
+ exports.mergeOrderPaymentTransactions = mergeOrderPaymentTransactions;
15
+ exports.resolveOrderPaymentIdentity = resolveOrderPaymentIdentity;
16
+ const PAYMENT_IDENTITY_TYPES = ['payment_number', 'order_payment_id', 'unique_payment_number'];
39
17
  function normalizePaymentIdentityValue(value) {
40
- if (value === void 0 || value === null || value === "")
41
- return null;
18
+ if (value === undefined || value === null || value === '') return null;
42
19
  return String(value);
43
20
  }
44
21
  function getPaymentIdentityValue(payment, type) {
45
- var _a;
46
- if (type === "unique_payment_number") {
47
- return (_a = payment == null ? void 0 : payment.metadata) == null ? void 0 : _a.unique_payment_number;
22
+ if (type === 'unique_payment_number') {
23
+ return payment?.metadata?.unique_payment_number;
48
24
  }
49
- return payment == null ? void 0 : payment[type];
25
+ return payment?.[type];
50
26
  }
51
27
  function getOrderPaymentIdentityKeys(payment) {
52
28
  const record = payment;
53
- if (!record)
54
- return [];
55
- return PAYMENT_IDENTITY_TYPES.flatMap((type) => {
29
+ if (!record) return [];
30
+ return PAYMENT_IDENTITY_TYPES.flatMap(type => {
56
31
  const value = normalizePaymentIdentityValue(getPaymentIdentityValue(record, type));
57
32
  return value === null ? [] : [`${type}:${value}`];
58
33
  });
59
34
  }
60
35
  function isPendingOrderPayment(payment) {
61
36
  const record = payment;
62
- return String((record == null ? void 0 : record.status) || "").toLowerCase() === "payment_pending";
37
+ return String(record?.status || '').toLowerCase() === 'payment_pending';
63
38
  }
64
39
  function isIdentifiedPendingOrderPayment(payment) {
65
40
  return isPendingOrderPayment(payment) && getOrderPaymentIdentityKeys(payment).length > 0;
66
41
  }
67
42
  function hasOrderPaymentIdentityOverlap(left, right) {
68
43
  const leftKeys = new Set(getOrderPaymentIdentityKeys(left));
69
- if (leftKeys.size === 0)
70
- return false;
71
- return getOrderPaymentIdentityKeys(right).some((key) => leftKeys.has(key));
44
+ if (leftKeys.size === 0) return false;
45
+ return getOrderPaymentIdentityKeys(right).some(key => leftKeys.has(key));
72
46
  }
73
- function resolveOrderPaymentIdentity(payments, identity, mode = "payment_number") {
47
+ function resolveOrderPaymentIdentity(payments, identity, mode = 'payment_number') {
74
48
  const target = String(identity);
75
- const identityTypes = mode === "payment_number" ? ["payment_number"] : PAYMENT_IDENTITY_TYPES;
76
- const matchesByIndex = /* @__PURE__ */ new Map();
49
+ const identityTypes = mode === 'payment_number' ? ['payment_number'] : PAYMENT_IDENTITY_TYPES;
50
+ const matchesByIndex = new Map();
77
51
  for (const type of identityTypes) {
78
52
  (payments || []).forEach((payment, index) => {
79
53
  const value = normalizePaymentIdentityValue(getPaymentIdentityValue(payment, type));
80
54
  if (value === target && !matchesByIndex.has(index)) {
81
- matchesByIndex.set(index, { index, payment, matchedBy: type });
55
+ matchesByIndex.set(index, {
56
+ index,
57
+ payment,
58
+ matchedBy: type
59
+ });
82
60
  }
83
61
  });
84
62
  }
@@ -90,26 +68,32 @@ function resolveOrderPaymentIdentity(payments, identity, mode = "payment_number"
90
68
  }
91
69
  function ensureOrderPaymentNumber(payment, devicePrefix, createPaymentNumber) {
92
70
  const existing = normalizePaymentIdentityValue(payment.payment_number);
93
- if (existing)
94
- return { ...payment, payment_number: existing };
71
+ if (existing) return {
72
+ ...payment,
73
+ payment_number: existing
74
+ };
95
75
  const uuid = normalizePaymentIdentityValue(payment.uuid) || createPaymentNumber();
96
- const prefix = normalizePaymentIdentityValue(devicePrefix) || "LOCAL";
97
- return { ...payment, payment_number: `${prefix}_${uuid}` };
76
+ const prefix = normalizePaymentIdentityValue(devicePrefix) || 'LOCAL';
77
+ // TODO: 使用 ID Generator 替换当前 UUID 段生成器。
78
+ return {
79
+ ...payment,
80
+ payment_number: `${prefix}_${uuid}`
81
+ };
98
82
  }
99
83
  function mergeOrderPaymentTransactions(current, incoming) {
100
- const records = /* @__PURE__ */ new Map();
101
- const append = (value) => {
102
- if (!Array.isArray(value))
103
- return;
104
- value.forEach((item) => {
105
- const number = item && typeof item === "object" ? String(item.number || "") : "";
106
- const status = item && typeof item === "object" ? item.status : void 0;
107
- if (!number || status !== "success" && status !== "fail")
108
- return;
84
+ const records = new Map();
85
+ const append = value => {
86
+ if (!Array.isArray(value)) return;
87
+ value.forEach(item => {
88
+ const number = item && typeof item === 'object' ? String(item.number || '') : '';
89
+ const status = item && typeof item === 'object' ? item.status : undefined;
90
+ if (!number || status !== 'success' && status !== 'fail') return;
109
91
  const previous = records.get(number);
110
- if ((previous == null ? void 0 : previous.status) === "success" && status === "fail")
111
- return;
112
- records.set(number, { number, status });
92
+ if (previous?.status === 'success' && status === 'fail') return;
93
+ records.set(number, {
94
+ number,
95
+ status
96
+ });
113
97
  });
114
98
  };
115
99
  append(current);
@@ -119,12 +103,9 @@ function mergeOrderPaymentTransactions(current, incoming) {
119
103
  function mergeOrderPaymentRecord(payment, updates) {
120
104
  const currentMetadata = payment.metadata || {};
121
105
  const incomingMetadata = updates.metadata || {};
122
- const transactions = mergeOrderPaymentTransactions(
123
- currentMetadata.transactions,
124
- incomingMetadata.transactions
125
- );
126
- const currentPaid = payment.status === "paid";
127
- const nextStatus = currentPaid && updates.status !== "paid" ? "paid" : updates.status ?? payment.status;
106
+ const transactions = mergeOrderPaymentTransactions(currentMetadata.transactions, incomingMetadata.transactions);
107
+ const currentPaid = payment.status === 'paid';
108
+ const nextStatus = currentPaid && updates.status !== 'paid' ? 'paid' : updates.status ?? payment.status;
128
109
  return {
129
110
  ...payment,
130
111
  ...updates,
@@ -133,30 +114,21 @@ function mergeOrderPaymentRecord(payment, updates) {
133
114
  metadata: {
134
115
  ...currentMetadata,
135
116
  ...incomingMetadata,
136
- ...transactions.length > 0 || Array.isArray(incomingMetadata.transactions) ? { transactions } : {}
117
+ ...(transactions.length > 0 || Array.isArray(incomingMetadata.transactions) ? {
118
+ transactions
119
+ } : {})
137
120
  }
138
121
  };
139
122
  }
140
123
  function mergeOrderPaymentSnapshot(current, incoming) {
141
124
  const currentMetadata = current.metadata || {};
142
125
  const incomingMetadata = incoming.metadata || {};
143
- const currentUniquePaymentNumber = normalizePaymentIdentityValue(
144
- currentMetadata.unique_payment_number
145
- );
146
- const incomingUniquePaymentNumber = normalizePaymentIdentityValue(
147
- incomingMetadata.unique_payment_number
148
- );
149
- const incomingOrderPaymentId = normalizePaymentIdentityValue(
150
- incoming.order_payment_id
151
- );
126
+ const currentUniquePaymentNumber = normalizePaymentIdentityValue(currentMetadata.unique_payment_number);
127
+ const incomingUniquePaymentNumber = normalizePaymentIdentityValue(incomingMetadata.unique_payment_number);
128
+ const incomingOrderPaymentId = normalizePaymentIdentityValue(incoming.order_payment_id);
152
129
  const incomingFallbackPrefix = incomingOrderPaymentId ? `os-fallback:payment:order-payment:${incomingOrderPaymentId}` : null;
153
- const incomingUsesDerivedUniquePaymentNumber = Boolean(
154
- incomingUniquePaymentNumber && incomingFallbackPrefix && (incomingUniquePaymentNumber === incomingFallbackPrefix || incomingUniquePaymentNumber.startsWith(`${incomingFallbackPrefix}:conflict:`))
155
- );
156
- const transactions = mergeOrderPaymentTransactions(
157
- currentMetadata.transactions,
158
- incomingMetadata.transactions
159
- );
130
+ const incomingUsesDerivedUniquePaymentNumber = Boolean(incomingUniquePaymentNumber && incomingFallbackPrefix && (incomingUniquePaymentNumber === incomingFallbackPrefix || incomingUniquePaymentNumber.startsWith(`${incomingFallbackPrefix}:conflict:`)));
131
+ const transactions = mergeOrderPaymentTransactions(currentMetadata.transactions, incomingMetadata.transactions);
160
132
  return {
161
133
  ...current,
162
134
  ...incoming,
@@ -165,8 +137,12 @@ function mergeOrderPaymentSnapshot(current, incoming) {
165
137
  metadata: {
166
138
  ...currentMetadata,
167
139
  ...incomingMetadata,
168
- ...incomingUsesDerivedUniquePaymentNumber && currentUniquePaymentNumber ? { unique_payment_number: currentUniquePaymentNumber } : {},
169
- ...transactions.length > 0 ? { transactions } : {}
140
+ ...(incomingUsesDerivedUniquePaymentNumber && currentUniquePaymentNumber ? {
141
+ unique_payment_number: currentUniquePaymentNumber
142
+ } : {}),
143
+ ...(transactions.length > 0 ? {
144
+ transactions
145
+ } : {})
170
146
  }
171
147
  };
172
148
  }
@@ -191,34 +167,15 @@ function compactOrderPaymentList(payments) {
191
167
  return result;
192
168
  }
193
169
  function mergeOrderPaymentListsByIdentity(existing, incoming, options = {}) {
194
- const existingList = compactOrderPaymentList([...existing || []]);
195
- const incomingList = compactOrderPaymentList([...incoming || []]);
170
+ const existingList = compactOrderPaymentList([...(existing || [])]);
171
+ const incomingList = compactOrderPaymentList([...(incoming || [])]);
196
172
  if (options.preserveUnmatchedExisting) {
197
173
  return compactOrderPaymentList([...existingList, ...incomingList]);
198
174
  }
199
- const mergedIncoming = incomingList.map((incomingPayment) => {
200
- const matchingExisting = existingList.filter((existingPayment) => hasOrderPaymentIdentityOverlap(existingPayment, incomingPayment));
201
- return matchingExisting.reduce(
202
- (merged, existingPayment) => mergeOrderPaymentSnapshot(existingPayment, merged),
203
- incomingPayment
204
- );
175
+ const mergedIncoming = incomingList.map(incomingPayment => {
176
+ const matchingExisting = existingList.filter(existingPayment => hasOrderPaymentIdentityOverlap(existingPayment, incomingPayment));
177
+ return matchingExisting.reduce((merged, existingPayment) => mergeOrderPaymentSnapshot(existingPayment, merged), incomingPayment);
205
178
  });
206
- const preservedExisting = options.preserveUnmatchedExistingWhen ? existingList.filter((existingPayment) => {
207
- var _a;
208
- return !incomingList.some((incomingPayment) => hasOrderPaymentIdentityOverlap(existingPayment, incomingPayment)) && ((_a = options.preserveUnmatchedExistingWhen) == null ? void 0 : _a.call(options, existingPayment));
209
- }) : [];
179
+ const preservedExisting = options.preserveUnmatchedExistingWhen ? existingList.filter(existingPayment => !incomingList.some(incomingPayment => hasOrderPaymentIdentityOverlap(existingPayment, incomingPayment)) && options.preserveUnmatchedExistingWhen?.(existingPayment)) : [];
210
180
  return compactOrderPaymentList([...mergedIncoming, ...preservedExisting]);
211
- }
212
- // Annotate the CommonJS export names for ESM import in node:
213
- 0 && (module.exports = {
214
- ensureOrderPaymentNumber,
215
- getOrderPaymentIdentityKeys,
216
- hasOrderPaymentIdentityOverlap,
217
- isIdentifiedPendingOrderPayment,
218
- isPendingOrderPayment,
219
- mergeOrderPaymentListsByIdentity,
220
- mergeOrderPaymentRecord,
221
- mergeOrderPaymentSnapshot,
222
- mergeOrderPaymentTransactions,
223
- resolveOrderPaymentIdentity
224
- });
181
+ }
@@ -1,37 +1,90 @@
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);
1
+ "use strict";
18
2
 
19
- // src/modules/Order/types.ts
20
- var types_exports = {};
21
- __export(types_exports, {
22
- OrderHooks: () => OrderHooks
23
- });
24
- module.exports = __toCommonJS(types_exports);
25
- var OrderHooks = /* @__PURE__ */ ((OrderHooks2) => {
26
- OrderHooks2["OnOrderCreate"] = "order:onOrderCreate";
27
- OrderHooks2["OnOrderUpdate"] = "order:onOrderUpdate";
28
- OrderHooks2["OnOrderCancel"] = "order:onOrderCancel";
29
- OrderHooks2["OnOrderStatusChange"] = "order:onOrderStatusChange";
30
- OrderHooks2["OnOrderCustomerChange"] = "order:onOrderCustomerChange";
31
- OrderHooks2["OnPromotionApplied"] = "order:onPromotionApplied";
32
- return OrderHooks2;
33
- })(OrderHooks || {});
34
- // Annotate the CommonJS export names for ESM import in node:
35
- 0 && (module.exports = {
36
- OrderHooks
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
37
5
  });
6
+ exports.OrderHooks = void 0;
7
+ let OrderHooks = exports.OrderHooks = /*#__PURE__*/function (OrderHooks) {
8
+ OrderHooks["OnOrderCreate"] = "order:onOrderCreate";
9
+ OrderHooks["OnOrderUpdate"] = "order:onOrderUpdate";
10
+ OrderHooks["OnOrderCancel"] = "order:onOrderCancel";
11
+ OrderHooks["OnOrderStatusChange"] = "order:onOrderStatusChange";
12
+ OrderHooks["OnOrderCustomerChange"] = "order:onOrderCustomerChange";
13
+ OrderHooks["OnPromotionApplied"] = "order:onPromotionApplied";
14
+ return OrderHooks;
15
+ }({});
16
+ /**
17
+ * 促销评估器协议(OS 与 PromotionEvaluator 之间的桥接接口)。
18
+ *
19
+ * 与 `pisell_os/src/model/strategy/adapter/promotion/evaluator.ts` 中的
20
+ * `PromotionEvaluator` 实例结构保持兼容。SalesSdkProvider 会从 `appHelper.utils.promotionEvaluator`
21
+ * 读取实例并通过 `setPromotionEvaluator` 注入到 OrderModule。
22
+ *
23
+ * 这里只声明 OrderModule 需要调用的子集,避免反向依赖具体 evaluator 实现。
24
+ */
25
+ /** 赠品解析回调 context(OS → SDK 的请求体) */
26
+ /**
27
+ * 赠品 resolver 返回值。
28
+ *
29
+ * @example
30
+ * return { products: [giftProduct], bookings: [giftBooking] };
31
+ */
32
+ /**
33
+ * 赠品解析回调签名(SDK → OS 的返回值)。
34
+ *
35
+ * - 单选项:SDK 内部自动构造商品,不弹窗
36
+ * - 多选项:SDK 弹窗等用户确认后构造
37
+ * - 用户取消:抛错或返回空数组(OS 视为放弃本次添加)
38
+ *
39
+ * 返回数组时沿用旧协议,只写 tempOrder.products;返回对象时可同时写入预约 bookings。
40
+ */
41
+ /** 未满足的促销策略(购物车底部 alert 渲染源) */
42
+ /** 上一次 applyPromotion 计算出的赠品操作(仅供调试/读取使用) */
43
+ /** onPromotionApplied 事件 payload */
44
+ /**
45
+ * tempOrder 上的下单客户协议字段视图。
46
+ * 这些字段会随订单提交到后端。
47
+ *
48
+ * customer_id 与 OrderTempOrder.customer_id 保持一致(number | null),
49
+ * 调用方若持有 string id(如 ICustomer.id 联合类型),需自行 Number() 转型。
50
+ */
51
+ /**
52
+ * 写入下单客户的协议字段输入。
53
+ * `customer_id` 必传(null 表示无客户);其余字段缺省视为「清空」(全量覆盖语义)。
54
+ */
55
+ /**
56
+ * 下单客户变更事件 payload。
57
+ * - `patch`:tempOrder 上的协议字段视图(会随订单提交)
58
+ * - `snapshot`:UI 富字段快照(仅本地,不随订单提交)
59
+ * - `source`:缺省表示真实业务变更;`detailHydrate` 仅表示打开详情时快照已就绪
60
+ * 清空时整个 payload 为 null。
61
+ */
62
+ /**
63
+ * 添加商品行时的顺序控制。
64
+ * 默认追加到 products 尾部;预约数量同步可插入到既有预约组的最新行之后,
65
+ * 避免步进器修改数量改变该组展示位置。
66
+ */
67
+ /**
68
+ * 删除商品后的可选位置保持策略。
69
+ * 预约合并行减量时仍删除最新真实行,再把剩余代表行移动到被删除代表行原位置。
70
+ */
71
+ /** 更新购物车行:仅传 SKU 时命中同 SKU 第一行;多行同 SKU 须传 unique_identification_number / 选项指纹等 */
72
+ /** 仅更新购物车行数量;行定位语义与 updateOrderProduct / removeProductFromOrder 保持一致 */
73
+ /**
74
+ * 订单信息
75
+ */
76
+ /**
77
+ * 支付项数据
78
+ */
79
+ /**
80
+ * Checkout 专用订单创建参数
81
+ */
82
+ /**
83
+ * 取消订单参数
84
+ */
85
+ /**
86
+ * 变更预约状态参数
87
+ */
88
+ /**
89
+ * 订单模块 API
90
+ */
@@ -1,99 +1,72 @@
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);
1
+ "use strict";
18
2
 
19
- // src/modules/Order/utils/bundleDiscountHydration.ts
20
- var bundleDiscountHydration_exports = {};
21
- __export(bundleDiscountHydration_exports, {
22
- expandHydratedProductsForDiscountCollection: () => expandHydratedProductsForDiscountCollection,
23
- restoreHydratedBundleDiscounts: () => restoreHydratedBundleDiscounts
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
24
5
  });
25
- module.exports = __toCommonJS(bundleDiscountHydration_exports);
26
- var BUNDLE_MAP_ID_KEY = "custom_product_bundle_map_id";
6
+ exports.expandHydratedProductsForDiscountCollection = expandHydratedProductsForDiscountCollection;
7
+ exports.restoreHydratedBundleDiscounts = restoreHydratedBundleDiscounts;
8
+ const BUNDLE_MAP_ID_KEY = 'custom_product_bundle_map_id';
27
9
  function getBundleMapId(bundle) {
28
- var _a;
29
- const metadataMapId = (_a = bundle == null ? void 0 : bundle.metadata) == null ? void 0 : _a[BUNDLE_MAP_ID_KEY];
30
- if (metadataMapId !== void 0 && metadataMapId !== null && metadataMapId !== "") {
10
+ const metadataMapId = bundle?.metadata?.[BUNDLE_MAP_ID_KEY];
11
+ if (metadataMapId !== undefined && metadataMapId !== null && metadataMapId !== '') {
31
12
  return String(metadataMapId);
32
13
  }
33
- if ((bundle == null ? void 0 : bundle._id) !== void 0 && bundle._id !== null && bundle._id !== "") {
14
+ if (bundle?._id !== undefined && bundle._id !== null && bundle._id !== '') {
34
15
  return String(bundle._id);
35
16
  }
36
17
  return null;
37
18
  }
38
19
  function getDiscountBundleMapId(discount) {
39
- var _a;
40
- const mapId = (_a = discount == null ? void 0 : discount.metadata) == null ? void 0 : _a[BUNDLE_MAP_ID_KEY];
41
- if (mapId === void 0 || mapId === null || mapId === "")
42
- return null;
20
+ const mapId = discount?.metadata?.[BUNDLE_MAP_ID_KEY];
21
+ if (mapId === undefined || mapId === null || mapId === '') return null;
43
22
  return String(mapId);
44
23
  }
45
24
  function hasSameBundleDiscount(discountList, discount) {
46
- var _a;
47
25
  const targetOrderDiscountId = discount.order_discount_id;
48
- if (targetOrderDiscountId !== void 0 && targetOrderDiscountId !== null) {
49
- return discountList.some((item) => (item == null ? void 0 : item.order_discount_id) === targetOrderDiscountId);
26
+ if (targetOrderDiscountId !== undefined && targetOrderDiscountId !== null) {
27
+ return discountList.some(item => item?.order_discount_id === targetOrderDiscountId);
50
28
  }
51
- const targetResourceId = ((_a = discount == null ? void 0 : discount.discount) == null ? void 0 : _a.resource_id) ?? (discount == null ? void 0 : discount.resource_id) ?? (discount == null ? void 0 : discount.discount_id);
29
+ const targetResourceId = discount?.discount?.resource_id ?? discount?.resource_id ?? discount?.discount_id;
52
30
  const targetMapId = getDiscountBundleMapId(discount);
53
- return discountList.some((item) => {
54
- var _a2;
55
- const resourceId = ((_a2 = item == null ? void 0 : item.discount) == null ? void 0 : _a2.resource_id) ?? (item == null ? void 0 : item.resource_id) ?? (item == null ? void 0 : item.discount_id);
56
- return resourceId === targetResourceId && String((item == null ? void 0 : item.amount) ?? "") === String((discount == null ? void 0 : discount.amount) ?? "") && getDiscountBundleMapId(item) === targetMapId;
31
+ return discountList.some(item => {
32
+ const resourceId = item?.discount?.resource_id ?? item?.resource_id ?? item?.discount_id;
33
+ return resourceId === targetResourceId && String(item?.amount ?? '') === String(discount?.amount ?? '') && getDiscountBundleMapId(item) === targetMapId;
57
34
  });
58
35
  }
59
36
  function restoreHydratedBundleDiscounts(product, normalizeDiscountList) {
60
37
  if (!Array.isArray(product.product_bundle) || !Array.isArray(product.discount_list)) {
61
38
  return product;
62
39
  }
63
- const bundleByMapId = /* @__PURE__ */ new Map();
64
- product.product_bundle.forEach((bundle) => {
65
- if (!bundle || typeof bundle !== "object")
66
- return;
40
+ const bundleByMapId = new Map();
41
+ product.product_bundle.forEach(bundle => {
42
+ if (!bundle || typeof bundle !== 'object') return;
67
43
  const mapId = getBundleMapId(bundle);
68
- if (mapId)
69
- bundleByMapId.set(mapId, bundle);
44
+ if (mapId) bundleByMapId.set(mapId, bundle);
70
45
  });
71
- if (!bundleByMapId.size)
72
- return product;
46
+ if (!bundleByMapId.size) return product;
73
47
  const mainDiscountList = [];
74
48
  const bundleDiscounts = [];
75
- product.discount_list.forEach((discount) => {
49
+ product.discount_list.forEach(discount => {
76
50
  const mapId = getDiscountBundleMapId(discount);
77
51
  if (mapId && bundleByMapId.has(mapId)) {
78
- bundleDiscounts.push({ mapId, discount });
52
+ bundleDiscounts.push({
53
+ mapId,
54
+ discount
55
+ });
79
56
  } else {
80
57
  mainDiscountList.push(discount);
81
58
  }
82
59
  });
83
- if (!bundleDiscounts.length)
84
- return product;
60
+ if (!bundleDiscounts.length) return product;
85
61
  return {
86
62
  ...product,
87
63
  discount_list: normalizeDiscountList(mainDiscountList),
88
- product_bundle: product.product_bundle.map((bundle) => {
89
- if (!bundle || typeof bundle !== "object")
90
- return bundle;
64
+ product_bundle: product.product_bundle.map(bundle => {
65
+ if (!bundle || typeof bundle !== 'object') return bundle;
91
66
  const mapId = getBundleMapId(bundle);
92
- if (!mapId)
93
- return bundle;
94
- const matchedDiscounts = bundleDiscounts.filter((item) => item.mapId === mapId).map((item) => item.discount);
95
- if (!matchedDiscounts.length)
96
- return bundle;
67
+ if (!mapId) return bundle;
68
+ const matchedDiscounts = bundleDiscounts.filter(item => item.mapId === mapId).map(item => item.discount);
69
+ if (!matchedDiscounts.length) return bundle;
97
70
  const currentDiscountList = Array.isArray(bundle.discount_list) ? [...bundle.discount_list] : [];
98
71
  for (const discount of matchedDiscounts) {
99
72
  if (!hasSameBundleDiscount(currentDiscountList, discount)) {
@@ -104,7 +77,7 @@ function restoreHydratedBundleDiscounts(product, normalizeDiscountList) {
104
77
  ...bundle,
105
78
  discount_list: normalizeDiscountList(currentDiscountList),
106
79
  metadata: {
107
- ...bundle.metadata || {},
80
+ ...(bundle.metadata || {}),
108
81
  [BUNDLE_MAP_ID_KEY]: mapId
109
82
  }
110
83
  };
@@ -115,25 +88,19 @@ function expandHydratedProductsForDiscountCollection(products) {
115
88
  const expanded = [];
116
89
  for (const product of products || []) {
117
90
  expanded.push(product);
118
- for (const bundle of (product == null ? void 0 : product.product_bundle) || []) {
119
- if (!Array.isArray(bundle == null ? void 0 : bundle.discount_list) || bundle.discount_list.length === 0)
120
- continue;
91
+ for (const bundle of product?.product_bundle || []) {
92
+ if (!Array.isArray(bundle?.discount_list) || bundle.discount_list.length === 0) continue;
121
93
  expanded.push({
122
94
  ...product,
123
- product_id: bundle.bundle_product_id ?? bundle._bundle_product_id ?? bundle.product_id ?? (product == null ? void 0 : product.product_id),
124
- num: bundle.num ?? bundle.quantity ?? (product == null ? void 0 : product.num),
125
- product_quantity: bundle.quantity ?? bundle.num ?? (product == null ? void 0 : product.product_quantity),
95
+ product_id: bundle.bundle_product_id ?? bundle._bundle_product_id ?? bundle.product_id ?? product?.product_id,
96
+ num: bundle.num ?? bundle.quantity ?? product?.num,
97
+ product_quantity: bundle.quantity ?? bundle.num ?? product?.product_quantity,
126
98
  original_price: bundle.original_price ?? bundle.product_price ?? bundle.price,
127
99
  selling_price: bundle.bundle_selling_price ?? bundle.price,
128
- is_charge_tax: bundle.is_charge_tax ?? (product == null ? void 0 : product.is_charge_tax),
100
+ is_charge_tax: bundle.is_charge_tax ?? product?.is_charge_tax,
129
101
  discount_list: bundle.discount_list
130
102
  });
131
103
  }
132
104
  }
133
105
  return expanded;
134
- }
135
- // Annotate the CommonJS export names for ESM import in node:
136
- 0 && (module.exports = {
137
- expandHydratedProductsForDiscountCollection,
138
- restoreHydratedBundleDiscounts
139
- });
106
+ }