fix: add foreign key constraints to all ORM models
- Add 35 ForeignKey constraints across 15 tables (was zero) - ON DELETE CASCADE for parent-child relationships (project → children) - ON DELETE SET NULL for optional user references (created_by, assignee, etc.) - Add relationship() with back_populates and cascade on all models - Alter 11 columns from nullable=False to nullable=True for SET NULL - Add 2 missing indexes on FK columns (assets.uploaded_by_user_id, project_titles.created_by_user_id) - Update Pydantic response models to accept str | None for nullable fields - Add Alembic migration 010 with complete upgrade/downgrade Closes #17
This commit is contained in:
@@ -65,8 +65,8 @@ class TaskResponse(BaseModel):
|
||||
description: str
|
||||
status: TaskStatus
|
||||
priority: TaskPriority
|
||||
parent_task_id: str
|
||||
assignee_user_id: str
|
||||
parent_task_id: str | None
|
||||
assignee_user_id: str | None
|
||||
progress: float
|
||||
planned_start_date: datetime | None
|
||||
planned_end_date: datetime | None
|
||||
@@ -126,7 +126,7 @@ class TaskIssueResponse(BaseModel):
|
||||
description: str
|
||||
resolved: bool
|
||||
resolved_at: datetime | None
|
||||
created_by_user_id: str
|
||||
created_by_user_id: str | None
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ class EditPlanResponse(BaseModel):
|
||||
project_id: str
|
||||
template_id: str
|
||||
asset_library_id: str
|
||||
title_id: str = ""
|
||||
title_id: str | None = ""
|
||||
status: str
|
||||
summary: str
|
||||
editing_mode: str | None = None # one_take, pip, voice_over, voice_pip
|
||||
|
||||
@@ -16,7 +16,7 @@ class GenerationTaskResponse(BaseModel):
|
||||
asset_library_id: str
|
||||
strategy_id: str
|
||||
voice_library_id: str
|
||||
edit_plan_id: str
|
||||
edit_plan_id: str | None
|
||||
status: str
|
||||
progress: float
|
||||
result_count: int
|
||||
|
||||
@@ -14,4 +14,4 @@ class IngestJobResponse(BaseModel):
|
||||
storage_key: str
|
||||
status: str
|
||||
error_message: str
|
||||
result_asset_id: str
|
||||
result_asset_id: str | None
|
||||
|
||||
Reference in New Issue
Block a user