Files

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)