@pisell/pisellos 2.2.93 → 2.2.95

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 (53) hide show
  1. package/dist/modules/Order/index.d.ts +1 -1
  2. package/dist/plugins/app-types/app/app.d.ts +1 -0
  3. package/dist/server/index.d.ts +55 -0
  4. package/dist/server/index.js +826 -207
  5. package/dist/server/modules/index.d.ts +6 -0
  6. package/dist/server/modules/index.js +7 -0
  7. package/dist/server/modules/order/index.d.ts +87 -0
  8. package/dist/server/modules/order/index.js +916 -0
  9. package/dist/server/modules/order/types.d.ts +530 -0
  10. package/dist/server/modules/order/types.js +141 -0
  11. package/dist/server/modules/order/utils/filterBookings.d.ts +6 -0
  12. package/dist/server/modules/order/utils/filterBookings.js +350 -0
  13. package/dist/server/modules/order/utils/filterOrders.d.ts +15 -0
  14. package/dist/server/modules/order/utils/filterOrders.js +226 -0
  15. package/dist/server/modules/resource/index.d.ts +88 -0
  16. package/dist/server/modules/resource/index.js +1202 -0
  17. package/dist/server/modules/resource/types.d.ts +121 -0
  18. package/dist/server/modules/resource/types.js +47 -0
  19. package/dist/solution/BookingByStep/index.d.ts +1 -1
  20. package/dist/solution/BookingTicket/index.d.ts +1 -1
  21. package/dist/solution/Sales/index.d.ts +96 -0
  22. package/dist/solution/Sales/index.js +562 -0
  23. package/dist/solution/Sales/types.d.ts +66 -0
  24. package/dist/solution/Sales/types.js +26 -0
  25. package/dist/solution/index.d.ts +1 -0
  26. package/dist/solution/index.js +2 -1
  27. package/lib/modules/Order/index.d.ts +1 -1
  28. package/lib/plugins/app-types/app/app.d.ts +1 -0
  29. package/lib/server/index.d.ts +55 -0
  30. package/lib/server/index.js +343 -1
  31. package/lib/server/modules/index.d.ts +6 -0
  32. package/lib/server/modules/index.js +16 -2
  33. package/lib/server/modules/order/index.d.ts +87 -0
  34. package/lib/server/modules/order/index.js +543 -0
  35. package/lib/server/modules/order/types.d.ts +530 -0
  36. package/lib/server/modules/order/types.js +34 -0
  37. package/lib/server/modules/order/utils/filterBookings.d.ts +6 -0
  38. package/lib/server/modules/order/utils/filterBookings.js +320 -0
  39. package/lib/server/modules/order/utils/filterOrders.d.ts +15 -0
  40. package/lib/server/modules/order/utils/filterOrders.js +197 -0
  41. package/lib/server/modules/resource/index.d.ts +88 -0
  42. package/lib/server/modules/resource/index.js +571 -0
  43. package/lib/server/modules/resource/types.d.ts +121 -0
  44. package/lib/server/modules/resource/types.js +35 -0
  45. package/lib/solution/BookingByStep/index.d.ts +1 -1
  46. package/lib/solution/BookingTicket/index.d.ts +1 -1
  47. package/lib/solution/Sales/index.d.ts +96 -0
  48. package/lib/solution/Sales/index.js +413 -0
  49. package/lib/solution/Sales/types.d.ts +66 -0
  50. package/lib/solution/Sales/types.js +35 -0
  51. package/lib/solution/index.d.ts +1 -0
  52. package/lib/solution/index.js +3 -1
  53. package/package.json +1 -1
@@ -0,0 +1,530 @@
1
+ import type { ScheduleEventResource } from '../resource/types';
2
+ /**
3
+ * Order 模块主键类型(对齐标准 Sales 协议的 order_id)
4
+ */
5
+ export type OrderId = number | string;
6
+ /**
7
+ * 协议中金额类字段多为 string 快照(交易时价格不可从基准商品重算)
8
+ */
9
+ export type OrderMoneyString = string;
10
+ /** 订单类型。文档:appointment_booking / ticket / virtual。来源:Order.type */
11
+ export type OrderType = 'appointment_booking' | 'ticket' | 'virtual' | string;
12
+ /**
13
+ * 来源平台。文档:shop / pos / kiosk / h5 / app / mini-program。
14
+ * 来源:Order.platform
15
+ */
16
+ export type OrderPlatform = 'shop' | 'pos' | 'kiosk' | 'h5' | 'app' | 'mini-program' | string;
17
+ /** 订单状态(仅输出)。文档:open / completed / cancelled。来源:Order.status */
18
+ export type OrderStatus = 'open' | 'completed' | 'cancelled' | string;
19
+ /** 支付状态。来源:Order.payment_status */
20
+ export type OrderPaymentStatus = 'payment_processing' | 'paid' | 'unpaid' | 'partially_paid' | string;
21
+ /** 发货状态(仅输出)。来源:Order.shipping_status */
22
+ export type OrderShippingStatus = 'unfulfilled' | 'fulfilled' | string;
23
+ /**
24
+ * 预约子事件状态(仅输出)。
25
+ * 文档:new / confirmed / arrived / started / completed / cancelled。
26
+ * 来源:ScheduleEvent.appointment_status
27
+ */
28
+ export type AppointmentStatus = 'new' | 'confirmed' | 'arrived' | 'started' | 'completed' | 'cancelled' | string;
29
+ /** 折扣类型:shop(整单)/ product(商品)。来源:Discount.type */
30
+ export type OrderProductDiscountType = 'shop' | 'product' | string;
31
+ /** 支付记录状态:paid / voided / payment_pending 等。来源:OrderPayment.status */
32
+ export type OrderPaymentRecordStatus = 'paid' | 'voided' | 'payment_pending' | string;
33
+ /** 附加费类型。来源:OrderSurcharge.type */
34
+ export type OrderSurchargeType = string;
35
+ /** 商品折扣 metadata,常含 unique_identification_number */
36
+ export interface OrderProductDiscountMetadata {
37
+ /** 设备端本地唯一标识,用于与服务端记录对齐 */
38
+ unique_identification_number?: string;
39
+ [key: string]: unknown;
40
+ }
41
+ /**
42
+ * 商品折扣项(3.3.1 discount_list)
43
+ */
44
+ export interface OrderProductDiscountItem {
45
+ /** 折扣记录 ID;更新时传,创建时 null。来源:Discount.id */
46
+ order_discount_id?: number | null;
47
+ /** 折扣类型:shop / product */
48
+ type?: OrderProductDiscountType;
49
+ /** 关联折扣规则 ID。来源:Discount.discount_id */
50
+ discount_id?: number;
51
+ /** 折扣金额。来源:Discount.amount */
52
+ amount?: OrderMoneyString;
53
+ /** 折扣详情。来源:Discount.discount */
54
+ discount?: Record<string, unknown>;
55
+ /** 元数据。来源:Discount.metadata */
56
+ metadata?: OrderProductDiscountMetadata | null;
57
+ }
58
+ /**
59
+ * 套餐子商品(3.3.2 product_bundle)
60
+ */
61
+ export interface OrderProductBundleItem {
62
+ /** 套餐组 ID */
63
+ bundle_group_id?: number;
64
+ /** 套餐商品 ID */
65
+ bundle_id?: number;
66
+ /** 套餐商品规格 ID */
67
+ bundle_variant_id?: number;
68
+ /** 数量 */
69
+ num?: number;
70
+ /** 扩展 ID */
71
+ extension_id?: number;
72
+ /** 扩展类型 */
73
+ extension_type?: string;
74
+ /** 选项 */
75
+ option?: unknown[];
76
+ }
77
+ /** 商品行 metadata,常含 unique_identification_number */
78
+ export interface OrderProductMetadata {
79
+ /** 设备端本地唯一标识,用于与服务端明细对齐 */
80
+ unique_identification_number?: string;
81
+ [key: string]: unknown;
82
+ }
83
+ /**
84
+ * 订单级商品行(3.3 products)。
85
+ * 订单级别的非预约关联商品;预约关联商品在 bookings 内。
86
+ * product_id 为关联 ID,展示信息从本地基准数据取;价格为交易快照须保留在 Sales 数据中。
87
+ */
88
+ export interface OrderProductLineItem {
89
+ /** 订单明细 ID;更新时传,创建时 null。来源:Detail.id */
90
+ order_detail_id?: number | null;
91
+ /** 商品 ID;null 表示自定义商品。来源:Detail.product_id */
92
+ product_id?: number | null;
93
+ /** 数量。创建/更新时必填。来源:Detail.product_quantity */
94
+ num: number;
95
+ /** 多规格 ID。来源:Detail.product_variant_id */
96
+ product_variant_id?: number;
97
+ /** 选项配置 */
98
+ product_option_item?: unknown[];
99
+ /**
100
+ * 销售单价(交易快照,仅输出)。
101
+ * 来源:Detail.selling_price
102
+ */
103
+ selling_price?: OrderMoneyString;
104
+ /**
105
+ * 原价(交易快照,仅输出)。
106
+ * 来源:Detail.original_price
107
+ */
108
+ original_price?: OrderMoneyString;
109
+ /**
110
+ * 实际支付单价(交易快照,仅输出)。
111
+ * 来源:Detail.payment_price
112
+ */
113
+ payment_price?: OrderMoneyString;
114
+ /** 商品税费(仅输出)。来源:Detail.tax_fee */
115
+ tax_fee?: OrderMoneyString;
116
+ /** 是否收税 0/1(仅输出)。来源:Detail.is_charge_tax */
117
+ is_charge_tax?: 0 | 1;
118
+ /** 商品折扣列表 */
119
+ discount_list?: OrderProductDiscountItem[];
120
+ /** 套餐子商品 */
121
+ product_bundle?: OrderProductBundleItem[];
122
+ /** 元数据;含 unique_identification_number。来源:Detail.metadata */
123
+ metadata?: OrderProductMetadata | null;
124
+ }
125
+ /** 预约条目 metadata,常含 unique_identification_number */
126
+ export interface OrderBookingMetadata {
127
+ /** 设备端本地唯一标识,用于与服务端子预约对齐 */
128
+ unique_identification_number?: string;
129
+ [key: string]: unknown;
130
+ }
131
+ /**
132
+ * 单条预约(子 schedule_event,parent_id != 0)。
133
+ * product 结构同 products 单项;relation_products 结构同 products 数组。
134
+ */
135
+ export interface OrderBookingItem {
136
+ /** 子预约 ID;更新时传。来源:ScheduleEvent.id */
137
+ schedule_event_id?: number | null;
138
+ /** 预约号(仅输出)。来源:ScheduleEvent.booking_id */
139
+ booking_id?: string;
140
+ /**
141
+ * 预约状态(仅输出)。
142
+ * new / confirmed / arrived / started / completed / cancelled。
143
+ * 来源:ScheduleEvent.appointment_status
144
+ */
145
+ appointment_status?: AppointmentStatus;
146
+ /**
147
+ * 兼容历史:部分数据仍用 status 表示预约状态
148
+ */
149
+ status?: string;
150
+ /** 预定开始日期 Y-m-d。来源:ScheduleEvent.start_date */
151
+ start_date?: string;
152
+ /** 预定开始时间 H:i。来源:ScheduleEvent.start_time */
153
+ start_time?: string;
154
+ /** 预定结束日期 Y-m-d。来源:ScheduleEvent.end_date */
155
+ end_date?: string;
156
+ /** 预定结束时间 H:i。来源:ScheduleEvent.end_time */
157
+ end_time?: string;
158
+ /** 全天选择日期 Y-m-d。来源:ScheduleEvent.select_date */
159
+ select_date?: string;
160
+ /** 服务时长(分钟)。来源:ScheduleEvent.duration */
161
+ duration?: number;
162
+ /** 实际到店时间(仅输出)。来源:ScheduleEvent.arrived_at */
163
+ arrived_at?: string | null;
164
+ /** 实际结束时间(仅输出)。来源:ScheduleEvent.completed_at */
165
+ completed_at?: string | null;
166
+ /** 子类型。来源:ScheduleEvent.sub_type */
167
+ sub_type?: string;
168
+ /** 特殊状态:common / like。来源:ScheduleEvent.like_status */
169
+ like_status?: string;
170
+ /** 预约人数 / 容量占用。来源:ScheduleEvent.number */
171
+ number?: number;
172
+ /** 关联资源(见协议 3.4.1) */
173
+ resources?: ScheduleEventResource[];
174
+ /**
175
+ * 预约主商品(结构同 products 单项;协议创建时必填)。
176
+ * 兼容未同步完整的旧数据可为空。
177
+ */
178
+ product?: OrderProductLineItem;
179
+ /** 预约附属商品(结构同 products 数组) */
180
+ relation_products?: OrderProductLineItem[];
181
+ /** 关联类型(如 form)。来源:ScheduleEvent.relation_type */
182
+ relation_type?: string;
183
+ /** 关联资源 ID。来源:ScheduleEvent.relation_id */
184
+ relation_id?: number;
185
+ /** 预约关联表单 */
186
+ relation_forms?: unknown[];
187
+ /** 预约主体参数 */
188
+ holder?: Record<string, unknown> | null;
189
+ /** 元数据;含 unique_identification_number。来源:ScheduleEvent.metadata */
190
+ metadata?: OrderBookingMetadata | null;
191
+ }
192
+ /** 支付记录 metadata,常含 unique_payment_number */
193
+ export interface OrderPaymentMetadata {
194
+ /** 设备端本地支付唯一标识 */
195
+ unique_payment_number?: string;
196
+ [key: string]: unknown;
197
+ }
198
+ /**
199
+ * 支付记录(3.5 payments)
200
+ */
201
+ export interface OrderPaymentItem {
202
+ /** 支付记录 ID;存量/更新时传。来源:OrderPayment.id */
203
+ order_payment_id?: number | null;
204
+ /** 支付方式 ID(设备端从本地支付方式配置取详情)。来源:OrderPayment.custom_payment_id */
205
+ custom_payment_id?: number;
206
+ /** 支付方式编码。来源:OrderPayment.payment_method */
207
+ code?: string;
208
+ /** 支付方式名称 */
209
+ name?: string;
210
+ /** 支付类型:如 deposit。来源:OrderPayment.type */
211
+ type?: string;
212
+ /** Wallet Pass ID。来源:OrderPayment.voucher_id */
213
+ voucher_id?: number | null;
214
+ /** 支付金额。创建时必填。来源:OrderPayment.amount */
215
+ amount: OrderMoneyString;
216
+ /** 原始金额(仅输出)。来源:OrderPayment.origin_amount */
217
+ origin_amount?: OrderMoneyString;
218
+ /** Rounding 金额(仅输出)。来源:OrderPayment.rounding_amount */
219
+ rounding_amount?: OrderMoneyString;
220
+ /** 支付状态:paid / voided / payment_pending 等 */
221
+ status?: OrderPaymentRecordStatus;
222
+ /** 支付时间(仅输出)。来源:OrderPayment.payment_time */
223
+ payment_time?: string | null;
224
+ /** 手续费配置。来源:OrderPayment.service_charge */
225
+ service_charge?: Record<string, unknown> | null;
226
+ /** Wallet Pass 使用单位 */
227
+ wallet_pass_usage_unit?: unknown[] | null;
228
+ /** Wallet Pass 使用值 */
229
+ wallet_pass_use_value?: number | null;
230
+ /** 元数据;含 unique_payment_number。来源:OrderPayment.metadata */
231
+ metadata?: OrderPaymentMetadata | null;
232
+ }
233
+ /**
234
+ * 订单附加费(3.6 surcharges)
235
+ */
236
+ export interface OrderSurchargeItem {
237
+ /** 订单附加费记录 ID(仅输出)。来源:OrderSurcharge.id */
238
+ order_surcharge_id?: number | null;
239
+ /** 附加费配置 ID。来源:OrderSurcharge.surcharge_id */
240
+ surcharge_id: number;
241
+ /** 附加费类型。来源:OrderSurcharge.type */
242
+ type: OrderSurchargeType;
243
+ /** 名称(多语言 JSON)。来源:OrderSurcharge.name */
244
+ name?: Record<string, string>;
245
+ /** 描述(多语言 JSON)。来源:OrderSurcharge.description */
246
+ description?: Record<string, string>;
247
+ /** 百分比费率。来源:OrderSurcharge.percentage */
248
+ percentage?: OrderMoneyString | null;
249
+ /** 固定金额。来源:OrderSurcharge.fixed */
250
+ fixed?: OrderMoneyString | null;
251
+ /** 附加费金额。来源:OrderSurcharge.amount */
252
+ amount: OrderMoneyString;
253
+ }
254
+ export interface OrderSummary {
255
+ /** 商品总数量。来源:Order.product_quantity */
256
+ product_quantity?: number;
257
+ /** 商品原价总额。来源:Order.product_original_amount */
258
+ product_original_amount?: OrderMoneyString;
259
+ /** 商品实际支付总额。来源:Order.product_amount */
260
+ product_amount?: OrderMoneyString;
261
+ /** 商品预计支付总额。来源:Order.product_expect_amount */
262
+ product_expect_amount?: OrderMoneyString;
263
+ /** 商品总税费。来源:Order.product_tax_fee */
264
+ product_tax_fee?: OrderMoneyString;
265
+ /** 运费。来源:Order.shipping_fee */
266
+ shipping_fee?: OrderMoneyString;
267
+ /** 运费税。来源:Order.shipping_tax_fee */
268
+ shipping_tax_fee?: OrderMoneyString;
269
+ /** 订单总税费。来源:Order.tax_fee */
270
+ tax_fee?: OrderMoneyString;
271
+ /** 附加费总额。来源:Order.surcharge_fee */
272
+ surcharge_fee?: OrderMoneyString;
273
+ /** 优惠总额。来源:Order.discount_amount */
274
+ discount_amount?: OrderMoneyString;
275
+ /** 定金金额。来源:Order.deposit_amount */
276
+ deposit_amount?: OrderMoneyString;
277
+ /** 预计总金额(不含手续费)。来源:Order.expect_amount */
278
+ expect_amount?: OrderMoneyString;
279
+ /** 订单总金额(实际应付)。来源:Order.total_amount */
280
+ total_amount?: OrderMoneyString;
281
+ /** 差额。来源:Order.amount_gap */
282
+ amount_gap?: OrderMoneyString;
283
+ /** Rounding 金额。来源:Order.rounding_amount */
284
+ rounding_amount?: OrderMoneyString;
285
+ /** 支付手续费。来源:Order.pay_service_charge_amount */
286
+ pay_service_charge_amount?: OrderMoneyString;
287
+ }
288
+ /**
289
+ * 订单数据结构(Server 侧对齐《统一 Sales 数据协议》)
290
+ */
291
+ export interface OrderData {
292
+ /**
293
+ * 订单主键:有值表示更新,null 表示创建。
294
+ * 来源:Order.id
295
+ */
296
+ order_id?: OrderId | null;
297
+ /** 系统订单号(仅输出)。来源:Order.order_number */
298
+ order_number?: string;
299
+ /** 商户订单号(仅输出)。来源:Order.shop_order_number */
300
+ shop_order_number?: string;
301
+ /** 订单类型:appointment_booking / ticket / virtual。来源:Order.type */
302
+ type?: OrderType;
303
+ /** 业务编码。来源:Order.business_code */
304
+ business_code?: string;
305
+ /** 来源平台。来源:Order.platform */
306
+ platform?: OrderPlatform;
307
+ /** 销售渠道(文档示例 my_pisel)。来源:Order.sales_channel */
308
+ sales_channel?: string;
309
+ /** 订单销售渠道。来源:Order.order_sales_channel */
310
+ order_sales_channel?: string;
311
+ /** 订单状态 open / completed / cancelled(仅输出)。来源:Order.status */
312
+ status?: OrderStatus;
313
+ /** 支付状态。来源:Order.payment_status */
314
+ payment_status?: OrderPaymentStatus;
315
+ /** 发货状态(仅输出)。来源:Order.shipping_status */
316
+ shipping_status?: OrderShippingStatus;
317
+ /**
318
+ * 客户 ID(设备端从本地客户数据取详情)。
319
+ * 来源:Order.customer_id
320
+ */
321
+ customer_id?: number | string;
322
+ /** 客户名称。来源:Order.customer_name */
323
+ customer_name?: string;
324
+ /** 国家呼号。来源:Order.country_calling_code */
325
+ country_calling_code?: string;
326
+ /** 手机号。来源:Order.phone */
327
+ phone?: string;
328
+ /** 邮箱。来源:Order.email */
329
+ email?: string;
330
+ /** 是否含税 0/1。来源:Order.is_price_include_tax */
331
+ is_price_include_tax?: 0 | 1;
332
+ /** 税种名称。来源:Order.tax_title */
333
+ tax_title?: string;
334
+ /** 税种国家编码。来源:Order.tax_country_code */
335
+ tax_country_code?: string;
336
+ /** 货币编码。来源:Order.currency_code */
337
+ currency_code?: string;
338
+ /** 货币符号。来源:Order.currency_symbol */
339
+ currency_symbol?: string;
340
+ /** 货币格式。来源:Order.currency_format */
341
+ currency_format?: string;
342
+ /** 是否收取定金 0/1。来源:Order.is_deposit */
343
+ is_deposit?: 0 | 1;
344
+ /** 定金金额。来源:Order.deposit_amount */
345
+ deposit_amount?: OrderMoneyString;
346
+ /** 整单优惠金额。来源:Order.shop_discount */
347
+ shop_discount?: OrderMoneyString;
348
+ /** 附加费总额。来源:Order.surcharge_fee */
349
+ surcharge_fee?: OrderMoneyString;
350
+ /** 订单备注。来源:Order.note */
351
+ note?: string;
352
+ /** 预约日期。来源:Order.schedule_date */
353
+ schedule_date?: string;
354
+ /** 创建时间。来源:Order.created_at */
355
+ created_at?: string;
356
+ /** 更新时间(本地或同步字段) */
357
+ updated_at?: string | number;
358
+ /** 订单级非预约关联商品 */
359
+ products?: OrderProductLineItem[];
360
+ /** 预约数组,每项对应一个子预约 */
361
+ bookings?: OrderBookingItem[];
362
+ /** 支付数组 */
363
+ payments?: OrderPaymentItem[];
364
+ /** 附加费数组 */
365
+ surcharges?: OrderSurchargeItem[];
366
+ /** 整单/订单级折扣列表(结构与 3.3.1 商品折扣项一致时可复用) */
367
+ discount_list?: OrderProductDiscountItem[];
368
+ /** 订单关联表单 */
369
+ relation_forms?: unknown[];
370
+ /** 联系人列表(协议顶层数组,结构由业务约定) */
371
+ contacts?: unknown[];
372
+ /** 联系人信息(协议顶层数组,结构由业务约定) */
373
+ contacts_info?: unknown[];
374
+ /** 订单级主体参数 */
375
+ holder?: Record<string, unknown> | null;
376
+ /**
377
+ * 金额汇总(仅输出)。
378
+ * 由服务端 OrderV2Service::computeOrderSummaryData() 生成;离线可按同算法本地计算。
379
+ */
380
+ summary?: OrderSummary;
381
+ /** 扩展元数据。来源:Order.metadata */
382
+ metadata?: Record<string, unknown> | null;
383
+ /** 本地辅助字段 */
384
+ shop_id?: number;
385
+ create_date?: string;
386
+ /** 兼容:部分场景仍使用顶层 total_amount */
387
+ total_amount?: OrderMoneyString | number;
388
+ /** 扩展字段(物流、标签等);使用 any 以便筛选与数据源扩展 */
389
+ [key: string]: any;
390
+ }
391
+ /** 去掉 bookings 后的订单快照;展开预约行时挂在 {@link BookingData.order} 上 */
392
+ export type OrderWithoutBookings = Omit<OrderData, 'bookings'>;
393
+ /**
394
+ * 展开后的单条预约视图:协议 {@link OrderBookingItem} 平铺字段 + 所属订单(不含 bookings)
395
+ */
396
+ export type BookingData = OrderBookingItem & {
397
+ order: OrderWithoutBookings;
398
+ };
399
+ /**
400
+ * 订单列表筛选条件(与 order.ts getFilterButtonList 等 UI 对齐)
401
+ */
402
+ export interface OrderFilters {
403
+ order_by?: string;
404
+ sort?: 'desc' | 'asc';
405
+ status?: string[];
406
+ payment_status?: string[];
407
+ shipping_status?: string[];
408
+ customer_id?: string | number;
409
+ order_sales_channel?: string[];
410
+ payment_methods?: string[];
411
+ min_total_amount?: number;
412
+ max_total_amount?: number;
413
+ tag_ids?: (string | number)[];
414
+ shipping_type?: string[];
415
+ delivery_zone_name?: string;
416
+ location_id?: string | number;
417
+ shipping_order_number?: string;
418
+ logistics_company_id?: (string | number)[];
419
+ zip?: string;
420
+ business_code?: string;
421
+ start_time?: string;
422
+ end_time?: string;
423
+ /** 分页:每页条数 */
424
+ num?: number;
425
+ /** 分页:页码,从 1 起 */
426
+ skip?: number;
427
+ }
428
+ /**
429
+ * 预约展开列表筛选条件(订单级条件匹配 booking.order.*,预约级匹配 booking 自身)
430
+ */
431
+ export interface BookingFilters {
432
+ keyword?: string;
433
+ order_by?: string;
434
+ order_payment_status?: string[];
435
+ order_status?: string[];
436
+ order_sales_channel?: string[];
437
+ customer_id?: string | number;
438
+ payment_method?: string[];
439
+ business_code?: string;
440
+ appointment_status?: string[];
441
+ sales_time_between?: string[];
442
+ /**
443
+ * 仅保留「预约开始时刻」大于等于该时间的条目。
444
+ * 预约时刻由 start_date 与 start_time 拼接解析(与 order_by start_at 一致)。
445
+ * 示例:`2026-03-27 14:23:47`
446
+ */
447
+ after_execution_time?: string;
448
+ created_at_between?: string[];
449
+ updated_at_between?: string[];
450
+ number_between?: (string | number)[];
451
+ form_record_ids?: number[];
452
+ total_amount_between?: [number | undefined | null, number | undefined | null];
453
+ /**
454
+ * 子预约过滤开关:
455
+ * - 1:启用子预约规则 `(parent_id != 0 && item_type != 'recurring_booking') || (parent_id == 0 && item_type == 'recurring_booking')`
456
+ * - 0 / null / undefined:不启用该规则
457
+ */
458
+ child_booking?: 0 | 1 | null;
459
+ num?: number;
460
+ skip?: number;
461
+ }
462
+ /** 分页筛选结果通用结构 */
463
+ export interface OrderModulePagedResult<T> {
464
+ list: T[];
465
+ count: number;
466
+ size: number;
467
+ skip: number;
468
+ }
469
+ export type OrderFilterResult = OrderModulePagedResult<OrderData>;
470
+ export type BookingFilterResult = OrderModulePagedResult<BookingData>;
471
+ /**
472
+ * SSE 同步配置
473
+ */
474
+ export interface OrderSSESyncConfig {
475
+ startDate: string;
476
+ endDate: string;
477
+ rangeDays?: number;
478
+ }
479
+ /**
480
+ * Ably 事件类型
481
+ */
482
+ export type OrderAblyEventType = 'created' | 'updated' | 'deleted';
483
+ /**
484
+ * Ably 事件载荷
485
+ */
486
+ export interface OrderAblyEventPayload {
487
+ type: OrderAblyEventType;
488
+ data: OrderData;
489
+ order_id?: OrderId;
490
+ timestamp: number;
491
+ }
492
+ /**
493
+ * OrderSyncMessage - pubsub 同步消息结构
494
+ */
495
+ export interface OrderSyncMessage {
496
+ module?: string;
497
+ type?: 'created' | 'updated' | 'deleted' | 'batch_updated' | string;
498
+ action?: string;
499
+ operation?: string;
500
+ id?: OrderId;
501
+ order_id?: OrderId;
502
+ ids?: OrderId[];
503
+ order_no?: string;
504
+ body?: Partial<OrderData>;
505
+ data?: Partial<OrderData>;
506
+ change_types?: string[];
507
+ relation_order_ids?: OrderId[];
508
+ _channelKey?: string;
509
+ }
510
+ /**
511
+ * Order 模块状态
512
+ */
513
+ export interface OrderState {
514
+ /** 订单列表 */
515
+ list: OrderData[];
516
+ /** 订单 Map 缓存(以 id 为 key,加速查询) */
517
+ map: Map<OrderId, OrderData>;
518
+ /** 订单创建时间查询区间 */
519
+ createdAtQuery: {
520
+ sales_time_between?: string[];
521
+ };
522
+ }
523
+ /**
524
+ * Order 模块钩子
525
+ */
526
+ export declare enum OrderHooks {
527
+ onOrdersLoaded = "order:onOrdersLoaded",
528
+ onOrdersChanged = "order:onOrdersChanged",
529
+ onOrdersSyncCompleted = "order:onOrdersSyncCompleted"
530
+ }
@@ -0,0 +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);
18
+
19
+ // src/server/modules/order/types.ts
20
+ var types_exports = {};
21
+ __export(types_exports, {
22
+ OrderHooks: () => OrderHooks
23
+ });
24
+ module.exports = __toCommonJS(types_exports);
25
+ var OrderHooks = /* @__PURE__ */ ((OrderHooks2) => {
26
+ OrderHooks2["onOrdersLoaded"] = "order:onOrdersLoaded";
27
+ OrderHooks2["onOrdersChanged"] = "order:onOrdersChanged";
28
+ OrderHooks2["onOrdersSyncCompleted"] = "order:onOrdersSyncCompleted";
29
+ return OrderHooks2;
30
+ })(OrderHooks || {});
31
+ // Annotate the CommonJS export names for ESM import in node:
32
+ 0 && (module.exports = {
33
+ OrderHooks
34
+ });
@@ -0,0 +1,6 @@
1
+ import type { BookingData, BookingFilters, BookingFilterResult, OrderData } from '../types';
2
+ export type { BookingData, BookingFilters, BookingFilterResult } from '../types';
3
+ export declare function flattenOrdersToBookings(orders: OrderData[]): BookingData[];
4
+ export declare function filterBookingsFromOrders(orders: OrderData[], filters: BookingFilters): BookingFilterResult;
5
+ export declare function sortBookings(result: BookingFilterResult, filters: BookingFilters): BookingFilterResult;
6
+ export declare function filterBookings(bookings: BookingData[], filters: BookingFilters): BookingFilterResult;