@pisell/pisellos 2.3.24 → 2.3.26

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 (69) hide show
  1. package/dist/model/strategy/adapter/index.d.ts +0 -4
  2. package/dist/model/strategy/adapter/index.js +1 -5
  3. package/dist/modules/Discount/index.d.ts +2 -5
  4. package/dist/modules/Discount/index.js +7 -30
  5. package/dist/modules/Discount/types.d.ts +0 -4
  6. package/dist/modules/Order/index.d.ts +4 -2
  7. package/dist/modules/Order/index.js +725 -647
  8. package/dist/modules/Order/types.d.ts +0 -2
  9. package/dist/modules/Product/types.d.ts +0 -22
  10. package/dist/modules/ProductList/index.d.ts +1 -1
  11. package/dist/modules/ProductList/index.js +2 -4
  12. package/dist/modules/ProductList/types.d.ts +0 -2
  13. package/dist/server/index.d.ts +0 -50
  14. package/dist/server/index.js +749 -995
  15. package/dist/server/modules/products/index.d.ts +7 -26
  16. package/dist/server/modules/products/index.js +76 -167
  17. package/dist/server/modules/products/types.d.ts +0 -14
  18. package/dist/solution/BaseSales/index.d.ts +0 -2
  19. package/dist/solution/BaseSales/index.js +50 -36
  20. package/dist/solution/BookingByStep/index.d.ts +1 -1
  21. package/dist/solution/BookingTicket/index.d.ts +1 -13
  22. package/dist/solution/BookingTicket/index.js +21 -5
  23. package/dist/solution/BookingTicket/types.d.ts +0 -2
  24. package/dist/solution/ShopDiscount/index.js +14 -15
  25. package/lib/model/strategy/adapter/index.d.ts +0 -4
  26. package/lib/model/strategy/adapter/index.js +2 -13
  27. package/lib/modules/Discount/index.d.ts +2 -5
  28. package/lib/modules/Discount/index.js +3 -23
  29. package/lib/modules/Discount/types.d.ts +0 -4
  30. package/lib/modules/Order/index.d.ts +4 -2
  31. package/lib/modules/Order/index.js +80 -34
  32. package/lib/modules/Order/types.d.ts +0 -2
  33. package/lib/modules/Product/types.d.ts +0 -22
  34. package/lib/modules/ProductList/index.d.ts +1 -1
  35. package/lib/modules/ProductList/index.js +2 -4
  36. package/lib/modules/ProductList/types.d.ts +0 -2
  37. package/lib/server/index.d.ts +0 -50
  38. package/lib/server/index.js +29 -206
  39. package/lib/server/modules/products/index.d.ts +7 -26
  40. package/lib/server/modules/products/index.js +35 -114
  41. package/lib/server/modules/products/types.d.ts +0 -14
  42. package/lib/solution/BaseSales/index.d.ts +0 -2
  43. package/lib/solution/BaseSales/index.js +22 -12
  44. package/lib/solution/BookingByStep/index.d.ts +1 -1
  45. package/lib/solution/BookingTicket/index.d.ts +1 -13
  46. package/lib/solution/BookingTicket/index.js +18 -1
  47. package/lib/solution/BookingTicket/types.d.ts +0 -2
  48. package/lib/solution/ShopDiscount/index.js +1 -2
  49. package/package.json +1 -1
  50. package/dist/model/strategy/adapter/dataVariant/adapter.d.ts +0 -50
  51. package/dist/model/strategy/adapter/dataVariant/adapter.js +0 -167
  52. package/dist/model/strategy/adapter/dataVariant/evaluator.d.ts +0 -89
  53. package/dist/model/strategy/adapter/dataVariant/evaluator.js +0 -780
  54. package/dist/model/strategy/adapter/dataVariant/examples.d.ts +0 -39
  55. package/dist/model/strategy/adapter/dataVariant/examples.js +0 -277
  56. package/dist/model/strategy/adapter/dataVariant/index.d.ts +0 -4
  57. package/dist/model/strategy/adapter/dataVariant/index.js +0 -4
  58. package/dist/model/strategy/adapter/dataVariant/type.d.ts +0 -148
  59. package/dist/model/strategy/adapter/dataVariant/type.js +0 -54
  60. package/lib/model/strategy/adapter/dataVariant/adapter.d.ts +0 -50
  61. package/lib/model/strategy/adapter/dataVariant/adapter.js +0 -149
  62. package/lib/model/strategy/adapter/dataVariant/evaluator.d.ts +0 -89
  63. package/lib/model/strategy/adapter/dataVariant/evaluator.js +0 -583
  64. package/lib/model/strategy/adapter/dataVariant/examples.d.ts +0 -39
  65. package/lib/model/strategy/adapter/dataVariant/examples.js +0 -293
  66. package/lib/model/strategy/adapter/dataVariant/index.d.ts +0 -4
  67. package/lib/model/strategy/adapter/dataVariant/index.js +0 -38
  68. package/lib/model/strategy/adapter/dataVariant/type.d.ts +0 -148
  69. package/lib/model/strategy/adapter/dataVariant/type.js +0 -31
@@ -308,9 +308,6 @@ var OrderModule = class extends import_BaseModule.BaseModule {
308
308
  if (!this.store.summary) {
309
309
  this.store.summary = (0, import_utils.createEmptySummary)();
310
310
  }
311
- if (!Array.isArray(this.store.availableWalletIds)) {
312
- this.store.availableWalletIds = [];
313
- }
314
311
  this.request = this.core.getPlugin("request");
315
312
  const appPlugin = this.core.getPlugin("app");
316
313
  if (!appPlugin) {
@@ -438,19 +435,15 @@ var OrderModule = class extends import_BaseModule.BaseModule {
438
435
  async loadDiscountConfig(params) {
439
436
  var _a, _b, _c, _d, _e, _f, _g;
440
437
  const orderId = params.orderId || ((_a = this.store.tempOrder) == null ? void 0 : _a.order_id) || void 0;
441
- const prepareConfigResult = await ((_b = this.store.discount) == null ? void 0 : _b.loadPrepareConfig({
438
+ const discountList = await ((_b = this.store.discount) == null ? void 0 : _b.loadPrepareConfig({
442
439
  customer_id: params.customerId,
443
440
  action: params.action || (orderId ? "edit" : "create"),
444
441
  with_good_pass: 1,
445
442
  with_discount_card: 1,
446
443
  with_wallet_pass_holder: 1,
447
- with_available_wallet_flag: 1,
448
- with_available_wallet_pass_flag: 1,
449
444
  request_timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
450
445
  ...orderId ? { order_id: orderId } : {}
451
446
  }));
452
- const discountList = prepareConfigResult == null ? void 0 : prepareConfigResult.discountList;
453
- this.store.availableWalletIds = (prepareConfigResult == null ? void 0 : prepareConfigResult.availableWalletIds) || [];
454
447
  if (discountList) {
455
448
  const currentDiscountList = ((_c = this.store.discount) == null ? void 0 : _c.getDiscountList()) || [];
456
449
  const currentEditDiscounts = currentDiscountList.filter((discount) => discount == null ? void 0 : discount.isEditMode);
@@ -484,8 +477,18 @@ var OrderModule = class extends import_BaseModule.BaseModule {
484
477
  var _a;
485
478
  return ((_a = this.store.discount) == null ? void 0 : _a.getDiscountList()) || [];
486
479
  }
487
- getAvailableWalletIds() {
488
- return Array.isArray(this.store.availableWalletIds) ? [...this.store.availableWalletIds] : [];
480
+ async syncScannedDiscountsToOriginalDiscountList(discountList) {
481
+ var _a, _b, _c, _d;
482
+ const scanDiscounts = (discountList || []).filter((discount) => discount == null ? void 0 : discount.isScan);
483
+ if (!scanDiscounts.length)
484
+ return;
485
+ const scanDiscountIds = new Set(scanDiscounts.map((discount) => discount == null ? void 0 : discount.id));
486
+ const originalDiscounts = ((_b = (_a = this.store.discount) == null ? void 0 : _a.getOriginalDiscountList) == null ? void 0 : _b.call(_a)) || [];
487
+ const nextOriginalDiscounts = [
488
+ ...scanDiscounts,
489
+ ...originalDiscounts.filter((discount) => !scanDiscountIds.has(discount == null ? void 0 : discount.id))
490
+ ];
491
+ await ((_d = (_c = this.store.discount) == null ? void 0 : _c.setOriginalDiscountList) == null ? void 0 : _d.call(_c, nextOriginalDiscounts));
489
492
  }
490
493
  async ensureEditDiscountConfigForProductChange(tempOrder) {
491
494
  var _a, _b, _c, _d, _e, _f;
@@ -535,6 +538,7 @@ var OrderModule = class extends import_BaseModule.BaseModule {
535
538
  }));
536
539
  const currentSelected = this.getDiscountList().filter((n) => n.isSelected);
537
540
  if (currentSelected.length && currentSelected.some((n) => withScanList.some((m) => m.id === n.id))) {
541
+ await this.syncScannedDiscountsToOriginalDiscountList(this.getDiscountList());
538
542
  return {
539
543
  type: "clientCalc",
540
544
  isAvailable: true,
@@ -555,6 +559,7 @@ var OrderModule = class extends import_BaseModule.BaseModule {
555
559
  if (isAvailable && newDiscountList) {
556
560
  (_d = this.store.discount) == null ? void 0 : _d.setDiscountList(newDiscountList);
557
561
  this.applyDiscount();
562
+ await this.syncScannedDiscountsToOriginalDiscountList(this.getDiscountList());
558
563
  }
559
564
  return {
560
565
  type: "clientCalc",
@@ -897,6 +902,15 @@ var OrderModule = class extends import_BaseModule.BaseModule {
897
902
  return sum.plus(this.calculatePaymentEffectiveAmount(payment));
898
903
  }, new import_decimal.default(0));
899
904
  }
905
+ calculateOrderPaidPaymentTotal(payments) {
906
+ return (0, import_utils.mapPaymentItemsToOrderPayments)(payments, {
907
+ includeVoided: false
908
+ }).reduce((sum, payment) => {
909
+ if (!isPaidPaymentRecord(payment))
910
+ return sum;
911
+ return sum.plus(this.calculatePaymentGapAmount(payment));
912
+ }, new import_decimal.default(0));
913
+ }
900
914
  getDepositAmount(tempOrder, summary) {
901
915
  return new import_decimal.default(summary.deposit_amount || tempOrder.deposit_amount || "0.00");
902
916
  }
@@ -987,7 +1001,7 @@ var OrderModule = class extends import_BaseModule.BaseModule {
987
1001
  const paymentList = payments || tempOrder.payments || [];
988
1002
  const refundAmount = this.getSummaryRefundAmount(summary);
989
1003
  const netPaidAmount = import_decimal.default.max(
990
- this.calculatePaymentTotal(paymentList).minus(refundAmount),
1004
+ this.calculateOrderPaidPaymentTotal(paymentList).minus(refundAmount),
991
1005
  0
992
1006
  );
993
1007
  const depositAmount = this.getDepositAmount(tempOrder, summary);
@@ -1016,11 +1030,7 @@ var OrderModule = class extends import_BaseModule.BaseModule {
1016
1030
  const isDepositPayment = paymentRecord.type === "deposit" || paymentRecord.order_payment_type === "deposit";
1017
1031
  if (!isDepositPayment)
1018
1032
  return sum;
1019
- if (paymentRecord.origin_amount !== void 0 && paymentRecord.origin_amount !== null && paymentRecord.origin_amount !== "") {
1020
- return sum.plus(this.calculatePaymentGapAmount(paymentRecord));
1021
- }
1022
- const rounding = new import_decimal.default(paymentRecord.rounding_amount || 0);
1023
- return sum.plus(new import_decimal.default(paymentRecord.amount || 0).minus(rounding));
1033
+ return sum.plus(this.calculatePaymentGapAmount(paymentRecord));
1024
1034
  }, new import_decimal.default(0));
1025
1035
  }
1026
1036
  resolveNextOrderPaymentType(tempOrder) {
@@ -1053,8 +1063,9 @@ var OrderModule = class extends import_BaseModule.BaseModule {
1053
1063
  updateTempOrderPaymentStatus(tempOrder, options) {
1054
1064
  const summary = (options == null ? void 0 : options.summary) || this.store.summary || (0, import_utils.createEmptySummary)();
1055
1065
  const paymentTotal = this.calculatePaymentTotal(tempOrder.payments || []);
1066
+ const orderPaymentTotal = this.calculateOrderPaidPaymentTotal(tempOrder.payments || []);
1056
1067
  const refundAmount = this.getSummaryRefundAmount(summary);
1057
- const netPaymentTotal = import_decimal.default.max(paymentTotal.minus(refundAmount), 0);
1068
+ const netPaymentTotal = import_decimal.default.max(orderPaymentTotal.minus(refundAmount), 0);
1058
1069
  const targetAmount = this.calculatePaymentTargetAmount(
1059
1070
  tempOrder,
1060
1071
  summary,
@@ -1123,7 +1134,7 @@ var OrderModule = class extends import_BaseModule.BaseModule {
1123
1134
  }
1124
1135
  capVoucherPaymentsByRemainingAmount(params) {
1125
1136
  const targetAmount = this.getPaymentTargetAmount();
1126
- const nonVoucherTotal = this.calculatePaymentTotal(params.nonVoucherPayments);
1137
+ const nonVoucherTotal = this.calculateOrderPaidPaymentTotal(params.nonVoucherPayments);
1127
1138
  if (targetAmount.lte(0))
1128
1139
  return [];
1129
1140
  let remainingAmount = import_decimal.default.max(
@@ -1166,7 +1177,7 @@ var OrderModule = class extends import_BaseModule.BaseModule {
1166
1177
  return summary;
1167
1178
  return {
1168
1179
  customerPaidAmount: summary.customerPaidAmount.plus(paymentRecord.amount || 0),
1169
- orderPaidAmount: summary.orderPaidAmount.plus(paymentRecord.origin_amount || 0),
1180
+ orderPaidAmount: summary.orderPaidAmount.plus(this.calculatePaymentOrderAmount(paymentRecord)),
1170
1181
  gapPaidAmount: summary.gapPaidAmount.plus(this.calculatePaymentGapAmount(paymentRecord)),
1171
1182
  payServiceChargeAmount: summary.payServiceChargeAmount.plus(this.calculatePaymentServiceFee(paymentRecord)),
1172
1183
  roundingAmount: summary.roundingAmount.plus(this.calculatePaymentRoundingAmount(paymentRecord))
@@ -1191,11 +1202,30 @@ var OrderModule = class extends import_BaseModule.BaseModule {
1191
1202
  return new import_decimal.default(payment.amount || 0).times(percentage).plus(fixedAmount);
1192
1203
  }
1193
1204
  calculatePaymentGapAmount(payment) {
1194
- if (payment.origin_amount === void 0 || payment.origin_amount === null || payment.origin_amount === "") {
1195
- return new import_decimal.default(0);
1205
+ if (payment.origin_amount !== void 0 && payment.origin_amount !== null && payment.origin_amount !== "") {
1206
+ const rounding2 = new import_decimal.default(payment.rounding_amount || 0);
1207
+ return new import_decimal.default(payment.origin_amount || 0).minus(rounding2);
1196
1208
  }
1197
1209
  const rounding = new import_decimal.default(payment.rounding_amount || 0);
1198
- return new import_decimal.default(payment.origin_amount || 0).minus(rounding);
1210
+ const amount = new import_decimal.default(payment.amount || 0);
1211
+ const serviceFee = this.calculatePaymentServiceFee(payment);
1212
+ if (serviceFee.lte(0))
1213
+ return amount.minus(rounding);
1214
+ if (!hasSyncedOrderPaymentRecord(payment))
1215
+ return new import_decimal.default(0);
1216
+ return import_decimal.default.max(amount.minus(serviceFee), 0).minus(rounding);
1217
+ }
1218
+ calculatePaymentOrderAmount(payment) {
1219
+ if (payment.origin_amount !== void 0 && payment.origin_amount !== null && payment.origin_amount !== "") {
1220
+ return new import_decimal.default(payment.origin_amount || 0);
1221
+ }
1222
+ const amount = new import_decimal.default(payment.amount || 0);
1223
+ const serviceFee = this.calculatePaymentServiceFee(payment);
1224
+ if (serviceFee.lte(0))
1225
+ return amount;
1226
+ if (!hasSyncedOrderPaymentRecord(payment))
1227
+ return new import_decimal.default(0);
1228
+ return import_decimal.default.max(amount.minus(serviceFee), 0);
1199
1229
  }
1200
1230
  calculatePaymentRoundingAmount(payment) {
1201
1231
  if (payment.rounding_amount === void 0 || payment.rounding_amount === null || payment.rounding_amount === "") {
@@ -1543,7 +1573,12 @@ var OrderModule = class extends import_BaseModule.BaseModule {
1543
1573
  tempOrder.surcharge_fee = summary.surcharge_fee || tempOrder.surcharge_fee;
1544
1574
  tempOrder.deposit_amount = summary.deposit_amount || "0.00";
1545
1575
  tempOrder.is_deposit = summary.deposit_amount !== "0.00" ? 1 : 0;
1576
+ const previousSummary = this.store.summary;
1546
1577
  this.store.summary = summary;
1578
+ this.updateTempOrderPaymentStatus(tempOrder, {
1579
+ previousSummary,
1580
+ summary
1581
+ });
1547
1582
  return summary;
1548
1583
  }
1549
1584
  clearPersistedAmountFieldsForFullRecalc(products) {
@@ -2366,7 +2401,6 @@ var OrderModule = class extends import_BaseModule.BaseModule {
2366
2401
  }
2367
2402
  const nextCustomerId = tempOrder.customer_id ?? null;
2368
2403
  if (String(previousCustomerId ?? "") !== String(nextCustomerId ?? "")) {
2369
- this.store.availableWalletIds = [];
2370
2404
  (0, import_utils.clearTempOrderHolderAssignments)(tempOrder);
2371
2405
  this.clearCustomerBoundDiscounts(tempOrder);
2372
2406
  this.applyDiscount();
@@ -2406,7 +2440,6 @@ var OrderModule = class extends import_BaseModule.BaseModule {
2406
2440
  tempOrder.customer = null;
2407
2441
  if (tempOrder._extend)
2408
2442
  delete tempOrder._extend.customerSnapshot;
2409
- this.store.availableWalletIds = [];
2410
2443
  this.clearCustomerBoundDiscounts(tempOrder);
2411
2444
  this.persistTempOrder();
2412
2445
  this.saveDraftInBackground();
@@ -3656,8 +3689,8 @@ var OrderModule = class extends import_BaseModule.BaseModule {
3656
3689
  const shouldConfirmPendingVoucherPayments = params.confirmPendingVoucherPayments ?? params.submitWhenPaid === true;
3657
3690
  const effectivePayments = shouldConfirmPendingVoucherPayments ? this.confirmPendingVoucherPaymentsInList(mappedPayments) : params.confirmPendingVoucherPayments === false ? this.discardPendingVoucherPaymentsFromList(mappedPayments) : mappedPayments;
3658
3691
  const completion = this.getPaymentCompletion(effectivePayments);
3659
- const paidPaymentTotal = this.calculatePaymentTotal(effectivePayments);
3660
- const paymentStatus = completion.isOrderFullyPaid ? params.paymentStatus || "paid" : paidPaymentTotal.gt(0) ? "partially_paid" : "payment_processing";
3692
+ const orderPaidPaymentTotal = this.calculateOrderPaidPaymentTotal(effectivePayments);
3693
+ const paymentStatus = completion.isOrderFullyPaid ? params.paymentStatus || "paid" : orderPaidPaymentTotal.gt(0) ? "partially_paid" : "payment_processing";
3661
3694
  tempOrder.payments = effectivePayments;
3662
3695
  tempOrder.payment_status = paymentStatus;
3663
3696
  this.persistTempOrder();
@@ -3998,7 +4031,7 @@ var OrderModule = class extends import_BaseModule.BaseModule {
3998
4031
  async hydrateTempOrderFromRecord(record, options) {
3999
4032
  var _a, _b, _c;
4000
4033
  const raw = record && typeof record === "object" && record.data && record.order_id == null ? record.data : record || {};
4001
- const nextTempOrder = this.normalizeTempOrderForRuntime(raw);
4034
+ const nextTempOrder = this.normalizeTempOrderForRuntime(raw, { makeEditMark: true });
4002
4035
  const rawSummary = raw.summary && typeof raw.summary === "object" ? raw.summary : {};
4003
4036
  const summarySurcharges = Array.isArray(rawSummary.surcharges) ? rawSummary.surcharges.map((s) => ({ ...s || {} })) : (0, import_lodash_es.cloneDeep)(nextTempOrder.surcharges || []);
4004
4037
  this.store.tempOrder = nextTempOrder;
@@ -4021,14 +4054,25 @@ var OrderModule = class extends import_BaseModule.BaseModule {
4021
4054
  this.store.lastOrderInfo = raw.lastOrderInfo || raw;
4022
4055
  const hydratedEditDiscounts = this.collectHydratedEditDiscounts(nextTempOrder.products);
4023
4056
  const currentDiscounts = typeof ((_a = this.store.discount) == null ? void 0 : _a.getDiscountList) === "function" ? this.store.discount.getDiscountList() || [] : [];
4024
- const shouldSkipEmptyDiscountSync = hydratedEditDiscounts.length === 0 && currentDiscounts.length === 0;
4057
+ const currentScanDiscounts = currentDiscounts.filter((discount) => discount == null ? void 0 : discount.isScan);
4058
+ const hydratedDiscountIds = new Set(
4059
+ hydratedEditDiscounts.map((discount) => discount == null ? void 0 : discount.id)
4060
+ );
4061
+ const retainedScanDiscounts = currentScanDiscounts.filter(
4062
+ (discount) => !hydratedDiscountIds.has(discount == null ? void 0 : discount.id)
4063
+ );
4064
+ const nextDiscounts = [
4065
+ ...hydratedEditDiscounts,
4066
+ ...retainedScanDiscounts
4067
+ ];
4068
+ const shouldSkipEmptyDiscountSync = nextDiscounts.length === 0 && currentDiscounts.length === 0;
4025
4069
  if (!shouldSkipEmptyDiscountSync) {
4026
4070
  OrderModule.populateSavedAmounts(
4027
4071
  nextTempOrder.products,
4028
- hydratedEditDiscounts
4072
+ nextDiscounts
4029
4073
  );
4030
- await ((_b = this.store.discount) == null ? void 0 : _b.setOriginalDiscountList(hydratedEditDiscounts));
4031
- await ((_c = this.store.discount) == null ? void 0 : _c.setDiscountList(hydratedEditDiscounts));
4074
+ await ((_b = this.store.discount) == null ? void 0 : _b.setOriginalDiscountList(nextDiscounts));
4075
+ await ((_c = this.store.discount) == null ? void 0 : _c.setDiscountList(nextDiscounts));
4032
4076
  }
4033
4077
  if (options == null ? void 0 : options.recalcOnHydrate) {
4034
4078
  await this.recalculateSummary({ createIfMissing: false });
@@ -4085,7 +4129,7 @@ var OrderModule = class extends import_BaseModule.BaseModule {
4085
4129
  nextTempOrder.metadata = raw.metadata && typeof raw.metadata === "object" ? { ...raw.metadata } : {};
4086
4130
  nextTempOrder.holder = raw.holder && typeof raw.holder === "object" ? { ...raw.holder } : null;
4087
4131
  const rawProducts = Array.isArray(raw.products) ? raw.products : [];
4088
- nextTempOrder.products = rawProducts.length > 0 ? rawProducts.map((p) => this.normalizeHydratedOrderProduct(p)) : [];
4132
+ nextTempOrder.products = rawProducts.length > 0 ? rawProducts.map((p) => this.normalizeHydratedOrderProduct(p, { makeEditMark: options == null ? void 0 : options.makeEditMark })) : [];
4089
4133
  nextTempOrder.bookings = Array.isArray(raw.bookings) ? raw.bookings.map((b) => {
4090
4134
  const booking = this.normalizeHydratedBookingHolder(b || {});
4091
4135
  return {
@@ -4231,7 +4275,7 @@ var OrderModule = class extends import_BaseModule.BaseModule {
4231
4275
  normalized.id = optionItem.id;
4232
4276
  return normalized;
4233
4277
  }
4234
- normalizeHydratedOrderProduct(product) {
4278
+ normalizeHydratedOrderProduct(product, options) {
4235
4279
  let row = { ...product || {} };
4236
4280
  if (row.num === void 0 && row.product_quantity !== void 0) {
4237
4281
  row.num = row.product_quantity;
@@ -4258,7 +4302,9 @@ var OrderModule = class extends import_BaseModule.BaseModule {
4258
4302
  if (!existingIdentity) {
4259
4303
  row.metadata.unique_identification_number = (0, import_utils.createUuidV4)();
4260
4304
  }
4261
- row.metadata.is_edit_for_runtime = true;
4305
+ if (options == null ? void 0 : options.makeEditMark) {
4306
+ row.metadata.is_edit_for_runtime = true;
4307
+ }
4262
4308
  const normalized = (0, import_utils3.normalizeOrderProduct)(row);
4263
4309
  normalized.discount_list = (0, import_utils.normalizeOrderProductDiscountList)(
4264
4310
  normalized.discount_list
@@ -309,7 +309,6 @@ export interface OrderState {
309
309
  lastOrderInfo?: Record<string, any>;
310
310
  syncState?: OrderSyncState;
311
311
  discountList: any[];
312
- availableWalletIds?: number[];
313
312
  discount: DiscountModule | null;
314
313
  rules: RulesModule | null;
315
314
  }
@@ -776,7 +775,6 @@ export interface OrderModuleAPI {
776
775
  apply?: boolean;
777
776
  }) => Promise<Discount[]>;
778
777
  getDiscountList: () => Discount[];
779
- getAvailableWalletIds: () => number[];
780
778
  applyDiscount: () => void;
781
779
  /**
782
780
  * 注入促销评估器。
@@ -9,26 +9,6 @@ export interface ProductCollection {
9
9
  /** 商品集合封面 */
10
10
  cover: string;
11
11
  }
12
- /**
13
- * 商品 Data Variant 记录,结构与后端 data_variant 表对齐。
14
- */
15
- export interface ProductDataVariant {
16
- /** 变体记录 id */
17
- id: number;
18
- /** 店铺 id */
19
- shop_id: number;
20
- /** 所属模块,商品场景固定为 product */
21
- module: string;
22
- /** 模块数据 id,商品场景对应 product.id */
23
- module_data_id: number;
24
- /** 关联 data_variant_rule.id */
25
- data_variant_rule_id: number;
26
- /** 命中策略后覆盖到商品上的字段 */
27
- data: Record<string, any>;
28
- created_at: string | null;
29
- updated_at: string | null;
30
- deleted_at: string | null;
31
- }
32
12
  /**
33
13
  * 商品基本信息接口
34
14
  */
@@ -234,8 +214,6 @@ export interface ProductData {
234
214
  bundle_group_count: number;
235
215
  /** 选项组数量 */
236
216
  option_group_count: number;
237
- /** 智能定价变体列表,/product/query with dataVariants 返回 */
238
- data_variants?: ProductDataVariant[];
239
217
  /** 服务时长 */
240
218
  service_times?: any;
241
219
  }
@@ -26,7 +26,7 @@ export declare class ProductList extends BaseModule implements Module {
26
26
  * const products = await productList.getAddTimeProducts({ schedule_date: '2026-06-16' });
27
27
  */
28
28
  getAddTimeProducts(params?: ProductListLoadProductsParams): Promise<any>;
29
- loadProducts({ category_ids, product_ids, collection, menu_list_ids, customer_id: paramsCustomerId, with_count, schedule_datetime, schedule_date, cacheId, with_schedule, extension_type, status, strategy_context, }?: ProductListLoadProductsParams, options?: {
29
+ loadProducts({ category_ids, product_ids, collection, menu_list_ids, customer_id: paramsCustomerId, with_count, schedule_datetime, schedule_date, cacheId, with_schedule, extension_type, status, }?: ProductListLoadProductsParams, options?: {
30
30
  callback?: (result: any) => void;
31
31
  subscriberId?: string;
32
32
  }): Promise<any>;
@@ -95,8 +95,7 @@ var ProductList = class extends import_BaseModule.BaseModule {
95
95
  cacheId,
96
96
  with_schedule,
97
97
  extension_type,
98
- status = "published",
99
- strategy_context
98
+ status = "published"
100
99
  } = {}, options) {
101
100
  var _a, _b;
102
101
  let userPlugin = this.core.getPlugin("user");
@@ -136,8 +135,7 @@ var ProductList = class extends import_BaseModule.BaseModule {
136
135
  is_eject: 1,
137
136
  with_schedule,
138
137
  schedule_datetime,
139
- extension_type,
140
- strategy_context
138
+ extension_type
141
139
  },
142
140
  { osServer: true, callback: options == null ? void 0 : options.callback, subscriberId: options == null ? void 0 : options.subscriberId, customToast: () => {
143
141
  } }
@@ -12,8 +12,6 @@ export interface ProductListLoadProductsParams {
12
12
  with_schedule?: number;
13
13
  extension_type?: string[];
14
14
  status?: string;
15
- /** 智能定价条件上下文,仅影响策略命中,不参与商品集合筛选 */
16
- strategy_context?: Record<string, any>;
17
15
  }
18
16
  export interface ProductListData {
19
17
  list: ProductData[];
@@ -47,8 +47,6 @@ declare class Server {
47
47
  private prefixRouterGet;
48
48
  router: Router;
49
49
  private productQuerySubscribers;
50
- /** subscriberId → 智能定价变价时间点定时器句柄(与 subscriber 分离存储,便于 clear) */
51
- private productQueryScheduleTimers;
52
50
  private orderQuerySubscribers;
53
51
  private bookingQuerySubscribers;
54
52
  private bookingRemoteQuerySubscribers;
@@ -212,48 +210,6 @@ declare class Server {
212
210
  * 根据 subscriberId 移除商品查询订阅者
213
211
  */
214
212
  removeProductQuerySubscriber(subscriberId?: string): void;
215
- /**
216
- * 构建商品 query 响应 data 段,附带智能定价 schedule_time_points 元数据。
217
- */
218
- private buildProductQueryResultPayload;
219
- /**
220
- * 是否启用商品 query 订阅的 schedule 时间点定时重算。
221
- * strategy_context.enable_schedule_reload === false 时关闭。
222
- */
223
- private shouldScheduleProductQueryReload;
224
- /**
225
- * 清除指定 subscriber 的全部 schedule 定时器,防止重复 query 或 unsubscribe 后泄漏。
226
- */
227
- private clearSubscriberScheduleTimers;
228
- /**
229
- * 从 productQueryScheduleTimers 移除已触发的 timer 引用。
230
- */
231
- private removeScheduleTimerRef;
232
- /**
233
- * 计算 schedule 变价时间点到当前时刻的延迟(ms)。已过期返回 -1。
234
- */
235
- private computeScheduleTimePointDelayMs;
236
- /**
237
- * 定时重算前刷新 subscriber schedule 上下文:使用执行瞬间时间,禁止沿用首次 query 的 schedule_datetime。
238
- */
239
- private refreshSubscriberScheduleAtExecution;
240
- /**
241
- * 为 subscriber 注册智能定价 scheduleTimePoints 定时重算。
242
- * 必须先 clearSubscriberScheduleTimers,再调用本方法。
243
- */
244
- private scheduleSubscriberTimePointReloads;
245
- /**
246
- * schedule 变价时间点定时器触发:刷新 schedule_datetime 后重算并 callback。
247
- */
248
- private onScheduleTimePointTimerFire;
249
- /**
250
- * 对单个商品 query 订阅者重算并推送(定时路径;不新建 schedule timer)。
251
- */
252
- private recomputeAndNotifySubscriber;
253
- /**
254
- * query 完成后为 subscriber 同步 schedule 定时器(先 clear 再 schedule)。
255
- */
256
- private syncProductQueryScheduleTimers;
257
213
  /**
258
214
  * 处理商品查询请求
259
215
  * 存储订阅者信息,便于数据变更时推送最新结果
@@ -614,12 +570,6 @@ declare class Server {
614
570
  * @param options.changedIds 变更的商品 IDs,用于增量更新价格缓存
615
571
  */
616
572
  private computeProductQueryResult;
617
- /**
618
- * 构建商品格式化上下文。
619
- *
620
- * 智能定价条件使用全量 menuList/scheduleList;Product Query 顶层参数只保留筛选商品集合所需字段。
621
- */
622
- private buildProductFormatterContext;
623
573
  /**
624
574
  * 数据变更后,遍历所有订阅者重新计算查询结果并通过 callback 推送
625
575
  * 由 ProductsModule 的 onProductsSyncCompleted 事件触发