# TODO

## 已完成的里程碑（阶段 1：MVP 骨架）

- [x] 审查仓库现状，确认当前仓库为空仓起步
- [x] 制定产品方案，明确中文优先、多语种、SSR、FastAPI/Jinja2/PostgreSQL 技术路线
- [x] 拆解首期实施任务与阶段目标
- [x] 完成基础应用骨架（FastAPI + Jinja2 + Bootstrap 5 + htmx）
- [x] 增加模型列表页与模型详情页
- [x] 补充 sitemap、robots、canonical、hreflang 等 SEO 能力

## 阶段 2：数据层与内容管理（当前重点）

数据库与架构

- [x] 统一开发环境到 Python 3.12（已通过 uv 安装 3.12.12，项目 venv 与依赖就绪，路由冒烟验证通过）
- [x] 引入 SQLAlchemy 2.0 + Alembic，初始化迁移流程
- [x] 落地核心表：models / model_versions / categories / tags / model_tags / guides / users（字段见产品方案.md §8）
- [x] 建立仓储层（`app/repository.py`），替换 `app/catalog.py` 硬编码数据
- [x] 拆分 `app/main.py`：i18n 文案移至 `app/i18n.py`，路由按 pages / partials / system 拆分
- [x] 引入 ruff（lint + format）并修复存量问题
- [x] 精简 `.gitignore` 为 Python 项目模板
- [x] 建立 pytest 基线：路由冒烟、筛选逻辑、i18n 回退、sitemap 生成（30 例全绿）
- [x] README 补充 Python 3.12 环境说明与本地开发（含数据库）指引

用户体验与 SEO

- [x] 修复语言切换链接丢失 query 参数的问题（`base.html`，`switch_lang_url` 助手保留全部参数）
- [x] 增加品牌化 404 / 500 错误页（替换裸 `HTTPException`，`app/errors.py` 统一注册）
- [x] 模型列表分页（SSR + htmx 局部刷新），默认每页 24 个
- [x] 增加关键词搜索（名称/提供方/中英文简介模糊匹配，预留 pg_trgm 与中文分词扩展）
- [x] 筛选维度扩展：分类、参数规模区间、许可证
- [x] sitemap 改为从数据库动态生成；partial 响应加 `X-Robots-Tag: noindex`

后台

- [x] 最小 session 认证（argon2-cffi + itsdangerous 签名 Cookie），角色 admin / editor
- [x] 后台模型录入 / 编辑 / 上下架界面（含下载版本行、标签/分类勾选、推荐位）
- [x] 分类与标签管理界面
- [x] 后台表单 CSRF 校验、登录速率限制（内存实现，Redis 接入后迁移）

## 阶段 3：社区与增长

- [x] 评论系统（模型页，支持隐藏/审核）
- [ ] 收藏与"我的收藏"页
- [x] `download_events` 下载统计与热门榜单（近 30 天口径）
- [ ] 专题 collections 与首页推荐位配置
- [x] 用户注册、登录与用户主页
- [ ] guides 教程频道与模型关联

## 阶段 4：运营与性能（视情况启动）

- [ ] 视流量接入 Redis：页面缓存、榜单物化、限流
- [ ] 生产部署落地：进程管理、PostgreSQL 每日备份、日志与监控告警
- [ ] 英文内容运营流程
- [ ] OG / Twitter Card 等社交分享优化
