Files
home-automation/docs/architecture-overview.md
T

80 lines
1.7 KiB
Markdown
Raw 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.
# Python 骨架架构概览
本文档说明当前 Python skeleton 的职责边界与目录组织。它描述的是“后续迁移承载体”,不是完整业务实现。
## 当前目标
这一轮的目标是提供一个稳定、轻量、可持续扩展的基础工程,使后续可以逐步迁移:
- TickTick integration
- Home Assistant integration
- poo records
- location / life trajectory
## 目录设计
### `app/`
应用核心代码目录。
- `main.py`
- FastAPI app factory
- lifespan
- 基础路由注册
- `config.py`
- 环境变量驱动的 settings
- `db.py`
- SQLAlchemy engine / session / Base
- `dependencies.py`
- 通用依赖注入
- `api/`
- HTTP routes
- `models/`
- SQLAlchemy models
- `schemas/`
- Pydantic schemas
- `services/`
- 业务服务层
- `integrations/`
- 外部系统适配层占位
- `templates/`
- Jinja2 模板
- `static/`
- 极简静态资源
### `alembic/`
数据库 migration 基础设施。当前尚未迁入业务表,但迁移链路已就绪。
### `tests/`
pytest 测试目录。后续可以在这里自然扩展:
- unit tests
- mock tests
- integration tests
### `scripts/`
辅助脚本目录。当前包含 OpenAPI 导出脚本。
## 当前约束
- 当前只搭骨架,不迁业务逻辑
- 当前数据库继续使用 SQLite
- 当前不引入前后端分离
- 当前不设计 Notion 模块
## 关于 Notion
Notion 在 Go 版本中仍是现状模块,但在 Python 重构中已经明确属于 removed scope。
因此当前 Python skeleton
- 不提供 Notion integration 模块
- 不提供 Notion schema
- 不预留 Notion 相关业务流
如果未来需要回顾其历史作用,应继续参考 Go 版本和现有迁移盘点文档,而不是在 Python 骨架中保留它。