Files
bornetime/backend/app/models/schemas.py
T

65 lines
1.3 KiB
Python

from pydantic import BaseModel, Field
from typing import Optional
import datetime
class VideoOut(BaseModel):
id: int
filename: str
duration: Optional[float] = None
status: str
output_path: Optional[str] = None
error_message: Optional[str] = None
created_at: datetime.datetime
model_config = {"from_attributes": True}
class VideoListOut(BaseModel):
videos: list[VideoOut]
class SegmentOut(BaseModel):
id: int
video_id: int
speaker_label: Optional[str] = None
start_time: float
end_time: float
english_text: Optional[str] = None
danish_text: Optional[str] = None
status: str
model_config = {"from_attributes": True}
class SegmentUpdate(BaseModel):
english_text: Optional[str] = None
danish_text: Optional[str] = None
speaker_label: Optional[str] = None
class TranscriptOut(BaseModel):
video_id: int
segments: list[SegmentOut]
class JobOut(BaseModel):
id: int
video_id: int
job_type: str
status: str
progress: float
error_message: Optional[str] = None
created_at: datetime.datetime
model_config = {"from_attributes": True}
class JobListOut(BaseModel):
jobs: list[JobOut]
class ProcessResponse(BaseModel):
job_id: int
message: str