@pisell/pisellos 2.3.74 → 2.3.75

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/dist/core/index.js +6 -10
  2. package/dist/model/strategy/adapter/promotion/index.js +9 -0
  3. package/dist/model/strategy/adapter/walletPass/example.js +3 -26
  4. package/dist/model/strategy/strategy-example.js +5 -19
  5. package/dist/modules/Cart/index.js +0 -3
  6. package/dist/modules/Cart/utils/cartProduct.js +0 -1
  7. package/dist/modules/Date/index.js +1 -5
  8. package/dist/modules/Discount/index.js +2 -4
  9. package/dist/modules/OpenData/index.js +0 -2
  10. package/dist/modules/Order/index.js +36 -64
  11. package/dist/modules/Payment/index.js +97 -162
  12. package/dist/modules/Rules/index.js +1 -4
  13. package/dist/modules/Schedule/index.js +0 -1
  14. package/dist/modules/Schedule/utils.js +0 -1
  15. package/dist/modules/Step/index.js +0 -1
  16. package/dist/plugins/request.js +1 -4
  17. package/dist/plugins/window.js +2 -6
  18. package/dist/server/index.js +97 -129
  19. package/dist/server/modules/menu/index.js +32 -41
  20. package/dist/server/modules/order/index.js +2 -4
  21. package/dist/server/modules/products/index.js +24 -42
  22. package/dist/server/modules/quotation/index.js +29 -38
  23. package/dist/server/modules/resource/index.js +3 -4
  24. package/dist/server/modules/schedule/index.js +27 -35
  25. package/dist/server/utils/product.js +0 -1
  26. package/dist/solution/BaseSales/index.js +38 -41
  27. package/dist/solution/BookingByStep/index.js +7 -59
  28. package/dist/solution/BookingByStep/utils/capacity.js +1 -11
  29. package/dist/solution/BookingByStep/utils/resources.js +1 -3
  30. package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
  31. package/dist/solution/BookingTicket/index.js +0 -2
  32. package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +6 -7
  33. package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
  34. package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
  35. package/dist/solution/BuyTickets/index.js +9 -12
  36. package/dist/solution/Checkout/index.js +177 -252
  37. package/dist/solution/Checkout/utils/index.js +4 -16
  38. package/dist/solution/RegisterAndLogin/index.js +30 -76
  39. package/dist/solution/ScanOrder/index.js +50 -60
  40. package/dist/solution/ShopDiscount/index.js +2 -7
  41. package/dist/solution/VenueBooking/index.js +45 -55
  42. package/dist/utils/task.js +15 -18
  43. package/dist/utils/watch.js +0 -1
  44. package/lib/apis/picoding.js +2 -0
  45. package/lib/core/index.js +134 -134
  46. package/lib/effects/index.js +46 -57
  47. package/lib/index.js +82 -49
  48. package/lib/model/index.js +14 -21
  49. package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
  50. package/lib/model/strategy/adapter/dataVariant/evaluator.js +162 -236
  51. package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
  52. package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
  53. package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
  54. package/lib/model/strategy/adapter/index.js +100 -64
  55. package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
  56. package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
  57. package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
  58. package/lib/model/strategy/adapter/itemRule/index.js +83 -57
  59. package/lib/model/strategy/adapter/itemRule/type.js +97 -36
  60. package/lib/model/strategy/adapter/promotion/adapter.js +91 -69
  61. package/lib/model/strategy/adapter/promotion/evaluator.js +444 -310
  62. package/lib/model/strategy/adapter/promotion/examples.js +222 -234
  63. package/lib/model/strategy/adapter/promotion/index.js +1 -0
  64. package/lib/model/strategy/adapter/promotion/type.js +243 -36
  65. package/lib/model/strategy/adapter/type.js +4 -16
  66. package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -150
  67. package/lib/model/strategy/adapter/walletPass/example.js +217 -190
  68. package/lib/model/strategy/adapter/walletPass/index.js +75 -51
  69. package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
  70. package/lib/model/strategy/adapter/walletPass/type.js +4 -16
  71. package/lib/model/strategy/adapter/walletPass/utils.js +588 -378
  72. package/lib/model/strategy/engine.js +270 -168
  73. package/lib/model/strategy/index.js +49 -34
  74. package/lib/model/strategy/strategy-example.js +243 -239
  75. package/lib/model/strategy/type.js +100 -40
  76. package/lib/modules/Account/index.js +39 -53
  77. package/lib/modules/Account/types.js +20 -33
  78. package/lib/modules/AccountList/index.js +116 -154
  79. package/lib/modules/AccountList/types.js +30 -31
  80. package/lib/modules/AccountList/utils.js +18 -30
  81. package/lib/modules/BaseModule.js +23 -42
  82. package/lib/modules/BookingContext/index.js +158 -136
  83. package/lib/modules/BookingContext/types.js +46 -32
  84. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +138 -146
  85. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +78 -83
  86. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +170 -150
  87. package/lib/modules/BookingContext/utils/flexible.js +38 -55
  88. package/lib/modules/BookingContext/utils/formatResourceList.js +19 -34
  89. package/lib/modules/BookingContext/utils/index.js +124 -41
  90. package/lib/modules/BookingContext/utils/noResource.js +58 -70
  91. package/lib/modules/BookingContext/utils/orderLineDisplay.js +14 -41
  92. package/lib/modules/BookingContext/utils/productExtend.js +202 -155
  93. package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
  94. package/lib/modules/BookingContext/utils/resourceSelection.js +19 -41
  95. package/lib/modules/BookingContext/utils/resources.js +209 -167
  96. package/lib/modules/BookingContext/utils/serviceTimes.js +115 -116
  97. package/lib/modules/BookingContext/utils/timeSlices.js +76 -86
  98. package/lib/modules/Cart/index.js +170 -124
  99. package/lib/modules/Cart/types.js +46 -51
  100. package/lib/modules/Cart/utils/cartAccount.js +40 -39
  101. package/lib/modules/Cart/utils/cartDate.js +56 -61
  102. package/lib/modules/Cart/utils/cartDiscount.js +28 -33
  103. package/lib/modules/Cart/utils/cartNote.js +27 -32
  104. package/lib/modules/Cart/utils/cartProduct.js +321 -251
  105. package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
  106. package/lib/modules/Cart/utils/cartResource.js +70 -78
  107. package/lib/modules/Cart/utils/changePrice.js +22 -50
  108. package/lib/modules/Cart/utils/index.js +106 -48
  109. package/lib/modules/Customer/constants.js +13 -34
  110. package/lib/modules/Customer/index.js +235 -172
  111. package/lib/modules/Customer/types.js +38 -35
  112. package/lib/modules/Date/index.js +116 -115
  113. package/lib/modules/Date/types.js +16 -28
  114. package/lib/modules/Date/utils.js +174 -123
  115. package/lib/modules/Discount/index.js +122 -127
  116. package/lib/modules/Discount/types.js +9 -31
  117. package/lib/modules/Guests/index.js +30 -56
  118. package/lib/modules/Guests/types.js +23 -33
  119. package/lib/modules/Holder/index.js +209 -189
  120. package/lib/modules/Holder/types.js +4 -16
  121. package/lib/modules/Holder/utils.js +20 -49
  122. package/lib/modules/OpenData/index.js +70 -76
  123. package/lib/modules/OpenData/types.js +4 -16
  124. package/lib/modules/OpenData/utils.js +44 -78
  125. package/lib/modules/Order/index.js +1713 -2118
  126. package/lib/modules/Order/payment-utils.js +77 -120
  127. package/lib/modules/Order/types.js +88 -35
  128. package/lib/modules/Order/utils/bundleDiscountHydration.js +41 -74
  129. package/lib/modules/Order/utils/discountProductLineIdentity.js +142 -100
  130. package/lib/modules/Order/utils/manualProductDiscount.js +124 -123
  131. package/lib/modules/Order/utils/orderCollectionIdentity.js +184 -244
  132. package/lib/modules/Order/utils.js +814 -647
  133. package/lib/modules/Payment/cash.js +20 -33
  134. package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
  135. package/lib/modules/Payment/eftpos.js +16 -30
  136. package/lib/modules/Payment/index.js +532 -399
  137. package/lib/modules/Payment/mx51.js +1 -0
  138. package/lib/modules/Payment/types.js +230 -108
  139. package/lib/modules/Payment/utils.js +52 -51
  140. package/lib/modules/Payment/walletpass.js +485 -660
  141. package/lib/modules/Product/index.js +51 -46
  142. package/lib/modules/Product/types.js +4 -16
  143. package/lib/modules/Product/utils.js +32 -33
  144. package/lib/modules/ProductList/index.js +113 -123
  145. package/lib/modules/ProductList/types.js +9 -31
  146. package/lib/modules/Quotation/index.js +81 -118
  147. package/lib/modules/Quotation/types.js +4 -16
  148. package/lib/modules/Resource/index.js +27 -59
  149. package/lib/modules/Resource/types.js +22 -32
  150. package/lib/modules/Resource/utils.js +30 -38
  151. package/lib/modules/ResourcePlanner/index.js +25 -23
  152. package/lib/modules/ResourcePlanner/localClock.js +54 -119
  153. package/lib/modules/ResourcePlanner/planner.js +589 -770
  154. package/lib/modules/ResourcePlanner/types.js +10 -29
  155. package/lib/modules/Rules/index.js +1218 -959
  156. package/lib/modules/Rules/types.js +17 -40
  157. package/lib/modules/SalesSummary/index.js +85 -90
  158. package/lib/modules/SalesSummary/types.js +4 -16
  159. package/lib/modules/SalesSummary/utils.js +355 -430
  160. package/lib/modules/ScanOrderLogger/index.js +59 -79
  161. package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
  162. package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
  163. package/lib/modules/ScanOrderLogger/types.js +4 -16
  164. package/lib/modules/Schedule/getDateIsInSchedule.js +334 -163
  165. package/lib/modules/Schedule/index.js +100 -114
  166. package/lib/modules/Schedule/type.js +4 -16
  167. package/lib/modules/Schedule/types.js +4 -16
  168. package/lib/modules/Schedule/utils.js +433 -291
  169. package/lib/modules/Step/index.js +40 -52
  170. package/lib/modules/Step/tyeps.js +4 -16
  171. package/lib/modules/Summary/index.js +66 -71
  172. package/lib/modules/Summary/types.js +4 -16
  173. package/lib/modules/Summary/utils.js +773 -418
  174. package/lib/modules/SurchargeList/index.js +46 -60
  175. package/lib/modules/SurchargeList/types.js +4 -16
  176. package/lib/modules/index.js +245 -63
  177. package/lib/plugins/app.js +4 -16
  178. package/lib/plugins/index.js +36 -25
  179. package/lib/plugins/request.js +137 -126
  180. package/lib/plugins/shopStore.js +4 -16
  181. package/lib/plugins/user.js +4 -16
  182. package/lib/plugins/window.js +171 -179
  183. package/lib/server/index.js +3050 -2665
  184. package/lib/server/modules/floor-plan/index.js +118 -134
  185. package/lib/server/modules/floor-plan/types.js +15 -30
  186. package/lib/server/modules/index.js +106 -68
  187. package/lib/server/modules/menu/index.js +142 -122
  188. package/lib/server/modules/menu/types.js +18 -31
  189. package/lib/server/modules/order/index.js +784 -1002
  190. package/lib/server/modules/order/types.js +122 -33
  191. package/lib/server/modules/order/utils/filterBookings.js +219 -194
  192. package/lib/server/modules/order/utils/filterOrders.js +118 -92
  193. package/lib/server/modules/payment/index.js +59 -83
  194. package/lib/server/modules/payment/types.js +4 -16
  195. package/lib/server/modules/products/index.js +583 -471
  196. package/lib/server/modules/products/types.js +44 -34
  197. package/lib/server/modules/quotation/index.js +137 -172
  198. package/lib/server/modules/quotation/types.js +21 -31
  199. package/lib/server/modules/resource/index.js +220 -186
  200. package/lib/server/modules/resource/types.js +42 -33
  201. package/lib/server/modules/schedule/index.js +135 -123
  202. package/lib/server/modules/schedule/types.js +14 -21
  203. package/lib/server/modules/schedule/utils.js +334 -163
  204. package/lib/server/types.js +4 -16
  205. package/lib/server/utils/index.js +25 -23
  206. package/lib/server/utils/product.js +196 -139
  207. package/lib/server/utils/schedule.js +34 -41
  208. package/lib/server/utils/small-ticket.js +479 -456
  209. package/lib/server/utils/time.js +40 -49
  210. package/lib/solution/BaseSales/index.js +1186 -1410
  211. package/lib/solution/BaseSales/types.js +42 -38
  212. package/lib/solution/BaseSales/utils/cartPromotion.js +642 -498
  213. package/lib/solution/BaseSales/utils/parseSalesResponse.js +85 -105
  214. package/lib/solution/BaseSales/utils/quotationPrice.js +56 -114
  215. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +108 -145
  216. package/lib/solution/BaseSales/utils.js +158 -143
  217. package/lib/solution/BookingByStep/index.js +1527 -1340
  218. package/lib/solution/BookingByStep/types.js +40 -99
  219. package/lib/solution/BookingByStep/utils/capacity.js +192 -160
  220. package/lib/solution/BookingByStep/utils/products.js +42 -52
  221. package/lib/solution/BookingByStep/utils/resources.js +527 -330
  222. package/lib/solution/BookingByStep/utils/stock.js +65 -44
  223. package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
  224. package/lib/solution/BookingTicket/index.js +607 -522
  225. package/lib/solution/BookingTicket/types.js +99 -77
  226. package/lib/solution/BookingTicket/utils/addProductDecision.js +226 -189
  227. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +58 -89
  228. package/lib/solution/BookingTicket/utils/bookingStatus.js +107 -78
  229. package/lib/solution/BookingTicket/utils/cartView.js +114 -99
  230. package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
  231. package/lib/solution/BookingTicket/utils/orderCustomer.js +18 -41
  232. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +219 -86
  233. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +168 -116
  234. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +79 -91
  235. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +54 -41
  236. package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -81
  237. package/lib/solution/BookingTicket/utils/scan/index.js +98 -104
  238. package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
  239. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +52 -64
  240. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +56 -58
  241. package/lib/solution/BookingTicket/utils/weighingProductSku.js +34 -48
  242. package/lib/solution/BuyTickets/index.js +67 -70
  243. package/lib/solution/BuyTickets/types.js +22 -38
  244. package/lib/solution/Checkout/index.js +1451 -1158
  245. package/lib/solution/Checkout/types.js +91 -61
  246. package/lib/solution/Checkout/utils/index.js +228 -156
  247. package/lib/solution/PlaceOrder/index.js +55 -0
  248. package/lib/solution/RegisterAndLogin/config.js +493 -460
  249. package/lib/solution/RegisterAndLogin/index.js +633 -630
  250. package/lib/solution/RegisterAndLogin/types.js +189 -76
  251. package/lib/solution/RegisterAndLogin/utils.js +183 -125
  252. package/lib/solution/Sales/index.js +328 -324
  253. package/lib/solution/Sales/types.js +27 -33
  254. package/lib/solution/ScanOrder/index.js +832 -864
  255. package/lib/solution/ScanOrder/types.js +33 -34
  256. package/lib/solution/ScanOrder/utils.js +409 -374
  257. package/lib/solution/ShopDiscount/index.js +226 -232
  258. package/lib/solution/ShopDiscount/types.js +15 -37
  259. package/lib/solution/ShopDiscount/utils.js +300 -172
  260. package/lib/solution/UnifiedBookingSales/index.js +1035 -1201
  261. package/lib/solution/UnifiedBookingSales/remoteOccupancyCache.js +99 -159
  262. package/lib/solution/UnifiedBookingSales/types.js +10 -32
  263. package/lib/solution/VenueBooking/index.js +811 -879
  264. package/lib/solution/VenueBooking/types.js +19 -39
  265. package/lib/solution/VenueBooking/utils/dateSummary.js +27 -56
  266. package/lib/solution/VenueBooking/utils/resource.js +31 -54
  267. package/lib/solution/VenueBooking/utils/slotMerge.js +94 -107
  268. package/lib/solution/VenueBooking/utils/timeSlot.js +132 -132
  269. package/lib/solution/VenueBooking/utils.js +130 -67
  270. package/lib/solution/index.js +124 -41
  271. package/lib/store/createStore.js +32 -29
  272. package/lib/types/index.js +4 -16
  273. package/lib/utils/payment-number.js +26 -46
  274. package/lib/utils/task.js +36 -36
  275. package/lib/utils/watch.js +81 -47
  276. package/package.json +2 -1
@@ -1,282 +1,282 @@
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);
1
+ "use strict";
28
2
 
29
- // src/modules/Discount/index.ts
30
- var Discount_exports = {};
31
- __export(Discount_exports, {
32
- DiscountModule: () => DiscountModule
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
33
5
  });
34
- module.exports = __toCommonJS(Discount_exports);
35
- var import_utils = require("../../solution/ShopDiscount/utils");
36
- var import_BaseModule = require("../BaseModule");
37
- var import_types = require("./types");
38
- var import_decimal = __toESM(require("decimal.js"));
39
- var DiscountModule = class extends import_BaseModule.BaseModule {
6
+ exports.DiscountModule = void 0;
7
+ var _utils = require("../../solution/ShopDiscount/utils");
8
+ var _BaseModule = require("../BaseModule");
9
+ var _types = require("./types");
10
+ var _decimal = _interopRequireDefault(require("decimal.js"));
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ class DiscountModule extends _BaseModule.BaseModule {
13
+ defaultName = 'discount';
14
+ defaultVersion = '1.0.0';
15
+ request;
16
+ window;
17
+ store;
18
+ cacheId;
19
+ openCache = false;
20
+ fatherModule;
40
21
  constructor(name, version) {
41
22
  super(name, version);
42
- this.defaultName = "discount";
43
- this.defaultVersion = "1.0.0";
44
- this.openCache = false;
45
23
  }
46
24
  async initialize(core, options) {
47
- var _a, _b, _c, _d;
48
25
  this.core = core;
49
- this.store = options == null ? void 0 : options.store;
50
- if (Array.isArray((_a = options == null ? void 0 : options.initialState) == null ? void 0 : _a.discountList)) {
51
- this.store.discountList = options == null ? void 0 : options.initialState.discountList;
26
+ this.store = options?.store;
27
+ if (Array.isArray(options?.initialState?.discountList)) {
28
+ this.store.discountList = options?.initialState.discountList;
52
29
  } else {
53
30
  this.store.discountList = [];
54
31
  }
55
- if (Array.isArray((_b = options == null ? void 0 : options.initialState) == null ? void 0 : _b.originalDiscountList)) {
56
- this.store.originalDiscountList = options == null ? void 0 : options.initialState.originalDiscountList;
32
+ if (Array.isArray(options?.initialState?.originalDiscountList)) {
33
+ this.store.originalDiscountList = options?.initialState.originalDiscountList;
57
34
  } else {
58
35
  this.store.originalDiscountList = [];
59
36
  }
60
- if ((_c = options == null ? void 0 : options.otherParams) == null ? void 0 : _c.cacheId) {
37
+ if (options?.otherParams?.cacheId) {
61
38
  this.openCache = options.otherParams.openCache;
62
39
  this.cacheId = options.otherParams.cacheId;
63
40
  }
64
- if ((_d = options == null ? void 0 : options.otherParams) == null ? void 0 : _d.fatherModule) {
41
+ if (options?.otherParams?.fatherModule) {
65
42
  this.fatherModule = options.otherParams.fatherModule;
66
43
  }
67
- this.request = core.getPlugin("request");
68
- this.window = core.getPlugin("window");
44
+
45
+ // 获取依赖的插件
46
+ this.request = core.getPlugin('request');
47
+ this.window = core.getPlugin('window');
69
48
  if (!this.request) {
70
- throw new Error("discount模块需要 request 插件支持");
49
+ throw new Error('discount模块需要 request 插件支持');
71
50
  }
72
51
  if (!this.window) {
73
- throw new Error("discount模块需要 window 插件支持");
52
+ throw new Error('discount模块需要 window 插件支持');
74
53
  }
75
54
  }
76
55
  async setDiscountList(discountList) {
77
56
  this.store.discountList = discountList;
78
- await this.core.effects.emit(
79
- import_types.DiscountHooks.OnDiscountListChange,
80
- discountList
81
- );
57
+ await this.core.effects.emit(_types.DiscountHooks.OnDiscountListChange, discountList);
82
58
  }
83
59
  getDiscountList() {
84
60
  return this.store.discountList;
85
61
  }
62
+
86
63
  // 设置原始优惠券列表
87
64
  async setOriginalDiscountList(originalDiscountList) {
88
65
  this.store.originalDiscountList = originalDiscountList;
89
66
  }
67
+
90
68
  // 获取原始优惠券列表
91
69
  getOriginalDiscountList() {
92
70
  return this.store.originalDiscountList || [];
93
71
  }
94
72
  normalizePositiveNumberIds(values) {
95
- const ids = values.map((value) => Number(value)).filter((value) => Number.isFinite(value) && value > 0);
73
+ const ids = values.map(value => Number(value)).filter(value => Number.isFinite(value) && value > 0);
96
74
  return Array.from(new Set(ids));
97
75
  }
98
76
  async loadPrepareConfig(params) {
99
- var _a, _b, _c, _d, _e;
100
- if (typeof params.order_id === "string" && params.order_id.startsWith("LOCAL_")) {
101
- params.order_id = void 0;
77
+ if (typeof params.order_id === 'string' && params.order_id.startsWith('LOCAL_')) {
78
+ params.order_id = undefined;
102
79
  }
103
- const prepareConfig = await this.request.post(
104
- `/order/prepare/config`,
105
- {
106
- ...params,
107
- with_available_wallet_flag: params.with_available_wallet_flag ?? 1,
108
- with_available_wallet_pass_flag: params.with_available_wallet_pass_flag ?? 1
109
- }
110
- );
111
- const rawDiscountList = [
112
- ...((_a = prepareConfig == null ? void 0 : prepareConfig.data) == null ? void 0 : _a.good_pass_list) || [],
113
- ...((_b = prepareConfig == null ? void 0 : prepareConfig.data) == null ? void 0 : _b.discount_card_list) || []
114
- ];
115
- const availableWalletList = [
116
- ...((_c = prepareConfig == null ? void 0 : prepareConfig.data) == null ? void 0 : _c.avaiable_wallet_list) || [],
117
- ...((_d = prepareConfig == null ? void 0 : prepareConfig.data) == null ? void 0 : _d.available_wallet_list) || []
118
- ];
119
- const availableWalletPassList = ((_e = prepareConfig == null ? void 0 : prepareConfig.data) == null ? void 0 : _e.available_wallet_pass_list) || [];
120
- const availableWalletIds = this.normalizePositiveNumberIds([
121
- ...availableWalletList.map((item) => item == null ? void 0 : item.wallet_id),
122
- ...availableWalletPassList.map((item) => item == null ? void 0 : item.product_id)
123
- ]);
124
- const goodPassList = this.filterEnabledDiscountList(
125
- rawDiscountList
126
- ) || [];
80
+ const prepareConfig = await this.request.post(`/order/prepare/config`, {
81
+ ...params,
82
+ with_available_wallet_flag: params.with_available_wallet_flag ?? 1,
83
+ with_available_wallet_pass_flag: params.with_available_wallet_pass_flag ?? 1
84
+ });
85
+ const rawDiscountList = [...(prepareConfig?.data?.good_pass_list || []), ...(prepareConfig?.data?.discount_card_list || [])];
86
+ const availableWalletList = [...(prepareConfig?.data?.avaiable_wallet_list || []), ...(prepareConfig?.data?.available_wallet_list || [])];
87
+ const availableWalletPassList = prepareConfig?.data?.available_wallet_pass_list || [];
88
+ const availableWalletIds = this.normalizePositiveNumberIds([...availableWalletList.map(item => item?.wallet_id), ...availableWalletPassList.map(item => item?.product_id)]);
89
+ const goodPassList = this.filterEnabledDiscountList(rawDiscountList) || [];
90
+
91
+ // this.setDiscountList(goodPassList);
92
+
127
93
  return {
128
94
  discountList: goodPassList,
129
95
  availableWalletIds
130
96
  };
131
97
  }
132
98
  async batchSearch(code, options) {
133
- const { customerId, orderId } = options || {};
99
+ const {
100
+ customerId,
101
+ orderId
102
+ } = options || {};
134
103
  const result = await this.request.get(`/machinecode/batch-search`, {
135
104
  code,
136
105
  translate_flag: 1,
137
- tags: ["good_pass", "product_discount_card"],
106
+ tags: ['good_pass', 'product_discount_card'],
138
107
  // available: 1,
139
108
  relation_product: 1,
140
- with: ["extensionData", "customScheduleSnapshot", "holder.detail"],
109
+ with: ['extensionData', 'customScheduleSnapshot', 'holder.detail'],
141
110
  order_behavior_count: 1,
142
111
  order_behavior_count_customer_id: customerId || 1,
143
- ...orderId ? { order_behavior_count_order_id: orderId } : {},
112
+ ...(orderId ? {
113
+ order_behavior_count_order_id: orderId
114
+ } : {}),
144
115
  unified_status_info_flag: 1,
145
116
  request_timezone: Intl.DateTimeFormat().resolvedOptions().timeZone
146
117
  });
147
- const resultDiscountWithReason = this.filterEnabledDiscountListWithReason((result == null ? void 0 : result.data) || []) || [];
118
+ const resultDiscountWithReason = this.filterEnabledDiscountListWithReason(result?.data || []) || [];
148
119
  return resultDiscountWithReason;
149
120
  }
150
121
  async batchSearchByProductIds(productIds) {
151
122
  const result = await this.request.get(`/machinecode/batch-search`, {
152
123
  ids: productIds,
153
124
  translate_flag: 1,
154
- tags: ["good_pass", "product_discount_card"],
125
+ tags: ['good_pass', 'product_discount_card'],
155
126
  relation_product: 1
156
127
  });
157
- return (result == null ? void 0 : result.data) || [];
128
+ return result?.data || [];
158
129
  }
159
130
  filterEnabledDiscountList(discountList) {
160
- return discountList.filter(
161
- (discount) => discount.limit_status === "enable" && new import_decimal.default((discount == null ? void 0 : discount.par_value) || 0).minus(new import_decimal.default((discount == null ? void 0 : discount.used_par_value) || 0)).greaterThan(0) && this.checkUsageCreditsLimit(discount)
162
- );
131
+ return discountList.filter(discount => discount.limit_status === 'enable' && new _decimal.default(discount?.par_value || 0).minus(new _decimal.default(discount?.used_par_value || 0)).greaterThan(0) && this.checkUsageCreditsLimit(discount));
163
132
  }
133
+
164
134
  // 检查使用次数限制
165
135
  checkUsageCreditsLimit(discount) {
136
+ // 如果没有 extension_data,则不需要限制
166
137
  if (!discount.extension_data || discount.extension_data.length === 0) {
167
138
  return true;
168
139
  }
169
- const usageCreditsData = discount.extension_data.find(
170
- (data) => data.field_key === "usage_credits"
171
- );
140
+
141
+ // 查找 field_key usage_credits 的数据
142
+ const usageCreditsData = discount.extension_data.find(data => data.field_key === 'usage_credits');
143
+
144
+ // 如果没有找到 usage_credits 数据,则不需要限制
172
145
  if (!usageCreditsData) {
173
146
  return true;
174
147
  }
175
148
  const value = usageCreditsData.value;
149
+
150
+ // 检查总次数限制
176
151
  if (value.total_credits && value.total_credits > 0) {
177
152
  if ((discount.total_order_behavior_count || 0) >= value.total_credits) {
178
153
  return false;
179
154
  }
180
155
  }
156
+
157
+ // 检查单用户限制
181
158
  if (value.per_user_limit && value.per_user_limit > 0) {
182
159
  if ((discount.customer_order_behavior_count || 0) >= value.per_user_limit) {
183
160
  return false;
184
161
  }
185
162
  }
163
+
164
+ // 检查单日限制
186
165
  if (value.max_per_day && value.max_per_day > 0) {
187
166
  if ((discount.today_order_behavior_count || 0) >= value.max_per_day) {
188
167
  return false;
189
168
  }
190
169
  }
170
+
171
+ // 检查单周限制
191
172
  if (value.max_per_week && value.max_per_week > 0) {
192
173
  if ((discount.week_order_behavior_count || 0) >= value.max_per_week) {
193
174
  return false;
194
175
  }
195
176
  }
177
+
178
+ // 检查单月限制
196
179
  if (value.max_per_month && value.max_per_month > 0) {
197
180
  if ((discount.month_order_behavior_count || 0) >= value.max_per_month) {
198
181
  return false;
199
182
  }
200
183
  }
184
+
185
+ // 所有检查都通过
201
186
  return true;
202
187
  }
188
+
203
189
  // 过滤启用且可用的优惠券,并返回校验失败原因
204
190
  filterEnabledDiscountListWithReason(discountList) {
205
- let lists = discountList.filter((discount) => discount.limit_status === "enable").filter((discount) => {
206
- const remaining = new import_decimal.default((discount == null ? void 0 : discount.par_value) || 0).minus(new import_decimal.default((discount == null ? void 0 : discount.used_par_value) || 0)).greaterThan(0);
191
+ let lists = discountList.filter(discount => discount.limit_status === 'enable').filter(discount => {
192
+ const remaining = new _decimal.default(discount?.par_value || 0).minus(new _decimal.default(discount?.used_par_value || 0)).greaterThan(0);
207
193
  return remaining;
208
- }).map((discount) => {
194
+ }).map(discount => {
209
195
  const limitFailKey = this.checkUsageCreditsLimitWithFailKey(discount);
210
196
  return {
211
197
  ...discount,
212
198
  usageLimitFailKey: limitFailKey
213
199
  };
214
200
  });
215
- const availableLists = lists.filter((item) => !item.usageLimitFailKey && item.unified_available_status !== 0);
216
- const currentFailDiscount = lists.find((item) => item.usageLimitFailKey);
201
+
202
+ // 可用的列表
203
+ const availableLists = lists.filter(item => !item.usageLimitFailKey && item.unified_available_status !== 0);
204
+ // 不可用数据
205
+ const currentFailDiscount = lists.find(item => item.usageLimitFailKey);
217
206
  return {
218
207
  discountList: availableLists,
219
- unavailableReasonKey: currentFailDiscount == null ? void 0 : currentFailDiscount.usageLimitFailKey
208
+ unavailableReasonKey: currentFailDiscount?.usageLimitFailKey
220
209
  };
221
210
  }
211
+
222
212
  // 检查使用次数限制,并返回校验失败原因
223
213
  checkUsageCreditsLimitWithFailKey(discount) {
224
214
  if (!discount.extension_data || discount.extension_data.length === 0) {
225
215
  return null;
226
216
  }
227
- const usageCreditsData = discount.extension_data.find(
228
- (data) => data.field_key === "usage_credits"
229
- );
217
+ const usageCreditsData = discount.extension_data.find(data => data.field_key === 'usage_credits');
230
218
  if (!usageCreditsData) {
231
219
  return null;
232
220
  }
233
221
  const value = usageCreditsData.value;
222
+
223
+ // 总次数限制
234
224
  if (value.total_credits && value.total_credits > 0) {
235
225
  if ((discount.total_order_behavior_count || 0) >= value.total_credits) {
236
- return "total_credits";
226
+ return 'total_credits';
237
227
  }
238
228
  }
229
+
230
+ // 单用户限制
239
231
  if (value.per_user_limit && value.per_user_limit > 0) {
240
232
  if ((discount.customer_order_behavior_count || 0) >= value.per_user_limit) {
241
- return "per_user_limit";
233
+ return 'per_user_limit';
242
234
  }
243
235
  }
236
+
237
+ // 单日限制
244
238
  if (value.max_per_day && value.max_per_day > 0) {
245
239
  if ((discount.today_order_behavior_count || 0) >= value.max_per_day) {
246
- return "max_per_day";
240
+ return 'max_per_day';
247
241
  }
248
242
  }
243
+
244
+ // 单周限制
249
245
  if (value.max_per_week && value.max_per_week > 0) {
250
246
  if ((discount.week_order_behavior_count || 0) >= value.max_per_week) {
251
- return "max_per_week";
247
+ return 'max_per_week';
252
248
  }
253
249
  }
250
+
251
+ // 单月限制
254
252
  if (value.max_per_month && value.max_per_month > 0) {
255
253
  if ((discount.month_order_behavior_count || 0) >= value.max_per_month) {
256
- return "max_per_month";
254
+ return 'max_per_month';
257
255
  }
258
256
  }
257
+
258
+ // 全部通过
259
259
  return null;
260
260
  }
261
+
261
262
  // 根据productIds去重
262
263
  uniqueByProductId(discountList) {
263
- return (0, import_utils.uniqueById)(discountList, "product_id");
264
+ return (0, _utils.uniqueById)(discountList, 'product_id');
264
265
  }
265
266
  filterDiscountListByProductIds(discountList, productIds) {
266
- return discountList.filter((discount) => {
267
+ return discountList.filter(discount => {
267
268
  const applicableProductIds = discount.applicableProductIds || [];
268
- return applicableProductIds.some((id) => productIds.includes(id));
269
+ return applicableProductIds.some(id => productIds.includes(id));
269
270
  });
270
271
  }
271
272
  calcDiscountApplicableProductTotalPrice(discount) {
272
- if (discount == null ? void 0 : discount.savedAmount) {
273
- return (discount == null ? void 0 : discount.savedAmount) || 0;
273
+ if (discount?.savedAmount) {
274
+ return discount?.savedAmount || 0;
274
275
  }
275
276
  if (discount.appliedProductDetails) {
276
277
  return discount.appliedProductDetails.reduce((total, product) => {
277
- var _a, _b;
278
- const price = new import_decimal.default(((_a = product == null ? void 0 : product.discount) == null ? void 0 : _a.fixed_amount) || 0).mul((product == null ? void 0 : product._num) || 1);
279
- return new import_decimal.default(total).plus(price).add(((_b = product == null ? void 0 : product.metadata) == null ? void 0 : _b.product_discount_difference) || 0).toNumber();
278
+ const price = new _decimal.default(product?.discount?.fixed_amount || 0).mul(product?._num || 1);
279
+ return new _decimal.default(total).plus(price).add(product?.metadata?.product_discount_difference || 0).toNumber();
280
280
  }, 0);
281
281
  }
282
282
  }
@@ -284,13 +284,11 @@ var DiscountModule = class extends import_BaseModule.BaseModule {
284
284
  this.store.discountList = [];
285
285
  this.core.effects.offByModuleDestroy(this.name);
286
286
  await this.core.effects.emit(`${this.name}:onDestroy`, {});
287
- console.log("[Discount] 已销毁");
288
287
  super.destroy();
289
288
  }
290
289
  async clear() {
291
290
  this.store.discountList = [];
292
291
  this.store.originalDiscountList = [];
293
- console.log("[Discount] clear");
294
292
  }
295
293
  storeChange() {
296
294
  if (this.openCache) {
@@ -298,12 +296,9 @@ var DiscountModule = class extends import_BaseModule.BaseModule {
298
296
  cacheId: this.cacheId,
299
297
  fatherModule: this.fatherModule,
300
298
  store: this.store,
301
- cacheKey: ["discountList"]
299
+ cacheKey: ['discountList']
302
300
  });
303
301
  }
304
302
  }
305
- };
306
- // Annotate the CommonJS export names for ESM import in node:
307
- 0 && (module.exports = {
308
- DiscountModule
309
- });
303
+ }
304
+ exports.DiscountModule = DiscountModule;
@@ -1,33 +1,11 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";
18
2
 
19
- // src/modules/Discount/types.ts
20
- var types_exports = {};
21
- __export(types_exports, {
22
- DiscountHooks: () => DiscountHooks
23
- });
24
- module.exports = __toCommonJS(types_exports);
25
- var DiscountHooks = /* @__PURE__ */ ((DiscountHooks2) => {
26
- DiscountHooks2["OnDiscountListChange"] = "discount:onDiscountListChange";
27
- DiscountHooks2["OnDestroy"] = "discount:onDestroy";
28
- return DiscountHooks2;
29
- })(DiscountHooks || {});
30
- // Annotate the CommonJS export names for ESM import in node:
31
- 0 && (module.exports = {
32
- DiscountHooks
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
33
5
  });
6
+ exports.DiscountHooks = void 0;
7
+ let DiscountHooks = exports.DiscountHooks = /*#__PURE__*/function (DiscountHooks) {
8
+ DiscountHooks["OnDiscountListChange"] = "discount:onDiscountListChange";
9
+ DiscountHooks["OnDestroy"] = "discount:onDestroy";
10
+ return DiscountHooks;
11
+ }({});
@@ -1,42 +1,27 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";
18
2
 
19
- // src/modules/Guests/index.ts
20
- var Guests_exports = {};
21
- __export(Guests_exports, {
22
- GuestListModule: () => GuestListModule
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
23
5
  });
24
- module.exports = __toCommonJS(Guests_exports);
25
- var import_BaseModule = require("../BaseModule");
26
- var import_types = require("./types");
27
- var GuestListModule = class extends import_BaseModule.BaseModule {
6
+ exports.GuestListModule = void 0;
7
+ var _BaseModule = require("../BaseModule");
8
+ var _types = require("./types");
9
+ class GuestListModule extends _BaseModule.BaseModule {
10
+ defaultName = 'guestList';
11
+ defaultVersion = '1.0.0';
12
+ state = {
13
+ list: []
14
+ };
28
15
  constructor(name, version) {
29
16
  super(name, version);
30
- this.defaultName = "guestList";
31
- this.defaultVersion = "1.0.0";
32
- this.state = {
33
- list: []
34
- };
35
17
  }
36
18
  async initialize(core, options) {
37
19
  this.core = core;
38
- if (options == null ? void 0 : options.initialState) {
39
- this.state = { ...this.state, ...options.initialState };
20
+ if (options?.initialState) {
21
+ this.state = {
22
+ ...this.state,
23
+ ...options.initialState
24
+ };
40
25
  }
41
26
  }
42
27
  async addGuest(guest) {
@@ -45,23 +30,18 @@ var GuestListModule = class extends import_BaseModule.BaseModule {
45
30
  await this.core.effects.emit(`${this.name}:onGuestChange`, this.state.list);
46
31
  }
47
32
  async updateGuest(id, updates) {
48
- const index = this.state.list.findIndex((g) => g.id === id);
49
- if (index === -1)
50
- return;
33
+ const index = this.state.list.findIndex(g => g.id === id);
34
+ if (index === -1) return;
51
35
  this.state.list[index] = {
52
36
  ...this.state.list[index],
53
37
  ...updates
54
38
  };
55
- await this.core.effects.emit(
56
- import_types.GuestHooks.OnGuestUpdate,
57
- this.state.list[index]
58
- );
39
+ await this.core.effects.emit(_types.GuestHooks.OnGuestUpdate, this.state.list[index]);
59
40
  await this.core.effects.emit(`${this.name}:onGuestChange`, this.state.list);
60
41
  }
61
42
  async removeGuest(id) {
62
- const index = this.state.list.findIndex((g) => g.id === id);
63
- if (index === -1)
64
- return;
43
+ const index = this.state.list.findIndex(g => g.id === id);
44
+ if (index === -1) return;
65
45
  const [removed] = this.state.list.splice(index, 1);
66
46
  await this.core.effects.emit(`${this.name}:onGuestRemove`, removed);
67
47
  await this.core.effects.emit(`${this.name}:onGuestChange`, this.state.list);
@@ -73,26 +53,20 @@ var GuestListModule = class extends import_BaseModule.BaseModule {
73
53
  return this.state.list.length;
74
54
  }
75
55
  async addItemToGuest(guestId, item) {
76
- const guest = this.state.list.find((g) => g.id === guestId);
77
- if (!guest)
78
- return;
56
+ const guest = this.state.list.find(g => g.id === guestId);
57
+ if (!guest) return;
79
58
  guest.items.push(item);
80
59
  await this.core.effects.emit(`${this.name}:onGuestUpdate`, guest);
81
60
  await this.core.effects.emit(`${this.name}:onGuestChange`, this.state.list);
82
61
  }
83
62
  async removeItemFromGuest(guestId, itemId) {
84
- const guest = this.state.list.find((g) => g.id === guestId);
85
- if (!guest)
86
- return;
87
- const index = guest.items.findIndex((i) => i.id === itemId);
88
- if (index === -1)
89
- return;
63
+ const guest = this.state.list.find(g => g.id === guestId);
64
+ if (!guest) return;
65
+ const index = guest.items.findIndex(i => i.id === itemId);
66
+ if (index === -1) return;
90
67
  guest.items.splice(index, 1);
91
68
  await this.core.effects.emit(`${this.name}:onGuestUpdate`, guest);
92
69
  await this.core.effects.emit(`${this.name}:onGuestChange`, this.state.list);
93
70
  }
94
- };
95
- // Annotate the CommonJS export names for ESM import in node:
96
- 0 && (module.exports = {
97
- GuestListModule
98
- });
71
+ }
72
+ exports.GuestListModule = GuestListModule;
@@ -1,35 +1,25 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";
18
2
 
19
- // src/modules/Guests/types.ts
20
- var types_exports = {};
21
- __export(types_exports, {
22
- GuestHooks: () => GuestHooks
23
- });
24
- module.exports = __toCommonJS(types_exports);
25
- var GuestHooks = /* @__PURE__ */ ((GuestHooks2) => {
26
- GuestHooks2["OnGuestAdd"] = "guest:onGuestAdd";
27
- GuestHooks2["OnGuestUpdate"] = "guest:onGuestUpdate";
28
- GuestHooks2["OnGuestRemove"] = "guest:onGuestRemove";
29
- GuestHooks2["OnGuestChange"] = "guest:onGuestChange";
30
- return GuestHooks2;
31
- })(GuestHooks || {});
32
- // Annotate the CommonJS export names for ESM import in node:
33
- 0 && (module.exports = {
34
- GuestHooks
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
35
5
  });
6
+ exports.GuestHooks = void 0;
7
+ let GuestHooks = exports.GuestHooks = /*#__PURE__*/function (GuestHooks) {
8
+ GuestHooks["OnGuestAdd"] = "guest:onGuestAdd";
9
+ GuestHooks["OnGuestUpdate"] = "guest:onGuestUpdate";
10
+ GuestHooks["OnGuestRemove"] = "guest:onGuestRemove";
11
+ GuestHooks["OnGuestChange"] = "guest:onGuestChange";
12
+ return GuestHooks;
13
+ }({});
14
+ /**
15
+ * 预约人选择的商品/服务
16
+ */
17
+ /**
18
+ * 预约人信息
19
+ */
20
+ /**
21
+ * 预约人列表状态
22
+ */
23
+ /**
24
+ * 预约人列表模块 API
25
+ */