/**
 * BookingContext 子模块：承载「预约 UI 上下文」三件套。
 *
 *  - bookingConfig：来自 `/core/board/management/config` 的整套预约配置（service_time / resource_tab /
 *    appointment_subject / subject_require / stock_setting / basic / capacity 等）。
 *  - resourcesOrigin / resourcesOriginMap：来自 `/schedule/resource/list` 的资源全集，含 times / event_list /
 *    combined_resource 等运行态信息，是 getResourceByIds / getResourceTimeIsUsable 的输入。
 *  - date：当前选择的日期（dayjs 或 ISO 字符串，迁移后内部统一存原始 ISO 字符串，UI 可自行解析）。
 *
 * 设计原则（与 BookingTicket 现状对齐）：
 *  - 默认由 `loadBookingConfig` / `loadResources` 拉取并写入 store；也支持消费方 `set*` 直接灌入（复用 ticketBooking 已拉到的数据）。
 *  - 所有读 API 返回浅克隆（数组）或原引用（map / config），避免 UI 写穿。
 */

/** `loadBookingConfig` 入参，与 ticketBooking `getBookingConfig` 一致。 */

/** `loadResources` 入参，与 info2 `getResourceList` 一致。 */

/** `initBookingContext` 入参（BookingTicket 聚合入口）。 */

/**
 * 资源全集 map：key 为资源 id（数字），value 为资源原始对象，含 times / event_list 等运行态。
 * 这里只声明 Record 形态；具体字段保留 `any`，与 ticketBooking 现网传入的数据形状兼容。
 */

/**
 * 形参 booking_config（结构来自 `/core/board/management/config` 接口）。
 * OS 不强制 schema，保留 `Record<string, any>` 兼容现网；常用路径文档化在 SDK docs。
 */

/**
 * 日期入参：接受 dayjs 实例、ISO 字符串、Date 实例；内部统一 normalize 为 ISO 字符串保存。
 */

/**
 * 内部 store 形态。`resourcesOriginMap` 由 `setResources` 派生，不允许外部直接 set。
 */

/**
 * BookingContextModule 对外 API（给 BookingTicket / SDK Provider 透传消费）。
 */

/**
 * BookingContextModule 事件名常量（采用 `${this.name}:` 前缀，与现有模块一致）。
 */
export var BookingContextEvent = /*#__PURE__*/function (BookingContextEvent) {
  BookingContextEvent["OnBookingConfigChange"] = "onBookingConfigChange";
  BookingContextEvent["OnResourcesChange"] = "onResourcesChange";
  BookingContextEvent["OnDateChange"] = "onDateChange";
  return BookingContextEvent;
}({});