@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,172 +1,192 @@
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/promotion/examples.ts
20
+ var examples_exports = {};
21
+ __export(examples_exports, {
22
+ BUY_X_GET_Y_FREE_STRATEGY: () => BUY_X_GET_Y_FREE_STRATEGY,
23
+ X_ITEMS_FOR_Y_PRICE_STRATEGY: () => X_ITEMS_FOR_Y_PRICE_STRATEGY
5
24
  });
6
- exports.X_ITEMS_FOR_Y_PRICE_STRATEGY = exports.BUY_X_GET_Y_FREE_STRATEGY = void 0;
7
- /**
8
- * X件Y元策略配置示例
9
- *
10
- * 业务规则:
11
- * - 每X件商品固定价格Y元(可累计)
12
- * - 支持跨商品组合(A+B可以凑成一组)
13
- * - 买5件 = 2组优惠 + 1件原价
14
- *
15
- * 商品匹配规则:
16
- * - product_variant_id = 0 表示匹配任意变体
17
- * - product_variant_id != 0 表示精确匹配该变体
18
- */
19
- const X_ITEMS_FOR_Y_PRICE_STRATEGY = exports.X_ITEMS_FOR_Y_PRICE_STRATEGY = {
25
+ module.exports = __toCommonJS(examples_exports);
26
+ var X_ITEMS_FOR_Y_PRICE_STRATEGY = {
20
27
  metadata: {
21
- id: 'STRATEGY_001',
28
+ id: "STRATEGY_001",
22
29
  name: {
23
- en: '2 items for $10',
24
- 'zh-CN': '2杯10元',
25
- 'zh-HK': '2杯10元'
30
+ en: "2 items for $10",
31
+ "zh-CN": "2杯10元",
32
+ "zh-HK": "2杯10元"
26
33
  },
27
- type: 'promotion',
34
+ type: "promotion",
28
35
  custom: {
29
36
  display: {
30
37
  product_card: {
31
38
  text: {
32
- en: '2 for $10',
33
- 'zh-CN': '2杯10元',
34
- 'zh-HK': '2杯10元'
39
+ en: "2 for $10",
40
+ "zh-CN": "2杯10元",
41
+ "zh-HK": "2杯10元"
35
42
  },
36
- type: 'tag'
43
+ type: "tag"
37
44
  }
38
45
  }
39
46
  }
40
47
  },
41
48
  conditions: {
42
- operator: 'and',
43
- rules: [{
44
- type: 'operator',
45
- field: 'currentDateTime',
46
- value: '2023-01-01 00:00:00',
47
- operator: '>='
48
- }, {
49
- type: 'operator',
50
- field: 'currentDateTime',
51
- value: '2027-01-01 00:00:00',
52
- operator: '<='
53
- }, {
54
- type: 'operator',
55
- field: 'productIdAndVariantId',
56
- value: [{
57
- product_id: 60736,
58
- product_variant_id: 0 // 0 = 匹配任意变体
59
- }, {
60
- product_id: 60737,
61
- product_variant_id: 0 // 0 = 匹配任意变体
62
- }],
63
- operator: 'product_match'
64
- }],
65
- actionIds: ['1']
49
+ operator: "and",
50
+ rules: [
51
+ {
52
+ type: "operator",
53
+ field: "currentDateTime",
54
+ value: "2023-01-01 00:00:00",
55
+ operator: ">="
56
+ },
57
+ {
58
+ type: "operator",
59
+ field: "currentDateTime",
60
+ value: "2027-01-01 00:00:00",
61
+ operator: "<="
62
+ },
63
+ {
64
+ type: "operator",
65
+ field: "productIdAndVariantId",
66
+ value: [
67
+ {
68
+ product_id: 60736,
69
+ product_variant_id: 0
70
+ // 0 = 匹配任意变体
71
+ },
72
+ {
73
+ product_id: 60737,
74
+ product_variant_id: 0
75
+ // 0 = 匹配任意变体
76
+ }
77
+ ],
78
+ operator: "product_match"
79
+ }
80
+ ],
81
+ actionIds: ["1"]
66
82
  },
67
- actions: [{
68
- id: '1',
69
- type: 'X_ITEMS_FOR_Y_PRICE',
70
- value: {
71
- x: 2,
72
- // 每X件
73
- price: 10 // 固定价格Y元
74
- },
75
- valueType: 'object',
76
- target: 'product',
77
- priority: 1,
78
- config: {
79
- allowCrossProduct: true,
80
- // 允许跨商品组合(A+B可以凑成一组)
81
- cumulative: true // 可累计(买5件 = 2组优惠 + 1件原价)
83
+ actions: [
84
+ {
85
+ id: "1",
86
+ type: "X_ITEMS_FOR_Y_PRICE",
87
+ value: {
88
+ x: 2,
89
+ // 每X件
90
+ price: 10
91
+ // 固定价格Y元
92
+ },
93
+ valueType: "object",
94
+ target: "product",
95
+ priority: 1,
96
+ config: {
97
+ allowCrossProduct: true,
98
+ // 允许跨商品组合(A+B可以凑成一组)
99
+ cumulative: true
100
+ // 可累计(买5件 = 2组优惠 + 1件原价)
101
+ }
82
102
  }
83
- }]
103
+ ]
84
104
  };
85
-
86
- /**
87
- * 买X送Y策略配置示例
88
- *
89
- * 业务规则:
90
- * - 买X件送Y件(可累计:买2送2、买3送3...)
91
- * - 赠品由用户从列表中选择
92
- *
93
- * 商品匹配规则:
94
- * - product_variant_id = 0 表示匹配任意变体
95
- * - product_variant_id != 0 表示精确匹配该变体
96
- */
97
- const BUY_X_GET_Y_FREE_STRATEGY = exports.BUY_X_GET_Y_FREE_STRATEGY = {
105
+ var BUY_X_GET_Y_FREE_STRATEGY = {
98
106
  metadata: {
99
- id: 'STRATEGY_002',
107
+ id: "STRATEGY_002",
100
108
  name: {
101
- en: 'Buy 1 Get 1 Free',
102
- 'zh-CN': '买1送1',
103
- 'zh-HK': '買1送1'
109
+ en: "Buy 1 Get 1 Free",
110
+ "zh-CN": "买1送1",
111
+ "zh-HK": "買1送1"
104
112
  },
105
- type: 'promotion',
113
+ type: "promotion",
106
114
  custom: {
107
115
  display: {
108
116
  product_card: {
109
117
  text: {
110
- en: 'Buy 1 Get 1',
111
- 'zh-CN': '买1送1',
112
- 'zh-HK': '買1送1'
118
+ en: "Buy 1 Get 1",
119
+ "zh-CN": "买1送1",
120
+ "zh-HK": "買1送1"
113
121
  },
114
- type: 'tag'
122
+ type: "tag"
115
123
  }
116
124
  }
117
125
  }
118
126
  },
119
127
  conditions: {
120
- operator: 'and',
121
- rules: [{
122
- type: 'operator',
123
- field: 'currentDateTime',
124
- value: '2023-01-01 00:00:00',
125
- operator: '>='
126
- }, {
127
- type: 'operator',
128
- field: 'currentDateTime',
129
- value: '2027-01-01 00:00:00',
130
- operator: '<='
131
- }, {
132
- type: 'operator',
133
- field: 'productIdAndVariantId',
134
- value: [{
135
- product_id: 60736,
136
- product_variant_id: 0 // 0 = 匹配任意变体
137
- }, {
138
- product_id: 60737,
139
- product_variant_id: 0 // 0 = 匹配任意变体
140
- }],
141
- operator: 'product_match'
142
- }],
143
- actionIds: ['1']
128
+ operator: "and",
129
+ rules: [
130
+ {
131
+ type: "operator",
132
+ field: "currentDateTime",
133
+ value: "2023-01-01 00:00:00",
134
+ operator: ">="
135
+ },
136
+ {
137
+ type: "operator",
138
+ field: "currentDateTime",
139
+ value: "2027-01-01 00:00:00",
140
+ operator: "<="
141
+ },
142
+ {
143
+ type: "operator",
144
+ field: "productIdAndVariantId",
145
+ value: [
146
+ {
147
+ product_id: 60736,
148
+ product_variant_id: 0
149
+ // 0 = 匹配任意变体
150
+ },
151
+ {
152
+ product_id: 60737,
153
+ product_variant_id: 0
154
+ // 0 = 匹配任意变体
155
+ }
156
+ ],
157
+ operator: "product_match"
158
+ }
159
+ ],
160
+ actionIds: ["1"]
144
161
  },
145
- actions: [{
146
- id: '1',
147
- type: 'BUY_X_GET_Y_FREE',
148
- value: {
149
- buyQuantity: 1,
150
- // 买X件
151
- freeQuantity: 1 // 送Y件
152
- },
153
- valueType: 'object',
154
- target: 'product',
155
- priority: 1,
156
- config: {
157
- // 可累计(买2送2、买3送3...)
158
- cumulative: true,
159
- // 可选的赠品列表
160
- giftProducts: [{
161
- product_id: 60757,
162
- product_variant_id: 0
163
- }, {
164
- product_id: 38782,
165
- product_variant_id: 0
166
- }, {
167
- product_id: 60749,
168
- product_variant_id: 27267
169
- }]
162
+ actions: [
163
+ {
164
+ id: "1",
165
+ type: "BUY_X_GET_Y_FREE",
166
+ value: {
167
+ buyQuantity: 1,
168
+ // 买X件
169
+ freeQuantity: 1
170
+ // 送Y件
171
+ },
172
+ valueType: "object",
173
+ target: "product",
174
+ priority: 1,
175
+ config: {
176
+ // 可累计(买2送2、买3送3...)
177
+ cumulative: true,
178
+ // 可选的赠品列表
179
+ giftProducts: [
180
+ { product_id: 60757, product_variant_id: 0 },
181
+ { product_id: 38782, product_variant_id: 0 },
182
+ { product_id: 60749, product_variant_id: 27267 }
183
+ ]
184
+ }
170
185
  }
171
- }]
172
- };
186
+ ]
187
+ };
188
+ // Annotate the CommonJS export names for ESM import in node:
189
+ 0 && (module.exports = {
190
+ BUY_X_GET_Y_FREE_STRATEGY,
191
+ X_ITEMS_FOR_Y_PRICE_STRATEGY
192
+ });
@@ -1 +0,0 @@
1
- "use strict";
@@ -1,101 +1,39 @@
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/promotion/type.ts
20
+ var type_exports = {};
21
+ __export(type_exports, {
22
+ PROMOTION_ACTION_TYPES: () => PROMOTION_ACTION_TYPES,
23
+ PROMOTION_OPERATORS: () => PROMOTION_OPERATORS
5
24
  });
6
- exports.PROMOTION_OPERATORS = exports.PROMOTION_ACTION_TYPES = void 0;
7
- /**
8
- * Promotion 策略类型定义
9
- *
10
- * 定义促销活动相关的 Action 类型、值结构和配置
11
- */
12
-
13
- // ============================================
14
- // Action Type 常量
15
- // ============================================
16
-
17
- /**
18
- * 促销活动 Action 类型
19
- */
20
- const PROMOTION_ACTION_TYPES = exports.PROMOTION_ACTION_TYPES = {
25
+ module.exports = __toCommonJS(type_exports);
26
+ var PROMOTION_ACTION_TYPES = {
21
27
  /** X件Y元(每X件固定价格Y元,可累计) */
22
- X_ITEMS_FOR_Y_PRICE: 'X_ITEMS_FOR_Y_PRICE',
28
+ X_ITEMS_FOR_Y_PRICE: "X_ITEMS_FOR_Y_PRICE",
23
29
  /** 买X送Y(买X件送Y件,可累计) */
24
- BUY_X_GET_Y_FREE: 'BUY_X_GET_Y_FREE',
30
+ BUY_X_GET_Y_FREE: "BUY_X_GET_Y_FREE",
25
31
  /** 固定折扣 */
26
- DISCOUNT_RATE: 'DISCOUNT_RATE',
32
+ DISCOUNT_RATE: "DISCOUNT_RATE",
27
33
  /** 固定减价 */
28
- DEDUCT_AMOUNT: 'DEDUCT_AMOUNT'
34
+ DEDUCT_AMOUNT: "DEDUCT_AMOUNT"
29
35
  };
30
-
31
- // ============================================
32
- // Action Value 类型定义
33
- // ============================================
34
-
35
- /**
36
- * X件Y元 - Action Value
37
- *
38
- * @example
39
- * value: { x: 2, price: 10 } // 每2件10元
40
- */
41
-
42
- /**
43
- * X件Y元 - Action Config
44
- */
45
-
46
- /**
47
- * 买X送Y - Action Value
48
- *
49
- * @example
50
- * value: { buyQuantity: 1, freeQuantity: 1 } // 买1送1
51
- */
52
-
53
- /**
54
- * 赠品选择模式
55
- */
56
-
57
- // 自动选最便宜的
58
-
59
- /**
60
- * 买X送Y - Action Config
61
- */
62
-
63
- // ============================================
64
- // 商品标识
65
- // ============================================
66
-
67
- /**
68
- * 商品标识
69
- *
70
- * 匹配规则:
71
- * - product_variant_id = 0 表示匹配任意变体
72
- * - product_variant_id != 0 表示精确匹配该变体
73
- */
74
-
75
- // ============================================
76
- // 完整的 Promotion Action 类型
77
- // ============================================
78
-
79
- /**
80
- * X件Y元 Action
81
- */
82
-
83
- /**
84
- * 买X送Y Action
85
- */
86
-
87
- /**
88
- * 促销活动 Action 联合类型
89
- */
90
-
91
- // ============================================
92
- // 运算符常量
93
- // ============================================
94
-
95
- /**
96
- * 促销相关运算符
97
- */
98
- const PROMOTION_OPERATORS = exports.PROMOTION_OPERATORS = {
36
+ var PROMOTION_OPERATORS = {
99
37
  /**
100
38
  * 商品匹配运算符
101
39
  *
@@ -104,112 +42,10 @@ const PROMOTION_OPERATORS = exports.PROMOTION_OPERATORS = {
104
42
  * - 如果配置的 product_variant_id = 0,只需要 product_id 匹配
105
43
  * - 如果配置的 product_variant_id != 0,还需要 product_variant_id 匹配
106
44
  */
107
- PRODUCT_MATCH: 'product_match'
45
+ PRODUCT_MATCH: "product_match"
108
46
  };
109
-
110
- // ============================================
111
- // 业务数据类型(输入)
112
- // ============================================
113
-
114
- /**
115
- * 促销活动业务数据
116
- *
117
- * 由业务层传入,用于策略评估
118
- */
119
-
120
- const obj = {
121
- product_id: 1,
122
- product_variant_id: 0,
123
- quantity: 1,
124
- price: 100,
125
- original_price: 100,
126
- id: 1
127
- };
128
-
129
- /**
130
- * 促销商品信息
131
- */
132
-
133
- // ============================================
134
- // 适配器输出类型
135
- // ============================================
136
-
137
- /**
138
- * 促销活动适配器转换结果
139
- *
140
- * 返回给业务层,包含策略匹配信息
141
- */
142
-
143
- /**
144
- * Action 详情联合类型
145
- */
146
-
147
- /**
148
- * X件Y元 Action 详情
149
- */
150
-
151
- /**
152
- * 买X送Y Action 详情
153
- */
154
-
155
- // ============================================
156
- // 业务层输出类型(供参考)
157
- // ============================================
158
-
159
- /**
160
- * X件Y元 - 业务层计算结果
161
- *
162
- * 由业务层根据 matchedAction 计算后返回
163
- */
164
-
165
- /**
166
- * 买X送Y - 业务层计算结果
167
- *
168
- * 由业务层根据 matchedAction 计算后返回
169
- */
170
-
171
- /**
172
- * 评估器输入
173
- */
174
-
175
- /**
176
- * 单商品评估结果
177
- */
178
-
179
- /**
180
- * 适用的促销信息
181
- */
182
-
183
- /**
184
- * 购物车评估结果
185
- */
186
-
187
- /**
188
- * 购物车适用的促销
189
- */
190
-
191
- /**
192
- * 促销分组
193
- */
194
-
195
- // ============================================
196
- // 带定价的购物车评估结果类型
197
- // ============================================
198
-
199
- /**
200
- * 带定价的商品
201
- *
202
- * 在 PromotionProduct 基础上增加了均摊后的最终价格和促销信息
203
- */
204
-
205
- /**
206
- * 赠品信息
207
- *
208
- * 记录某个促销产生的赠品数量和可选赠品列表
209
- */
210
-
211
- /**
212
- * 带定价的购物车评估结果
213
- *
214
- * evaluateCartWithPricing 方法的返回结果
215
- */
47
+ // Annotate the CommonJS export names for ESM import in node:
48
+ 0 && (module.exports = {
49
+ PROMOTION_ACTION_TYPES,
50
+ PROMOTION_OPERATORS
51
+ });
@@ -1,5 +1,17 @@
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 __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
2
14
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
15
+ // src/model/strategy/adapter/type.ts
16
+ var type_exports = {};
17
+ module.exports = __toCommonJS(type_exports);