import uuid from datetime import date, datetime from typing import Optional from pydantic import BaseModel, ConfigDict class TaskCreate(BaseModel): milestone_id: Optional[uuid.UUID] = None title: str description: Optional[str] = None assignee_id: Optional[uuid.UUID] = None priority: str = "MEDIUM" due_date: Optional[date] = None class TaskUpdate(BaseModel): milestone_id: Optional[uuid.UUID] = None title: Optional[str] = None description: Optional[str] = None assignee_id: Optional[uuid.UUID] = None priority: Optional[str] = None due_date: Optional[date] = None status: Optional[str] = None class TaskRead(BaseModel): id: uuid.UUID study_id: uuid.UUID milestone_id: Optional[uuid.UUID] title: str description: Optional[str] assignee_id: Optional[uuid.UUID] priority: str due_date: Optional[date] status: str completed_at: Optional[datetime] created_by: uuid.UUID created_at: datetime updated_at: datetime model_config = ConfigDict(from_attributes=True)