实现M002 V3 P0.1 Parent Group路由修订
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
# 取消预订
|
||||
|
||||
## 适用业务
|
||||
|
||||
用于当前邮件要求取消或释放:
|
||||
|
||||
- FIT Reservation
|
||||
- Group Block
|
||||
- Allotment / Control Block
|
||||
- 控房或配额
|
||||
|
||||
可接受信号:
|
||||
|
||||
- cancel booking / reservation / group
|
||||
- release or cancel block
|
||||
- cancel allotment / allocation / control block
|
||||
- `CXL`
|
||||
- 明确整单取消
|
||||
|
||||
## 事件类型
|
||||
|
||||
- `Cancel Booking`:只取消 FIT Reservation、普通 Group Block 或 Child Group Block。
|
||||
- `Cancel Allotment`:取消整个 Allotment / Control Block,也就是 Parent Group。
|
||||
|
||||
Parent Group 的 `case_keys.group_code` 与 `case_keys.block_code` 必须相同;普通或 Child Group Block 继续只填 `group_code`、`block_code=null`。
|
||||
|
||||
## 部分修改边界
|
||||
|
||||
减少房量、改日期、释放部分 allocation 或明确保留 parent 余量继续使用,当前均不受支持;不得输出 Update、Cancel 或 `Allotment Maintenance`。整封邮件只有该明确意图时走 S10;同邮件另有支持事件时按 `03-current-content-completeness.md` 进入 `unhandled_current_intents`。
|
||||
|
||||
如果当前证据无法确定是整块取消、完整 Parent split,还是部分维护/保留余量,则业务类型或 subtype 尚未确定,输出 `event_type=Need Manual Review` 的 Fallback 复核。
|
||||
|
||||
## Parent Allocation Linked Event
|
||||
|
||||
当当前证据已经确认 Parent Group 完整拆成 Child Groups 时,必须为 parent group 生成独立 linked cancel candidate:`event_type=Cancel Allotment`、`extracted_fields.cancel_scope=entire_allotment_control_block`、`relationship_type=linked_parent_release_after_child_split`、`requires_downstream_hard_validation=true`。
|
||||
|
||||
这个事件:
|
||||
|
||||
- 不替代 child New Booking。
|
||||
- 每个 child 固定是 `New Booking` 且 `booking_object_type=Group Block`;parent candidate 的 `related_source_event_indices[]` 必须指向全部 child events。
|
||||
- 不要求字面 cancel / CXL。
|
||||
- 必须来自当前 parent-child split 证据。
|
||||
- 不得由历史证据单独触发。
|
||||
- 只是候选事件,不代表 PMS 已取消成功,不创建真实 TaskCard,不写外部系统。
|
||||
- 无论正文是否显式写取消,同一 split cluster 都只能有一个 Parent `Cancel Allotment`。显式取消同一 parent 时合并证据;不同 parent 才分别输出。
|
||||
- 当前 Agent 不得再生成 linked Parent `Cancel Booking`;旧组合只允许 reader/adapter 无损兼容展示。
|
||||
|
||||
## 不适用
|
||||
|
||||
- 新建,除 Parent split 派生的 linked `Cancel Allotment` 外。
|
||||
- 普通 date/room/guest/price amendment。
|
||||
- Voucher/payment evidence。
|
||||
- Rooming List。
|
||||
- 只有 Trace。
|
||||
- cancel action 只在历史邮件中。
|
||||
|
||||
## 业务复核
|
||||
|
||||
当前证据已经能确定 `Cancel Booking`/`Cancel Allotment` 及其对象 subtype 时,以下问题保留原业务事件,并使用非空、完整的 `manual_review`:
|
||||
|
||||
- cancel target 不清。
|
||||
- 多目标无法安全拆分。
|
||||
- 系统上下文显示 conflict、lock 或 already completed state。
|
||||
- 完整 Parent split 已确认,`Cancel Allotment` subtype 已确定,但 parent 双 key、child list 或关系证据不完整。
|
||||
|
||||
Parent split 的关系字段不安全时不得把候选视为已取消;保留已确认的 parent/child 证据,并在 `manual_review.missing_fields[]` 中使用 RFC 6901 JSON Pointer。
|
||||
|
||||
Parent 双 key 候选冲突时,两键置空并使用 `manual_review.reason_code=target_object_unclear`;关系字段不安全时使用 `parent_child_split_evidence_unclear`。
|
||||
|
||||
只有 `CXL` 是否为当前动作不清、无法确定是普通订单取消还是 Allotment 整块取消,或无法确定是完整 split 还是部分维护时,才输出 `event_type=Need Manual Review` 的 Fallback 复核。
|
||||
Reference in New Issue
Block a user