from datetime import datetime from typing import Optional from pydantic import BaseModel, ConfigDict from app.models.task import TaskStatus, TaskPriority class TaskBase(BaseModel): title: str description: Optional[str] = None status: TaskStatus = TaskStatus.TODO priority: TaskPriority = TaskPriority.MEDIUM due_date: Optional[datetime] = None class TaskCreate(TaskBase): assigned_to_id: Optional[int] = None class TaskUpdate(BaseModel): title: Optional[str] = None description: Optional[str] = None status: Optional[TaskStatus] = None priority: Optional[TaskPriority] = None due_date: Optional[datetime] = None assigned_to_id: Optional[int] = None class TaskResponse(TaskBase): id: int owner_id: int assigned_to_id: Optional[int] = None created_at: datetime updated_at: Optional[datetime] = None model_config = ConfigDict(from_attributes=True)