major refactor
This commit is contained in:
58
core/schema/models/api.py
Normal file
58
core/schema/models/api.py
Normal file
@@ -0,0 +1,58 @@
|
||||
"""
|
||||
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
|
||||
Reference in New Issue
Block a user