# 设备状态拆分功能总结

## 背景

设备原 `status` 同时表达在库、分销、激活和停用，导致“已分销且已激活”的设备只能展示一个状态，语义混淆。

## 调整内容

- `status` 收敛为设备归属状态：`1=在库`、`2=已分销`
- 设备响应新增 `activation_status` 和 `activation_status_name`
- 设备列表和批量筛选支持按 `activation_status` 查询
- 设备激活状态不落库，按查询实时计算
- 历史 `status=3/4` 迁移为归属状态：有 `shop_id` 归为已分销，无 `shop_id` 归为在库

## 激活判定

设备激活必须同时满足：

1. 存在生效中的主套餐（`tb_package_usage.status=1` 且 `master_usage_id IS NULL`）
2. 设备任意绑定卡已实名（`tb_iot_card.real_name_status=1`）

## 响应示例

```json
{
  "status": 2,
  "status_name": "已分销",
  "activation_status": 1,
  "activation_status_name": "已激活"
}
```
