feat(reservation): solidify booking email v0.1 intake
This commit is contained in:
1 parent
9f29b59c26
commit
d91cd717df
61 files changed
+13961
-377
No files matched your search
@@ -75,7 +75,9 @@ Reservation V4 还必须满足 `docs/project/ai-nses-project-overlay.md` 的项
|
||||
|
||||
### 7.1 Room Information
|
||||
|
||||
- 只由 `NEW_BOOKING`、`UPDATE_BOOKING`、`CANCEL_BOOKING` 触发;`TRACE_RESERVATION_NOTES`、`ROOMING_LIST`、`PAYMENT` 不触发房型信息卡。
|
||||
- 2026-08-08 起以 BR00/M012 为准:New、Update、Cancel、Trace、Rooming List、Payment 六类订单事件都必须让所属 Order Task 具备 Room Information;此前“辅助三类不触发 Room”的口径已废止。
|
||||
- New、Update、Cancel 继续直接生成生命周期 Room;只有 Trace、Rooming List、Payment 的 Order Task 生成一张共享 companion Room。同组已有生命周期 Room 时不重复生成,多个辅助 event 也不重复生成。
|
||||
- companion Room 保留首个辅助 event 的类型和来源序号,但只显示订单 current/final 投影,`proposed_values={}`、`change_summary=[]`,不得把辅助业务字段解释为房间变更。
|
||||
- 后端提供 `display_payload.room_information` 稳定展示模型,前端不从 Agent raw payload、`business_fields` 或 `target_order` 自行推导。
|
||||
- `room_items[]` 支持多个房型行。每个 `room_items[].room_type_code` 必须是单个当前酒店 Room Type 目录 code;`RM2/RM3` 这类组合值必须拆成多行,不作为合法单 code。
|
||||
- `NEW_BOOKING` 展示最终值;`UPDATE_BOOKING` 展示当前值、建议值、最终值和 `change_summary[]`;`CANCEL_BOOKING` 从本地订单投影只读展示。
|
||||
@@ -101,9 +103,7 @@ Reservation V4 还必须满足 `docs/project/ai-nses-project-overlay.md` 的项
|
||||
- Rooming List 卡第一版只做事项确认。
|
||||
- 不做名单解析、附件预览、Excel 生成、PMS / OPERA / OHIP 导入。
|
||||
- 用户点击“确认卡片”表示已人工处理该 Rooming List 事项。
|
||||
- 如果同订单为 Group 且存在可更新的已确认 Room Information 快照,确认 Rooming List 后后端自动把 Group Booking Status 置为 `DEF`,并写 `V4_ROOMING_LIST_AUTO_DEF` 审计。
|
||||
- 如果此前 Group Booking Status 是 `TEN` 或 `INQ`,确认 Rooming List 后也强制覆盖为 `DEF`。
|
||||
- Fit 不显示也不变更 Group Booking Status。
|
||||
- 确认 Rooming List 只确认该事项本身,不修改 Group 或 Fit 的 Group Booking Status、Room Information 确认快照或其他业务卡。
|
||||
- 独立 Rooming List Excel 生成仍属于 M010 `/reservation/rooming-lists/new`,不嵌入 V4 Rooming List 卡。
|
||||
|
||||
### 7.4 Trace
|
||||
@@ -166,10 +166,11 @@ Reservation V4 还必须满足 `docs/project/ai-nses-project-overlay.md` 的项
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| Room Information 展示模型 | Done | Done | Passed | `M002-v4-order-task-card-domain-model-cp2.md`、前后端协作文档 | Implemented |
|
||||
| Room Information 多 `room_items[]` 展示 | Done | Done | Passed | 本文、V4 领域模型、Lookup 文档 | Implemented |
|
||||
| Trace / Rooming List / Payment 的 Basic + companion Room | Done | Done | Passed | M012 4.5、本文 7.1、V4 领域模型 | Implemented |
|
||||
| Nights 后端派生 | Done | Done | Passed | V4 领域模型、Lookup 文档 | Implemented |
|
||||
| Breakfast 派生:Group 固定含早,Fit 按 RB / RO | Done | Done | Partially Covered | V4 领域模型、Lookup 文档 | Implemented |
|
||||
| Adult 不展示 | Done | Done | Passed | V4 领域模型、前后端协作文档 | Implemented |
|
||||
| Group Booking Status:TEN / DEF / INQ 和 Rooming List 自动 DEF | Done | Done | Passed | V4 领域模型、安全边界、审计文档 | Implemented |
|
||||
| Group Booking Status:TEN / DEF / INQ 与 Rooming List 无跨卡副作用 | Done | Done | Passed | V4 领域模型、安全边界、审计文档 | Implemented |
|
||||
| Payment 附件安全摘要和前端预览 | Done | Done | Passed | V4 领域模型、安全边界、前后端协作文档 | Implemented |
|
||||
| Payment `attachment_ids[]` 只读、确认只提交 `version` | Done | Done | Passed | V4 领域模型、前后端协作文档 | Implemented |
|
||||
| Rooming List 轻量事项确认卡 | Done | Done | Passed | V4 领域模型、Agent 字段契约、前后端协作文档 | Implemented |
|
||||
@@ -205,13 +206,14 @@ Reservation V4 还必须满足 `docs/project/ai-nses-project-overlay.md` 的项
|
||||
- Given Room Information 存在多个 `room_items[]`,When 打开 V4 任务详情,Then API 和页面都应展示多行房型,不把组合 code 当成单个合法房型。
|
||||
- Given Payment 卡引用图片和非图片附件,When 打开 V4 任务详情,Then 任务详情 API 只返回附件安全摘要,前端通过 SourceMessage 原文权限链路展示图片预览和非图片下载。
|
||||
- Given 用户触发 Payment 图片预览或非图片下载,When 浏览器渲染预览或下载入口,Then DOM `src/href` 可以临时使用 conversation 接口返回的受权限附件 URL,但页面可见文本、V4 task detail API、确认 payload、日志和本地存储仍不得暴露该 URL。
|
||||
- Given Rooming List 卡被确认且同订单 Group 有可更新 Room Information 快照,When 刷新详情,Then Group Booking Status 显示 `DEF-Definite` 并可查到自动 DEF 审计。
|
||||
- Given Rooming List 卡被确认,When 刷新详情,Then 仅该卡变为确认态;同订单 Group Booking Status、Room Information 快照和其他业务卡保持原值。
|
||||
- Given Trace 卡确认或复核成功,When 刷新详情,Then `fields[].value` 显示已确认值,旧 validation errors 清空。
|
||||
- Given 一个 Order Task 只包含 Trace、Rooming List 或 Payment,When V4 intake 完成并查询详情,Then 返回一张 Basic、一张 current-only companion Room 和对应专属卡;同组已有 New/Update/Cancel 时 Room 不重复。
|
||||
|
||||
## 11. 测试范围
|
||||
|
||||
- 单元测试:本文不新增代码测试;后续代码变更仍按对应前后端模块测试要求执行。
|
||||
- 集成测试:本文不改变接口;已有 smoke 已覆盖主要 V4 卡片链路。
|
||||
- 单元测试:Room current-only 分类、辅助事件字段白名单与 lifecycle Room 去重按对应服务测试覆盖。
|
||||
- 集成测试:新增独立 Trace、Rooming List、Payment 的建卡数量、卡片顺序、Room 展示模型和敏感字段回归。
|
||||
- 手工验证:本次文档 checkpoint 使用 `git diff --check` 验证 Markdown 格式。
|
||||
- 后续 smoke:单卡可操作态数据集已回填;后续如需要可继续用 fresh runId 造演示数据,避免复用旧 SourceMessage 时间线造成阻塞误判。
|
||||
|
||||
|
||||
Reference in new issue
Block a user