"""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