This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
## MODIFIED Requirements
|
||||
|
||||
### Requirement: 套餐实体定义
|
||||
系统 SHALL 定义套餐(Package)实体,包含套餐的基本属性、定价、流量配置,以及用于展示映射的内部比例字段。
|
||||
|
||||
**实体字段**:
|
||||
- `real_data_mb`: 真流量额度(MB,套餐真实总量)
|
||||
- `virtual_data_mb`: 虚流量额度(MB,业务停机阈值,必须大于 0 且小于等于 `real_data_mb`)
|
||||
- `virtual_ratio`: 内部展示映射比例,定义为 `real_data_mb / virtual_data_mb`
|
||||
- `enable_virtual_data`: 是否启用虚流量(未启用时 `virtual_ratio = 1.0`)
|
||||
|
||||
**约束**:
|
||||
- `enable_virtual_data = true` 时,`virtual_data_mb` MUST 大于 0
|
||||
- `enable_virtual_data = true` 时,`virtual_data_mb` MUST 小于等于 `real_data_mb`
|
||||
- `virtual_ratio` 由 Service 层自动计算并存储,不由调用方传入
|
||||
|
||||
#### Scenario: 创建启用虚流量的套餐
|
||||
- **WHEN** 平台创建套餐,`real_data_mb=100`、`virtual_data_mb=70`、`enable_virtual_data=true`
|
||||
- **THEN** 系统自动计算并存储 `virtual_ratio = 100 / 70 ≈ 1.428571`
|
||||
|
||||
#### Scenario: 创建虚流量大于真流量的套餐失败
|
||||
- **WHEN** 平台创建套餐,`real_data_mb=100`、`virtual_data_mb=120`、`enable_virtual_data=true`
|
||||
- **THEN** 系统拒绝保存并返回参数错误
|
||||
|
||||
### Requirement: 套餐流量类型和真虚流量共存
|
||||
系统 SHALL 支持同一套餐同时定义真实总量和业务阈值,但 `virtual_data_mb` 不再表示与真流量相加的“另一份总量”,而是展示映射与停机判断所依赖的阈值。
|
||||
|
||||
**流量类型定义**:
|
||||
- **真流量(real_data_mb)**: 套餐真实总量
|
||||
- **虚流量(virtual_data_mb)**: 业务停机阈值和展示映射基准
|
||||
- **未启用虚流量**: `virtual_data_mb` 视为等于 `real_data_mb`
|
||||
|
||||
#### Scenario: 真总量与虚阈值并存
|
||||
- **WHEN** 平台创建套餐,`real_data_mb=100`、`virtual_data_mb=70`
|
||||
- **THEN** 系统将其解释为“真实总量 100、业务阈值 70”,而不是“总量 170”
|
||||
|
||||
#### Scenario: 不允许纯虚流量套餐
|
||||
- **WHEN** 平台尝试创建 `real_data_mb=0` 且 `virtual_data_mb>0` 的套餐
|
||||
- **THEN** 系统拒绝保存并返回参数错误
|
||||
Reference in New Issue
Block a user