Files
junhong_cmp_fiber/.scratch/ur40-off-shelf-package-renewal/issues/03-current-package-renewal-projection.md
2026-07-22 17:49:25 +09:00

1.8 KiB
Raw Blame History

03 — 当前套餐提供下架续费入口

What to build: 当前资产所有人查看资产信息时,可以获得当前套餐的稳定套餐 ID 和服务端购买资格。当前渠道已下架但存在真实有效历史时,当前套餐明确显示为仅限该资产续费;资格不成立时返回不可购买及稳定中文原因。

Blocked by: 01 — 建立统一套餐可售决策与真实历史资格

Status: ready-for-agent

架构通道: Query。

完整业务边界: 本票只迁移和收口 GET /api/c/v1/asset/info 中当前套餐的读取与 DTO 投影,新增稳定 current_package_id 及购买资格契约。明确不修改资产实时状态、钱包、Gateway 刷新或订单流程,不实现前端页面。

  • 查询继续执行个人客户认证、资产解析、当前有效绑定和当前 generation 校验,不允许上一世代或其他客户的套餐事实进入投影。
  • 当前套餐区域增加稳定 current_package_idcan_purchasepurchase_modedisabled_reason;续费命令依赖套餐 ID不使用 current_package_usage_id 作为授权凭证。
  • 当前渠道正常在售且满足既有规则时返回 can_purchase=true, purchase_mode=normal;渠道下架且历史资格成立时返回 can_purchase=true, purchase_mode=renew_only
  • 套餐禁用、历史资格不存在、渠道未授权、价格异常或既有组合规则不成立时返回 can_purchase=false, purchase_mode=disabled 及稳定中文原因。
  • 无当前套餐时保持现有空值兼容语义,不伪造套餐 ID 或续费入口,并返回明确不可购买决策。
  • HTTP 集成测试覆盖在售当前套餐、平台与代理渠道下架续费、禁用、无历史、退款、解绑、转手及 generation 变化,验证统一响应和字段枚举。