## MODIFIED Requirements

### Requirement: 验证套餐状态

创建订单前系统 MUST 验证套餐处于可购买状态。**校验逻辑因购买场景而不同**：通过代理渠道购买时检查代理分配记录的 shelf_status，通过平台自营渠道购买时检查套餐全局 shelf_status。`Package.status`（启用/禁用）为全局开关，任何场景下都必须检查。

#### Scenario: 代理渠道 - 套餐启用且代理上架
- **GIVEN** `Package.status=1`（启用），卖家代理的 `allocation.shelf_status=1`（上架）
- **WHEN** 客户通过该代理下单购买套餐
- **THEN** 套餐状态校验通过

#### Scenario: 代理渠道 - 套餐已禁用
- **GIVEN** `Package.status=2`（禁用）
- **WHEN** 客户通过任意代理下单购买套餐
- **THEN** 验证失败，返回 "套餐已禁用"

#### Scenario: 代理渠道 - 代理已下架套餐
- **GIVEN** `Package.status=1`（启用），卖家代理的 `allocation.shelf_status=2`（代理下架）
- **WHEN** 客户通过该代理下单购买套餐
- **THEN** 验证失败，返回 "套餐已下架"

#### Scenario: 代理渠道 - 平台下架不影响代理销售
- **GIVEN** `Package.status=1`（启用），`Package.shelf_status=2`（平台下架），卖家代理的 `allocation.shelf_status=1`（代理上架）
- **WHEN** 客户通过该代理下单购买套餐
- **THEN** 套餐状态校验通过（平台 shelf_status 不参与代理渠道校验）

#### Scenario: 平台自营渠道 - 套餐启用且平台上架
- **GIVEN** `Package.status=1`（启用），`Package.shelf_status=1`（平台上架）
- **WHEN** 客户通过平台自营渠道下单购买套餐
- **THEN** 套餐状态校验通过

#### Scenario: 平台自营渠道 - 套餐已下架
- **GIVEN** `Package.status=1`（启用），`Package.shelf_status=2`（平台下架）
- **WHEN** 客户通过平台自营渠道下单购买套餐
- **THEN** 验证失败，返回 "套餐已下架"
