Files
whisperbox-transcribe/app/web/dtos.py
2023-08-05 16:54:51 +02:00

41 lines
752 B
Python

from datetime import datetime
from uuid import UUID
from pydantic import AnyHttpUrl, BaseModel, ConfigDict
from app.shared.db.models import (
ArtifactData,
ArtifactType,
JobConfig,
JobMeta,
JobStatus,
JobType,
)
# DB objects
class WithDbFields(BaseModel):
id: UUID
created_at: datetime
updated_at: datetime | None = None
model_config = ConfigDict(from_attributes=True)
class Job(WithDbFields):
"""A transcription job for one media file."""
status: JobStatus
type: JobType
url: AnyHttpUrl
meta: JobMeta | None = None
config: JobConfig | None = None
class Artifact(WithDbFields):
"""A transcription artifact."""
job_id: UUID
data: ArtifactData
type: ArtifactType