import type { FloorRoomCardHostBookingStatus } from '../../floorRoomCard/floorRoomCardModel'; import type { PisellReservationTableRow } from '../../types'; export declare type BookingStatusBadgeVariant = 'success' | 'warning' | 'neutral' | 'danger'; export declare type BookingDetailViewModel = { /** 展示用预约/订单号 */ bookingIdLabel: string; internalId?: string | number; statusRaw?: string; /** 标题旁状态徽章文案(如 Started),无则不出徽章 */ statusBadgeLabel?: string; statusBadgeVariant?: BookingStatusBadgeVariant; title: string; contactName?: string; contactPhone?: string; /** * 与平面图 RoomCard 的 guestDisplayLine(holder, true) 一致:有姓名则为姓名,否则为脱敏手机号(仅手机时)。 * 用于弹窗左上是否与图元同一套「主展示串」;有姓名且另有手机时 UI 可再并排展示 {@link contactPhone}。 */ guestHeadline: string; timeRangeLabel: string; staffLabel?: string; paymentStatusRaw?: string; totalAmountLabel?: string; /** RoomCard 对齐 */ partySize: number; startDisplay: string; endDisplay: string; cardAmount: string | number; lateTimeMinutes?: number; timeoutTimeMinutes?: number; /** 预留「还有 n 分钟」,与图元一致(宿主字段优先) */ reservedCountdownMinutes: number | null; progressPercent: number; hostBookingStatus?: FloorRoomCardHostBookingStatus; /** 桌位行上的容量展示名 */ roomCapacityLabel?: string; /** 桌位 code · main_field */ roomTitleLabel?: string; }; /** 预约 raw 是否已为 fully paid(优先 `order.payment_status`,否则顶层 `payment_status`) */ export declare function isBookingRawOrderPaid(raw: Record): boolean; /** * @param raw 单条 floorMapSourceBookings 项 * @param roomRow 当前桌位行(容量、展示名与图元一致) */ /** 彩色信息头(订单摘要 + 支付/Due) */ export declare type BookingDetailOrderStripModel = { /** * 无联系人时用于左上角的回退文案:relation_form_name → pickTitle → booking_id。 * 有联系人时由 {@link BookingDetailViewModel.guestHeadline} / ContactInfo 式展示,不直接使用本字段。 */ eyebrow: string; /** 粉头大号字:预约 ID(booking_id → id → 门店单号 → 平台 order_number) */ stripBookingId: string; scheduleLine: string; /** 左下「n 件」:优先 `raw.products` 有效行数(与列表一致);无数组时回退 `order.summary.product_quantity` */ itemsCount: number | null; /** 已带货币符号的订单合计文案 */ orderTotalWithSymbol: string; paymentStatusRaw?: string; /** 已带货币符号的 Due 文案 */ dueWithSymbol: string; }; /** * 预约详情正文顶部信息条:字段来自 order.summary / order 与 raw 起止时间。 */ export declare function bookingDetailOrderStripFromRaw(raw: Record): BookingDetailOrderStripModel; export declare function bookingDetailFromRaw(raw: Record, roomRow?: PisellReservationTableRow | null): BookingDetailViewModel;