29 lines
603 B
Python
29 lines
603 B
Python
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)
|