Files
xiaoxia-saas/docs/CODE-STATUS.md
2026-06-21 11:29:33 +08:00

308 lines
10 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 代码状态标注(2026-06-19
> 本文档标注仓库中所有代码的当前状态,便于快速识别主线、兼容层、待迁移代码。
---
## 状态标签说明
- **✅ ACTIVE** - 当前主线代码,正在活跃使用
- **🔄 COMPAT** - 兼容层,为了向后兼容保留,但不是主线
- **⚠️ DEPRECATED** - 已废弃,计划删除
- **🚧 MIGRATE** - 待迁移到新主线
- **🧪 EXPERIMENTAL** - 实验性功能
---
## 一、领域层(Domain
### ✅ ACTIVE - 当前主线
```
packages/domain/
├── entities.py ✅ 主领域模型(Asset, AssetLibrary, GenerationTask, GeneratedVideo
├── classification.py ✅ 分类相关领域模型
├── project_management.py ✅ 项目管理领域模型
├── user.py ✅ 用户领域模型
├── permissions.py ✅ 权限领域模型
├── quota.py ✅ 配额领域模型
└── auth/ ✅ 认证领域服务
├── jwt_service.py
├── password_hasher.py
├── session_store.py
└── email_service.py
```
### 🔄 COMPAT - 兼容层
```
packages/domain/
├── asset.py 🔄 旧素材模型,仅用于兼容
├── asset_library.py 🔄 旧素材库模型,仅用于兼容
└── generated_video.py ✅ 实际已是主线,非兼容层
```
---
## 二、应用层(Application
### ✅ ACTIVE - 当前主线
```
packages/application/
├── assets.py ✅ 素材用例
├── asset_libraries.py ✅ 素材库用例
├── classification_jobs.py ✅ 分类任务用例
├── ingest_jobs.py ✅ 摄入任务用例
├── generation_tasks.py ✅ 生成任务用例
├── generated_videos.py ✅ 生成结果用例
├── projects.py ✅ 项目用例
├── auth/ ✅ 认证用例
│ ├── login_use_case.py
│ ├── register_user_use_case.py
│ └── password_reset_use_case.py
└── workspace/ ✅ 工作空间用例
├── create_workspace_use_case.py
├── invite_member_use_case.py
└── subscription_use_case.py
```
---
## 三、仓储接口(Ports
### ✅ ACTIVE - 当前主线
```
packages/ports/
├── classification_job_repository.py ✅ 分类任务仓储接口
├── ingest_job_repository.py ✅ 摄入任务仓储接口
├── generation_task_repository.py ✅ 生成任务仓储接口
├── generated_video_repository.py ✅ 生成结果仓储接口
├── project_repository.py ✅ 项目仓储接口
├── user_repository.py ✅ 用户仓储接口
├── workspace_repository.py ✅ 工作空间仓储接口
├── workspace_member_repository.py ✅ 工作空间成员仓储接口
└── workspace_invitation_repository.py ✅ 工作空间邀请仓储接口
```
### 🔄 COMPAT - 兼容层
```
packages/ports/
├── asset_repository.py 🔄 旧素材仓储接口,仅用于兼容
└── asset_library_repository.py 🔄 旧素材库仓储接口,仅用于兼容
```
---
## 四、适配器(Adapters
### ✅ ACTIVE - 当前主线(SQLAlchemy
```
packages/adapters/sqlalchemy_impl/
├── __init__.py
├── session.py ✅ 数据库会话管理
├── models.py ✅ SQLAlchemy 模型
├── asset_repository.py ✅ 素材仓储实现
├── asset_library_repository.py ✅ 素材库仓储实现
├── classification_job_repository.py ✅ 分类任务仓储实现
├── ingest_job_repository.py ✅ 摄入任务仓储实现
├── generation_task_repository.py ✅ 生成任务仓储实现
├── generated_video_repository.py ✅ 生成结果仓储实现
└── project_repository.py ✅ 项目仓储实现
```
### ✅ ACTIVE - 测试用(In-Memory
```
packages/adapters/in_memory/
├── asset_repository.py ✅ 测试用内存实现
├── asset_library_repository.py ✅ 测试用内存实现
├── classification_job_repository.py ✅ 测试用内存实现
├── ingest_job_repository.py ✅ 测试用内存实现
├── user_repository.py ✅ 测试用内存实现
├── workspace_repository.py ✅ 测试用内存实现
├── workspace_member_repository.py ✅ 测试用内存实现
└── workspace_invitation_repository.py ✅ 测试用内存实现
```
### ✅ REMOVED - Postgres 旧实现
`packages/adapters/postgres/` 旧 psycopg adapter 已删除。
**说明**: SQLAlchemy 是当前唯一主线持久化 adapter,位于 `packages/adapters/sqlalchemy_impl/`。不要恢复旧 `packages/adapters/postgres/*`;架构守卫会阻止运行时代码重新引用 `packages.adapters.postgres``Postgres*` 路径。
---
## 五、API 层
### ✅ ACTIVE - 当前主线
```
apps/api/app/api/routes/
├── health.py ✅ 健康检查
├── auth.py ✅ 认证相关
├── workspaces.py ✅ 工作空间
├── projects.py ✅ 项目
├── upload.py ✅ 文件上传
├── assets.py ✅ 素材管理
├── asset_libraries.py ✅ 素材库管理
├── ingest_jobs.py ✅ 摄入任务
├── classification_jobs.py ✅ 分类任务
├── generation_tasks.py ✅ 生成任务
├── generated_videos.py ✅ 生成结果
└── project_management.py ✅ 项目管理高级功能
```
---
## 六、Worker 层
### ✅ ACTIVE - 当前主线
```
apps/worker/
├── celery_app.py ✅ Celery 应用
├── tasks.py ✅ 生成任务(主入口)
└── worker_app/
├── db.py ✅ 数据库会话
└── tasks/
├── health.py ✅ 健康检查任务
├── ingest.py ✅ 摄入任务
└── classification.py ✅ 分类任务
```
---
## 七、测试层
### ✅ ACTIVE - 当前主线测试
```
tests/integration/
├── test_asset_tags.py ✅ 素材标签测试
├── test_ingest_pipeline.py ✅ 摄入流程测试
├── test_upload_pipeline.py ✅ 上传流程测试
├── test_classification_pipeline.py ✅ 分类流程测试
├── test_generation_pipeline.py ✅ 生成流程测试
└── test_projects.py ✅ 项目测试
```
### ✅ ACTIVE - 单元测试
```
tests/unit/
├── test_jwt_service.py ✅ JWT 服务测试
├── test_password_hasher.py ✅ 密码哈希测试
├── test_session_store.py ✅ 会话存储测试
├── test_email_service.py ✅ 邮件服务测试
├── test_permissions.py ✅ 权限测试
├── test_quota.py ✅ 配额测试
├── test_login_use_case.py ✅ 登录用例测试
├── test_register_user_use_case.py ✅ 注册用例测试
├── test_password_reset_use_case.py ✅ 密码重置用例测试
├── test_create_workspace_use_case.py ✅ 创建工作空间用例测试
├── test_invite_member_use_case.py ✅ 邀请成员用例测试
├── test_accept_invitation_use_case.py ✅ 接受邀请用例测试
├── test_list_members_use_case.py ✅ 列出成员用例测试
├── test_remove_member_use_case.py ✅ 移除成员用例测试
├── test_update_member_role_use_case.py ✅ 更新成员角色用例测试
├── test_list_workspaces_use_case.py ✅ 列出工作空间用例测试
└── test_subscription_use_case.py ✅ 订阅用例测试
```
### 🚧 MIGRATE - 待更新测试
```
tests/unit/
└── test_api.py 🚧 需要按新主线重写
```
---
## 八、前端层
### ✅ ACTIVE - 当前主线
```
apps/web/src/
├── api/
│ ├── client.ts ✅ API 客户端
│ ├── auth.ts ✅ 认证 API
│ ├── workspace.ts ✅ 工作空间 API
│ ├── projects.ts ✅ 项目 API
│ ├── assets.ts ✅ 素材 API
│ ├── generation.ts ✅ 生成 API
│ └── subscription.ts ✅ 订阅 API
├── pages/
│ ├── auth/ ✅ 认证页面
│ ├── workspace/ ✅ 工作空间页面
│ │ ├── ProjectGeneration.tsx ✅ 生成页
│ │ └── ProjectResults.tsx ✅ 结果页
│ ├── profile/ ✅ 个人设置页面
│ ├── subscription/ ✅ 订阅页面
│ └── admin/ ✅ 管理页面
└── hooks/
├── useAuth.ts ✅ 认证 Hook
└── useWorkspace.ts ✅ 工作空间 Hook
```
---
## 九、快速定位指南
### 我想找...
**素材上传流程**:
```
apps/api/app/api/routes/upload.py (API)
apps/api/app/core/storage.py (OSS / generated-files fallback)
packages/domain/entities.py::Asset (领域模型)
packages/adapters/sqlalchemy_impl/asset_repository.py (持久化)
```
**视频生成流程**:
```
apps/api/app/api/routes/generation_tasks.py (API)
packages/application/generation_tasks.py (用例)
apps/worker/tasks.py::generate_video (Worker)
packages/adapters/sqlalchemy_impl/generation_task_repository.py (持久化)
```
**用户认证流程**:
```
apps/api/app/api/routes/auth.py (API)
packages/application/auth/login_use_case.py (用例)
packages/domain/auth/jwt_service.py (JWT)
packages/domain/auth/session_store.py (会话)
```
---
## 十、清理计划
### 可以安全删除(待定)
- 暂无,所有兼容层目前仍保留
### 需要迁移到新主线
- 无待迁移代码
### 需要补充测试
- `test_api.py` 需要按新主线重写
---
**维护人**: 小虾 🦐
**最后更新**: 2026-06-19 10:10 GMT+8