## ADDED Requirements

### Requirement: 为下级店铺分配套餐系列

系统 SHALL 允许代理为其直属下级店铺分配套餐系列。分配时 MUST 指定加价模式（固定金额或百分比）和加价值。可选配置一次性佣金触发条件（触发类型、阈值、金额）。分配者只能分配自己已被分配的套餐系列。

#### Scenario: 成功分配套餐系列
- **WHEN** 代理为直属下级店铺分配一个自己拥有的套餐系列，设置固定金额加价 1000 分
- **THEN** 系统创建分配记录，下级成本价 = 上级成本价 + 1000

#### Scenario: 百分比加价分配
- **WHEN** 代理设置百分比加价模式，加价值为 100（10%）
- **THEN** 系统创建分配记录，下级成本价 = 上级成本价 × 1.1

#### Scenario: 尝试分配未拥有的系列
- **WHEN** 代理尝试分配自己未被分配的套餐系列
- **THEN** 系统返回错误 "您没有该套餐系列的分配权限"

#### Scenario: 尝试分配给非直属下级
- **WHEN** 代理尝试分配给非直属下级店铺
- **THEN** 系统返回错误 "只能为直属下级分配套餐"

#### Scenario: 重复分配同一系列
- **WHEN** 代理尝试为同一下级店铺重复分配同一套餐系列
- **THEN** 系统返回错误 "该店铺已分配此套餐系列"

#### Scenario: 配置一次性佣金触发条件
- **WHEN** 代理分配时设置一次性佣金触发类型为"单次充值"，阈值 30000 分，金额 5000 分
- **THEN** 系统创建分配记录，下级的卡/设备在单次充值 ≥ 300 元时可获得 50 元一次性佣金

#### Scenario: 配置累计充值触发条件
- **WHEN** 代理分配时设置一次性佣金触发类型为"累计充值"，阈值 50000 分，金额 8000 分
- **THEN** 系统创建分配记录，下级的卡/设备在累计充值 ≥ 500 元时可获得 80 元一次性佣金

---

### Requirement: 查询套餐系列分配列表

系统 SHALL 提供分配列表查询，支持按下级店铺筛选、按套餐系列筛选、按状态筛选。结果 MUST 包含计算后的成本价。

#### Scenario: 查询所有分配
- **WHEN** 代理查询分配列表，不带筛选条件
- **THEN** 系统返回该代理创建的所有分配记录

#### Scenario: 按店铺筛选
- **WHEN** 代理指定下级店铺 ID 筛选
- **THEN** 系统只返回该店铺的分配记录

#### Scenario: 响应包含成本价
- **WHEN** 代理查询分配列表
- **THEN** 每条记录包含计算后的下级成本价

---

### Requirement: 更新套餐系列分配

系统 SHALL 允许代理更新分配的加价模式和加价值。更新后下级的成本价 MUST 同步变化。

#### Scenario: 更新加价值
- **WHEN** 代理将加价值从 1000 改为 2000
- **THEN** 系统更新分配记录，下级成本价相应增加

#### Scenario: 更新不存在的分配
- **WHEN** 代理更新不存在的分配 ID
- **THEN** 系统返回 "分配记录不存在" 错误

---

### Requirement: 删除套餐系列分配

系统 SHALL 允许代理删除分配记录。如果有下级依赖此分配，MUST 禁止删除。

#### Scenario: 成功删除无依赖的分配
- **WHEN** 代理删除一个没有下级依赖的分配记录
- **THEN** 系统软删除该记录

#### Scenario: 尝试删除有下级依赖的分配
- **WHEN** 代理尝试删除一个已被下级使用的分配（下级基于此分配又分配给了更下级）
- **THEN** 系统返回错误 "存在下级依赖，无法删除"

---

### Requirement: 启用/禁用套餐系列分配

系统 SHALL 允许代理切换分配的启用状态。禁用后下级 MUST NOT 能使用该分配购买套餐。

#### Scenario: 禁用分配
- **WHEN** 代理将分配状态设为禁用
- **THEN** 系统更新状态，下级无法基于此分配购买套餐

#### Scenario: 启用分配
- **WHEN** 代理将禁用的分配设为启用
- **THEN** 系统更新状态，下级可以继续使用

---

### Requirement: 平台分配套餐系列

平台管理员 SHALL 能够为一级代理分配套餐系列。平台的成本价基准为 Package.suggested_cost_price。

#### Scenario: 平台为一级代理分配
- **WHEN** 平台管理员为一级代理分配套餐系列
- **THEN** 系统创建分配记录，一级代理成本价 = suggested_cost_price + 加价值
