Files
TodoFlow/server/app/models.py
T

36 lines
1.0 KiB
Python

from datetime import datetime
from enum import Enum
from typing import Optional
from uuid import UUID, uuid4
from sqlmodel import SQLModel, Field
class TaskStatus(str, Enum):
TODO = "A faire"
IN_PROGRESS = "En cours"
DONE = "Termine"
class TaskBase(SQLModel):
title: str = Field(index=True, min_length=1, max_length=100)
description: Optional[str] = Field(default=None)
status: TaskStatus = Field(default=TaskStatus.TODO)
class TaskCreate(TaskBase):
pass
class TaskUpdate(SQLModel):
title: Optional[str] = Field(default=None, min_length=1, max_length=100)
description: Optional[str] = None
status: Optional[TaskStatus] = None
class TaskResponse(TaskBase):
id: UUID
created_at: datetime
updated_at: datetime
class Task(TaskBase, table=True):
__tablename__ = "tasks"
id: UUID = Field(default_factory=uuid4, primary_key=True, index=True)
created_at: datetime = Field(default_factory=datetime.utcnow, nullable=False)
updated_at: datetime = Field(default_factory=datetime.utcnow, nullable=False)