## 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** 系统拒绝保存并返回参数错误
