@pisell/pisellos 2.2.263 → 2.2.264

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 (132) 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/model/strategy/adapter/promotion/adapter.d.ts +4 -0
  4. package/dist/model/strategy/adapter/promotion/adapter.js +23 -0
  5. package/dist/model/strategy/adapter/promotion/evaluator.d.ts +17 -0
  6. package/dist/model/strategy/adapter/promotion/evaluator.js +279 -6
  7. package/dist/model/strategy/adapter/promotion/examples.d.ts +86 -0
  8. package/dist/model/strategy/adapter/promotion/examples.js +99 -0
  9. package/dist/model/strategy/adapter/promotion/index.d.ts +1 -1
  10. package/dist/model/strategy/adapter/promotion/index.js +0 -9
  11. package/dist/model/strategy/adapter/promotion/type.d.ts +90 -2
  12. package/dist/model/strategy/adapter/promotion/type.js +45 -0
  13. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +10 -16
  14. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +1 -2
  15. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +1 -1
  16. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.js +1 -32
  17. package/dist/modules/Discount/index.d.ts +2 -5
  18. package/dist/modules/Discount/index.js +7 -30
  19. package/dist/modules/Discount/types.d.ts +0 -4
  20. package/dist/modules/Order/index.d.ts +2 -14
  21. package/dist/modules/Order/index.js +736 -1035
  22. package/dist/modules/Order/types.d.ts +0 -16
  23. package/dist/modules/Order/utils.d.ts +3 -4
  24. package/dist/modules/Order/utils.js +61 -54
  25. package/dist/modules/Product/types.d.ts +0 -22
  26. package/dist/modules/ProductList/index.d.ts +1 -1
  27. package/dist/modules/ProductList/index.js +2 -4
  28. package/dist/modules/ProductList/types.d.ts +0 -2
  29. package/dist/modules/Rules/index.d.ts +9 -2
  30. package/dist/modules/Rules/index.js +43 -69
  31. package/dist/modules/Rules/types.d.ts +1 -10
  32. package/dist/server/index.d.ts +0 -55
  33. package/dist/server/index.js +753 -1173
  34. package/dist/server/modules/order/index.d.ts +4 -10
  35. package/dist/server/modules/order/index.js +399 -404
  36. package/dist/server/modules/order/types.d.ts +0 -4
  37. package/dist/server/modules/products/index.d.ts +8 -31
  38. package/dist/server/modules/products/index.js +390 -549
  39. package/dist/server/modules/products/types.d.ts +0 -18
  40. package/dist/solution/BaseSales/index.d.ts +1 -21
  41. package/dist/solution/BaseSales/index.js +789 -1136
  42. package/dist/solution/BaseSales/types.d.ts +1 -6
  43. package/dist/solution/BaseSales/types.js +1 -1
  44. package/dist/solution/BaseSales/utils/cartPromotion.d.ts +3 -1
  45. package/dist/solution/BaseSales/utils/cartPromotion.js +97 -50
  46. package/dist/solution/BaseSales/utils/parseSalesResponse.d.ts +3 -3
  47. package/dist/solution/BaseSales/utils/parseSalesResponse.js +8 -6
  48. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +1 -14
  49. package/dist/solution/BookingByStep/index.d.ts +1 -1
  50. package/dist/solution/BookingTicket/index.js +25 -59
  51. package/dist/solution/BookingTicket/types.d.ts +0 -2
  52. package/dist/solution/ScanOrder/index.js +31 -20
  53. package/dist/solution/ShopDiscount/index.js +14 -15
  54. package/dist/solution/VenueBooking/index.js +30 -19
  55. package/lib/model/strategy/adapter/index.d.ts +0 -4
  56. package/lib/model/strategy/adapter/index.js +2 -13
  57. package/lib/model/strategy/adapter/promotion/adapter.d.ts +4 -0
  58. package/lib/model/strategy/adapter/promotion/adapter.js +20 -0
  59. package/lib/model/strategy/adapter/promotion/evaluator.d.ts +17 -0
  60. package/lib/model/strategy/adapter/promotion/evaluator.js +235 -0
  61. package/lib/model/strategy/adapter/promotion/examples.d.ts +86 -0
  62. package/lib/model/strategy/adapter/promotion/examples.js +91 -0
  63. package/lib/model/strategy/adapter/promotion/index.d.ts +1 -1
  64. package/lib/model/strategy/adapter/promotion/index.js +51 -0
  65. package/lib/model/strategy/adapter/promotion/type.d.ts +90 -2
  66. package/lib/model/strategy/adapter/promotion/type.js +2 -0
  67. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +0 -5
  68. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +0 -1
  69. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +1 -1
  70. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +2 -23
  71. package/lib/modules/Discount/index.d.ts +2 -5
  72. package/lib/modules/Discount/index.js +3 -23
  73. package/lib/modules/Discount/types.d.ts +0 -4
  74. package/lib/modules/Order/index.d.ts +2 -14
  75. package/lib/modules/Order/index.js +60 -326
  76. package/lib/modules/Order/types.d.ts +0 -16
  77. package/lib/modules/Order/utils.d.ts +3 -4
  78. package/lib/modules/Order/utils.js +23 -22
  79. package/lib/modules/Product/types.d.ts +0 -22
  80. package/lib/modules/ProductList/index.d.ts +1 -1
  81. package/lib/modules/ProductList/index.js +2 -4
  82. package/lib/modules/ProductList/types.d.ts +0 -2
  83. package/lib/modules/Rules/index.d.ts +9 -2
  84. package/lib/modules/Rules/index.js +29 -61
  85. package/lib/modules/Rules/types.d.ts +1 -10
  86. package/lib/server/index.d.ts +0 -55
  87. package/lib/server/index.js +34 -332
  88. package/lib/server/modules/order/index.d.ts +4 -10
  89. package/lib/server/modules/order/index.js +139 -198
  90. package/lib/server/modules/order/types.d.ts +0 -4
  91. package/lib/server/modules/products/index.d.ts +8 -31
  92. package/lib/server/modules/products/index.js +35 -134
  93. package/lib/server/modules/products/types.d.ts +0 -18
  94. package/lib/solution/BaseSales/index.d.ts +1 -21
  95. package/lib/solution/BaseSales/index.js +72 -313
  96. package/lib/solution/BaseSales/types.d.ts +1 -6
  97. package/lib/solution/BaseSales/utils/cartPromotion.d.ts +3 -1
  98. package/lib/solution/BaseSales/utils/cartPromotion.js +64 -25
  99. package/lib/solution/BaseSales/utils/parseSalesResponse.d.ts +3 -3
  100. package/lib/solution/BaseSales/utils/parseSalesResponse.js +5 -4
  101. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +0 -8
  102. package/lib/solution/BookingByStep/index.d.ts +1 -1
  103. package/lib/solution/BookingTicket/index.js +8 -33
  104. package/lib/solution/BookingTicket/types.d.ts +0 -2
  105. package/lib/solution/ScanOrder/index.js +8 -0
  106. package/lib/solution/ShopDiscount/index.js +1 -2
  107. package/lib/solution/VenueBooking/index.js +8 -0
  108. package/package.json +1 -1
  109. package/dist/model/strategy/adapter/dataVariant/adapter.d.ts +0 -50
  110. package/dist/model/strategy/adapter/dataVariant/adapter.js +0 -167
  111. package/dist/model/strategy/adapter/dataVariant/evaluator.d.ts +0 -89
  112. package/dist/model/strategy/adapter/dataVariant/evaluator.js +0 -780
  113. package/dist/model/strategy/adapter/dataVariant/examples.d.ts +0 -39
  114. package/dist/model/strategy/adapter/dataVariant/examples.js +0 -277
  115. package/dist/model/strategy/adapter/dataVariant/index.d.ts +0 -4
  116. package/dist/model/strategy/adapter/dataVariant/index.js +0 -4
  117. package/dist/model/strategy/adapter/dataVariant/type.d.ts +0 -148
  118. package/dist/model/strategy/adapter/dataVariant/type.js +0 -54
  119. package/dist/modules/Order/utils/orderCollectionIdentity.d.ts +0 -53
  120. package/dist/modules/Order/utils/orderCollectionIdentity.js +0 -405
  121. package/lib/model/strategy/adapter/dataVariant/adapter.d.ts +0 -50
  122. package/lib/model/strategy/adapter/dataVariant/adapter.js +0 -149
  123. package/lib/model/strategy/adapter/dataVariant/evaluator.d.ts +0 -89
  124. package/lib/model/strategy/adapter/dataVariant/evaluator.js +0 -583
  125. package/lib/model/strategy/adapter/dataVariant/examples.d.ts +0 -39
  126. package/lib/model/strategy/adapter/dataVariant/examples.js +0 -293
  127. package/lib/model/strategy/adapter/dataVariant/index.d.ts +0 -4
  128. package/lib/model/strategy/adapter/dataVariant/index.js +0 -38
  129. package/lib/model/strategy/adapter/dataVariant/type.d.ts +0 -148
  130. package/lib/model/strategy/adapter/dataVariant/type.js +0 -31
  131. package/lib/modules/Order/utils/orderCollectionIdentity.d.ts +0 -53
  132. package/lib/modules/Order/utils/orderCollectionIdentity.js +0 -415
@@ -136,9 +136,6 @@ function resolveProductTitle(product, booking, sourceProduct) {
136
136
  const metadata = product.metadata || {};
137
137
  return (sourceProduct == null ? void 0 : sourceProduct.title) ?? (sourceProduct == null ? void 0 : sourceProduct.name) ?? metadata.product_title ?? metadata.product_name ?? ((_a = booking == null ? void 0 : booking.product) == null ? void 0 : _a.title) ?? ((_b = booking == null ? void 0 : booking.detail) == null ? void 0 : _b.product_title) ?? "";
138
138
  }
139
- function resolveProductCover(product, booking, sourceProduct) {
140
- return (sourceProduct == null ? void 0 : sourceProduct.cover) ?? product.product_cover ?? "";
141
- }
142
139
  function resolveMainProductPrice(product, fallback) {
143
140
  const metadata = product.metadata || {};
144
141
  const value = metadata.main_product_original_price ?? metadata.source_product_price;
@@ -198,7 +195,6 @@ function buildCacheItemFromOrderLine(input) {
198
195
  const capacity = resolveCapacityFromBooking(booking);
199
196
  const holderId = ((_a = booking.metadata) == null ? void 0 : _a.holder_id) ?? booking.holder_id;
200
197
  const productTitle = resolveProductTitle(product, booking, sourceProduct);
201
- const productCover = resolveProductCover(product, booking, sourceProduct);
202
198
  const productOptionString = (0, import_orderLineDisplay.buildProductOptionStringFromOrderLine)(product);
203
199
  const other = {
204
200
  product_variant_id: product.product_variant_id ?? 0,
@@ -218,7 +214,6 @@ function buildCacheItemFromOrderLine(input) {
218
214
  sub_type: booking.sub_type,
219
215
  quantity: product.num ?? 1,
220
216
  product_name: productTitle,
221
- product_cover: productCover,
222
217
  note: product.note ?? ((_b = booking == null ? void 0 : booking.detail) == null ? void 0 : _b.note) ?? "",
223
218
  price: mainProductPrice,
224
219
  total: selling,
@@ -136,7 +136,6 @@ function buildNormalProductCacheItemFromOrderLine(input) {
136
136
  product_id: resolvedId,
137
137
  _id: uid,
138
138
  title: (sourceProduct == null ? void 0 : sourceProduct.title) ?? product.product_title ?? "",
139
- cover: (sourceProduct == null ? void 0 : sourceProduct.cover) ?? product.product_cover ?? "",
140
139
  price: (sourceProduct == null ? void 0 : sourceProduct.price) ?? sourcePrice,
141
140
  selling_price: product.selling_price,
142
141
  original_price: product.original_price,
@@ -48,7 +48,7 @@ export interface BookingResourceInput {
48
48
  capacity?: number;
49
49
  like_status?: string;
50
50
  metadata?: Record<string, any>;
51
- children?: BookingResourceInput[];
51
+ children?: any[];
52
52
  }
53
53
  /** custom / package 人数维度快照,与 info2 `_extend.capacity` / `metadata.capacity` 对齐。 */
54
54
  export interface BookingCapacityMetadataItem {
@@ -88,24 +88,6 @@ function resolveDurationMinutes(value) {
88
88
  const n = Number(value);
89
89
  return Number.isNaN(n) ? void 0 : n;
90
90
  }
91
- function normalizeChildResource(child, parentFormId) {
92
- const item = {
93
- form_id: (child == null ? void 0 : child.form_id) ?? parentFormId,
94
- relation_type: (child == null ? void 0 : child.relation_type) || "form",
95
- relation_id: (child == null ? void 0 : child.relation_id) ?? (child == null ? void 0 : child.id),
96
- capacity: child == null ? void 0 : child.capacity,
97
- like_status: (child == null ? void 0 : child.like_status) || "common"
98
- };
99
- if ((child == null ? void 0 : child.metadata) !== void 0) {
100
- item.metadata = { ...child.metadata };
101
- }
102
- if (Array.isArray(child == null ? void 0 : child.children)) {
103
- item.children = child.children.map(
104
- (nestedChild) => normalizeChildResource(nestedChild, item.form_id)
105
- );
106
- }
107
- return item;
108
- }
109
91
  function flattenResources(cacheItem) {
110
92
  var _a;
111
93
  const resourceMap = ((_a = cacheItem == null ? void 0 : cacheItem._extend) == null ? void 0 : _a.resource) || {};
@@ -125,11 +107,8 @@ function flattenResources(cacheItem) {
125
107
  if ((r == null ? void 0 : r.metadata) !== void 0) {
126
108
  item.metadata = { ...r.metadata };
127
109
  }
128
- if (Array.isArray(r == null ? void 0 : r.children)) {
129
- item.children = r.children.map(
130
- (child) => normalizeChildResource(child, item.form_id)
131
- );
132
- }
110
+ if ((r == null ? void 0 : r.children) !== void 0)
111
+ item.children = r.children;
133
112
  result.push(item);
134
113
  });
135
114
  });
@@ -1,6 +1,6 @@
1
1
  import { Module, PisellCore, ModuleOptions } from '../../types';
2
2
  import { BaseModule } from '../BaseModule';
3
- import { Discount, DiscountModuleAPI, DiscountWithReason, DiscountPrepareConfigResult } from './types';
3
+ import { Discount, DiscountModuleAPI, DiscountWithReason } from './types';
4
4
  export declare class DiscountModule extends BaseModule implements Module, DiscountModuleAPI {
5
5
  protected defaultName: string;
6
6
  protected defaultVersion: string;
@@ -16,18 +16,15 @@ export declare class DiscountModule extends BaseModule implements Module, Discou
16
16
  getDiscountList(): Discount[];
17
17
  setOriginalDiscountList(originalDiscountList: Discount[]): Promise<void>;
18
18
  getOriginalDiscountList(): Discount[];
19
- private normalizePositiveNumberIds;
20
19
  loadPrepareConfig(params: {
21
20
  action?: 'create' | 'edit';
22
21
  with_good_pass: 0 | 1;
23
22
  with_discount_card: 0 | 1;
24
23
  customer_id: number;
25
24
  with_wallet_pass_holder: 0 | 1;
26
- with_available_wallet_flag?: 0 | 1;
27
- with_available_wallet_pass_flag?: 0 | 1;
28
25
  request_timezone: string;
29
26
  order_id?: number | string;
30
- }): Promise<DiscountPrepareConfigResult>;
27
+ }): Promise<Discount[]>;
31
28
  batchSearch(code: string, options?: {
32
29
  customerId?: number;
33
30
  orderId?: number;
@@ -91,43 +91,23 @@ var DiscountModule = class extends import_BaseModule.BaseModule {
91
91
  getOriginalDiscountList() {
92
92
  return this.store.originalDiscountList || [];
93
93
  }
94
- normalizePositiveNumberIds(values) {
95
- const ids = values.map((value) => Number(value)).filter((value) => Number.isFinite(value) && value > 0);
96
- return Array.from(new Set(ids));
97
- }
98
94
  async loadPrepareConfig(params) {
99
- var _a, _b, _c, _d, _e;
95
+ var _a, _b;
100
96
  if (typeof params.order_id === "string" && params.order_id.startsWith("LOCAL_")) {
101
97
  params.order_id = void 0;
102
98
  }
103
99
  const prepareConfig = await this.request.post(
104
100
  `/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
- }
101
+ params
110
102
  );
111
103
  const rawDiscountList = [
112
104
  ...((_a = prepareConfig == null ? void 0 : prepareConfig.data) == null ? void 0 : _a.good_pass_list) || [],
113
105
  ...((_b = prepareConfig == null ? void 0 : prepareConfig.data) == null ? void 0 : _b.discount_card_list) || []
114
106
  ];
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
107
  const goodPassList = this.filterEnabledDiscountList(
125
108
  rawDiscountList
126
109
  ) || [];
127
- return {
128
- discountList: goodPassList,
129
- availableWalletIds
130
- };
110
+ return goodPassList;
131
111
  }
132
112
  async batchSearch(code, options) {
133
113
  const { customerId, orderId } = options || {};
@@ -68,10 +68,6 @@ export interface DiscountWithReason {
68
68
  discountList: Discount[];
69
69
  unavailableReasonKey: DiscountFilterRejectKey | null;
70
70
  }
71
- export interface DiscountPrepareConfigResult {
72
- discountList: Discount[];
73
- availableWalletIds: number[];
74
- }
75
71
  interface ExtensionData {
76
72
  id: number;
77
73
  shop_id: number;
@@ -75,8 +75,6 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
75
75
  apply?: boolean;
76
76
  }): Promise<Discount[]>;
77
77
  getDiscountList(): Discount[];
78
- getAvailableWalletIds(): number[];
79
- private syncScannedDiscountsToOriginalDiscountList;
80
78
  private ensureEditDiscountConfigForProductChange;
81
79
  scanCode(code: string, customerId?: number): Promise<{
82
80
  isAvailable: boolean;
@@ -86,9 +84,7 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
86
84
  unavailableReasonKey?: string | null;
87
85
  scannedDiscountList?: Discount[];
88
86
  }>;
89
- applyDiscount(options?: {
90
- reapplyBookingDiscountProductUids?: string[];
91
- }): void;
87
+ applyDiscount(): void;
92
88
  /**
93
89
  * 注入促销评估器。
94
90
  *
@@ -156,7 +152,6 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
156
152
  private extractOrderIdFromSubmitResult;
157
153
  private calculatePaymentEffectiveAmount;
158
154
  private calculatePaymentTotal;
159
- private calculateOrderPaidPaymentTotal;
160
155
  private getDepositAmount;
161
156
  private normalizeDepositAmount;
162
157
  private getLastOrderDepositSnapshot;
@@ -185,7 +180,6 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
185
180
  private calculatePaidPaymentSummary;
186
181
  private calculatePaymentServiceFee;
187
182
  private calculatePaymentGapAmount;
188
- private calculatePaymentOrderAmount;
189
183
  private calculatePaymentRoundingAmount;
190
184
  private formatSummaryMetadataMoney;
191
185
  private syncSummaryProductMetadata;
@@ -280,7 +274,6 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
280
274
  updateTempOrderContactsInfo(contactsInfo: Record<string, any> | null): Record<string, any> | null;
281
275
  private buildTempOrderCustomer;
282
276
  private isCustomerBoundDiscount;
283
- private shouldKeepCustomerBoundDiscountAfterCustomerChange;
284
277
  private productHasCustomerBoundDiscount;
285
278
  private shouldSkipDiscountCalculation;
286
279
  private clearCustomerBoundDiscounts;
@@ -468,7 +461,7 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
468
461
  generateIdempotencyToken(): string;
469
462
  syncPaymentsToOrder<T = any>(params: SyncPaymentsToOrderParams): Promise<SyncPaymentsToOrderResult<T>>;
470
463
  createOrder(params: CommitOrderParams['query']): {
471
- type: "virtual" | "appointment_booking";
464
+ type: "appointment_booking" | "virtual";
472
465
  platform: string;
473
466
  sales_channel: string;
474
467
  order_sales_channel: string;
@@ -525,11 +518,6 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
525
518
  * this.normalizeHydratedBookingHolder({ metadata: { holder: { form_record: [1] } } });
526
519
  */
527
520
  private normalizeHydratedBookingHolder;
528
- /**
529
- * 匿名 booking 没有服务端行 ID 时,商品侧已有的 booking_uid 就是唯一可用的强引用。
530
- * 在统一规范化生成 UUID 前先复用它;已落库 booking 仍按 schedule_event_id 派生稳定 UID。
531
- */
532
- private seedAnonymousBookingUidsFromProducts;
533
521
  private normalizeTempOrderForRuntime;
534
522
  private hydrateLinkedBookingIdentity;
535
523
  private pickHydratedDisplayText;