# 06 — 统一代理主钱包冻结与解冻

**What to build:** 需要预占代理主钱包资金的完整用例可以统一冻结、解冻和完成冻结资金扣除，并与普通扣款维护同一个信用边界。并发冻结、取消和完成不会造成重复处理或总可用金额越界。

**Blocked by:**

- `.scratch/ur38-agent-main-wallet-credit/issues/01-agent-main-wallet-credit-foundation.md` — 01 — 扩展代理主钱包信用模型与领域不变量
- `.scratch/ur38-agent-main-wallet-credit/issues/05-unified-agent-wallet-debit.md` — 05 — 统一代理订单、代购与钱包支付扣款
- `.scratch/tech-public-foundation/issues/02-transactional-public-outbox-write.md` — 02 — 在业务事务中可靠写入公共 Outbox

**Status:** ready-for-agent

**架构通道:** 复杂写，Application UseCase → Wallet Domain → Repository/Infrastructure。

**完整业务边界:** 本票收口代理主钱包冻结、解冻和冻结资金最终扣除的完整用例及统一并发规则。明确不迁移佣金钱包提现、资产钱包冻结或没有触碰代理主钱包的预占流程。

- [ ] 冻结使用总可用金额作为边界，允许冻结占用信用但不把冻结金额直接计为欠款；冻结成功后版本递增。
- [ ] 解冻只减少合法冻结金额，完成冻结资金扣除同时减少余额和冻结金额，并保持冻结金额非负及主钱包总可用金额合法。
- [ ] 每个调用用例将业务状态、钱包版本、必要真实金额流水、Audit Event 和 Outbox 在同一事务维护，失败时整体回滚。
- [ ] 状态条件和稳定业务引用保证重复冻结、重复取消、重复完成不会二次改变钱包；并发零受影响行可区分业务已处理与真实资金冲突。
- [ ] 现有代理主钱包冻结相关调用点不再直接拼接现金条件或绕过 Wallet Domain；佣金钱包原有提现边界保持不变。
- [ ] 测试覆盖纯现金冻结、占用信用、超额冻结、欠款状态下解冻、部分解冻、完成扣除、重复请求和并发竞态。
