import uuid from datetime import datetime, timezone from enum import StrEnum from sqlmodel import Field, SQLModel class TaskStatus(StrEnum): QUEUED = "queued" PROCESSING = "processing" COMPLETED = "completed" FAILED = "failed" class Task(SQLModel, table=True): __tablename__: str = "tasks" # type: ignore id: uuid.UUID = Field(default_factory=uuid.uuid4, primary_key=True) status: TaskStatus = Field(default=TaskStatus.QUEUED) input_filename: str result_url: str | None = None error_message: str | None = None created_at: datetime = Field( default_factory=lambda: datetime.now(timezone.utc).replace(tzinfo=None) )