from datetime import date from typing import Literal from pydantic import BaseModel, ConfigDict class TaskShort(BaseModel): title: str due_date: date | None = None priority: Literal["low", "medium", "high", "critical"] = "medium" model_config = ConfigDict(from_attributes=True) class TaskWithId(TaskShort): id: int class TaskADDRequest(TaskShort): description: str | None = None class Task(TaskADDRequest): id: int user_id: int status: Literal["open", "closed", "in_progress", "todo"] time_spent: int model_config = ConfigDict(from_attributes=True)