@pisell/pisellos 2.3.143 → 2.3.145

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 (33) hide show
  1. package/dist/modules/BookingContext/utils/productExtend.d.ts +7 -0
  2. package/dist/modules/BookingContext/utils/productExtend.js +62 -18
  3. package/dist/modules/Order/index.d.ts +2 -1
  4. package/dist/modules/Order/index.js +380 -198
  5. package/dist/modules/Order/types.d.ts +9 -0
  6. package/dist/modules/Order/utils.d.ts +5 -3
  7. package/dist/modules/Order/utils.js +32 -11
  8. package/dist/modules/ResourcePlanner/planner.d.ts +2 -0
  9. package/dist/modules/ResourcePlanner/planner.js +327 -22
  10. package/dist/modules/ResourcePlanner/types.d.ts +29 -0
  11. package/dist/solution/BookingByStep/index.d.ts +1 -1
  12. package/dist/solution/BookingTicket/utils/addProductDecision.d.ts +0 -1
  13. package/dist/solution/BookingTicket/utils/addProductDecision.js +1 -1
  14. package/dist/solution/UnifiedBookingSales/index.d.ts +3 -0
  15. package/dist/solution/UnifiedBookingSales/index.js +432 -163
  16. package/dist/solution/UnifiedBookingSales/types.d.ts +14 -2
  17. package/lib/modules/BookingContext/utils/productExtend.d.ts +7 -0
  18. package/lib/modules/BookingContext/utils/productExtend.js +45 -2
  19. package/lib/modules/Order/index.d.ts +2 -1
  20. package/lib/modules/Order/index.js +92 -10
  21. package/lib/modules/Order/types.d.ts +9 -0
  22. package/lib/modules/Order/utils.d.ts +5 -3
  23. package/lib/modules/Order/utils.js +29 -10
  24. package/lib/modules/ResourcePlanner/planner.d.ts +2 -0
  25. package/lib/modules/ResourcePlanner/planner.js +247 -7
  26. package/lib/modules/ResourcePlanner/types.d.ts +29 -0
  27. package/lib/solution/BookingByStep/index.d.ts +1 -1
  28. package/lib/solution/BookingTicket/utils/addProductDecision.d.ts +0 -1
  29. package/lib/solution/BookingTicket/utils/addProductDecision.js +1 -1
  30. package/lib/solution/UnifiedBookingSales/index.d.ts +3 -0
  31. package/lib/solution/UnifiedBookingSales/index.js +220 -27
  32. package/lib/solution/UnifiedBookingSales/types.d.ts +14 -2
  33. package/package.json +1 -1
@@ -92,6 +92,9 @@ export interface AvailabilityProduct {
92
92
  raw?: Record<string, any>;
93
93
  }
94
94
  export interface AvailabilityResourceWindow extends AvailabilityAbsoluteRange {
95
+ /** Original business day and opening anchor, before coverage clipping. */
96
+ businessDate?: string;
97
+ openingAnchorAt?: string;
95
98
  source?: string;
96
99
  raw?: Record<string, any>;
97
100
  }
@@ -101,10 +104,15 @@ export interface AvailabilityOperatingHoursSnapshot {
101
104
  scheduleIds: AvailabilityId[];
102
105
  missingScheduleIds: AvailabilityId[];
103
106
  windows: AvailabilityResourceWindow[];
107
+ /** Complete business cycles; lunch gaps remain in windows, not in this envelope. */
108
+ businessPeriods?: AvailabilityBusinessPeriod[];
104
109
  /** Schedule windows omitted only because their date is excluded. POS may use
105
110
  * these to surface an unavailable, manually selectable candidate. */
106
111
  excludedWindows?: AvailabilityResourceWindow[];
107
112
  }
113
+ export interface AvailabilityBusinessPeriod extends AvailabilityAbsoluteRange {
114
+ businessDate: string;
115
+ }
108
116
  export interface AvailabilityResource {
109
117
  id: AvailabilityId;
110
118
  formId?: AvailabilityId;
@@ -212,6 +220,17 @@ export interface ProductTimeRange extends AvailabilityDisplayRange {
212
220
  bookingEndAt: string;
213
221
  scheduleRefs: AvailabilityScheduleRef[];
214
222
  primaryScheduleRef?: AvailabilityScheduleRef;
223
+ /** Business-day label. date/startAt keep the actual calendar date. */
224
+ businessDate?: string;
225
+ }
226
+ export interface UnavailableCurrentTime {
227
+ productId: AvailabilityId;
228
+ startAt: string;
229
+ date: string;
230
+ businessDate: string;
231
+ startTime: string;
232
+ status: 'unavailable';
233
+ reasonCodes: string[];
215
234
  }
216
235
  export interface ProductTimeRangeGroup {
217
236
  productId: AvailabilityId;
@@ -221,6 +240,8 @@ export interface ProductTimeRangeGroup {
221
240
  /** 单日查询对应营业窗口的最终结束时刻,不受资源排班是否为空影响。 */
222
241
  operatingEndAt?: string;
223
242
  ranges: ProductTimeRange[];
243
+ /** A display-only current item when flexible duration has no valid end. Never submit it. */
244
+ unavailableCurrentTime?: UnavailableCurrentTime;
224
245
  }
225
246
  export interface AvailabilityAssignment extends AvailabilityAbsoluteRange {
226
247
  productId: AvailabilityId;
@@ -242,6 +263,10 @@ export interface GetProductTimeRangesRequest {
242
263
  partySize?: number;
243
264
  durationMinutesByProductId?: Record<string, number>;
244
265
  durationStartTimesByProductId?: Record<string, string[]>;
266
+ /** Restore only the exact remembered start; recompute the end from current product/windows. */
267
+ rememberedStartAtByProductId?: Record<string, string>;
268
+ /** Edit only: preserve the full actual start plus an explicit durationMinutesByProductId. */
269
+ editingStartAtByProductId?: Record<string, string>;
245
270
  /**
246
271
  * POS 手工输入时间的兼容开关:只为明确请求的 start time 补候选,
247
272
  * 不改变常规候选列表仍按营业时间生成的规则。
@@ -250,6 +275,10 @@ export interface GetProductTimeRangesRequest {
250
275
  }
251
276
  export interface GetProductTimeRangesRuntimeOptions {
252
277
  evaluatedAt?: string;
278
+ /** Enabled by the POS/Kiosk facade only; other consumers retain their existing grid. */
279
+ useDurationTimeGrid?: boolean;
280
+ /** Automatic remembered selection must not use POS opening-minute cutoff exceptions. */
281
+ enforceSaleCutoff?: boolean;
253
282
  /**
254
283
  * Internal POS capability: fixed-duration candidates start from the stable
255
284
  * context anchor's current minute instead of rounding up to ten minutes, and
@@ -328,7 +328,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
328
328
  date: string;
329
329
  status: string;
330
330
  week: string;
331
- weekNum: 0 | 1 | 2 | 5 | 4 | 3 | 6;
331
+ weekNum: 0 | 2 | 1 | 6 | 4 | 5 | 3;
332
332
  }[]>;
333
333
  submitTimeSlot(timeSlots: TimeSliceItem): void;
334
334
  private getScheduleDataByIds;
@@ -65,7 +65,6 @@ export interface AddProductDecideContext extends BookingCalcContext {
65
65
  type?: 'select' | 'detail';
66
66
  quantity?: number;
67
67
  customerId?: number | string;
68
- channel?: string;
69
68
  }
70
69
  /**
71
70
  * 统一补齐预约商品的运行态字段。
@@ -141,7 +141,7 @@ function isMultiDayLike(cacheItem) {
141
141
  * `_extend.resource / capacity / startDate / endDate` 等后续 booking mapper 需要的字段。
142
142
  */
143
143
  export function prepareBookingCacheItem(cacheItem, ctx) {
144
- if (isNormalBookingProduct(cacheItem) || hasPreparedBookingExtend(cacheItem)) {
144
+ if ((ctx === null || ctx === void 0 ? void 0 : ctx.rememberedTime) === undefined && (isNormalBookingProduct(cacheItem) || hasPreparedBookingExtend(cacheItem))) {
145
145
  return cacheItem;
146
146
  }
147
147
  return getProductExtend({
@@ -99,6 +99,9 @@ export declare class UnifiedBookingSalesImpl extends BookingTicket {
99
99
  protected getSubModuleHooks(moduleName: string): any;
100
100
  private createAvailabilityFacadeError;
101
101
  private getAvailabilityScopeDescriptor;
102
+ private usesDurationTimeGrid;
103
+ private getCurrentAvailabilityBusinessDate;
104
+ private getAvailabilityBusinessDateRange;
102
105
  private normalizeAvailabilityIdList;
103
106
  private normalizeAvailabilityStringList;
104
107
  private normalizeAvailabilityPrepareDescriptor;