void_contract
Void a teaching contract after displaying the void reason to the learner and recording their consent. Marks the contract inactive without deleting the original record.
Instructions
作废合约前,必须把作废理由原文展示给学习者,并取得学习者亲口的同意答复;learner_consent 填学习者的原话。未经同意调用属违纪。 作废不是删除——合约行原样保留,只是标记作废(active=false, voided_at=now(), void_reason=你传入的 reason)并从此退出"当前合约"选择(get_context/pickSkillStack/pair://contract/active 等一切现读, 见 lib/currentContract.ts)。幂等:对已作废的合约重复调用,原样返回其作废状态,不报错、不二次写入、不覆盖原 void_reason。
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| reason | Yes | 作废理由原文(必填,非空)——这是要先给学习者看过的那段话,也是留痕的一部分。 | |
| contract_id | Yes | 必须是已存在的 teaching_contracts id. | |
| idempotency_key | No | 可选。幂等键 (建议 uuid) —— 同一 key 重放此调用返回首次结果, 不重复写入. 网络重试/断线重连时带上同一个 key, 而不是猜"上次到底写没写". | |
| learner_consent | Yes | 学习者的原话同意答复(必填,非空)。不是你替学习者写的摘要——她/他说了什么就填什么。 |