44 lines
941 B
Python
44 lines
941 B
Python
"""
|
|
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
|