## ADDED Requirements

### Requirement: 设备换货换出行为

系统 SHALL 在设备作为旧资产完成换货后，将其视为“已被换出、不可继续作为当前客户资产使用”的资产。

系统 MUST 满足：
- 换货完成前旧设备必须 `asset_status=2`（已销售）
- 换货完成时旧设备 `asset_status -> 3`
- 旧设备 `generation` 在换货完成时保持不变
- 若后续执行 `renew`，才允许旧设备重新进入新一代库存

#### Scenario: shipping 完成后旧设备标记为已换货
- **WHEN** 一台设备作为旧资产完成 `shipping` 换货
- **THEN** 系统 MUST 将该设备 `asset_status` 更新为 `3`

#### Scenario: direct 完成后旧设备标记为已换货
- **WHEN** 一台设备作为旧资产完成 `direct` 换货
- **THEN** 系统 MUST 将该设备 `asset_status` 更新为 `3`

---

### Requirement: 设备换货换入行为

系统 SHALL 在设备作为新资产完成换货后，将其视为当前客户正在使用的资产。

系统 MUST 满足：
- 换货完成前新设备必须 `asset_status=1`（在库）
- 换货完成前新设备必须与旧设备 `shop_id` 一致，含二者同为平台库存 `NULL`
- 换货完成前新设备不得存在有效客户绑定或被其他进行中换货单占用
- 换货完成后新设备 `asset_status -> 2`
- 新设备 `generation` 在换货完成时保持不变
- 新设备来源旧设备关系 MUST 通过 `ExchangeOrder` 可追溯

#### Scenario: 新设备完成换货后切为已销售
- **WHEN** 一台设备作为新资产完成换货
- **THEN** 系统 MUST 将该设备 `asset_status` 更新为 `2`

---

### Requirement: 设备转新重置规则

系统 SHALL 在 H7 转新时对设备执行以下重置：
- `generation = generation + 1`
- `asset_status = 1`（在库）
- 清空累计充值与首充触发相关状态（含系列累计/首充字段）
- 清除个人客户绑定关系
- 删除旧钱包并创建新空钱包

#### Scenario: 转新后进入新代际
- **WHEN** 对旧设备执行转新
- **THEN** 系统 MUST 使该设备进入新代际并以在库状态重新销售
