## ADDED Requirements

### Requirement: 查询代理可售套餐列表

系统 SHALL 允许代理查询自己被分配的所有套餐。结果 MUST 包含套餐信息和代理的成本价。支持按套餐系列筛选、按套餐类型筛选。

#### Scenario: 查询所有可售套餐
- **WHEN** 代理查询可售套餐列表
- **THEN** 系统返回该代理被分配的所有套餐系列下的启用且上架的套餐

#### Scenario: 响应包含成本价
- **WHEN** 代理查询可售套餐
- **THEN** 每个套餐包含：套餐信息、建议售价、代理成本价、利润空间

#### Scenario: 按系列筛选
- **WHEN** 代理指定套餐系列 ID 筛选
- **THEN** 系统只返回该系列下的套餐

#### Scenario: 只返回可售套餐
- **WHEN** 代理查询可售套餐
- **THEN** 系统只返回状态为启用(1)且上架状态为上架(1)的套餐

---

### Requirement: 查询代理可售套餐详情

系统 SHALL 允许代理查询单个套餐的详细信息，包含完整的价格信息。

#### Scenario: 查询可售套餐详情
- **WHEN** 代理查询指定套餐的详情
- **THEN** 系统返回套餐完整信息，包含：成本价、建议售价、价格来源（系列加价/单套餐覆盖）

#### Scenario: 查询未分配的套餐
- **WHEN** 代理查询一个未被分配的套餐详情
- **THEN** 系统返回 "您没有该套餐的销售权限" 错误

---

### Requirement: 成本价计算优先级

系统计算代理成本价时 MUST 遵循以下优先级：
1. 单套餐覆盖价（如果存在且启用）
2. 系列级别加价计算

#### Scenario: 存在单套餐覆盖
- **WHEN** 代理查询一个有覆盖价的套餐
- **THEN** 成本价使用覆盖价，价格来源标记为 "单套餐覆盖"

#### Scenario: 使用系列加价
- **WHEN** 代理查询一个无覆盖价的套餐
- **THEN** 成本价 = 上级成本价 + 加价值，价格来源标记为 "系列加价"

---

### Requirement: 查询代理被分配的套餐系列

系统 SHALL 允许代理查询自己被分配的套餐系列列表。

#### Scenario: 查询被分配的系列
- **WHEN** 代理查询自己的套餐系列分配
- **THEN** 系统返回所有分配给该代理的套餐系列（启用状态的）

#### Scenario: 响应包含系列下套餐数量
- **WHEN** 代理查询被分配的系列
- **THEN** 每个系列包含：系列信息、可售套餐数量、加价模式信息
