Taskflow / src /schemas /task.py
NirmaQureshi's picture
code
e650b33
from pydantic import BaseModel, Field
from typing import List, Optional
from datetime import datetime
from uuid import UUID
class TaskBase(BaseModel):
title: str = Field(..., min_length=1, max_length=200)
description: Optional[str] = Field(None, max_length=1000)
completed: bool = False
class TaskCreateRequest(TaskBase):
pass
class TaskUpdateRequest(BaseModel):
title: str = Field(..., min_length=1, max_length=200)
description: Optional[str] = Field(default="", max_length=1000)
completed: bool
class TaskPatchRequest(BaseModel):
completed: Optional[bool] = None
class TaskResponse(TaskBase):
id: int
user_id: UUID
created_at: datetime
updated_at: datetime
# ✅ REQUIRED FOR ORM (Pydantic v2)
model_config = {
"from_attributes": True
}
class TaskListResponse(BaseModel):
tasks: List[TaskResponse]
total: int = 0