# Allotment / Control Block

## 适用业务

覆盖 allocation / allotment / control block 对象的新建、维护、释放、取消，以及 parent-to-child allocation creation。

## 新建控房/配额

当当前证据要求以下对象时，路由到 `New Booking`：

- allotment
- allocation
- control block
- 控房
- 配额
- 取配
- 配合房
- parent group 拆分成 child group codes 并给出房量分配

对象类型记录：

```json
{
  "booking_object_type": "Allotment / Control Block"
}
```

## Parent-To-Child Split

当当前证据显示 parent group -> child group codes：

- 每个 child group 一个 `New Booking`。
- parent group 只是 child creation context。
- 保留 `allocation_split_from_parent=true`。
- 保留 parent original room summary，如有。
- 不得因为文本写 `AMEND` 就归为普通改单。
- parent group code 清楚时，必须额外输出独立 linked parent release/cancel candidate。

## Parent Release / Cancel

当 current evidence 确认 child allocation creation，且 parent group code 清楚时，必须生成 linked parent release/cancel candidate，事件类型归 `Cancel Booking`。

该事件：

- 不替代 child creation。
- 不强制要求字面 `cancel` / `CXL`。
- 不得从 history-only parent-child evidence 触发。
- 只是候选事件，不代表 PMS 已取消成功，不创建真实 TaskCard，不写外部系统。

如果 parent group code、child group list 或 parent-child split evidence 不清，输出 `Need Manual Review`，reason code 使用 `parent_child_split_evidence_unclear`。

## 默认 Rate / Room

Allotment / Control Block 缺 explicit Rate Code 时，只能在 room mapping 唯一且上下文明显符合 control-block default rules 时使用 `51-rate-code.md` 默认。

不唯一时保留 raw values，并输出人工复核或 downstream hard validation。
