完成极速成品和脚本优化
This commit is contained in:
@@ -70,6 +70,44 @@ class ProjectStage(TimeStampedModel):
|
||||
ordering = ["created_at"]
|
||||
|
||||
|
||||
class QuickCreateJob(TeamOwnedModel):
|
||||
"""“极速成片”自动编排任务。
|
||||
|
||||
AI 子任务仍落在 AITask;本表只保存跨商品、脚本、资产、故事板、视频和导出的编排状态,
|
||||
让页面刷新、浏览器关闭后都能继续查询同一条流水线。
|
||||
"""
|
||||
|
||||
class Status(models.TextChoices):
|
||||
QUEUED = "queued", "Queued"
|
||||
RUNNING = "running", "Running"
|
||||
SUCCEEDED = "succeeded", "Succeeded"
|
||||
FAILED = "failed", "Failed"
|
||||
CANCELLED = "cancelled", "Cancelled"
|
||||
|
||||
class Phase(models.TextChoices):
|
||||
PRODUCT = "product", "Product"
|
||||
SCRIPT = "script", "Script"
|
||||
ASSETS = "assets", "Assets"
|
||||
PRODUCTION = "production", "Storyboard and Video"
|
||||
COMPLETE = "complete", "Complete"
|
||||
|
||||
project = models.OneToOneField(Project, on_delete=models.CASCADE, related_name="quick_create_job")
|
||||
status = models.CharField(max_length=24, choices=Status.choices, default=Status.QUEUED)
|
||||
phase = models.CharField(max_length=24, choices=Phase.choices, default=Phase.PRODUCT)
|
||||
progress = models.PositiveSmallIntegerField(default=0)
|
||||
message = models.CharField(max_length=255, blank=True)
|
||||
error_message = models.TextField(blank=True)
|
||||
metadata = models.JSONField(default=dict, blank=True)
|
||||
completed_at = models.DateTimeField(null=True, blank=True)
|
||||
|
||||
class Meta:
|
||||
ordering = ["-created_at"]
|
||||
indexes = [
|
||||
models.Index(fields=["team", "status", "-created_at"], name="projects_qu_team_id_a8a924_idx"),
|
||||
models.Index(fields=["team", "phase"], name="projects_qu_team_id_98380e_idx"),
|
||||
]
|
||||
|
||||
|
||||
class ScriptVersion(TimeStampedModel):
|
||||
project = models.ForeignKey(Project, on_delete=models.CASCADE, related_name="script_versions")
|
||||
task = models.ForeignKey("ai.AITask", on_delete=models.SET_NULL, null=True, blank=True, related_name="script_versions")
|
||||
@@ -334,4 +372,3 @@ class ExportJob(TimeStampedModel):
|
||||
progress = models.PositiveIntegerField(default=0)
|
||||
error_message = models.TextField(blank=True)
|
||||
metadata = models.JSONField(default=dict, blank=True)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user