""" 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) @dataclass class UpdateAssetRequest: """Request body for updating asset metadata.""" comments: Optional[str] = None tags: Optional[List[str]] = None @dataclass class DeleteResult: """Result of a delete operation.""" ok: bool = False # Note: WorkerStatus is defined in grpc.py and reused here