@pisell/pisellos 2.1.171 → 2.1.172

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 (230) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.js +1 -3
  3. package/dist/model/strategy/adapter/index.d.ts +0 -4
  4. package/dist/model/strategy/adapter/index.js +1 -5
  5. package/dist/model/strategy/adapter/promotion/evaluator.js +99 -26
  6. package/dist/model/strategy/adapter/walletPass/evaluator.d.ts +2 -0
  7. package/dist/model/strategy/adapter/walletPass/evaluator.js +61 -8
  8. package/dist/model/strategy/adapter/walletPass/locales.js +12 -3
  9. package/dist/model/strategy/engine.d.ts +18 -5
  10. package/dist/model/strategy/engine.js +145 -45
  11. package/dist/model/strategy/type.d.ts +17 -0
  12. package/dist/model/strategy/type.js +4 -0
  13. package/dist/modules/Cart/types.d.ts +2 -0
  14. package/dist/modules/Cart/utils/cartProduct.js +56 -25
  15. package/dist/modules/Cart/utils/changePrice.js +9 -16
  16. package/dist/modules/Discount/index.d.ts +4 -13
  17. package/dist/modules/Discount/index.js +12 -124
  18. package/dist/modules/Discount/types.d.ts +18 -13
  19. package/dist/modules/Order/index.d.ts +1 -67
  20. package/dist/modules/Order/index.js +30 -918
  21. package/dist/modules/Order/types.d.ts +12 -176
  22. package/dist/modules/Order/types.js +0 -2
  23. package/dist/modules/Order/utils.d.ts +0 -118
  24. package/dist/modules/Order/utils.js +2 -586
  25. package/dist/modules/Payment/index.d.ts +2 -1
  26. package/dist/modules/Payment/index.js +10 -7
  27. package/dist/modules/Payment/utils.js +3 -0
  28. package/dist/modules/Payment/walletpass.d.ts +23 -0
  29. package/dist/modules/Payment/walletpass.js +191 -95
  30. package/dist/modules/Product/utils.js +2 -2
  31. package/dist/modules/ProductList/index.d.ts +2 -4
  32. package/dist/modules/ProductList/index.js +12 -24
  33. package/dist/modules/Rules/index.d.ts +9 -5
  34. package/dist/modules/Rules/index.js +669 -173
  35. package/dist/modules/Rules/types.d.ts +2 -0
  36. package/dist/modules/Schedule/getDateIsInSchedule.js +18 -16
  37. package/dist/modules/Schedule/utils.d.ts +1 -1
  38. package/dist/modules/Summary/types.d.ts +2 -0
  39. package/dist/modules/Summary/utils.d.ts +9 -3
  40. package/dist/modules/Summary/utils.js +57 -67
  41. package/dist/modules/index.d.ts +0 -4
  42. package/dist/modules/index.js +1 -5
  43. package/dist/plugins/window.d.ts +2 -0
  44. package/dist/solution/BookingByStep/index.d.ts +3 -2
  45. package/dist/solution/BookingByStep/index.js +43 -46
  46. package/dist/solution/BookingByStep/types.d.ts +1 -3
  47. package/dist/solution/BookingByStep/types.js +1 -5
  48. package/dist/solution/BookingByStep/utils/timeslots.d.ts +1 -3
  49. package/dist/solution/BookingByStep/utils/timeslots.js +12 -19
  50. package/dist/solution/Checkout/index.js +2 -0
  51. package/dist/solution/ShopDiscount/index.d.ts +2 -3
  52. package/dist/solution/ShopDiscount/index.js +60 -62
  53. package/dist/solution/ShopDiscount/types.d.ts +1 -1
  54. package/dist/solution/ShopDiscount/types.js +2 -1
  55. package/dist/solution/ShopDiscount/utils.js +26 -12
  56. package/dist/solution/index.d.ts +0 -2
  57. package/dist/solution/index.js +1 -3
  58. package/lib/index.d.ts +1 -1
  59. package/lib/index.js +3 -4
  60. package/lib/model/strategy/adapter/index.d.ts +0 -4
  61. package/lib/model/strategy/adapter/index.js +2 -13
  62. package/lib/model/strategy/adapter/promotion/evaluator.js +57 -8
  63. package/lib/model/strategy/adapter/walletPass/evaluator.d.ts +2 -0
  64. package/lib/model/strategy/adapter/walletPass/evaluator.js +34 -3
  65. package/lib/model/strategy/adapter/walletPass/locales.js +12 -3
  66. package/lib/model/strategy/engine.d.ts +18 -5
  67. package/lib/model/strategy/engine.js +85 -21
  68. package/lib/model/strategy/type.d.ts +17 -0
  69. package/lib/modules/Cart/types.d.ts +2 -0
  70. package/lib/modules/Cart/utils/cartProduct.js +39 -12
  71. package/lib/modules/Cart/utils/changePrice.js +9 -13
  72. package/lib/modules/Discount/index.d.ts +4 -13
  73. package/lib/modules/Discount/index.js +5 -76
  74. package/lib/modules/Discount/types.d.ts +18 -13
  75. package/lib/modules/Order/index.d.ts +1 -67
  76. package/lib/modules/Order/index.js +1 -525
  77. package/lib/modules/Order/types.d.ts +12 -176
  78. package/lib/modules/Order/utils.d.ts +0 -118
  79. package/lib/modules/Order/utils.js +2 -483
  80. package/lib/modules/Payment/index.d.ts +2 -1
  81. package/lib/modules/Payment/index.js +1 -0
  82. package/lib/modules/Payment/utils.js +3 -0
  83. package/lib/modules/Payment/walletpass.d.ts +23 -0
  84. package/lib/modules/Payment/walletpass.js +94 -17
  85. package/lib/modules/Product/utils.js +2 -2
  86. package/lib/modules/ProductList/index.d.ts +2 -4
  87. package/lib/modules/ProductList/index.js +39 -46
  88. package/lib/modules/Rules/index.d.ts +9 -5
  89. package/lib/modules/Rules/index.js +776 -292
  90. package/lib/modules/Rules/types.d.ts +2 -0
  91. package/lib/modules/Schedule/getDateIsInSchedule.js +11 -13
  92. package/lib/modules/Schedule/utils.d.ts +1 -1
  93. package/lib/modules/Summary/types.d.ts +2 -0
  94. package/lib/modules/Summary/utils.d.ts +9 -3
  95. package/lib/modules/Summary/utils.js +34 -45
  96. package/lib/modules/index.d.ts +0 -4
  97. package/lib/modules/index.js +1 -9
  98. package/lib/plugins/window.d.ts +2 -0
  99. package/lib/solution/BookingByStep/index.d.ts +3 -2
  100. package/lib/solution/BookingByStep/index.js +4 -6
  101. package/lib/solution/BookingByStep/types.d.ts +1 -3
  102. package/lib/solution/BookingByStep/types.js +0 -10
  103. package/lib/solution/BookingByStep/utils/timeslots.d.ts +1 -3
  104. package/lib/solution/BookingByStep/utils/timeslots.js +11 -19
  105. package/lib/solution/Checkout/index.js +2 -0
  106. package/lib/solution/ShopDiscount/index.d.ts +2 -3
  107. package/lib/solution/ShopDiscount/index.js +27 -22
  108. package/lib/solution/ShopDiscount/types.d.ts +1 -1
  109. package/lib/solution/ShopDiscount/utils.js +10 -6
  110. package/lib/solution/index.d.ts +0 -2
  111. package/lib/solution/index.js +1 -5
  112. package/package.json +2 -2
  113. package/dist/apis/picoding.d.ts +0 -0
  114. package/dist/apis/picoding.js +0 -1
  115. package/dist/model/strategy/adapter/dataVariant/adapter.d.ts +0 -50
  116. package/dist/model/strategy/adapter/dataVariant/adapter.js +0 -167
  117. package/dist/model/strategy/adapter/dataVariant/evaluator.d.ts +0 -89
  118. package/dist/model/strategy/adapter/dataVariant/evaluator.js +0 -780
  119. package/dist/model/strategy/adapter/dataVariant/examples.d.ts +0 -39
  120. package/dist/model/strategy/adapter/dataVariant/examples.js +0 -277
  121. package/dist/model/strategy/adapter/dataVariant/index.d.ts +0 -4
  122. package/dist/model/strategy/adapter/dataVariant/index.js +0 -4
  123. package/dist/model/strategy/adapter/dataVariant/type.d.ts +0 -148
  124. package/dist/model/strategy/adapter/dataVariant/type.js +0 -54
  125. package/dist/modules/OpenData/index.d.ts +0 -24
  126. package/dist/modules/OpenData/index.js +0 -173
  127. package/dist/modules/OpenData/types.d.ts +0 -73
  128. package/dist/modules/OpenData/types.js +0 -1
  129. package/dist/modules/OpenData/utils.d.ts +0 -2
  130. package/dist/modules/OpenData/utils.js +0 -75
  131. package/dist/modules/Quotation/index.d.ts +0 -48
  132. package/dist/modules/Quotation/index.js +0 -248
  133. package/dist/modules/Quotation/types.d.ts +0 -42
  134. package/dist/modules/Quotation/types.js +0 -1
  135. package/dist/modules/SalesSummary/index.d.ts +0 -63
  136. package/dist/modules/SalesSummary/index.js +0 -174
  137. package/dist/modules/SalesSummary/types.d.ts +0 -60
  138. package/dist/modules/SalesSummary/types.js +0 -1
  139. package/dist/modules/SalesSummary/utils.d.ts +0 -30
  140. package/dist/modules/SalesSummary/utils.js +0 -480
  141. package/dist/modules/ScanOrderLogger/index.d.ts +0 -23
  142. package/dist/modules/ScanOrderLogger/index.js +0 -174
  143. package/dist/modules/ScanOrderLogger/providers/feishu.d.ts +0 -2
  144. package/dist/modules/ScanOrderLogger/providers/feishu.js +0 -221
  145. package/dist/modules/ScanOrderLogger/providers/grafana.d.ts +0 -2
  146. package/dist/modules/ScanOrderLogger/providers/grafana.js +0 -50
  147. package/dist/modules/ScanOrderLogger/types.d.ts +0 -53
  148. package/dist/modules/ScanOrderLogger/types.js +0 -1
  149. package/dist/solution/ScanOrder/index.d.ts +0 -158
  150. package/dist/solution/ScanOrder/index.js +0 -3474
  151. package/dist/solution/ScanOrder/types.d.ts +0 -306
  152. package/dist/solution/ScanOrder/types.js +0 -35
  153. package/dist/solution/ScanOrder/utils.d.ts +0 -172
  154. package/dist/solution/ScanOrder/utils.js +0 -796
  155. package/dist/solution/VenueBooking/index.d.ts +0 -262
  156. package/dist/solution/VenueBooking/index.js +0 -3991
  157. package/dist/solution/VenueBooking/sales-section-4-annotated.json +0 -343
  158. package/dist/solution/VenueBooking/types.d.ts +0 -156
  159. package/dist/solution/VenueBooking/types.js +0 -22
  160. package/dist/solution/VenueBooking/utils/dateSummary.d.ts +0 -11
  161. package/dist/solution/VenueBooking/utils/dateSummary.js +0 -91
  162. package/dist/solution/VenueBooking/utils/resource.d.ts +0 -14
  163. package/dist/solution/VenueBooking/utils/resource.js +0 -131
  164. package/dist/solution/VenueBooking/utils/slotMerge.d.ts +0 -32
  165. package/dist/solution/VenueBooking/utils/slotMerge.js +0 -233
  166. package/dist/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
  167. package/dist/solution/VenueBooking/utils/smartPricing.js +0 -233
  168. package/dist/solution/VenueBooking/utils/timeSlot.d.ts +0 -34
  169. package/dist/solution/VenueBooking/utils/timeSlot.js +0 -458
  170. package/dist/solution/VenueBooking/utils.d.ts +0 -1
  171. package/dist/solution/VenueBooking/utils.js +0 -1
  172. package/lib/apis/picoding.d.ts +0 -0
  173. package/lib/apis/picoding.js +0 -0
  174. package/lib/model/strategy/adapter/dataVariant/adapter.d.ts +0 -50
  175. package/lib/model/strategy/adapter/dataVariant/adapter.js +0 -149
  176. package/lib/model/strategy/adapter/dataVariant/evaluator.d.ts +0 -89
  177. package/lib/model/strategy/adapter/dataVariant/evaluator.js +0 -583
  178. package/lib/model/strategy/adapter/dataVariant/examples.d.ts +0 -39
  179. package/lib/model/strategy/adapter/dataVariant/examples.js +0 -293
  180. package/lib/model/strategy/adapter/dataVariant/index.d.ts +0 -4
  181. package/lib/model/strategy/adapter/dataVariant/index.js +0 -38
  182. package/lib/model/strategy/adapter/dataVariant/type.d.ts +0 -148
  183. package/lib/model/strategy/adapter/dataVariant/type.js +0 -31
  184. package/lib/modules/OpenData/index.d.ts +0 -24
  185. package/lib/modules/OpenData/index.js +0 -119
  186. package/lib/modules/OpenData/types.d.ts +0 -73
  187. package/lib/modules/OpenData/types.js +0 -17
  188. package/lib/modules/OpenData/utils.d.ts +0 -2
  189. package/lib/modules/OpenData/utils.js +0 -111
  190. package/lib/modules/Quotation/index.d.ts +0 -48
  191. package/lib/modules/Quotation/index.js +0 -152
  192. package/lib/modules/Quotation/types.d.ts +0 -42
  193. package/lib/modules/Quotation/types.js +0 -17
  194. package/lib/modules/SalesSummary/index.d.ts +0 -63
  195. package/lib/modules/SalesSummary/index.js +0 -105
  196. package/lib/modules/SalesSummary/types.d.ts +0 -60
  197. package/lib/modules/SalesSummary/types.js +0 -17
  198. package/lib/modules/SalesSummary/utils.d.ts +0 -30
  199. package/lib/modules/SalesSummary/utils.js +0 -420
  200. package/lib/modules/ScanOrderLogger/index.d.ts +0 -23
  201. package/lib/modules/ScanOrderLogger/index.js +0 -147
  202. package/lib/modules/ScanOrderLogger/providers/feishu.d.ts +0 -2
  203. package/lib/modules/ScanOrderLogger/providers/feishu.js +0 -157
  204. package/lib/modules/ScanOrderLogger/providers/grafana.d.ts +0 -2
  205. package/lib/modules/ScanOrderLogger/providers/grafana.js +0 -52
  206. package/lib/modules/ScanOrderLogger/types.d.ts +0 -53
  207. package/lib/modules/ScanOrderLogger/types.js +0 -17
  208. package/lib/solution/ScanOrder/index.d.ts +0 -158
  209. package/lib/solution/ScanOrder/index.js +0 -2135
  210. package/lib/solution/ScanOrder/types.d.ts +0 -306
  211. package/lib/solution/ScanOrder/types.js +0 -36
  212. package/lib/solution/ScanOrder/utils.d.ts +0 -172
  213. package/lib/solution/ScanOrder/utils.js +0 -658
  214. package/lib/solution/VenueBooking/index.d.ts +0 -262
  215. package/lib/solution/VenueBooking/index.js +0 -2394
  216. package/lib/solution/VenueBooking/sales-section-4-annotated.json +0 -343
  217. package/lib/solution/VenueBooking/types.d.ts +0 -156
  218. package/lib/solution/VenueBooking/types.js +0 -45
  219. package/lib/solution/VenueBooking/utils/dateSummary.d.ts +0 -11
  220. package/lib/solution/VenueBooking/utils/dateSummary.js +0 -105
  221. package/lib/solution/VenueBooking/utils/resource.d.ts +0 -14
  222. package/lib/solution/VenueBooking/utils/resource.js +0 -92
  223. package/lib/solution/VenueBooking/utils/slotMerge.d.ts +0 -32
  224. package/lib/solution/VenueBooking/utils/slotMerge.js +0 -236
  225. package/lib/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
  226. package/lib/solution/VenueBooking/utils/smartPricing.js +0 -180
  227. package/lib/solution/VenueBooking/utils/timeSlot.d.ts +0 -34
  228. package/lib/solution/VenueBooking/utils/timeSlot.js +0 -343
  229. package/lib/solution/VenueBooking/utils.d.ts +0 -1
  230. package/lib/solution/VenueBooking/utils.js +0 -69
@@ -1,262 +0,0 @@
1
- import { Module, ModuleOptions, PisellCore } from '../../types';
2
- import { BaseModule } from '../../modules/BaseModule';
3
- import { VenueBookingAddLogParams, VenueBookingSlotConfig, VenueDateSummaryItem, VenueSlotSelection, VenueTimeSlotGrid } from './types';
4
- import type { ScanOrderOrderProduct, ScanOrderOrderProductIdentity } from '../ScanOrder/types';
5
- import type { UpdateProductInOrderParams } from '../../modules/Order/types';
6
- import type { ScheduleItem } from '../../modules/Schedule/types';
7
- import type { OpenDataAvailabilityResult } from '../../modules/OpenData';
8
- import type { ProductData } from '../../modules/Product/types';
9
- import { type CartItemSummary, type PaxInfo, type QuantityCheckResult, type QuantityLimitResult } from '../../model/strategy/adapter/itemRule';
10
- import type { StrategyConfig } from '../../model/strategy/type';
11
- export * from './types';
12
- interface VenueBookingItemRuleRuntimeConfig {
13
- strategyConfigs?: StrategyConfig[];
14
- pax?: Partial<PaxInfo>;
15
- historicalItems?: CartItemSummary[];
16
- serviceType?: string;
17
- submissionIndex?: number;
18
- custom?: Record<string, any>;
19
- }
20
- export declare class VenueBookingImpl extends BaseModule implements Module {
21
- private static readonly PRICING_DEBUG_CACHE_ID;
22
- protected defaultName: string;
23
- protected defaultVersion: string;
24
- isSolution: boolean;
25
- private initializeOptions;
26
- private store;
27
- private otherParams;
28
- private cacheId;
29
- private window;
30
- private request;
31
- private baseSlotConfig;
32
- private itemRuleEvaluator;
33
- private itemRuleConfigs;
34
- private itemRuleConfigsPromise;
35
- private itemRulePrefillApplied;
36
- private itemRuleRuntimeConfig;
37
- private resourceProductMap;
38
- private loginEffectDisposers;
39
- private customerLoginRefreshInFlight;
40
- private customerLoginRefreshIdInFlight;
41
- /** 最近一次确认登录的客户;登录事件与 user 插件更新之间可能存在时序差。 */
42
- private smartPricingCustomerId;
43
- private loadAllProductsInFlight;
44
- private productsLoaded;
45
- private loadOpenDataConfigInFlight;
46
- private static readonly OPEN_DATA_CACHE_TTL;
47
- /** 按日期缓存 slot 智能定价 Map,避免同周重复 resolveProducts */
48
- private slotPriceMapCache;
49
- /** loadProducts 后缓存的全量商品(venue + addon),供分段算价复用 */
50
- private smartPricingProductCatalog;
51
- private static readonly PISELL1_LOGIN_SUCCESS;
52
- private getLoggerContext;
53
- private safeStringify;
54
- private pickErrorMessage;
55
- private serializeError;
56
- private addVenueBookingLog;
57
- /**
58
- * 临时线上排查日志:
59
- * - 仅对指定页面 cacheId 开启,避免影响其他页面
60
- * - 不 await,且吞掉日志上报异常,保证日志系统不会阻断登录/商品加载主流程
61
- */
62
- private logPricingDiagnostics;
63
- private isPricingDiagnosticsEnabled;
64
- private getAvailableWalletIdsForDiagnostics;
65
- private getOrderPricingSnapshotForDiagnostics;
66
- private getCatalogPricingSnapshotForDiagnostics;
67
- private logMethodStart;
68
- private logMethodSuccess;
69
- private logMethodError;
70
- addLog(params: VenueBookingAddLogParams): Promise<void>;
71
- constructor(name?: string, version?: string);
72
- private normalizeCustomerId;
73
- private resolveCustomerIdFromLoginPayload;
74
- private clearLoginEffectListeners;
75
- private registerLoginEffect;
76
- private registerCustomerLoginListeners;
77
- private refreshOrderMarketingAfterLogin;
78
- initialize(core: PisellCore, options?: ModuleOptions): Promise<void>;
79
- destroy(): Promise<void>;
80
- retryInit(): Promise<void>;
81
- refresh(): Promise<void>;
82
- getStatus(): import("./types").VenueBookingStatus;
83
- getEntryContext(): import("./types").VenueBookingEntryContext | null;
84
- getItemRuleQuantityLimits(): QuantityLimitResult[];
85
- getCartValidationPassed(): boolean | null;
86
- getCartValidation(): {
87
- passed: boolean | null;
88
- failures: QuantityCheckResult[];
89
- };
90
- /** 清除 slot 价格分段缓存(商品重载 / 登录后 customerId 变化时调用) */
91
- private clearSlotPriceMapCache;
92
- /** 读取当前登录 customerId */
93
- private resolveCustomerIdForSmartPricing;
94
- private resolveAvailableWalletIdsForSmartPricing;
95
- /** 读取 schedule 全量列表,供智能定价 schedule_match 使用 */
96
- private getScheduleListForSmartPricing;
97
- /** 构建智能定价上下文,对齐 OS Server buildProductFormatterContext */
98
- private buildSmartPricingContext;
99
- /** venue + addon 全量商品,供智能定价评估 */
100
- private getAllProductsForSmartPricing;
101
- private getSlotPriceMapCacheKey;
102
- /**
103
- * 按 schedule 分段构建 slot 价格 Map,带实例级缓存。
104
- */
105
- private buildSlotPriceMapForDate;
106
- loadAllProducts(): Promise<{
107
- venueProducts: ProductData[];
108
- addonProducts: ProductData[];
109
- }>;
110
- private _doLoadAllProducts;
111
- loadVenueProducts(): Promise<ProductData[]>;
112
- loadAddonProducts(): Promise<ProductData[]>;
113
- getVenueProducts(): ProductData[];
114
- getAddonProductsList(): ProductData[];
115
- loadQuotations(params?: {
116
- channel?: string;
117
- }): Promise<void>;
118
- fetchResourceAvailability(params: {
119
- startDate: string;
120
- endDate: string;
121
- }): Promise<void>;
122
- private getOperatingHoursScheduleIds;
123
- private resolveSlotConfigForDate;
124
- private syncOperatingHoursToSlotConfig;
125
- getDateRangeSummary(params: {
126
- startDate: string;
127
- endDate: string;
128
- }): VenueDateSummaryItem[];
129
- getTimeSlotGrid(date: string): VenueTimeSlotGrid;
130
- /**
131
- * 切换单个时段的选中状态(选中/取消)。
132
- * 内部自动处理连续时段的合并与拆分,订单是唯一真相源。
133
- *
134
- * slot.productId 指定当前操作针对的是该 resourceId 下的哪一个商品。
135
- * 同一资源下不同 productId 之间互相隔离,不会相互合并。
136
- */
137
- toggleSlot(slot: VenueSlotSelection): Promise<ScanOrderOrderProduct[]>;
138
- /**
139
- * 获取某资源当前选中的所有独立时段(从订单中解析)。
140
- * 不传 productId 时返回该资源下所有商品的选中时段;传了则精确匹配。
141
- */
142
- getSelectedSlotsForResource(resourceId: number | string, productId?: number): VenueSlotSelection[];
143
- /** getSelectedSlotsForResource 的 (resourceId, productId) 精确版,内部使用。 */
144
- private getSelectedSlotsForResourceProduct;
145
- /**
146
- * 判断某个时段是否已选中。
147
- * 不传 productId 时:只要该资源下任一商品在 startTime 被选中即返回 true;传了则精确匹配。
148
- */
149
- isSlotSelected(resourceId: number | string, startTime: string, productId?: number): boolean;
150
- /**
151
- * 判断指定 (resourceId, productId, startTime) 格子是否应因其它已选项而被禁用。
152
- * 规则:
153
- * 1) 同一 resourceId 下若已选了另一个 productId 的同 startTime → 禁用
154
- * 2) 当前 resource 是组合资源:若其任一 child resource 在 startTime 被选中 → 禁用
155
- * 3) 当前 resource 是某些组合资源的 child:若该组合资源在 startTime 被选中 → 禁用
156
- * 4) 两个组合资源的 child 集合有交集,且对方在该 startTime 被选中 → 禁用
157
- */
158
- isSlotDisabledBySelection(params: {
159
- resourceId: number | string;
160
- productId: number;
161
- startTime: string;
162
- }): boolean;
163
- /**
164
- * 获取所有已选时段(按资源分组)。每个 slot 上带 productId,便于 UI 做 per-product 判定。
165
- */
166
- getAllSelectedSlots(): Map<number | string, VenueSlotSelection[]>;
167
- /**
168
- * 对指定 (resourceId, productId) 的订单商品进行 reconcile:
169
- * 清除旧商品 → 合并连续时段 → 重新写入。
170
- * 同一场地下不同商品互不干扰,各自单独 reconcile。
171
- */
172
- private reconcileOrderForResourceProduct;
173
- /** 给定一个父 rawResource,返回其 combined_resource.resource_ids 对应的子 rawResource 列表。 */
174
- private getCombinedChildRawResources;
175
- setSlotConfig(config: Partial<VenueBookingSlotConfig>): void;
176
- getSlotConfig(): VenueBookingSlotConfig;
177
- loadSchedules(): Promise<void>;
178
- getScheduleListByIds(ids: number[]): ScheduleItem[];
179
- getTempOrder(): import("./types").ScanOrderTempOrder | null;
180
- updateTempOrderNote(note: string): string;
181
- updateTempOrderContactsInfo(contactsInfo: any[]): any[];
182
- private ensureTempOrder;
183
- onCustomerLogin(params: {
184
- customerId: number;
185
- }): Promise<void>;
186
- /**
187
- * 接收 pisell2 VenueBooking 登录链路诊断日志。
188
- * 实际是否上报仍由 OS 内部 cacheId 白名单统一控制。
189
- */
190
- logPricingDiagnosticsFromClient(params: {
191
- title: string;
192
- payload?: Record<string, any>;
193
- }): void;
194
- private recalculateOrderPricesFromSmartPricing;
195
- /**
196
- * DataVariant 重算价格后,同步刷新订单展示、Rules 与 Summary 共用的价格口径。
197
- * Rules 会在本轮结束后根据当前客户的 discountList 重新写入实际折扣。
198
- */
199
- private resetProductPriceForSmartPricing;
200
- scanCode(code: string, customerId?: number): Promise<{
201
- isAvailable: boolean;
202
- discountList: import("../../modules/Discount").Discount[];
203
- type: "server" | "clientCalc";
204
- unavailableReason?: import("../../modules/Rules/types").UnavailableReason | undefined;
205
- unavailableReasonKey?: string | null | undefined;
206
- }>;
207
- /** 获取当前折扣列表(包装 order.getDiscountList) */
208
- getDiscountList(): import("../../modules/Discount").Discount[];
209
- /** 勾选/取消勾选某张折扣券,重新计算折扣并持久化 */
210
- setDiscountSelected(params: {
211
- discountId: number;
212
- isSelected: boolean;
213
- }): Promise<import("../../modules/Discount").Discount[]>;
214
- /**
215
- * 统一 VenueBooking 折扣后的订单行价。
216
- *
217
- * Rules 的 `discount_list.amount` 是已经按适用规则计算出的每件优惠额;它是这里唯一
218
- * 的折扣金额来源。使用智能定价写入的 source_product_price 减去该金额,再同步
219
- * selling_price 与 Summary 使用的 main_product_selling_price,避免 UI 的购物车行价、
220
- * 小计和提交订单各自读取到不同的价格字段。
221
- */
222
- private normalizeDiscountedOrderPrices;
223
- addNewOrder(): Promise<import("./types").ScanOrderTempOrder>;
224
- getOrderProducts(): ScanOrderOrderProduct[];
225
- getSummary(): Promise<import("./types").ScanOrderSummary>;
226
- submitOrder<T = any>(): Promise<T>;
227
- /**
228
- * 0 元订单免费领取(非定金场景)
229
- * 与 appointment getFreeProduct 同接口:POST /pay/order/free-pay/:id
230
- */
231
- submitFreeOrder(id: string | number): Promise<any>;
232
- addProductToOrder(product: Partial<ScanOrderOrderProduct> & ScanOrderOrderProductIdentity): Promise<ScanOrderOrderProduct[]>;
233
- updateProductInOrder(params: UpdateProductInOrderParams): Promise<ScanOrderOrderProduct[]>;
234
- removeProductFromOrder(identity: ScanOrderOrderProductIdentity): Promise<ScanOrderOrderProduct[]>;
235
- getProductList(): Promise<ProductData[]>;
236
- private loadOpenDataConfig;
237
- private loadRuntimeConfigs;
238
- private fetchItemRuleConfigsByModelIds;
239
- private buildPrefillProductSourceMap;
240
- private getItemRuleRuntimeConfig;
241
- private ensureItemRuleConfigsLoaded;
242
- private refreshItemRuleQuantityLimits;
243
- private applyPrefillByItemRule;
244
- applyItemRulePrefill(): Promise<void>;
245
- private evaluateCartValidationByItemRule;
246
- private validateBeforeSubmitByItemRule;
247
- private refreshCartValidationPassed;
248
- setItemRuleRuntimeConfig(config?: VenueBookingItemRuleRuntimeConfig): Promise<void>;
249
- getOtherParams(): Record<string, any>;
250
- private static readonly UI_STATE_KEY_PREFIX;
251
- private getUIStateBucketKey;
252
- private readUIStateBucket;
253
- private writeUIStateBucket;
254
- setUIState(key: string, value: any): void;
255
- getUIState<T = any>(key: string): T | undefined;
256
- deleteUIState(key: string): void;
257
- setBookingHolder(bookingUid: string, holder: any): void;
258
- checkOpenDataAvailability(): Promise<OpenDataAvailabilityResult>;
259
- setOtherParams(params: Record<string, any>, { cover }?: {
260
- cover?: boolean;
261
- }): Promise<void>;
262
- }