@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,86 +1,60 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _exportNames = {
7
- ItemRuleEvaluator: true,
8
- ItemRuleAdapter: true,
9
- MIN_CONDIMENT_PER_PERSON_STRATEGY: true,
10
- MAX_BUNS_PER_TABLE_STRATEGY: true,
11
- HOTPOT_BASE_REQUIRED_STRATEGY: true,
12
- HOTPOT_BASE_PICK_ONE_STRATEGY: true,
13
- quickUseItemRuleEvaluator: true,
14
- runItemRuleEvaluatorDemo: true
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 });
15
10
  };
16
- Object.defineProperty(exports, "HOTPOT_BASE_PICK_ONE_STRATEGY", {
17
- enumerable: true,
18
- get: function () {
19
- return _examples.HOTPOT_BASE_PICK_ONE_STRATEGY;
20
- }
21
- });
22
- Object.defineProperty(exports, "HOTPOT_BASE_REQUIRED_STRATEGY", {
23
- enumerable: true,
24
- get: function () {
25
- return _examples.HOTPOT_BASE_REQUIRED_STRATEGY;
26
- }
27
- });
28
- Object.defineProperty(exports, "ItemRuleAdapter", {
29
- enumerable: true,
30
- get: function () {
31
- return _adapter.ItemRuleAdapter;
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 });
32
16
  }
17
+ return to;
18
+ };
19
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/model/strategy/adapter/itemRule/index.ts
31
+ var itemRule_exports = {};
32
+ __export(itemRule_exports, {
33
+ HOTPOT_BASE_PICK_ONE_STRATEGY: () => import_examples.HOTPOT_BASE_PICK_ONE_STRATEGY,
34
+ HOTPOT_BASE_REQUIRED_STRATEGY: () => import_examples.HOTPOT_BASE_REQUIRED_STRATEGY,
35
+ ItemRuleAdapter: () => import_adapter.ItemRuleAdapter,
36
+ ItemRuleEvaluator: () => import_evaluator.ItemRuleEvaluator,
37
+ MAX_BUNS_PER_TABLE_STRATEGY: () => import_examples.MAX_BUNS_PER_TABLE_STRATEGY,
38
+ MIN_CONDIMENT_PER_PERSON_STRATEGY: () => import_examples.MIN_CONDIMENT_PER_PERSON_STRATEGY,
39
+ default: () => import_adapter2.default,
40
+ quickUseItemRuleEvaluator: () => import_examples.quickUseItemRuleEvaluator,
41
+ runItemRuleEvaluatorDemo: () => import_examples.runItemRuleEvaluatorDemo
42
+ });
43
+ module.exports = __toCommonJS(itemRule_exports);
44
+ var import_evaluator = require("./evaluator");
45
+ var import_adapter = require("./adapter");
46
+ var import_adapter2 = __toESM(require("./adapter"));
47
+ var import_examples = require("./examples");
48
+ __reExport(itemRule_exports, require("./type"), module.exports);
49
+ // Annotate the CommonJS export names for ESM import in node:
50
+ 0 && (module.exports = {
51
+ HOTPOT_BASE_PICK_ONE_STRATEGY,
52
+ HOTPOT_BASE_REQUIRED_STRATEGY,
53
+ ItemRuleAdapter,
54
+ ItemRuleEvaluator,
55
+ MAX_BUNS_PER_TABLE_STRATEGY,
56
+ MIN_CONDIMENT_PER_PERSON_STRATEGY,
57
+ quickUseItemRuleEvaluator,
58
+ runItemRuleEvaluatorDemo,
59
+ ...require("./type")
33
60
  });
34
- Object.defineProperty(exports, "ItemRuleEvaluator", {
35
- enumerable: true,
36
- get: function () {
37
- return _evaluator.ItemRuleEvaluator;
38
- }
39
- });
40
- Object.defineProperty(exports, "MAX_BUNS_PER_TABLE_STRATEGY", {
41
- enumerable: true,
42
- get: function () {
43
- return _examples.MAX_BUNS_PER_TABLE_STRATEGY;
44
- }
45
- });
46
- Object.defineProperty(exports, "MIN_CONDIMENT_PER_PERSON_STRATEGY", {
47
- enumerable: true,
48
- get: function () {
49
- return _examples.MIN_CONDIMENT_PER_PERSON_STRATEGY;
50
- }
51
- });
52
- Object.defineProperty(exports, "default", {
53
- enumerable: true,
54
- get: function () {
55
- return _adapter.default;
56
- }
57
- });
58
- Object.defineProperty(exports, "quickUseItemRuleEvaluator", {
59
- enumerable: true,
60
- get: function () {
61
- return _examples.quickUseItemRuleEvaluator;
62
- }
63
- });
64
- Object.defineProperty(exports, "runItemRuleEvaluatorDemo", {
65
- enumerable: true,
66
- get: function () {
67
- return _examples.runItemRuleEvaluatorDemo;
68
- }
69
- });
70
- var _evaluator = require("./evaluator");
71
- var _adapter = _interopRequireWildcard(require("./adapter"));
72
- var _examples = require("./examples");
73
- var _type = require("./type");
74
- Object.keys(_type).forEach(function (key) {
75
- if (key === "default" || key === "__esModule") return;
76
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
77
- if (key in exports && exports[key] === _type[key]) return;
78
- Object.defineProperty(exports, key, {
79
- enumerable: true,
80
- get: function () {
81
- return _type[key];
82
- }
83
- });
84
- });
85
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
86
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -1,107 +1,46 @@
1
- "use strict";
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
2
18
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
19
+ // src/model/strategy/adapter/itemRule/type.ts
20
+ var type_exports = {};
21
+ __export(type_exports, {
22
+ ITEM_RULE_ACTION_TYPES: () => ITEM_RULE_ACTION_TYPES,
23
+ ITEM_RULE_TEMPLATES: () => ITEM_RULE_TEMPLATES
5
24
  });
6
- exports.ITEM_RULE_TEMPLATES = exports.ITEM_RULE_ACTION_TYPES = void 0;
7
- // ============================================
8
- // Action Type 常量
9
- // ============================================
10
-
11
- const ITEM_RULE_ACTION_TYPES = exports.ITEM_RULE_ACTION_TYPES = {
25
+ module.exports = __toCommonJS(type_exports);
26
+ var ITEM_RULE_ACTION_TYPES = {
12
27
  /** 数量校验 */
13
- QUANTITY_CHECK: 'QUANTITY_CHECK',
28
+ QUANTITY_CHECK: "QUANTITY_CHECK",
14
29
  /** 预填购物车 */
15
- PREFILL_CART: 'PREFILL_CART'
30
+ PREFILL_CART: "PREFILL_CART"
16
31
  };
17
- // ============================================
18
- // Rule Template 类型(创建规则时的起始模板)
19
- // ============================================
20
-
21
- const ITEM_RULE_TEMPLATES = exports.ITEM_RULE_TEMPLATES = {
32
+ var ITEM_RULE_TEMPLATES = {
22
33
  /** 空白规则 */
23
- BLANK: 'blank',
34
+ BLANK: "blank",
24
35
  /** 人数关联最少量(每人至少N份) */
25
- MINIMUM_PER_PERSON: 'minimum_per_person',
36
+ MINIMUM_PER_PERSON: "minimum_per_person",
26
37
  /** 每桌限量 */
27
- MAXIMUM_PER_TABLE: 'maximum_per_table',
38
+ MAXIMUM_PER_TABLE: "maximum_per_table",
28
39
  /** 必选商品 */
29
- MUST_INCLUDE: 'must_include'
40
+ MUST_INCLUDE: "must_include"
30
41
  };
31
-
32
- // ============================================
33
- // Quantity Check 相关类型
34
- // ============================================
35
-
36
- /** 数量比较类型 */
37
-
38
- /** 数量来源 */
39
-
40
- /** 目标类型(当前仅支持按商品) */
41
-
42
- /** 作用范围 */
43
-
44
- /**
45
- * 单条数量规则
46
- *
47
- * 例如:Minimum + Total Pax 表示"最少数量 = 总人数"
48
- * 例如:Maximum + Fixed + 10 表示"最多10份"
49
- */
50
-
51
- /**
52
- * Quantity Check Action 的详细配置
53
- *
54
- * 存储在 ActionEffect.config 中
55
- */
56
-
57
- /** 目标项 */
58
-
59
- // ============================================
60
- // Prefill Cart 相关类型
61
- // ============================================
62
-
63
- /**
64
- * 预填商品项
65
- */
66
-
67
- /**
68
- * Prefill Cart Action 的详细配置
69
- *
70
- * 存储在 ActionEffect.config 中
71
- */
72
-
73
- // ============================================
74
- // 业务数据类型(Evaluator 输入)
75
- // ============================================
76
-
77
- /**
78
- * 购物车商品摘要
79
- */
80
-
81
- /**
82
- * 就餐人数信息
83
- */
84
-
85
- /**
86
- * ItemRule 评估器的输入业务数据
87
- */
88
-
89
- // ============================================
90
- // 评估结果类型
91
- // ============================================
92
-
93
- /**
94
- * 单个 Quantity Check 的校验结果
95
- */
96
-
97
- /**
98
- * 单个 Prefill Cart 的预填结果
99
- */
100
-
101
- /**
102
- * 单条规则的数量限制(不含校验结果,仅描述配置中的约束)
103
- */
104
-
105
- /**
106
- * ItemRule 评估器的完整输出结果
107
- */
42
+ // Annotate the CommonJS export names for ESM import in node:
43
+ 0 && (module.exports = {
44
+ ITEM_RULE_ACTION_TYPES,
45
+ ITEM_RULE_TEMPLATES
46
+ });
@@ -1,42 +1,43 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
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);
18
+
19
+ // src/model/strategy/adapter/promotion/adapter.ts
20
+ var adapter_exports = {};
21
+ __export(adapter_exports, {
22
+ PromotionAdapter: () => PromotionAdapter,
23
+ default: () => adapter_default
5
24
  });
6
- exports.default = exports.PromotionAdapter = void 0;
7
- var _type = require("./type");
8
- // ============================================
9
- // Promotion 适配器实现
10
- // ============================================
11
-
12
- /**
13
- * Promotion 适配器
14
- *
15
- * 用于将促销活动业务数据转换为策略引擎可识别的格式
16
- * 策略引擎只负责匹配,具体的优惠计算由业务层完成
17
- */
18
- class PromotionAdapter {
19
- name = 'PromotionAdapter';
20
- version = '1.0.0';
21
-
25
+ module.exports = __toCommonJS(adapter_exports);
26
+ var import_type = require("./type");
27
+ var PromotionAdapter = class {
28
+ constructor() {
29
+ this.name = "PromotionAdapter";
30
+ this.version = "1.0.0";
31
+ }
22
32
  /**
23
33
  * 准备运行时上下文
24
34
  *
25
35
  * 将业务数据转换为策略引擎可识别的 RuntimeContext
26
36
  */
27
37
  prepareContext(businessData) {
28
- const {
29
- products,
30
- currentProduct,
31
- channel,
32
- custom
33
- } = businessData;
34
-
35
- // 当前时间(用于时间条件判断)
36
- const now = new Date();
38
+ const { products, currentProduct, channel, custom } = businessData;
39
+ const now = /* @__PURE__ */ new Date();
37
40
  const currentDateTime = this.formatDateTime(now);
38
-
39
- // 如果有 currentProduct,用于单商品场景(商品卡片展示)
40
41
  const evaluatingProduct = currentProduct || (products.length > 0 ? products[0] : null);
41
42
  return {
42
43
  entities: {
@@ -52,7 +53,7 @@ class PromotionAdapter {
52
53
  product_variant_id: evaluatingProduct.product_variant_id
53
54
  } : null,
54
55
  // 渠道
55
- channel: channel || '',
56
+ channel: channel || "",
56
57
  // 商品总数量
57
58
  totalQuantity: products.reduce((sum, p) => sum + p.quantity, 0),
58
59
  // 商品总金额
@@ -65,7 +66,6 @@ class PromotionAdapter {
65
66
  }
66
67
  };
67
68
  }
68
-
69
69
  /**
70
70
  * 转换执行结果
71
71
  *
@@ -73,7 +73,6 @@ class PromotionAdapter {
73
73
  * 主要是整理 matchedActions,让业务层更容易使用
74
74
  */
75
75
  transformResult(result, businessData) {
76
- // 获取适用的商品列表
77
76
  const applicableProducts = businessData ? this.getApplicableProducts(result, businessData) : [];
78
77
  if (!result.applicable) {
79
78
  return {
@@ -84,20 +83,16 @@ class PromotionAdapter {
84
83
  strategyResult: result
85
84
  };
86
85
  }
87
-
88
- // 获取第一个匹配的 action(按 priority 排序后的)
89
86
  const matchedAction = result.matchedActions[0];
90
87
  if (!matchedAction) {
91
88
  return {
92
89
  isApplicable: false,
93
90
  applicableProducts: [],
94
- reason: 'No matched action',
95
- reasonCode: 'NO_ACTION',
91
+ reason: "No matched action",
92
+ reasonCode: "NO_ACTION",
96
93
  strategyResult: result
97
94
  };
98
95
  }
99
-
100
- // 解析 action 详情
101
96
  const actionDetail = this.parseActionDetail(matchedAction);
102
97
  return {
103
98
  isApplicable: true,
@@ -107,34 +102,27 @@ class PromotionAdapter {
107
102
  strategyResult: result
108
103
  };
109
104
  }
110
-
111
105
  /**
112
106
  * 格式化配置
113
107
  */
114
108
  formatConfig(result, businessData) {
115
- return {
116
- result,
117
- businessData
118
- };
109
+ return { result, businessData };
119
110
  }
120
-
121
111
  // ============================================
122
112
  // 私有辅助方法
123
113
  // ============================================
124
-
125
114
  /**
126
115
  * 格式化日期时间
127
116
  */
128
117
  formatDateTime(date) {
129
118
  const year = date.getFullYear();
130
- const month = String(date.getMonth() + 1).padStart(2, '0');
131
- const day = String(date.getDate()).padStart(2, '0');
132
- const hours = String(date.getHours()).padStart(2, '0');
133
- const minutes = String(date.getMinutes()).padStart(2, '0');
134
- const seconds = String(date.getSeconds()).padStart(2, '0');
119
+ const month = String(date.getMonth() + 1).padStart(2, "0");
120
+ const day = String(date.getDate()).padStart(2, "0");
121
+ const hours = String(date.getHours()).padStart(2, "0");
122
+ const minutes = String(date.getMinutes()).padStart(2, "0");
123
+ const seconds = String(date.getSeconds()).padStart(2, "0");
135
124
  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
136
125
  }
137
-
138
126
  /**
139
127
  * 解析 Action 详情
140
128
  *
@@ -142,15 +130,14 @@ class PromotionAdapter {
142
130
  */
143
131
  parseActionDetail(action) {
144
132
  switch (action.type) {
145
- case _type.PROMOTION_ACTION_TYPES.X_ITEMS_FOR_Y_PRICE:
133
+ case import_type.PROMOTION_ACTION_TYPES.X_ITEMS_FOR_Y_PRICE:
146
134
  return this.parseXItemsForYPriceAction(action);
147
- case _type.PROMOTION_ACTION_TYPES.BUY_X_GET_Y_FREE:
135
+ case import_type.PROMOTION_ACTION_TYPES.BUY_X_GET_Y_FREE:
148
136
  return this.parseBuyXGetYFreeAction(action);
149
137
  default:
150
- return undefined;
138
+ return void 0;
151
139
  }
152
140
  }
153
-
154
141
  /**
155
142
  * 解析 X件Y元 Action
156
143
  */
@@ -158,14 +145,13 @@ class PromotionAdapter {
158
145
  const value = action.value || {};
159
146
  const config = action.config || {};
160
147
  return {
161
- type: _type.PROMOTION_ACTION_TYPES.X_ITEMS_FOR_Y_PRICE,
148
+ type: import_type.PROMOTION_ACTION_TYPES.X_ITEMS_FOR_Y_PRICE,
162
149
  x: value.x || 2,
163
150
  price: value.price || 0,
164
151
  allowCrossProduct: config.allowCrossProduct ?? true,
165
152
  cumulative: config.cumulative ?? true
166
153
  };
167
154
  }
168
-
169
155
  /**
170
156
  * 解析 买X送Y Action
171
157
  */
@@ -173,66 +159,59 @@ class PromotionAdapter {
173
159
  const value = action.value || {};
174
160
  const config = action.config || {};
175
161
  return {
176
- type: _type.PROMOTION_ACTION_TYPES.BUY_X_GET_Y_FREE,
162
+ type: import_type.PROMOTION_ACTION_TYPES.BUY_X_GET_Y_FREE,
177
163
  buyQuantity: value.buyQuantity || 1,
178
164
  freeQuantity: value.freeQuantity || 1,
179
- giftSelectionMode: config.giftSelectionMode || 'user_select',
165
+ giftSelectionMode: config.giftSelectionMode || "user_select",
180
166
  cumulative: config.cumulative ?? true,
181
167
  giftProducts: config.giftProducts || []
182
168
  };
183
169
  }
184
-
185
170
  /**
186
171
  * 获取适用的商品列表
187
172
  *
188
173
  * 从购物车商品中筛选出符合策略条件的商品
189
174
  */
190
175
  getApplicableProducts(result, businessData) {
191
- const {
192
- products
193
- } = businessData;
194
-
195
- // 从策略配置中获取商品范围条件
176
+ const { products } = businessData;
196
177
  const productMatchRule = this.findProductMatchRule(result.config);
197
178
  if (!productMatchRule) {
198
- // 如果没有商品范围条件,所有商品都适用
199
179
  return products;
200
180
  }
201
181
  const configProducts = productMatchRule.value;
202
-
203
- // 筛选适用的商品
204
- return products.filter(product => this.isProductMatch(product, configProducts));
182
+ return products.filter(
183
+ (product) => this.isProductMatch(product, configProducts)
184
+ );
205
185
  }
206
-
207
186
  /**
208
187
  * 查找商品匹配规则
209
188
  */
210
189
  findProductMatchRule(config) {
211
- if (!config?.conditions?.rules) {
190
+ var _a;
191
+ if (!((_a = config == null ? void 0 : config.conditions) == null ? void 0 : _a.rules)) {
212
192
  return null;
213
193
  }
214
- return config.conditions.rules.find(rule => rule.field === 'productIdAndVariantId' && (rule.operator === 'product_match' || rule.operator === 'object_in'));
194
+ return config.conditions.rules.find(
195
+ (rule) => rule.field === "productIdAndVariantId" && (rule.operator === "product_match" || rule.operator === "object_in")
196
+ );
215
197
  }
216
-
217
198
  /**
218
199
  * 检查商品是否匹配
219
200
  */
220
201
  isProductMatch(product, configProducts) {
221
- return configProducts.some(config => {
222
- // 首先检查 product_id
202
+ return configProducts.some((config) => {
223
203
  if (config.product_id !== product.product_id) {
224
204
  return false;
225
205
  }
226
-
227
- // 如果配置的 product_variant_id = 0,只需要 product_id 匹配
228
206
  if (config.product_variant_id === 0) {
229
207
  return true;
230
208
  }
231
-
232
- // 否则需要 product_variant_id 精确匹配
233
209
  return config.product_variant_id === product.product_variant_id;
234
210
  });
235
211
  }
236
- }
237
- exports.PromotionAdapter = PromotionAdapter;
238
- var _default = exports.default = PromotionAdapter;
212
+ };
213
+ var adapter_default = PromotionAdapter;
214
+ // Annotate the CommonJS export names for ESM import in node:
215
+ 0 && (module.exports = {
216
+ PromotionAdapter
217
+ });