@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,132 +1,130 @@
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/BaseSales/utils.ts
30
+ var utils_exports = {};
31
+ __export(utils_exports, {
32
+ buildProductLineFingerprint: () => buildProductLineFingerprint,
33
+ createEmptySummary: () => createEmptySummary,
34
+ getSafeProductNum: () => getSafeProductNum,
35
+ isSkuOnlyDeleteIdentity: () => isSkuOnlyDeleteIdentity,
36
+ normalizeOrderProduct: () => normalizeOrderProduct
5
37
  });
6
- exports.buildProductLineFingerprint = buildProductLineFingerprint;
7
- exports.createEmptySummary = createEmptySummary;
8
- exports.getSafeProductNum = getSafeProductNum;
9
- exports.isSkuOnlyDeleteIdentity = isSkuOnlyDeleteIdentity;
10
- exports.normalizeOrderProduct = normalizeOrderProduct;
11
- var _decimal = _interopRequireDefault(require("decimal.js"));
12
- var _utils = require("../../modules/Order/utils");
13
- var _manualProductDiscount = require("../../modules/Order/utils/manualProductDiscount");
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
- /**
16
- * 构建金额全为 0 的空 summary。
17
- * 作为尚未计算金额时的兜底默认值,避免下游因 undefined 报错。
18
- */
38
+ module.exports = __toCommonJS(utils_exports);
39
+ var import_decimal = __toESM(require("decimal.js"));
40
+ var import_utils = require("../../modules/Order/utils");
41
+ var import_manualProductDiscount = require("../../modules/Order/utils/manualProductDiscount");
19
42
  function createEmptySummary() {
20
43
  return {
21
44
  product_quantity: 0,
22
- product_original_amount: '0.00',
23
- product_amount: '0.00',
24
- product_expect_amount: '0.00',
25
- product_tax_fee: '0.00',
26
- shipping_fee: '0.00',
27
- shipping_tax_fee: '0.00',
28
- tax_fee: '0.00',
29
- surcharge_fee: '0.00',
30
- discount_amount: '0.00',
31
- deposit_amount: '0.00',
32
- expect_amount: '0.00',
33
- total_amount: '0.00',
34
- amount_gap: '0.00',
35
- rounding_amount: '0.00',
36
- pay_service_charge_amount: '0.00'
45
+ product_original_amount: "0.00",
46
+ product_amount: "0.00",
47
+ product_expect_amount: "0.00",
48
+ product_tax_fee: "0.00",
49
+ shipping_fee: "0.00",
50
+ shipping_tax_fee: "0.00",
51
+ tax_fee: "0.00",
52
+ surcharge_fee: "0.00",
53
+ discount_amount: "0.00",
54
+ deposit_amount: "0.00",
55
+ expect_amount: "0.00",
56
+ total_amount: "0.00",
57
+ amount_gap: "0.00",
58
+ rounding_amount: "0.00",
59
+ pay_service_charge_amount: "0.00"
37
60
  };
38
61
  }
39
- /**
40
- * 将选项行 / 套餐行归一成稳定 JSON,用于「同 SKU 是否合并」判断。
41
- * 数组元素先按主键排序再序列化,避免顺序差异导致误判为不同行。
42
- */
43
62
  function buildProductLineFingerprint(productOptionItem, productBundle) {
44
63
  const optArr = Array.isArray(productOptionItem) ? productOptionItem : [];
45
- const normalizedOpts = optArr.map(item => ({
46
- option_group_item_id: Number(item?.option_group_item_id) || 0,
47
- option_group_id: Number(item?.option_group_id) || 0,
48
- num: typeof item?.num === 'number' && !Number.isNaN(item.num) ? Math.max(1, Math.floor(item.num)) : 1,
49
- price: String(item?.add_price ?? item?.price ?? '')
64
+ const normalizedOpts = optArr.map((item) => ({
65
+ option_group_item_id: Number(item == null ? void 0 : item.option_group_item_id) || 0,
66
+ option_group_id: Number(item == null ? void 0 : item.option_group_id) || 0,
67
+ num: typeof (item == null ? void 0 : item.num) === "number" && !Number.isNaN(item.num) ? Math.max(1, Math.floor(item.num)) : 1,
68
+ price: String((item == null ? void 0 : item.add_price) ?? (item == null ? void 0 : item.price) ?? "")
50
69
  })).sort((p, q) => {
51
70
  if (p.option_group_item_id !== q.option_group_item_id) {
52
71
  return p.option_group_item_id - q.option_group_item_id;
53
72
  }
54
- if (p.option_group_id !== q.option_group_id) return p.option_group_id - q.option_group_id;
55
- if (p.num !== q.num) return p.num - q.num;
73
+ if (p.option_group_id !== q.option_group_id)
74
+ return p.option_group_id - q.option_group_id;
75
+ if (p.num !== q.num)
76
+ return p.num - q.num;
56
77
  return p.price.localeCompare(q.price);
57
78
  });
58
79
  const bundleArr = Array.isArray(productBundle) ? productBundle : [];
59
- const normalizedBundles = bundleArr.map(item => ({
60
- bundle_id: Number(item?.bundle_id ?? item?.id ?? 0) || 0,
61
- product_id: Number(item?.product_id) || 0,
62
- num: typeof item?.num === 'number' && !Number.isNaN(item.num) ? Math.max(1, Math.floor(item.num)) : 1
80
+ const normalizedBundles = bundleArr.map((item) => ({
81
+ bundle_id: Number((item == null ? void 0 : item.bundle_id) ?? (item == null ? void 0 : item.id) ?? 0) || 0,
82
+ product_id: Number(item == null ? void 0 : item.product_id) || 0,
83
+ num: typeof (item == null ? void 0 : item.num) === "number" && !Number.isNaN(item.num) ? Math.max(1, Math.floor(item.num)) : 1
63
84
  })).sort((p, q) => {
64
- if (p.bundle_id !== q.bundle_id) return p.bundle_id - q.bundle_id;
65
- if (p.product_id !== q.product_id) return p.product_id - q.product_id;
85
+ if (p.bundle_id !== q.bundle_id)
86
+ return p.bundle_id - q.bundle_id;
87
+ if (p.product_id !== q.product_id)
88
+ return p.product_id - q.product_id;
66
89
  return p.num - q.num;
67
90
  });
68
91
  return JSON.stringify([normalizedOpts, normalizedBundles]);
69
92
  }
70
93
  function getSafeProductNum(num) {
71
- if (!num || Number.isNaN(num)) return 1;
72
- if (num < 1) return 1;
94
+ if (!num || Number.isNaN(num))
95
+ return 1;
96
+ if (num < 1)
97
+ return 1;
73
98
  return Math.floor(num);
74
99
  }
75
-
76
- /**
77
- * removeProductFromOrder 仅传 SKU 时的通配 identity(对象上未声明选项键)。
78
- * 与显式 `product_sku: { option: [] }` 区分:后者只匹配「无选项」行。
79
- */
80
100
  function isSkuOnlyDeleteIdentity(x) {
81
- if (x.identity_key) return false;
82
- return !('product_sku' in x) && !('product_bundle' in x);
101
+ if (x.identity_key)
102
+ return false;
103
+ return !("product_sku" in x) && !("product_bundle" in x);
83
104
  }
84
-
85
- /**
86
- * 对外部传入的商品对象做归一化(v2 composite 语义):
87
- * - 补全可选字段默认值(未传则使用兜底值,避免后续计算时因 undefined 导致异常)
88
- * - 对 num 调用 getSafeProductNum 做安全处理
89
- * - 保留 _origin 供后续业务流程(如促销规则)使用
90
- *
91
- * 价格字段语义(metadata 权威源 + composite 派生):
92
- * - `metadata.source_product_price`:主商品/variant 基础价(已应用报价单),**不含 option**、
93
- * **不含折扣**。是推导 main_product_* 的起点。variant 分支优先读 `metadata.origin.variant[vid].price`。
94
- * - `metadata.main_product_original_price`:`source + Σ(option.price × option.num)`,**含 option**、
95
- * **不含折扣**。
96
- * - `metadata.main_product_selling_price`:`main_product_original_price - 主商品券 per-unit amount`,
97
- * **含 option**、**含折扣**。
98
- * - 行级 `selling_price` = `main_product_selling_price + Σ(bundle_selling_price × num)`。
99
- * - 行级 `original_price` = `main_product_original_price + Σ(bundle 原价 × num)`。
100
- *
101
- * 迁移与幂等:
102
- * - `metadata.price_schema_version === 2` → 已新语义归一化,保留 main_product_* 原值(保留折扣)。
103
- * - 其它情况(v1 / 缺字段 / 无 metadata)→ 按"main_product_selling_price 曾是 main-only"的旧约定
104
- * 反推 legacyDiscount,再以新 source + options 基准重算。最终统一打上 `price_schema_version: 2`。
105
- * - 因此多次 normalize 不会重复叠加 option/bundle。
106
- */
107
105
  function normalizeOrderProduct(product) {
108
- const metadata = {
109
- ...(product.metadata || {})
110
- };
111
- // 不透明 identity 契约:每条订单行必须带 identity_key。
112
- // 调用方未传时由 SDK 自动生成 UUID,后续 update/remove 只做严格比对,避免猜测合成 key。
113
- const resolvedIdentityKey = product.metadata?.unique_identification_number ? String(product.metadata.unique_identification_number) : product.unique_identification_number && String(product.unique_identification_number).length > 0 ? String(product.unique_identification_number) : product.identity_key && String(product.identity_key).length > 0 ? String(product.identity_key) : (0, _utils.createUuidV4)();
106
+ var _a, _b, _c, _d, _e, _f, _g;
107
+ const metadata = { ...product.metadata || {} };
108
+ const resolvedIdentityKey = ((_a = product.metadata) == null ? void 0 : _a.unique_identification_number) ? String(product.metadata.unique_identification_number) : product.unique_identification_number && String(product.unique_identification_number).length > 0 ? String(product.unique_identification_number) : product.identity_key && String(product.identity_key).length > 0 ? String(product.identity_key) : (0, import_utils.createUuidV4)();
114
109
  metadata.unique_identification_number = resolvedIdentityKey;
115
110
  const priceOverride = metadata.price_override;
116
- const originOtherBundle = metadata.origin?._extend?.other?.bundle;
111
+ const originOtherBundle = (_d = (_c = (_b = metadata.origin) == null ? void 0 : _b._extend) == null ? void 0 : _c.other) == null ? void 0 : _d.bundle;
117
112
  let bundleInput = product.product_bundle || [];
118
- if (priceOverride !== undefined && priceOverride !== null && priceOverride !== '' && Array.isArray(originOtherBundle) && originOtherBundle.length > 0) {
119
- const priceById = new Map();
120
- originOtherBundle.forEach(item => {
121
- if (item?.id == null) return;
113
+ if (priceOverride !== void 0 && priceOverride !== null && priceOverride !== "" && Array.isArray(originOtherBundle) && originOtherBundle.length > 0) {
114
+ const priceById = /* @__PURE__ */ new Map();
115
+ originOtherBundle.forEach((item) => {
116
+ if ((item == null ? void 0 : item.id) == null)
117
+ return;
122
118
  const unit = item.price ?? item.bundle_selling_price;
123
- if (unit === undefined || unit === null) return;
119
+ if (unit === void 0 || unit === null)
120
+ return;
124
121
  priceById.set(String(item.id), String(unit));
125
122
  });
126
123
  const base = Array.isArray(bundleInput) && bundleInput.length > 0 ? bundleInput : originOtherBundle;
127
- bundleInput = base.map(item => {
128
- const unit = priceById.get(String(item?.id));
129
- if (unit === undefined) return item;
124
+ bundleInput = base.map((item) => {
125
+ const unit = priceById.get(String(item == null ? void 0 : item.id));
126
+ if (unit === void 0)
127
+ return item;
130
128
  return {
131
129
  ...item,
132
130
  price: unit,
@@ -134,107 +132,86 @@ function normalizeOrderProduct(product) {
134
132
  };
135
133
  });
136
134
  }
137
- const normalizedBundle = bundleInput.map(item => ({
135
+ const normalizedBundle = bundleInput.map((item) => ({
138
136
  ...item,
139
137
  bundle_id: item.bundle_id ?? item.id,
140
138
  bundle_product_id: item.bundle_product_id ?? item._bundle_product_id,
141
139
  bundle_group_id: item.bundle_group_id ?? item.group_id,
142
- bundle_selling_price: item.bundle_selling_price ?? item.price ?? '0.00',
143
- price: item.price ?? item.custom_price ?? item.bundle_selling_price ?? '0.00',
144
- price_type: item.price_type ?? item.custom_price_type ?? '',
145
- price_type_ext: item.price_type_ext ?? item.custom_price_type_ext ?? ''
140
+ bundle_selling_price: item.bundle_selling_price ?? item.price ?? "0.00",
141
+ price: item.price ?? item.custom_price ?? item.bundle_selling_price ?? "0.00",
142
+ price_type: item.price_type ?? item.custom_price_type ?? "",
143
+ price_type_ext: item.price_type_ext ?? item.custom_price_type_ext ?? ""
146
144
  }));
147
- const normalizedOptions = (0, _utils.normalizeProductSkuOptions)(product.product_sku?.option);
148
- const optionSum = (0, _utils.sumOptionUnitPrice)(normalizedOptions);
145
+ const normalizedOptions = (0, import_utils.normalizeProductSkuOptions)((_e = product.product_sku) == null ? void 0 : _e.option);
146
+ const optionSum = (0, import_utils.sumOptionUnitPrice)(normalizedOptions);
149
147
  const productSku = {
150
- ...(0, _utils.ensureProductSku)(product),
148
+ ...(0, import_utils.ensureProductSku)(product),
151
149
  option: normalizedOptions
152
150
  };
153
-
154
- // 1) 解析 source_product_price。
155
- // 优先级:
156
- // 1) metadata.source_product_price(v2 权威)
157
- // 2) variantPrice(命中 variant_id,从 metadata.origin.variant[vid].price 读)
158
- // 3) _origin.price / _origin.base_price(后端语义的基础价)
159
- // 4) v1 兼容:无 v2 标记但存在 metadata.main_product_original_price(v1 main-only,即旧 source)
160
- // 5) 入参 original_price(v1 addProduct 约定:original_price 为 pre-discount 基础价)
161
- // 6) 入参 selling_price(最末兜底,新添加路径 caller 只给 selling_price)
162
- const isV2 = metadata.price_schema_version === 2 || metadata.price_schema_version === '2';
151
+ const isV2 = metadata.price_schema_version === 2 || metadata.price_schema_version === "2";
163
152
  const variantId = Number(product.product_variant_id || 0);
164
- const variantList = variantId ? metadata?.origin?.variant : null;
165
- const variantPrice = Array.isArray(variantList) ? variantList.find(v => Number(v?.id) === variantId)?.price : undefined;
153
+ const variantList = variantId ? (_f = metadata == null ? void 0 : metadata.origin) == null ? void 0 : _f.variant : null;
154
+ const variantPrice = Array.isArray(variantList) ? (_g = variantList.find((v) => Number(v == null ? void 0 : v.id) === variantId)) == null ? void 0 : _g.price : void 0;
166
155
  const resolvedSource = (() => {
167
- if (metadata.source_product_price !== undefined) {
156
+ var _a2, _b2;
157
+ if (metadata.source_product_price !== void 0) {
168
158
  return String(metadata.source_product_price);
169
159
  }
170
- if (variantPrice !== undefined && variantPrice !== null) {
160
+ if (variantPrice !== void 0 && variantPrice !== null) {
171
161
  return String(variantPrice);
172
162
  }
173
- const originPrice = product._origin?.price;
174
- if (originPrice !== undefined && originPrice !== null) {
163
+ const originPrice = (_a2 = product._origin) == null ? void 0 : _a2.price;
164
+ if (originPrice !== void 0 && originPrice !== null) {
175
165
  return String(originPrice);
176
166
  }
177
- const originBasePrice = product._origin?.base_price;
178
- if (originBasePrice !== undefined && originBasePrice !== null) {
167
+ const originBasePrice = (_b2 = product._origin) == null ? void 0 : _b2.base_price;
168
+ if (originBasePrice !== void 0 && originBasePrice !== null) {
179
169
  return String(originBasePrice);
180
170
  }
181
- if (!isV2 && metadata.main_product_original_price !== undefined) {
171
+ if (!isV2 && metadata.main_product_original_price !== void 0) {
182
172
  return String(metadata.main_product_original_price);
183
173
  }
184
- return product.original_price ?? product.selling_price ?? '0.00';
174
+ return product.original_price ?? product.selling_price ?? "0.00";
185
175
  })();
186
-
187
- // 2) 派生 main_product_original_price(含 option、不含折扣)
188
- const mainOriginalDec = new _decimal.default(Number(resolvedSource) || 0).plus(optionSum);
176
+ const mainOriginalDec = new import_decimal.default(Number(resolvedSource) || 0).plus(optionSum);
189
177
  const mainOriginalStr = mainOriginalDec.toDecimalPlaces(2).toFixed(2);
190
-
191
- // 3) 派生 main_product_selling_price(含 option、含主商品折扣)
192
- // - v2 数据:直接沿用 metadata.main_product_selling_price(保留折扣)
193
- // - v1 metadata:main_product_selling_price 旧语义是 main-only(≈ source-level 折后价),
194
- // 反推 legacyDiscount = main_original(旧) - main_selling(旧),再用新 main_original - legacyDiscount
195
- // - v1 addProduct 入参:top-level selling_price < original_price 表示主商品折扣;
196
- // 用差额作为 legacyDiscount 映射到新 main_selling
197
- // - 其它:视为无折扣,main_selling = main_original
198
178
  let mainSellingDec;
199
179
  if (isV2 && metadata.main_product_selling_price != null) {
200
- mainSellingDec = new _decimal.default(Number(metadata.main_product_selling_price) || 0);
180
+ mainSellingDec = new import_decimal.default(Number(metadata.main_product_selling_price) || 0);
201
181
  } else if (metadata.main_product_selling_price != null && metadata.main_product_original_price != null) {
202
- const legacyOriginal = new _decimal.default(Number(metadata.main_product_original_price) || 0);
203
- const legacySelling = new _decimal.default(Number(metadata.main_product_selling_price) || 0);
182
+ const legacyOriginal = new import_decimal.default(Number(metadata.main_product_original_price) || 0);
183
+ const legacySelling = new import_decimal.default(Number(metadata.main_product_selling_price) || 0);
204
184
  const legacyDiscount = legacyOriginal.minus(legacySelling);
205
185
  mainSellingDec = mainOriginalDec.minus(legacyDiscount);
206
- } else if (product.original_price != null && product.selling_price != null && new _decimal.default(Number(product.original_price) || 0).greaterThan(new _decimal.default(Number(product.selling_price) || 0))) {
207
- const topOriginal = new _decimal.default(Number(product.original_price) || 0);
208
- const topSelling = new _decimal.default(Number(product.selling_price) || 0);
186
+ } else if (product.original_price != null && product.selling_price != null && new import_decimal.default(Number(product.original_price) || 0).greaterThan(
187
+ new import_decimal.default(Number(product.selling_price) || 0)
188
+ )) {
189
+ const topOriginal = new import_decimal.default(Number(product.original_price) || 0);
190
+ const topSelling = new import_decimal.default(Number(product.selling_price) || 0);
209
191
  const legacyDiscount = topOriginal.minus(topSelling);
210
192
  mainSellingDec = mainOriginalDec.minus(legacyDiscount);
211
193
  } else {
212
194
  mainSellingDec = mainOriginalDec;
213
195
  }
214
196
  const mainSellingStr = mainSellingDec.toDecimalPlaces(2).toFixed(2);
215
-
216
- // 4) 落盘 metadata:三字段 + schema 版本 sentinel
217
197
  metadata.source_product_price = resolvedSource;
218
198
  metadata.main_product_original_price = mainOriginalStr;
219
199
  metadata.main_product_selling_price = mainSellingStr;
220
200
  metadata.price_schema_version = 2;
221
-
222
- // 5) 合成行级 composite(main 已含 option,本步只叠 bundle)
223
- const composedSellingPrice = (0, _utils.composeLinePrice)({
201
+ const composedSellingPrice = (0, import_utils.composeLinePrice)({
224
202
  mainPrice: mainSellingStr,
225
203
  bundle: normalizedBundle
226
204
  });
227
- const composedOriginalPrice = (0, _utils.composeLinePrice)({
205
+ const composedOriginalPrice = (0, import_utils.composeLinePrice)({
228
206
  mainPrice: mainOriginalStr,
229
207
  bundle: normalizedBundle,
230
208
  useOriginalBundle: true
231
209
  });
232
- const finalOriginalPrice = (0, _utils.resolveManualOverrideLineOriginalPrice)({
233
- num: product.num,
234
- metadata,
235
- lineOriginalPrice: product.original_price
236
- }, composedOriginalPrice);
237
- const discountList = (0, _manualProductDiscount.ensureManualProductDiscountList)({
210
+ const finalOriginalPrice = (0, import_utils.resolveManualOverrideLineOriginalPrice)(
211
+ { num: product.num, metadata, lineOriginalPrice: product.original_price },
212
+ composedOriginalPrice
213
+ );
214
+ const discountList = (0, import_manualProductDiscount.ensureManualProductDiscountList)({
238
215
  discountList: product.discount_list,
239
216
  metadata,
240
217
  originalPrice: finalOriginalPrice,
@@ -249,11 +226,19 @@ function normalizeOrderProduct(product) {
249
226
  product_sku: productSku,
250
227
  selling_price: composedSellingPrice,
251
228
  original_price: finalOriginalPrice,
252
- tax_fee: product.tax_fee || '0.00',
229
+ tax_fee: product.tax_fee || "0.00",
253
230
  is_charge_tax: product.is_charge_tax ?? 0,
254
231
  discount_list: discountList,
255
232
  product_bundle: normalizedBundle,
256
233
  metadata,
257
- note: product.note != null ? String(product.note) : ''
234
+ note: product.note != null ? String(product.note) : ""
258
235
  };
259
- }
236
+ }
237
+ // Annotate the CommonJS export names for ESM import in node:
238
+ 0 && (module.exports = {
239
+ buildProductLineFingerprint,
240
+ createEmptySummary,
241
+ getSafeProductNum,
242
+ isSkuOnlyDeleteIdentity,
243
+ normalizeOrderProduct
244
+ });
@@ -326,7 +326,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
326
326
  date: string;
327
327
  status: string;
328
328
  week: string;
329
- weekNum: 0 | 2 | 1 | 3 | 4 | 5 | 6;
329
+ weekNum: 0 | 1 | 5 | 2 | 4 | 3 | 6;
330
330
  }[]>;
331
331
  submitTimeSlot(timeSlots: TimeSliceItem): void;
332
332
  private getScheduleDataByIds;