@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,71 +1,54 @@
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/Quotation/index.ts
20
- var Quotation_exports = {};
21
- __export(Quotation_exports, {
22
- QuotationModule: () => QuotationModule
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
23
5
  });
24
- module.exports = __toCommonJS(Quotation_exports);
25
- var import_BaseModule = require("../BaseModule");
26
- var import_getDateIsInSchedule = require("../Schedule/getDateIsInSchedule");
27
- var QuotationModule = class extends import_BaseModule.BaseModule {
6
+ exports.QuotationModule = void 0;
7
+ var _BaseModule = require("../BaseModule");
8
+ var _getDateIsInSchedule = require("../Schedule/getDateIsInSchedule");
9
+ class QuotationModule extends _BaseModule.BaseModule {
10
+ defaultName = 'quotation';
11
+ defaultVersion = '1.0.0';
12
+ request;
13
+ store = {
14
+ list: []
15
+ };
16
+ scheduleResolver;
17
+ app;
18
+ quotationListUpdatedListener;
28
19
  constructor(name, version) {
29
20
  super(name, version);
30
- this.defaultName = "quotation";
31
- this.defaultVersion = "1.0.0";
32
- this.store = { list: [] };
33
21
  }
34
22
  async initialize(core, options) {
35
- var _a, _b;
36
23
  this.core = core;
37
- this.request = core.getPlugin("request");
38
- if (!this.request)
39
- throw new Error("QuotationModule 需要 request 插件支持");
40
- this.app = (_b = (_a = core.getPlugin("app")) == null ? void 0 : _a.getApp) == null ? void 0 : _b.call(_a);
41
- this.store = { list: [] };
24
+ this.request = core.getPlugin('request');
25
+ if (!this.request) throw new Error('QuotationModule 需要 request 插件支持');
26
+ this.app = core.getPlugin('app')?.getApp?.();
27
+ this.store = {
28
+ list: []
29
+ };
42
30
  }
43
31
  async loadQuotations(params) {
44
32
  const query = {};
45
- if (params == null ? void 0 : params.channel)
46
- query.channel = params.channel;
47
- if ((params == null ? void 0 : params.channel) === "online_store") {
48
- query.channel = "online-store";
33
+ if (params?.channel) query.channel = params.channel;
34
+ if (params?.channel === 'online_store') {
35
+ query.channel = 'online-store';
49
36
  }
50
37
  let initialResultApplied = false;
51
- const applyRemoteUpdate = (response) => {
38
+ const applyRemoteUpdate = response => {
52
39
  this.applyQuotationResponse(response);
53
40
  if (initialResultApplied) {
54
41
  this.notifyQuotationListUpdated();
55
42
  }
56
43
  };
57
- const res = await this.request.get(
58
- "/quotation/available",
59
- query,
60
- {
61
- cache: {
62
- type: "indexDB",
63
- updateCache: true,
64
- cacheKeyData: this.getQuotationCacheKeyData(query)
65
- },
66
- cacheUpdateChange: applyRemoteUpdate
67
- }
68
- );
44
+ const res = await this.request.get('/quotation/available', query, {
45
+ cache: {
46
+ type: 'indexDB',
47
+ updateCache: true,
48
+ cacheKeyData: this.getQuotationCacheKeyData(query)
49
+ },
50
+ cacheUpdateChange: applyRemoteUpdate
51
+ });
69
52
  this.applyQuotationResponse(res);
70
53
  initialResultApplied = true;
71
54
  }
@@ -76,21 +59,19 @@ var QuotationModule = class extends import_BaseModule.BaseModule {
76
59
  this.quotationListUpdatedListener = listener;
77
60
  }
78
61
  getQuotationCustomerScopeInfo() {
79
- const customerById = /* @__PURE__ */ new Map();
80
- const quotationScopes = this.store.list.filter((quotation) => Array.isArray(quotation.customer) && quotation.customer.length > 0).map((quotation) => {
62
+ const customerById = new Map();
63
+ const quotationScopes = this.store.list.filter(quotation => Array.isArray(quotation.customer) && quotation.customer.length > 0).map(quotation => {
81
64
  const customerIds = [];
82
65
  const customers = [];
83
- const localSeen = /* @__PURE__ */ new Set();
66
+ const localSeen = new Set();
84
67
  const quotationCustomers = quotation.customer || [];
85
- quotationCustomers.forEach((customer) => {
86
- const customerId = this.normalizeCustomerId(customer == null ? void 0 : customer.id);
87
- if (!customerId || localSeen.has(customerId))
88
- return;
68
+ quotationCustomers.forEach(customer => {
69
+ const customerId = this.normalizeCustomerId(customer?.id);
70
+ if (!customerId || localSeen.has(customerId)) return;
89
71
  localSeen.add(customerId);
90
72
  customerIds.push(customerId);
91
73
  customers.push(customer);
92
- if (!customerById.has(customerId))
93
- customerById.set(customerId, customer);
74
+ if (!customerById.has(customerId)) customerById.set(customerId, customer);
94
75
  });
95
76
  return {
96
77
  quotationId: quotation.id,
@@ -109,6 +90,7 @@ var QuotationModule = class extends import_BaseModule.BaseModule {
109
90
  };
110
91
  return result;
111
92
  }
93
+
112
94
  /**
113
95
  * Look up the quotation price for a specific product (+ optional variant) at a given datetime.
114
96
  * Returns the price as a string (e.g. "300.00"), or null if no quotation applies.
@@ -118,23 +100,23 @@ var QuotationModule = class extends import_BaseModule.BaseModule {
118
100
  * the requested productId wins.
119
101
  */
120
102
  getPriceForProduct(params) {
121
- var _a;
122
- return ((_a = this.getQuotationMatchForProduct(params)) == null ? void 0 : _a.price) ?? null;
103
+ return this.getQuotationMatchForProduct(params)?.price ?? null;
123
104
  }
124
105
  getQuotationMatchForProduct(params) {
125
- const { productId, variantId, datetime, customer_id } = params;
106
+ const {
107
+ productId,
108
+ variantId,
109
+ datetime,
110
+ customer_id
111
+ } = params;
126
112
  for (const quotation of this.store.list) {
127
113
  const visible = this.isQuotationVisibleForCustomer(quotation, customer_id);
128
- if (!visible)
129
- continue;
114
+ if (!visible) continue;
130
115
  const active = this.isQuotationActiveAt(quotation, datetime);
131
- if (!active)
132
- continue;
116
+ if (!active) continue;
133
117
  const match = this.findProductData(quotation.product_data, productId, variantId);
134
- if (!match)
135
- continue;
136
- if (match.value === 0)
137
- continue;
118
+ if (!match) continue;
119
+ if (match.value === 0) continue;
138
120
  return {
139
121
  price: String(match.value),
140
122
  quotationShelfId: quotation.id
@@ -143,18 +125,17 @@ var QuotationModule = class extends import_BaseModule.BaseModule {
143
125
  return null;
144
126
  }
145
127
  getQuotationShelfId(params) {
146
- var _a;
147
- return ((_a = this.getQuotationMatchForProduct(params)) == null ? void 0 : _a.quotationShelfId) ?? 0;
128
+ return this.getQuotationMatchForProduct(params)?.quotationShelfId ?? 0;
148
129
  }
130
+
149
131
  /**
150
132
  * Batch pre-compute quotation prices for a set of products across multiple time points.
151
133
  * Key format: `${productId}:${timePoint}`
152
134
  * This avoids repeated schedule matching when the same product appears in multiple resource rows.
153
135
  */
154
136
  buildProductPriceMap(params) {
155
- const map = /* @__PURE__ */ new Map();
156
- if (!this.store.list.length)
157
- return map;
137
+ const map = new Map();
138
+ if (!this.store.list.length) return map;
158
139
  for (const productId of params.productIds) {
159
140
  for (const timePoint of params.timePoints) {
160
141
  const key = `${productId}:${timePoint}`;
@@ -174,26 +155,24 @@ var QuotationModule = class extends import_BaseModule.BaseModule {
174
155
  this.scheduleResolver = resolver;
175
156
  }
176
157
  applyQuotationResponse(response) {
177
- var _a;
178
- const source = ((_a = response == null ? void 0 : response.data) == null ? void 0 : _a.list) || (response == null ? void 0 : response.list) || [];
158
+ const source = response?.data?.list || response?.list || [];
179
159
  this.store.list = [...source].sort((a, b) => Number(b.sort || 0) - Number(a.sort || 0));
180
160
  }
181
161
  notifyQuotationListUpdated() {
182
- var _a;
183
162
  try {
184
- (_a = this.quotationListUpdatedListener) == null ? void 0 : _a.call(this);
163
+ this.quotationListUpdatedListener?.();
185
164
  } catch (error) {
186
- console.warn("[QuotationModule] 报价单后台更新回调失败", error);
165
+ console.warn('[QuotationModule] 报价单后台更新回调失败', error);
187
166
  }
188
167
  }
189
168
  getQuotationCacheKeyData(query) {
190
- var _a, _b, _c;
191
- let shopId = "";
169
+ let shopId = '';
192
170
  try {
193
- const storedCore = (_c = (_b = (_a = this.app) == null ? void 0 : _a.storage) == null ? void 0 : _b.getStorage) == null ? void 0 : _c.call(_b, "core");
194
- const coreInfo = typeof storedCore === "string" ? JSON.parse(storedCore || "{}") : storedCore || {};
195
- shopId = String((coreInfo == null ? void 0 : coreInfo.id) || "");
171
+ const storedCore = this.app?.storage?.getStorage?.('core');
172
+ const coreInfo = typeof storedCore === 'string' ? JSON.parse(storedCore || '{}') : storedCore || {};
173
+ shopId = String(coreInfo?.id || '');
196
174
  } catch {
175
+ // 缓存隔离信息读取失败时仍按请求参数缓存。
197
176
  }
198
177
  return {
199
178
  ...query,
@@ -202,30 +181,23 @@ var QuotationModule = class extends import_BaseModule.BaseModule {
202
181
  }
203
182
  isQuotationVisibleForCustomer(quotation, customerId) {
204
183
  const customers = quotation.customer || [];
205
- if (customers.length === 0)
206
- return true;
207
- if (!this.hasValidCustomerId(customerId))
208
- return false;
209
- return customers.some((customer) => String(customer.id) === String(customerId));
184
+ if (customers.length === 0) return true;
185
+ if (!this.hasValidCustomerId(customerId)) return false;
186
+ return customers.some(customer => String(customer.id) === String(customerId));
210
187
  }
211
188
  hasValidCustomerId(customerId) {
212
- if (customerId === void 0 || customerId === null || customerId === "")
213
- return false;
189
+ if (customerId === undefined || customerId === null || customerId === '') return false;
214
190
  return Number(customerId) > 0;
215
191
  }
216
192
  normalizeCustomerId(customerId) {
217
- if (customerId === void 0 || customerId === null || customerId === "")
218
- return null;
193
+ if (customerId === undefined || customerId === null || customerId === '') return null;
219
194
  return String(customerId);
220
195
  }
221
196
  isQuotationActiveAt(quotation, datetime) {
222
- var _a;
223
- if (!((_a = quotation.schedule) == null ? void 0 : _a.length))
224
- return false;
197
+ if (!quotation.schedule?.length) return false;
225
198
  const scheduleItems = [];
226
- quotation.schedule.forEach((s) => {
227
- var _a2;
228
- const full = (_a2 = this.scheduleResolver) == null ? void 0 : _a2.call(this, s.id);
199
+ quotation.schedule.forEach(s => {
200
+ const full = this.scheduleResolver?.(s.id);
229
201
  if (full) {
230
202
  scheduleItems.push(full);
231
203
  return;
@@ -235,30 +207,21 @@ var QuotationModule = class extends import_BaseModule.BaseModule {
235
207
  }
236
208
  const fallbackSchedule = {
237
209
  ...s,
238
- repeat_type: s.repeat_type || "none",
210
+ repeat_type: s.repeat_type || 'none',
239
211
  repeat_rule: s.repeat_rule || null,
240
212
  time_slot: s.time_slot || []
241
213
  };
242
214
  scheduleItems.push(fallbackSchedule);
243
215
  });
244
- if (!scheduleItems.length)
245
- return false;
246
- return (0, import_getDateIsInSchedule.getDateIsInSchedule)(datetime, scheduleItems);
216
+ if (!scheduleItems.length) return false;
217
+ return (0, _getDateIsInSchedule.getDateIsInSchedule)(datetime, scheduleItems);
247
218
  }
248
219
  findProductData(productData, productId, variantId) {
249
220
  if (variantId && variantId !== 0) {
250
- const variantMatch = productData.find(
251
- (p) => p.product_id === productId && p.variant_id === variantId
252
- );
253
- if (variantMatch)
254
- return variantMatch;
221
+ const variantMatch = productData.find(p => p.product_id === productId && p.variant_id === variantId);
222
+ if (variantMatch) return variantMatch;
255
223
  }
256
- return productData.find(
257
- (p) => p.product_id === productId && p.variant_id === 0
258
- );
224
+ return productData.find(p => p.product_id === productId && p.variant_id === 0);
259
225
  }
260
- };
261
- // Annotate the CommonJS export names for ESM import in node:
262
- 0 && (module.exports = {
263
- QuotationModule
264
- });
226
+ }
227
+ exports.QuotationModule = QuotationModule;
@@ -1,17 +1,5 @@
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);
1
+ "use strict";
14
2
 
15
- // src/modules/Quotation/types.ts
16
- var types_exports = {};
17
- module.exports = __toCommonJS(types_exports);
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -1,34 +1,17 @@
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/Resource/index.ts
20
- var Resource_exports = {};
21
- __export(Resource_exports, {
22
- ResourceListModule: () => ResourceListModule
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
23
5
  });
24
- module.exports = __toCommonJS(Resource_exports);
25
- var import_BaseModule = require("../BaseModule");
26
- var import_types = require("./types");
27
- var ResourceListModule = class extends import_BaseModule.BaseModule {
6
+ exports.ResourceListModule = void 0;
7
+ var _BaseModule = require("../BaseModule");
8
+ var _types = require("./types");
9
+ class ResourceListModule extends _BaseModule.BaseModule {
10
+ defaultName = 'resourceList';
11
+ defaultVersion = '1.0.0';
12
+ store;
28
13
  constructor(name, version) {
29
14
  super(name, version);
30
- this.defaultName = "resourceList";
31
- this.defaultVersion = "1.0.0";
32
15
  }
33
16
  async initialize(core, options) {
34
17
  this.core = core;
@@ -38,9 +21,8 @@ var ResourceListModule = class extends import_BaseModule.BaseModule {
38
21
  return this.store.list;
39
22
  }
40
23
  async selectResource(resourceId) {
41
- const resource = this.store.list.find((r) => r.id === resourceId);
42
- if (!resource)
43
- return;
24
+ const resource = this.store.list.find(r => r.id === resourceId);
25
+ if (!resource) return;
44
26
  this.store.selectedResource = resource;
45
27
  await this.core.effects.emit(`${this.name}:onResourceSelect`, resource);
46
28
  }
@@ -48,43 +30,29 @@ var ResourceListModule = class extends import_BaseModule.BaseModule {
48
30
  return this.store.selectedResource;
49
31
  }
50
32
  async checkAvailability(resourceId, start, end) {
51
- const resource = this.store.list.find((r) => r.id === resourceId);
52
- if (!resource)
53
- return false;
54
- return resource.timeSlots.some(
55
- (slot) => slot.start.getTime() <= start.getTime() && slot.end.getTime() >= end.getTime() && slot.availableCapacity > 0
56
- );
33
+ const resource = this.store.list.find(r => r.id === resourceId);
34
+ if (!resource) return false;
35
+ return resource.timeSlots.some(slot => slot.start.getTime() <= start.getTime() && slot.end.getTime() >= end.getTime() && slot.availableCapacity > 0);
57
36
  }
58
37
  async getAvailableTimeSlots(resourceId) {
59
- const resource = this.store.list.find((r) => r.id === resourceId);
60
- if (!resource)
61
- return [];
62
- return resource.timeSlots.filter((slot) => slot.availableCapacity > 0);
38
+ const resource = this.store.list.find(r => r.id === resourceId);
39
+ if (!resource) return [];
40
+ return resource.timeSlots.filter(slot => slot.availableCapacity > 0);
63
41
  }
64
42
  getAvailableCapacity(resourceId, timeSlot) {
65
- const resource = this.store.list.find((r) => r.id === resourceId);
66
- if (!resource)
67
- return 0;
68
- const slot = resource.timeSlots.find(
69
- (s) => s.start.getTime() === timeSlot.start.getTime() && s.end.getTime() === timeSlot.end.getTime()
70
- );
71
- return (slot == null ? void 0 : slot.availableCapacity) || 0;
43
+ const resource = this.store.list.find(r => r.id === resourceId);
44
+ if (!resource) return 0;
45
+ const slot = resource.timeSlots.find(s => s.start.getTime() === timeSlot.start.getTime() && s.end.getTime() === timeSlot.end.getTime());
46
+ return slot?.availableCapacity || 0;
72
47
  }
73
48
  async updateResource(resourceId, updates) {
74
- const index = this.store.list.findIndex((r) => r.id === resourceId);
75
- if (index === -1)
76
- return;
49
+ const index = this.store.list.findIndex(r => r.id === resourceId);
50
+ if (index === -1) return;
77
51
  this.store.list[index] = {
78
52
  ...this.store.list[index],
79
53
  ...updates
80
54
  };
81
- await this.core.effects.emit(
82
- import_types.ResourceHooks.OnResourceChange,
83
- this.store.list[index]
84
- );
55
+ await this.core.effects.emit(_types.ResourceHooks.OnResourceChange, this.store.list[index]);
85
56
  }
86
- };
87
- // Annotate the CommonJS export names for ESM import in node:
88
- 0 && (module.exports = {
89
- ResourceListModule
90
- });
57
+ }
58
+ exports.ResourceListModule = ResourceListModule;
@@ -1,34 +1,24 @@
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/Resource/types.ts
20
- var types_exports = {};
21
- __export(types_exports, {
22
- ResourceHooks: () => ResourceHooks
23
- });
24
- module.exports = __toCommonJS(types_exports);
25
- var ResourceHooks = /* @__PURE__ */ ((ResourceHooks2) => {
26
- ResourceHooks2["OnResourceSelect"] = "resource:onResourceSelect";
27
- ResourceHooks2["OnResourceChange"] = "resource:onResourceChange";
28
- ResourceHooks2["OnAvailabilityCheck"] = "resource:onAvailabilityCheck";
29
- return ResourceHooks2;
30
- })(ResourceHooks || {});
31
- // Annotate the CommonJS export names for ESM import in node:
32
- 0 && (module.exports = {
33
- ResourceHooks
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
34
5
  });
6
+ exports.ResourceHooks = void 0;
7
+ let ResourceHooks = exports.ResourceHooks = /*#__PURE__*/function (ResourceHooks) {
8
+ ResourceHooks["OnResourceSelect"] = "resource:onResourceSelect";
9
+ ResourceHooks["OnResourceChange"] = "resource:onResourceChange";
10
+ ResourceHooks["OnAvailabilityCheck"] = "resource:onAvailabilityCheck";
11
+ return ResourceHooks;
12
+ }({});
13
+ /**
14
+ * 资源可用时间段
15
+ */
16
+ /**
17
+ * 资源信息
18
+ */
19
+ /**
20
+ * 资源列表状态
21
+ */
22
+ /**
23
+ * 资源列表模块 API
24
+ */
@@ -1,42 +1,34 @@
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/Resource/utils.ts
20
- var utils_exports = {};
21
- __export(utils_exports, {
22
- getResourcesByIds: () => getResourcesByIds,
23
- getResourcesMap: () => getResourcesMap
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
24
5
  });
25
- module.exports = __toCommonJS(utils_exports);
26
- var getResourcesMap = (resourceList) => {
27
- return resourceList.reduce(
28
- (pre, item) => {
29
- pre[item.id] = item;
30
- return pre;
31
- },
32
- {}
33
- );
6
+ exports.getResourcesMap = exports.getResourcesByIds = void 0;
7
+ /**
8
+ * @title: 获取资源map
9
+ * @description:
10
+ * @param {any} resourceList
11
+ * @return {*}
12
+ * @Author: zhiwei.Wang
13
+ */
14
+ const getResourcesMap = resourceList => {
15
+ return resourceList.reduce((pre, item) => {
16
+ pre[item.id] = item;
17
+ return pre;
18
+ }, {});
34
19
  };
35
- var getResourcesByIds = (resourcesMap, ids) => {
36
- return (ids || []).map((id) => resourcesMap[id]);
20
+
21
+ /**
22
+ * @title: 根据ids筛选资源列表
23
+ * @description:
24
+ * @param {any} resourcesMap
25
+ * @param {any} ids
26
+ * @return {*}
27
+ * @Author: zhiwei.Wang
28
+ * @Date: 2024-09-19 20:23
29
+ */
30
+ exports.getResourcesMap = getResourcesMap;
31
+ const getResourcesByIds = (resourcesMap, ids) => {
32
+ return (ids || []).map(id => resourcesMap[id]);
37
33
  };
38
- // Annotate the CommonJS export names for ESM import in node:
39
- 0 && (module.exports = {
40
- getResourcesByIds,
41
- getResourcesMap
42
- });
34
+ exports.getResourcesByIds = getResourcesByIds;
@@ -1,25 +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 __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 __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
14
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";
15
2
 
16
- // src/modules/ResourcePlanner/index.ts
17
- var ResourcePlanner_exports = {};
18
- module.exports = __toCommonJS(ResourcePlanner_exports);
19
- __reExport(ResourcePlanner_exports, require("./types"), module.exports);
20
- __reExport(ResourcePlanner_exports, require("./planner"), module.exports);
21
- // Annotate the CommonJS export names for ESM import in node:
22
- 0 && (module.exports = {
23
- ...require("./types"),
24
- ...require("./planner")
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
25
5
  });
6
+ var _types = require("./types");
7
+ Object.keys(_types).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _types[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _types[key];
14
+ }
15
+ });
16
+ });
17
+ var _planner = require("./planner");
18
+ Object.keys(_planner).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _planner[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _planner[key];
25
+ }
26
+ });
27
+ });