## ADDED Requirements

### Requirement: 创建套餐购买订单

系统 SHALL 允许买家创建套餐购买订单。订单类型分为单卡购买和设备购买。创建前 MUST 验证购买权限。

#### Scenario: 个人客户创建单卡订单
- **WHEN** 个人客户为自己的卡创建订单，选择一个套餐
- **THEN** 系统创建订单，状态为待支付，返回订单信息

#### Scenario: 个人客户创建设备订单
- **WHEN** 个人客户为自己的设备创建订单
- **THEN** 系统创建订单，订单类型为设备购买

#### Scenario: 代理创建订单
- **WHEN** 代理为店铺关联的卡/设备创建订单
- **THEN** 系统创建订单，买家类型为代理商，买家ID为店铺ID

#### Scenario: 套餐不在可购买范围
- **WHEN** 买家尝试购买不在关联系列下的套餐
- **THEN** 系统返回错误 "该套餐不在可购买范围内"

#### Scenario: 套餐已下架
- **WHEN** 买家尝试购买已下架的套餐
- **THEN** 系统返回错误 "该套餐已下架"

---

### Requirement: 查询订单列表

系统 SHALL 提供订单列表查询，支持按支付状态、订单类型、时间范围筛选。

#### Scenario: 个人客户查询自己的订单
- **WHEN** 个人客户查询订单列表
- **THEN** 系统只返回该客户的订单

#### Scenario: 代理查询店铺订单
- **WHEN** 代理查询订单列表
- **THEN** 系统返回该店铺及下级店铺的订单

#### Scenario: 按支付状态筛选
- **WHEN** 指定支付状态筛选
- **THEN** 系统只返回匹配状态的订单

---

### Requirement: 查询订单详情

系统 SHALL 允许买家查询订单详情，包含订单明细。

#### Scenario: 查询订单详情
- **WHEN** 买家查询指定订单详情
- **THEN** 系统返回订单信息和订单明细列表

#### Scenario: 查询他人订单
- **WHEN** 买家尝试查询不属于自己的订单
- **THEN** 系统返回 "订单不存在" 错误

---

### Requirement: 取消订单

系统 SHALL 允许买家取消未支付的订单。

#### Scenario: 取消待支付订单
- **WHEN** 买家取消一个待支付的订单
- **THEN** 系统更新订单状态为已取消

#### Scenario: 取消已支付订单
- **WHEN** 买家尝试取消已支付的订单
- **THEN** 系统返回错误 "已支付订单无法取消"

---

### Requirement: 订单号生成

系统生成的订单号 MUST 全局唯一，格式为 ORD{YYYYMMDDHHMMSS}{6位随机数}。

#### Scenario: 订单号格式
- **WHEN** 创建新订单
- **THEN** 订单号格式为 ORD + 14位时间戳 + 6位随机数

#### Scenario: 订单号唯一
- **WHEN** 并发创建多个订单
- **THEN** 每个订单的订单号都唯一
