This commit is contained in:
+5
-12
@@ -24,24 +24,17 @@ Base path: `/api/v1`. 除初始化、登录和健康检查外均需 `dodo_sessio
|
||||
- `PATCH /lists/{list_id}` — 重命名;系统收集箱返回 409
|
||||
- `DELETE /lists/{list_id}` — 软删除并将任务移入系统收集箱;系统收集箱返回 409
|
||||
|
||||
## Tags
|
||||
|
||||
标签属于当前用户,可跨清单复用。
|
||||
|
||||
- `GET /tags`
|
||||
- `POST /tags` — `{name, color}`;同一用户名称唯一
|
||||
|
||||
## Tasks
|
||||
|
||||
- `GET /tasks?q=&limit=&cursor=` — 顶层未删除任务的游标分页;`q` 匹配标题、描述、标签名和清单名
|
||||
- `POST /tasks` — 创建任务;`parent_id` 只允许指向同清单顶层任务;`tag_ids` 必须属于当前用户
|
||||
- `GET /tasks/{task_id}` — 返回任务、标签和一层子任务
|
||||
- `GET /tasks?q=&limit=&cursor=` — 顶层未删除任务的游标分页;`q` 匹配标题、描述和清单名
|
||||
- `POST /tasks` — 创建任务;`parent_id` 只允许指向同清单顶层任务
|
||||
- `GET /tasks/{task_id}` — 返回任务和一层子任务
|
||||
- `PATCH /tasks/{task_id}` — 必须携带当前 `version`,原子比较更新;版本冲突返回 409
|
||||
- `DELETE /tasks/{task_id}` — 软删除任务及其直接子任务
|
||||
- `POST /tasks/{task_id}/restore` — 恢复任务及其直接子任务
|
||||
- `POST /tasks/batch` — 原子批量完成、移动、设置截止时间、替换标签或软删除
|
||||
- `POST /tasks/batch` — 原子批量完成、移动、设置截止时间或软删除
|
||||
|
||||
批量请求字段:`task_ids`、`completed`、`list_id`、`due_at`、`tag_ids`、`soft_delete`。所有任务、目标清单和标签在写入前完成归属校验;任一不存在则整批不修改。
|
||||
批量请求字段:`task_ids`、`completed`、`list_id`、`due_at`、`soft_delete`。所有任务和目标清单在写入前完成归属校验;任一不存在则整批不修改。
|
||||
|
||||
## Recycle bin
|
||||
|
||||
|
||||
+3
-17
@@ -47,22 +47,6 @@
|
||||
|
||||
删除普通清单时,其未删除任务原子移动到系统收集箱。系统收集箱不可重命名或删除。
|
||||
|
||||
## tags
|
||||
|
||||
- `id`
|
||||
- `user_id` → users
|
||||
- `name`,同一用户内唯一
|
||||
- `color`
|
||||
- `created_at`
|
||||
|
||||
标签是用户级全局实体,不隶属于清单。
|
||||
|
||||
## task_tags
|
||||
|
||||
- `task_id` → tasks
|
||||
- `tag_id` → tags
|
||||
- `(task_id, tag_id)` 联合主键
|
||||
|
||||
## tasks
|
||||
|
||||
- `id`
|
||||
@@ -85,7 +69,9 @@
|
||||
## 迁移
|
||||
|
||||
- `0001_initial.py`:已部署的初始模式,不修改
|
||||
- `0002_task_management.py`:新增文件夹/清单软删除列、标签表、任务标签关联表及游标/回收站索引
|
||||
- `0002_task_management.py`:新增文件夹/清单软删除列、历史标签表及游标/回收站索引
|
||||
- `0008_remove_calendar_subscriptions.py`:移除日历订阅表
|
||||
- `0009_remove_tags.py`:移除历史标签表及任务标签关联表
|
||||
|
||||
## 后续阶段预留
|
||||
|
||||
|
||||
+1
-4
@@ -14,11 +14,10 @@ dodo 是一个纯自托管的 TickTick-like 任务与习惯管理工具。目标
|
||||
|
||||
## 技术栈
|
||||
|
||||
- Monorepo:`frontend/`、`backend/`、`worker/`
|
||||
- Monorepo:`frontend/`、`backend/`
|
||||
- 前端:Vue 3 + TypeScript + Vite + Tailwind CSS + Shadcn-vue/Reka UI
|
||||
- 后端:FastAPI + Pydantic v2 + SQLAlchemy 2 Async + Alembic
|
||||
- 数据库:PostgreSQL,主键 UUIDv7,时间统一 UTC,用户配置时区
|
||||
- 后台:独立 Worker + APScheduler
|
||||
- 包管理:uv + pnpm
|
||||
- 交付:单 Docker 镜像,外部 PostgreSQL
|
||||
- 许可证:AGPL-3.0
|
||||
@@ -45,7 +44,6 @@ postgresql+asyncpg://postgres:***@10.10.100.99:5433/dodo
|
||||
- Markdown 描述
|
||||
- 截止日期 + 具体时间
|
||||
- 多提醒设计预留
|
||||
- 全局彩色标签
|
||||
- 删除为软删除,回收站手动清空
|
||||
- 支持创建、修改、完成、恢复、删除操作历史
|
||||
- 并发编辑使用原子乐观锁
|
||||
@@ -86,7 +84,6 @@ postgresql+asyncpg://postgres:***@10.10.100.99:5433/dodo
|
||||
- 手机底部导航
|
||||
- 顶部快速输入,手机悬浮新增按钮
|
||||
- 桌面右侧详情栏,手机底部弹层
|
||||
- 日历默认月视图
|
||||
- 习惯首页:今日习惯列表 + 一周打卡格
|
||||
- 搜索:顶部搜索框 + 全局搜索快捷键
|
||||
|
||||
|
||||
+2
-5
@@ -18,9 +18,6 @@ DODO_SESSION_DAYS=30
|
||||
- 应用监听 `0.0.0.0:8781`
|
||||
- 健康检查:`/health/ready`
|
||||
|
||||
## 后续补充
|
||||
## 部署文件
|
||||
|
||||
- Dockerfile
|
||||
- docker-compose.yml 示例
|
||||
- Alembic 正式迁移目录
|
||||
- Worker 启动命令
|
||||
仓库已包含 Dockerfile、compose 示例和 Alembic 迁移。
|
||||
|
||||
Reference in New Issue
Block a user