from datetime import datetime, timezone from typing import Optional from sqlmodel import SQLModel, Field class JobStatus: QUEUED = "queued" TRANSCRIBING = "transcribing" SUMMARIZING = "summarizing" PROTOCOLLING = "protocolling" EXPORTING = "exporting" DONE = "done" FAILED = "failed" class Job(SQLModel, table=True): id: Optional[int] = Field(default=None, primary_key=True) owner_id: Optional[int] = Field(default=None, foreign_key="user.id", index=True) filename: str original_name: str title: str = "" status: str = JobStatus.QUEUED progress: int = 0 error: str = "" transcript_path: str = "" summary_path: str = "" protocol_path: str = "" docx_path: str = "" created_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc)) updated_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))