## 0. 验收基线准备

- [x] 0.1 梳理后台 `asset-resolve / current-package / packages` 与 C 端 `asset/info / package-history` 的现有字段清单，并整理旧字段到新字段的替换矩阵，验证点包括逐接口比对返回 JSON 与 OpenAPI 文档。
- [x] 0.2 固化本次变更的手工验收基线：准备 PostgreSQL 核验 SQL、典型套餐样例（如 100/70/50→71.43、100/70/69→98.57）、接口回放样例，验证点包括所有样例都能复算出一致结果。

## 1. 套餐流量语义与快照模型

- [x] 1.1 为 `tb_package_usage` 设计并新增虚总量/展示倍率/开关快照字段迁移，包含历史回填脚本，验证点包括迁移执行后新列存在、默认值正确、历史记录完成回填。
- [x] 1.2 更新 `internal/model/package.go` 与相关 DTO/注释，统一 `data_limit_mb=data real_total`、`data_usage_mb=real_used` 的内部语义，验证点包括模型字段、中文注释与 OpenSpec 设计文档一致。
- [x] 1.3 收紧套餐创建/更新校验，确保 `virtual_data_mb > 0 且 <= real_data_mb`，并同步统一内部展示倍率计算逻辑，验证点包括创建/更新接口对非法样例拒绝、合法样例正确落库。

## 2. 写链路与耗尽阈值收口

- [x] 2.1 修改订单购包、自动购包、主套餐激活/排队激活路径，确保新建 `PackageUsage` 时同时写入虚总量与展示倍率快照，验证点包括主套餐、加油包、待实名激活三条路径的落库字段完整。
- [x] 2.2 重构 `package/usage_service` 的扣减逻辑，统一按 `effective_threshold_mb` 计算剩余额度和已用完状态，同时继续保持“加油包优先、主套餐兜底”，验证点包括 100/70 阈值样例和多加油包优先级样例都符合预期。
- [x] 2.3 重构 `stop_resume_service`、轮询触发和重置路径，统一按虚阈值/真总量判断耗尽与复机条件，验证点包括“主套餐达到虚阈值停机”“加油包仍有额度不停机”“新增有效加油包后自动复机”三类场景。

## 3. 后台读链路与契约切换

- [x] 3.1 重构后台 `asset-resolve` 的流量摘要组装，仅返回当前主套餐的统一五字段与 `reduction_pct`，并返回 `current_package_usage_id`，验证点包括无主套餐返回空摘要、有主套餐返回新字段且不再混入旧字段。
- [x] 3.2 重构后台 `current-package` 与 `packages` 的 DTO 和 Service 组装逻辑，按 `package_usage_id` 返回统一五字段与 `reduction_pct`，并将无主套餐场景统一为 `200 + null`，验证点包括主套餐详情仅返回主套餐、历史列表包含主套餐和加油包的新字段集。
- [x] 3.3 更新后台 OpenAPI / 文档生成产物，移除 `package_total_mb`、`package_used_mb`、`virtual_limit_mb` 等旧字段描述，验证点包括 `docs/admin-openapi.yaml` 与新 DTO 一致且无遗留字段说明。

## 4. C 端切换与范围约束

- [x] 4.1 重构 C 端 `asset/info` 的流量摘要字段，只返回当前主套餐的统一五字段、`reduction_pct` 与 `current_package_usage_id`，验证点包括旧字段移除后接口返回结构与 spec 一致。
- [x] 4.2 重构 C 端 `package-history` 的列表项字段，统一为 `package_usage_id + 五字段 + 比例字段`，验证点包括分页、generation 过滤和历史套餐展示都使用新语义。
- [x] 4.3 明确 customer-view total 聚合不属于本次 contract 收口范围，确保本次实现不新增 `total.virtual_used_mb` 或等价聚合字段，验证点包括 change 范围内无新 total 聚合契约、无相关 DTO 改造任务。

## 5. 旧字段清理与最终验收

- [x] 5.1 删除后台/C 端读链路中对 `package_total_mb`、`package_used_mb`、`package_remain_mb`、`virtual_limit_mb`、`virtual_remain_mb`、旧式 `virtual_ratio` 展示语义以及确认废弃数据库旧列的依赖，验证点包括代码搜索结果不再存在这些旧展示字段的组装逻辑，迁移后数据库中对应旧列已被删除。
- [x] 5.2 更新 `docs/traffic-model-unification/流量模型统一改造方案.md`、相关功能总结和提案说明文档，使文字描述、公式和 DTO 名称与本次 OpenSpec 完全一致，验证点包括文档中的示例与接口返回公式一致。
- [ ] 5.3 执行最终手工验收：PostgreSQL 核对快照回填、轮询增量入套餐、虚已用公式、停复机逻辑和 B/C 端接口返回；验证点包括全部样例通过且无旧字段残留在最终 contract 中。
