from typing import Optional from pydantic import BaseModel from datetime import datetime from app.models.task import TaskStatus, TaskPriority class TaskBase(BaseModel): title: str description: Optional[str] = None status: TaskStatus = TaskStatus.PENDING priority: TaskPriority = TaskPriority.MEDIUM due_date: Optional[datetime] = None category_id: Optional[int] = None class TaskCreate(TaskBase): pass class TaskUpdate(BaseModel): title: Optional[str] = None description: Optional[str] = None status: Optional[TaskStatus] = None priority: Optional[TaskPriority] = None due_date: Optional[datetime] = None category_id: Optional[int] = None class TaskInDBBase(TaskBase): id: int owner_id: int completed_at: Optional[datetime] = None created_at: datetime updated_at: Optional[datetime] = None class Config: from_attributes = True class Task(TaskInDBBase): pass