from __future__ import annotations from datetime import datetime from typing import Literal from pydantic import BaseModel, Field TaskStatus = Literal["todo", "doing", "done"] class TaskCreate(BaseModel): title: str = Field(min_length=1, max_length=200) description: str | None = None status: TaskStatus = "todo" assignee: str | None = None class TaskUpdate(BaseModel): title: str | None = Field(default=None, min_length=1, max_length=200) description: str | None = None status: TaskStatus | None = None assignee: str | None = None class TaskOut(BaseModel): id: int title: str description: str | None status: TaskStatus assignee: str | None created_at: datetime updated_at: datetime | None model_config = {"from_attributes": True}