# 08 — 迁移现有资金与订单敏感操作到统一审计

**What to build:** 当前钱包变更、充值、退款和订单资金敏感操作通过统一 Audit Event 关联业务单、钱包、钱包流水、操作者和完整业务链路。金额结论继续以 Domain Ledger 为准，关键成功审计与资金事实同事务且只产生一次。

**Blocked by:**

- 01 — 交付不可变 Audit Event 写入闭环
- `.scratch/tech-public-foundation/issues/02-transactional-public-outbox-write.md` — 02 — 在业务事务中可靠写入公共 Outbox

**Status:** ready-for-agent

**架构通道:** 主通道为复杂写 Application/Domain，辅助通道为 Port/Adapter。

**完整业务边界:** 本票迁移仓库当前存在的钱包、充值、退款和订单资金敏感入口，完整收口所触碰用例的金额、并发、幂等和可靠事件边界。明确不用 Audit Event 替代钱包流水、订单或退款事实，不重写未触碰资金用例。

- [ ] 钱包余额变更、代理钱包回退、线下充值入账、人工退款结果及现有订单资金操作使用注册动作和稳定 correlation。
- [ ] Audit Event 关联审批或业务单、钱包、钱包流水及直接受影响资产；每条投影明确领域流水才是金额权威。
- [ ] 余额、流水、成功审计和必要 Outbox 在同一 GORM 事务内提交；审计或 Outbox 写入失败时资金事实整体回滚。
- [ ] 状态条件更新、钱包版本或稳定业务键保证重复请求、Worker 重投和并发处理不重复改变余额、流水或成功审计。
- [ ] 明确失败、拒绝和结果异常使用独立短事务记录安全摘要，不把第三方支付密钥、完整凭证或底层错误返回客户端。
- [ ] PostgreSQL 集成测试覆盖正常资金变化、审计失败、Outbox 失败、乐观锁冲突、重复业务键、并发处理和金额事实对账。
