Files
2026-09-07 19:32:02 +05:30

56 lines
1.2 KiB
Python

"""Pydantic schemas for request/response validation."""
from datetime import datetime
from typing import Optional, List
from pydantic import BaseModel
class TaskBase(BaseModel):
"""Base task schema with common fields."""
title: str
description: Optional[str] = None
priority: str = "medium"
status: str = "TODO"
assignee: Optional[str] = None
tags: Optional[str] = None
time_estimate: Optional[float] = None
due_date: Optional[datetime] = None
class TaskCreate(TaskBase):
"""Schema for creating a task."""
pass
class TaskUpdate(BaseModel):
"""Schema for updating a task."""
title: Optional[str] = None
description: Optional[str] = None
priority: Optional[str] = None
status: Optional[str] = None
assignee: Optional[str] = None
tags: Optional[str] = None
time_estimate: Optional[float] = None
due_date: Optional[datetime] = None
class TaskResponse(TaskBase):
"""Schema for task response."""
id: int
created_at: datetime
updated_at: datetime
class Config:
from_attributes = True
class TaskListResponse(BaseModel):
"""Schema for task list response."""
tasks: List[TaskResponse]
total: int