# 01 — 扩展代理主钱包信用模型与领域不变量 **What to build:** 系统能够在不改变历史钱包行为的前提下表达代理主钱包信用额度,并由统一 Wallet Domain 安全计算现金可用金额、总可用金额和欠款。数据库与领域层共同拒绝非法开关组合、负额度、越界结果和算术溢出。 **Blocked by:** `.scratch/tech-public-foundation/issues/01-public-migration-ownership-and-gates.md` — 01 — 建立公共迁移所有权与检查门禁 **Status:** ready-for-agent **架构通道:** 主通道为 Infrastructure,辅助通道为复杂写 Domain。 **完整业务边界:** 本票收口代理主钱包信用字段、Wallet Domain 金额语义、数据库检查约束和历史数据兼容。明确不迁移具体扣款、冻结、充值或退款入口,不改变佣金钱包和资产钱包的业务边界。 - [ ] 迁移前置检查从目标 PostgreSQL 查询真实约束定义和异常数据;历史主钱包及佣金钱包均固化为关闭信用、额度为零,升级后原有现金行为不变。 - [ ] 代理主钱包支持信用开关和分单位 `int64` 额度;佣金钱包始终无信用并保持余额非负,数据库不存在外键或 GORM 关联标签。 - [ ] Wallet Domain 统一提供现金可用金额、有效信用额度、总可用金额、欠款状态和欠款金额,并保证关闭/0、开启/正数及总可用金额不小于零。 - [ ] 领域与数据库共同拒绝负额度、开启/0、关闭/非零、冻结金额为负、主钱包超出信用边界及所有加减法溢出场景。 - [ ] 真实 PostgreSQL 迁移测试覆盖升级、降级的安全条件、约束拒绝、重复执行检查和历史钱包兼容;出现负余额后的发布说明明确禁止回滚到旧钱包逻辑。 - [ ] 领域单元测试覆盖普通现金、部分使用信用、用尽信用、超过信用、冻结占用但未形成欠款,以及正负整数边界。