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