""" API Request/Response Schema Definitions These are separate from the main domain models and represent the shape of data sent to/from the API endpoints. """ from dataclasses import dataclass, field from typing import List, Optional from uuid import UUID @dataclass class CreateJobRequest: """Request body for creating a transcode/trim job.""" source_asset_id: UUID preset_id: Optional[UUID] = None trim_start: Optional[float] = None # seconds trim_end: Optional[float] = None # seconds output_filename: Optional[str] = None priority: int = 0 @dataclass class SystemStatus: """System status response.""" status: str version: str @dataclass class ScanResult: """Result of scanning the media input bucket.""" found: int = 0 registered: int = 0 skipped: int = 0 files: List[str] = field(default_factory=list) # Note: WorkerStatus is defined in grpc.py and reused here