shoehorning graphql, step functions and lamdas. aws deployment scripts

This commit is contained in:
2026-02-06 18:25:42 -03:00
parent 013587d108
commit e642908abb
35 changed files with 2354 additions and 930 deletions

View File

@@ -5,7 +5,7 @@ This module exports all dataclasses, enums, and constants that the generator
should process. Add new models here to have them included in generation.
"""
from .api import CreateJobRequest, SystemStatus
from .api import CreateJobRequest, ScanResult, SystemStatus
from .grpc import (
GRPC_SERVICE,
CancelRequest,
@@ -26,7 +26,7 @@ DATACLASSES = [MediaAsset, TranscodePreset, TranscodeJob]
# API request/response models - generates TypeScript only (no Django)
# WorkerStatus from grpc.py is reused here
API_MODELS = [CreateJobRequest, SystemStatus, WorkerStatus]
API_MODELS = [CreateJobRequest, SystemStatus, ScanResult, WorkerStatus]
# Status enums - included in generated code
ENUMS = [AssetStatus, JobStatus]
@@ -50,6 +50,7 @@ __all__ = [
"TranscodeJob",
# API Models
"CreateJobRequest",
"ScanResult",
"SystemStatus",
# Enums
"AssetStatus",

View File

@@ -5,8 +5,8 @@ These are separate from the main domain models and represent
the shape of data sent to/from the API endpoints.
"""
from dataclasses import dataclass
from typing import Optional
from dataclasses import dataclass, field
from typing import List, Optional
from uuid import UUID
@@ -19,6 +19,7 @@ class CreateJobRequest:
trim_start: Optional[float] = None # seconds
trim_end: Optional[float] = None # seconds
output_filename: Optional[str] = None
priority: int = 0
@dataclass
@@ -29,4 +30,14 @@ class SystemStatus:
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

View File

@@ -63,6 +63,7 @@ class TranscodeJob:
# Worker tracking
celery_task_id: Optional[str] = None
execution_arn: Optional[str] = None # AWS Step Functions execution ARN
priority: int = 0 # Lower = higher priority
# Timestamps