""" Django ORM Models - GENERATED FILE Do not edit directly. Modify schema/models/*.py and run: python schema/generate.py --django """ import uuid from django.db import models class MediaAsset(models.Model): """A video/audio file registered in the system.""" class Status(models.TextChoices): PENDING = "pending", "Pending" READY = "ready", "Ready" ERROR = "error", "Error" id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) filename = models.CharField(max_length=500) file_path = models.CharField(max_length=1000) status = models.CharField(max_length=20, choices=Status.choices, default=Status.PENDING) error_message = models.TextField(blank=True, default='') file_size = models.BigIntegerField(null=True, blank=True) duration = models.FloatField(null=True, blank=True, default=None) video_codec = models.CharField(max_length=255, null=True, blank=True) audio_codec = models.CharField(max_length=255, null=True, blank=True) width = models.IntegerField(null=True, blank=True, default=None) height = models.IntegerField(null=True, blank=True, default=None) framerate = models.FloatField(null=True, blank=True, default=None) bitrate = models.BigIntegerField(null=True, blank=True) properties = models.JSONField(default=dict, blank=True) comments = models.TextField(blank=True, default='') tags = models.JSONField(default=list, blank=True) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) class Meta: ordering = ["-created_at"] def __str__(self): return self.filename class TranscodePreset(models.Model): """A reusable transcoding configuration (like Handbrake presets).""" id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) name = models.CharField(max_length=255) description = models.TextField(blank=True, default='') is_builtin = models.BooleanField(default=False) container = models.CharField(max_length=255) video_codec = models.CharField(max_length=255) video_bitrate = models.CharField(max_length=255, null=True, blank=True) video_crf = models.IntegerField(null=True, blank=True, default=None) video_preset = models.CharField(max_length=255, null=True, blank=True) resolution = models.CharField(max_length=255, null=True, blank=True) framerate = models.FloatField(null=True, blank=True, default=None) audio_codec = models.CharField(max_length=255) audio_bitrate = models.CharField(max_length=255, null=True, blank=True) audio_channels = models.IntegerField(null=True, blank=True, default=None) audio_samplerate = models.IntegerField(null=True, blank=True, default=None) extra_args = models.JSONField(default=list, blank=True) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) class Meta: ordering = ["-created_at"] def __str__(self): return self.name class TranscodeJob(models.Model): """A transcoding or trimming job in the queue.""" class Status(models.TextChoices): PENDING = "pending", "Pending" PROCESSING = "processing", "Processing" COMPLETED = "completed", "Completed" FAILED = "failed", "Failed" CANCELLED = "cancelled", "Cancelled" id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) source_asset_id = models.UUIDField() preset_id = models.UUIDField(null=True, blank=True) preset_snapshot = models.JSONField(default=dict, blank=True) trim_start = models.FloatField(null=True, blank=True, default=None) trim_end = models.FloatField(null=True, blank=True, default=None) output_filename = models.CharField(max_length=500) output_path = models.CharField(max_length=1000, null=True, blank=True) output_asset_id = models.UUIDField(null=True, blank=True) status = models.CharField(max_length=20, choices=Status.choices, default=Status.PENDING) progress = models.FloatField(default=0.0) current_frame = models.IntegerField(null=True, blank=True, default=None) current_time = models.FloatField(null=True, blank=True, default=None) speed = models.CharField(max_length=255, null=True, blank=True) error_message = models.TextField(blank=True, default='') celery_task_id = models.CharField(max_length=255, null=True, blank=True) priority = models.IntegerField(default=0) created_at = models.DateTimeField(auto_now_add=True) started_at = models.DateTimeField(null=True, blank=True) completed_at = models.DateTimeField(null=True, blank=True) class Meta: ordering = ["-created_at"] def __str__(self): return str(self.id)