Files
junhong_cmp_fiber/.scratch/ur38-agent-main-wallet-credit/issues/01-agent-main-wallet-credit-foundation.md
2026-07-22 17:25:12 +09:00

1.9 KiB
Raw Blame History

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 迁移测试覆盖升级、降级的安全条件、约束拒绝、重复执行检查和历史钱包兼容;出现负余额后的发布说明明确禁止回滚到旧钱包逻辑。
  • 领域单元测试覆盖普通现金、部分使用信用、用尽信用、超过信用、冻结占用但未形成欠款,以及正负整数边界。