This commit is contained in:
2026-03-30 09:53:10 -03:00
parent 4220b0418e
commit aac27b8504
32 changed files with 1068 additions and 329 deletions

View File

@@ -127,23 +127,24 @@ class Job(models.Model):
class Timeline(models.Model):
"""The frame sequence from a source video."""
"""A user-created selection of source material."""
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField(max_length=255)
source_asset_id = models.UUIDField(null=True, blank=True)
source_video = models.CharField(max_length=255)
chunk_paths = models.JSONField(default=list, blank=True)
profile_name = models.CharField(max_length=255)
status = models.CharField(max_length=255)
fps = models.FloatField(default=2.0)
frames_prefix = models.CharField(max_length=255)
frames_manifest = models.JSONField(default=dict, blank=True)
frames_meta = models.JSONField(default=list, blank=True)
frame_count = models.IntegerField(default=0)
source_ephemeral = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True)
class Meta:
ordering = ["-created_at"]
def __str__(self):
return str(self.id)
return self.name
class Checkpoint(models.Model):
@@ -153,7 +154,7 @@ class Checkpoint(models.Model):
timeline_id = models.UUIDField()
job_id = models.UUIDField(null=True, blank=True)
parent_id = models.UUIDField(null=True, blank=True)
stage_outputs = models.JSONField(default=dict, blank=True)
stage_name = models.CharField(max_length=255)
config_overrides = models.JSONField(default=dict, blank=True)
stats = models.JSONField(default=dict, blank=True)
is_scenario = models.BooleanField(default=False)
@@ -167,6 +168,24 @@ class Checkpoint(models.Model):
return str(self.id)
class StageOutput(models.Model):
"""Output of a single stage within a job."""
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
job_id = models.UUIDField()
timeline_id = models.UUIDField()
stage_name = models.CharField(max_length=255)
checkpoint_id = models.UUIDField(null=True, blank=True)
output = models.JSONField(default=dict, blank=True)
created_at = models.DateTimeField(auto_now_add=True)
class Meta:
ordering = ["-created_at"]
def __str__(self):
return str(self.id)
class Brand(models.Model):
"""A brand discovered or registered in the system."""