3.6 KiB
取消预订
适用业务
用于当前邮件要求取消或释放:
- 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 Allotmentsubtype 已确定,但 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 复核。