Fix test failures and workload/websocket behavior

This commit is contained in:
beabigegg
2026-01-11 08:37:21 +08:00
parent 3bdc6ff1c9
commit f5f870da56
49 changed files with 3006 additions and 1132 deletions

View File

@@ -35,6 +35,15 @@ class TaskBase(BaseModel):
start_date: Optional[datetime] = None
due_date: Optional[datetime] = None
@field_validator("title")
@classmethod
def title_not_blank(cls, value: str) -> str:
if value is None:
return value
if value.strip() == "":
raise ValueError("Title cannot be blank or whitespace")
return value
class TaskCreate(TaskBase):
parent_task_id: Optional[str] = None
@@ -57,6 +66,15 @@ class TaskUpdate(BaseModel):
custom_values: Optional[List[CustomValueInput]] = None
version: Optional[int] = Field(None, ge=1, description="Version for optimistic locking")
@field_validator("title")
@classmethod
def title_not_blank(cls, value: Optional[str]) -> Optional[str]:
if value is None:
return value
if value.strip() == "":
raise ValueError("Title cannot be blank or whitespace")
return value
class TaskStatusUpdate(BaseModel):
status_id: str
@@ -131,3 +149,8 @@ class TaskDeleteResponse(BaseModel):
task: TaskResponse
blockers_resolved: int = 0
force_deleted: bool = False
@computed_field
@property
def id(self) -> str:
return self.task.id