refactor(todo): 移除 due_at 字段,改用 order 字段管理象限内顺序

This commit is contained in:
qzl
2026-03-20 11:09:38 +08:00
parent d574128815
commit fbf15bc937
22 changed files with 1458 additions and 1524 deletions
+19 -3
View File
@@ -5,14 +5,16 @@ from uuid import UUID
from pydantic import BaseModel, ConfigDict, Field
from schemas.todo import TodoOrder
class TodoCreate(BaseModel):
model_config: ClassVar[ConfigDict] = ConfigDict(extra="forbid")
title: str = Field(..., min_length=1, max_length=255)
description: str | None = Field(None, max_length=1000)
due_at: datetime | None = None
priority: int = Field(1, ge=1, le=4)
order: TodoOrder | None = None
schedule_item_ids: list[UUID] = Field(default_factory=list)
@@ -21,8 +23,8 @@ class TodoUpdate(BaseModel):
title: str | None = Field(None, min_length=1, max_length=255)
description: str | None = Field(None, max_length=1000)
due_at: datetime | None = None
priority: int | None = Field(None, ge=1, le=4)
order: TodoOrder | None = None
status: Literal["pending", "done", "canceled"] | None = None
schedule_item_ids: list[UUID] | None = None
@@ -43,8 +45,8 @@ class TodoResponse(BaseModel):
owner_id: UUID
title: str
description: str | None
due_at: datetime | None
priority: int
order: TodoOrder
status: str
completed_at: datetime | None
created_at: datetime
@@ -52,6 +54,20 @@ class TodoResponse(BaseModel):
schedule_items: list[ScheduleItemBasic] = Field(default_factory=list)
class TodoReorderItem(BaseModel):
model_config: ClassVar[ConfigDict] = ConfigDict(extra="forbid")
id: UUID
priority: int = Field(..., ge=1, le=4)
order: TodoOrder
class TodoReorderRequest(BaseModel):
model_config: ClassVar[ConfigDict] = ConfigDict(extra="forbid")
items: list[TodoReorderItem] = Field(..., min_length=1)
class TodoComplete(BaseModel):
model_config: ClassVar[ConfigDict] = ConfigDict(extra="forbid")