""" Strawberry Types - GENERATED FILE Do not edit directly. Regenerate using modelgen. """ import strawberry from enum import Enum from typing import List, Optional from uuid import UUID from datetime import datetime from strawberry.scalars import JSON @strawberry.enum class AssetStatus(Enum): PENDING = "pending" READY = "ready" ERROR = "error" @strawberry.enum class JobStatus(Enum): PENDING = "pending" PROCESSING = "processing" COMPLETED = "completed" FAILED = "failed" CANCELLED = "cancelled" @strawberry.type class MediaAssetType: """A video/audio file registered in the system.""" id: Optional[UUID] = None filename: Optional[str] = None file_path: Optional[str] = None status: Optional[str] = None error_message: Optional[str] = None file_size: Optional[int] = None duration: Optional[float] = None video_codec: Optional[str] = None audio_codec: Optional[str] = None width: Optional[int] = None height: Optional[int] = None framerate: Optional[float] = None bitrate: Optional[int] = None properties: Optional[JSON] = None comments: Optional[str] = None tags: Optional[List[str]] = None created_at: Optional[datetime] = None updated_at: Optional[datetime] = None @strawberry.type class TranscodePresetType: """A reusable transcoding configuration (like Handbrake presets).""" id: Optional[UUID] = None name: Optional[str] = None description: Optional[str] = None is_builtin: Optional[bool] = None container: Optional[str] = None video_codec: Optional[str] = None video_bitrate: Optional[str] = None video_crf: Optional[int] = None video_preset: Optional[str] = None resolution: Optional[str] = None framerate: Optional[float] = None audio_codec: Optional[str] = None audio_bitrate: Optional[str] = None audio_channels: Optional[int] = None audio_samplerate: Optional[int] = None extra_args: Optional[List[str]] = None created_at: Optional[datetime] = None updated_at: Optional[datetime] = None @strawberry.type class TranscodeJobType: """A transcoding or trimming job in the queue.""" id: Optional[UUID] = None source_asset_id: Optional[UUID] = None preset_id: Optional[UUID] = None preset_snapshot: Optional[JSON] = None trim_start: Optional[float] = None trim_end: Optional[float] = None output_filename: Optional[str] = None output_path: Optional[str] = None output_asset_id: Optional[UUID] = None status: Optional[str] = None progress: Optional[float] = None current_frame: Optional[int] = None current_time: Optional[float] = None speed: Optional[str] = None error_message: Optional[str] = None celery_task_id: Optional[str] = None execution_arn: Optional[str] = None priority: Optional[int] = None created_at: Optional[datetime] = None started_at: Optional[datetime] = None completed_at: Optional[datetime] = None @strawberry.input class CreateJobInput: """Request body for creating a transcode/trim job.""" source_asset_id: UUID preset_id: Optional[UUID] = None trim_start: Optional[float] = None trim_end: Optional[float] = None output_filename: Optional[str] = None priority: int = 0 @strawberry.input class UpdateAssetInput: """Request body for updating asset metadata.""" comments: Optional[str] = None tags: Optional[List[str]] = None @strawberry.type class SystemStatusType: """System status response.""" status: Optional[str] = None version: Optional[str] = None @strawberry.type class ScanResultType: """Result of scanning the media input bucket.""" found: Optional[int] = None registered: Optional[int] = None skipped: Optional[int] = None files: Optional[List[str]] = None @strawberry.type class DeleteResultType: """Result of a delete operation.""" ok: Optional[bool] = None @strawberry.type class WorkerStatusType: """Worker health and capabilities.""" available: Optional[bool] = None active_jobs: Optional[int] = None supported_codecs: Optional[List[str]] = None gpu_available: Optional[bool] = None