phase 4
This commit is contained in:
@@ -44,7 +44,7 @@ class SourceType(str, Enum):
|
||||
|
||||
class MediaAsset(SQLModel, table=True):
|
||||
"""A video/audio file registered in the system."""
|
||||
__tablename__ = "media_assets"
|
||||
__tablename__ = "media_asset"
|
||||
|
||||
id: UUID = Field(default_factory=uuid4, primary_key=True)
|
||||
filename: str
|
||||
@@ -67,7 +67,7 @@ class MediaAsset(SQLModel, table=True):
|
||||
|
||||
class TranscodePreset(SQLModel, table=True):
|
||||
"""A reusable transcoding configuration (like Handbrake presets)."""
|
||||
__tablename__ = "transcode_presets"
|
||||
__tablename__ = "transcode_preset"
|
||||
|
||||
id: UUID = Field(default_factory=uuid4, primary_key=True)
|
||||
name: str
|
||||
@@ -90,12 +90,13 @@ class TranscodePreset(SQLModel, table=True):
|
||||
|
||||
class Job(SQLModel, table=True):
|
||||
"""A pipeline job."""
|
||||
__tablename__ = "jobs"
|
||||
__tablename__ = "job"
|
||||
|
||||
id: UUID = Field(default_factory=uuid4, primary_key=True)
|
||||
source_asset_id: UUID = Field(index=True)
|
||||
video_path: str
|
||||
profile_name: str = "soccer_broadcast"
|
||||
timeline_id: Optional[UUID] = None
|
||||
parent_id: Optional[UUID] = None
|
||||
run_type: RunType = "initial"
|
||||
config_overrides: Dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON, nullable=False, server_default='{}'))
|
||||
@@ -107,7 +108,6 @@ class Job(SQLModel, table=True):
|
||||
brands_found: int = 0
|
||||
cloud_llm_calls: int = 0
|
||||
estimated_cost_usd: float = 0.0
|
||||
celery_task_id: Optional[str] = None
|
||||
priority: int = 0
|
||||
created_at: Optional[datetime] = Field(default_factory=datetime.utcnow)
|
||||
started_at: Optional[datetime] = None
|
||||
@@ -115,7 +115,7 @@ class Job(SQLModel, table=True):
|
||||
|
||||
class Timeline(SQLModel, table=True):
|
||||
"""The frame sequence from a source video."""
|
||||
__tablename__ = "timelines"
|
||||
__tablename__ = "timeline"
|
||||
|
||||
id: UUID = Field(default_factory=uuid4, primary_key=True)
|
||||
source_asset_id: Optional[UUID] = Field(default=None, index=True)
|
||||
@@ -129,10 +129,11 @@ class Timeline(SQLModel, table=True):
|
||||
|
||||
class Checkpoint(SQLModel, table=True):
|
||||
"""A snapshot of pipeline state on a timeline."""
|
||||
__tablename__ = "checkpoints"
|
||||
__tablename__ = "checkpoint"
|
||||
|
||||
id: UUID = Field(default_factory=uuid4, primary_key=True)
|
||||
timeline_id: UUID
|
||||
job_id: Optional[UUID] = Field(default=None, index=True)
|
||||
parent_id: Optional[UUID] = None
|
||||
stage_outputs: Dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON, nullable=False, server_default='{}'))
|
||||
config_overrides: Dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON, nullable=False, server_default='{}'))
|
||||
@@ -143,7 +144,7 @@ class Checkpoint(SQLModel, table=True):
|
||||
|
||||
class Brand(SQLModel, table=True):
|
||||
"""A brand discovered or registered in the system."""
|
||||
__tablename__ = "brands"
|
||||
__tablename__ = "brand"
|
||||
|
||||
id: UUID = Field(default_factory=uuid4, primary_key=True)
|
||||
canonical_name: str = Field(index=True)
|
||||
@@ -154,3 +155,12 @@ class Brand(SQLModel, table=True):
|
||||
total_airings: int = 0
|
||||
created_at: Optional[datetime] = Field(default_factory=datetime.utcnow)
|
||||
updated_at: Optional[datetime] = Field(default_factory=datetime.utcnow)
|
||||
|
||||
class Profile(SQLModel, table=True):
|
||||
"""A content type profile."""
|
||||
__tablename__ = "profile"
|
||||
|
||||
id: UUID = Field(default_factory=uuid4, primary_key=True)
|
||||
name: str
|
||||
pipeline: Dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON, nullable=False, server_default='{}'))
|
||||
configs: Dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON, nullable=False, server_default='{}'))
|
||||
|
||||
Reference in New Issue
Block a user