mirror of
https://github.com/R0m1k3/TodoFlow.git
synced 2026-10-11 17:28:17 +02:00
36 lines
1.0 KiB
Python
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)
|