update_contract_coverage
Adjust a teaching contract's covered course list (actual taught courses) by adding or removing valid course IDs, with idempotency support and no edits allowed after contract completion.
Instructions
修改一份合约的 covered_course_ids 覆盖单(这份合约名下实际教过的课程清单, 不是许可范围声明) —— {add_course_ids?, remove_course_ids?} 至少传一个非空数组。去重(加了两遍/加了已存在的不报错), 并校验每个 course_id 存在且属于同一个 pair(不属于/不存在直接拒绝, 不静默忽略)。已结业的合约(completed_at 非空)拒改——结业是终态, 覆盖单在那一刻定格, 想续教开新合约。
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| contract_id | Yes | 必须是已存在的 teaching_contracts id. | |
| add_course_ids | No | 要并入覆盖单的 course id | |
| idempotency_key | No | 可选。幂等键 (建议 uuid) —— 同一 key 重放此调用返回首次结果, 不重复写入. 网络重试/断线重连时带上同一个 key, 而不是猜"上次到底写没写". | |
| remove_course_ids | No | 要从覆盖单移除的 course id |