# 代理可用套餐变更

## MODIFIED Requirements

### Requirement: 返回代理视角的套餐信息

代理查询套餐列表时，系统 SHALL 返回该代理视角的成本价和一次性佣金金额，而非原始配置。

**变更说明**：成本价和一次性佣金金额需要根据套餐分配关系动态计算。

#### Scenario: 代理查看套餐列表
- **WHEN** 代理A调用套餐列表接口
- **AND** 该套餐的基础成本价100元
- **AND** 平台给A分配时设置成本价120元
- **THEN** 返回的 `cost_price` SHALL 为 120元（A的成本价）

#### Scenario: 代理查看一次性佣金
- **WHEN** 代理A调用套餐列表接口
- **AND** 系列规则：首充100返20元
- **AND** 平台给A设置的一次性佣金金额为15元
- **THEN** 返回的 `one_time_commission_amount` SHALL 为 15元
- **AND** 不返回系列规则的20元

#### Scenario: 平台查看套餐列表
- **WHEN** 平台管理员调用套餐列表接口
- **THEN** 返回基础成本价（不是代理视角）
- **AND** 返回完整的一次性佣金规则

---

### Requirement: 未分配套餐不可见

代理只能看到已分配给自己的套餐。未分配的套餐 SHALL NOT 出现在代理的套餐列表中。

#### Scenario: 只返回已分配套餐
- **WHEN** 代理A调用套餐列表接口
- **AND** 系统共有套餐 P1、P2、P3
- **AND** 只有 P1、P2 分配给了 A
- **THEN** 返回列表只包含 P1、P2
- **AND** 不包含 P3

---

### Requirement: 套餐分配新增一次性佣金金额

ShopPackageAllocation 模型 MUST 新增 `one_time_commission_amount` 字段，记录给该代理的一次性佣金金额。

**变更说明**：一次性佣金金额配置从系列分配移到套餐分配。

#### Scenario: 分配套餐时设置一次性佣金金额
- **WHEN** 上级给下级分配套餐
- **AND** 设置一次性佣金金额为10元
- **THEN** ShopPackageAllocation 记录 `one_time_commission_amount = 1000`（分）

#### Scenario: 一次性佣金金额约束
- **WHEN** 上级给下级设置一次性佣金金额
- **THEN** 该金额 MUST <= 上级自己能拿到的一次性佣金金额
- **AND** 该金额 MUST >= 0
