All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m12s
1. 修正 retail_price 架构:
- 删除 batch-pricing 接口的 pricing_target 字段和 retail_price 分支
(上级只能改下级成本价,不能改零售价)
- 新增 PATCH /api/admin/packages/:id/retail-price 接口
(代理自己改自己的零售价,校验 retail_price >= cost_price)
2. 清理旧微信 YAML 配置(已全部迁移到数据库 tb_wechat_config):
- 删除 config.yaml 中 wechat.official_account 配置节
- 删除 NewOfficialAccountApp() 旧工厂函数
- 清理 personal_customer service 中的死代码(旧登录/绑定微信方法)
- 清理 docker-compose.prod.yml 中旧微信环境变量和证书挂载注释
3. 归档四个已完成提案到 openspec/changes/archive/
4. 新增前端接口变更说明文档(docs/前端接口变更说明.md)
5. 修正归档提案和 specs 中关于 pricing_target 的错误描述
60 lines
2.2 KiB
Markdown
60 lines
2.2 KiB
Markdown
# asset-generation Specification
|
||
|
||
## Purpose
|
||
TBD - created by archiving change client-api-data-model-fixes. Update Purpose after archive.
|
||
## Requirements
|
||
### Requirement: 资产表新增代际字段
|
||
|
||
系统 MUST 在资产主表新增 `generation int NOT NULL DEFAULT 1` 字段,覆盖 `IotCard` 与 `Device`。
|
||
|
||
#### Scenario: 新资产默认代际为 1
|
||
- **WHEN** 创建新的 IoT 卡或设备
|
||
- **THEN** 系统 MUST 将 `generation` 初始化为 `1`
|
||
|
||
---
|
||
|
||
### Requirement: 关联业务表新增代际字段
|
||
|
||
系统 MUST 在以下关联业务表新增 `generation int NOT NULL DEFAULT 1` 字段:`Order`、`PackageUsage`、`AssetRechargeRecord`。
|
||
|
||
#### Scenario: 新关联记录默认代际为 1
|
||
- **WHEN** 创建订单、套餐使用记录或资产充值记录
|
||
- **THEN** 系统 MUST 将记录的 `generation` 默认为 `1`
|
||
|
||
---
|
||
|
||
### Requirement: 写时快照代际规则
|
||
|
||
系统 MUST 在创建关联记录时执行代际写时快照:从当前资产(IoT 卡/设备)的 `generation` 复制到新建的 `Order`、`PackageUsage`、`AssetRechargeRecord` 记录。
|
||
|
||
#### Scenario: 创建订单时复制资产代际
|
||
- **WHEN** 某资产当前 `generation=3`,并基于该资产创建订单
|
||
- **THEN** 该订单记录的 `generation` MUST 写入为 `3`
|
||
|
||
---
|
||
|
||
### Requirement: 查询过滤规则
|
||
|
||
系统 MUST 支持客户端按 `generation` 过滤历史数据;后台管理侧 MUST 不默认按 `generation` 过滤。
|
||
|
||
本提案阶段 MUST 仅新增字段定义,具体过滤逻辑在后续提案实现。
|
||
|
||
#### Scenario: 客户端按代际查看历史
|
||
- **WHEN** 客户端请求携带指定 `generation`
|
||
- **THEN** 系统 MUST 仅返回该代际的数据(在后续提案中实现)
|
||
|
||
#### Scenario: 后台查询不按代际裁剪
|
||
- **WHEN** 管理端查询订单或充值记录且未显式指定 `generation`
|
||
- **THEN** 系统 MUST 返回全部代际数据
|
||
|
||
---
|
||
|
||
### Requirement: 钱包流水不引入代际字段
|
||
|
||
系统 MUST NOT 在钱包流水相关表新增 `generation` 字段,因为钱包流水已通过 `wallet_id` 天然隔离。
|
||
|
||
#### Scenario: 钱包流水按钱包隔离
|
||
- **WHEN** 查询某资产钱包流水
|
||
- **THEN** 系统 MUST 仅依赖 `wallet_id` 完成数据隔离,不新增 `generation` 参与过滤
|
||
|