# RTC Backend - Claude Code 项目指南 ## 项目概述 物联网设备管理平台后端,支持设备绑定 AI 智能体(心灵)。 ## 技术栈 - Django 6.0.1 + DRF 3.16.1 - Python 3.12+ / MySQL / Redis - JWT 认证 / 阿里云 OSS ## 核心目录 ``` rtc_backend/ ├── config/ # Django 配置 ├── apps/ # 业务应用 │ ├── users/ # App 用户(手机号登录) │ ├── admins/ # 管理员(用户名密码) │ ├── devices/ # 设备管理 │ ├── spirits/ # AI 智能体 │ ├── stories/ # 故事模块 │ ├── music/ # 音乐模块 │ ├── notifications/ # 通知模块 │ ├── system/ # 系统模块(反馈、版本) │ └── inventory/ # 出入库 ├── utils/ # 工具函数 └── tests.py # 测试 ``` ## 关键规范 ### API 路由 - App 端:`/api/v1/*` - 管理端:`/api/admin/*` ### 响应格式 ```python from utils.response import success, error from utils.exceptions import ErrorCode return success(data={...}) return error(ErrorCode.DEVICE_NOT_FOUND) ``` ### 认证 - `AppJWTAuthentication` - App 用户 - `AdminJWTAuthentication` - 管理员 - **两套认证完全隔离,Token 不互通** ### 错误码范围 | 范围 | 模块 | |------|------| | 0 | 成功 | | 1-99 | 通用 | | 100-199 | 用户 | | 200-299 | 设备 | | 300-399 | 智能体 | | 400-499 | 批次 | | 500-599 | 管理员 | | 600-699 | 故事 | | 700-799 | 音乐 | | 800-899 | 通知 | | 900-999 | 系统 | ## 常用命令 ```bash # 运行测试 cd rtc_backend && python manage.py test # 生成迁移 python manage.py makemigrations # 运行开发服务器 python manage.py runserver # 查看 API 文档 # http://localhost:8000/api/docs/ ``` ## 开发规范 1. 新增 API 必须添加对应测试用例 2. 错误码按模块范围分配 3. 使用 `utils/response.py` 统一响应 4. 复杂业务逻辑放入 `services.py` ### Swagger 文档分组规范(必须遵守) 每个 ViewSet **必须**使用 `@extend_schema(tags=['标签名'])` 装饰器标注所属模块,确保 Swagger 文档按模块分组展示。 ```python from drf_spectacular.utils import extend_schema @extend_schema(tags=['模块名']) class MyViewSet(viewsets.ViewSet): ... ``` **标签映射表**(新增 ViewSet 时按此表选择 tag): | 模块 | tag 名称 | 适用 ViewSet | |------|---------|-------------| | App 认证 | `认证` | AuthViewSet | | App 用户 | `用户` | UserViewSet | | 设备 | `设备` | DeviceViewSet | | 智能体 | `智能体` | SpiritViewSet | | 故事 | `故事` | StoryViewSet, ShelfViewSet | | 音乐 | `音乐` | MusicViewSet | | 通知 | `通知` | NotificationViewSet | | 系统 | `系统` | FeedbackViewSet, VersionViewSet | | 管理员认证 | `管理员-认证` | AdminAuthViewSet, AdminProfileViewSet | | 管理员用户管理 | `管理员-用户管理` | AdminUserManageViewSet (users) | | 管理员账号管理 | `管理员-账号管理` | AdminUserManageViewSet (admins) | | 管理员库存 | `管理员-库存` | DeviceTypeViewSet, DeviceBatchViewSet | **新增模块时**: 1. 在 `config/settings.py` 的 `SPECTACULAR_SETTINGS['TAGS']` 中添加新标签 2. 在 ViewSet 类上添加 `@extend_schema(tags=['新标签'])` 装饰器 ## 参考 完整技术规范请使用 `/rtc-spec` 命令查看。