fix: 确认生成 API 改为复用 worker.generate_video 渲染路径(适配 develop 分支)
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 35s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Failing after 1m5s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m5s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m22s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m42s
AI Code Review / AI Code Review (pull_request) Failing after 2m4s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 1m59s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 1m58s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 2m54s
CI/CD Pipeline / Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / Build Production API Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Web Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been cancelled
CI/CD Pipeline / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / CI Gate (pull_request) Has been cancelled
PR Automation / Auto Approve on CI Green (pull_request) Has been cancelled
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 929h54m19s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 929h54m53s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 929h54m21s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 929h54m53s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 929h54m21s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 929h54m57s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 929h54m57s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 929h54m55s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 930h28m16s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 930h28m22s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 35s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Failing after 1m5s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m5s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m22s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m42s
AI Code Review / AI Code Review (pull_request) Failing after 2m4s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 1m59s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 1m58s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 2m54s
CI/CD Pipeline / Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / Build Production API Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Web Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been cancelled
CI/CD Pipeline / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / CI Gate (pull_request) Has been cancelled
PR Automation / Auto Approve on CI Green (pull_request) Has been cancelled
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 929h54m19s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 929h54m53s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 929h54m21s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 929h54m53s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 929h54m21s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 929h54m57s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 929h54m57s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 929h54m55s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 930h28m16s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 930h28m22s
从 main 分支 PR #1308 手动适配到 develop 分支,保留 develop 现有功能: Schema 层: - 新增 ConfirmGenerationRequest schema - CreateGenerationTaskRequest 增加 6 个新字段(is_preview, source_task_id, output_width, output_height, cover_url, custom_title) - GenerationTaskResponse 增加对应字段 Domain 层: - GenerationTask 实体增加 source_task_id, output_width, output_height, cover_url, custom_title 字段 - create() 工厂方法增加对应参数 Application 层: - CreateGenerationTaskCommand 增加对应字段 - UseCase 执行时传递新字段 DB 层: - GenerationTaskModel 增加 5 个新列(is_preview 已存在于 develop) - 仓储 _to_domain/create/update 映射更新 API 路由: - 新增 POST /tasks/{task_id}/confirm 端点 - 使用 safe_enqueue_generation_task 适配 develop 任务入队机制 - 更新 _to_generation_task_response 和 retry 端点 Worker 层: - _load_task_info 返回新字段 - generate_video 支持动态分辨率(output_width/output_height 覆盖默认分辨率) Alembic 迁移 054: - generation_tasks 表增加 source_task_id, output_width, output_height, cover_url, custom_title 列 单元测试: - tests/unit/test_confirm_generation.py(7 个测试用例全部通过) - 适配 develop 的 safe_enqueue_generation_task 入队机制
This commit is contained in:
@@ -37,6 +37,11 @@ def _to_domain(model: GenerationTaskModel) -> GenerationTask:
|
||||
resolution=getattr(model, "resolution", "") or "",
|
||||
bgm_config=dict(getattr(model, "bgm_config", {}) or {}),
|
||||
is_preview=bool(getattr(model, "is_preview", False)),
|
||||
source_task_id=getattr(model, "source_task_id", "") or "",
|
||||
output_width=getattr(model, "output_width", 1280) or 1280,
|
||||
output_height=getattr(model, "output_height", 720) or 720,
|
||||
cover_url=getattr(model, "cover_url", "") or "",
|
||||
custom_title=getattr(model, "custom_title", "") or "",
|
||||
logs=model.logs or "[]",
|
||||
created_at=model.created_at,
|
||||
updated_at=model.updated_at,
|
||||
@@ -76,6 +81,11 @@ class SQLAlchemyGenerationTaskRepository:
|
||||
resolution=task.resolution or "",
|
||||
bgm_config=task.bgm_config or {},
|
||||
is_preview=task.is_preview or False,
|
||||
source_task_id=task.source_task_id or "",
|
||||
output_width=task.output_width,
|
||||
output_height=task.output_height,
|
||||
cover_url=task.cover_url or "",
|
||||
custom_title=task.custom_title or "",
|
||||
logs=task.logs,
|
||||
created_at=task.created_at,
|
||||
updated_at=task.updated_at,
|
||||
@@ -242,6 +252,11 @@ class SQLAlchemyGenerationTaskRepository:
|
||||
model.bgm_config = task.bgm_config or {}
|
||||
if hasattr(model, "is_preview"):
|
||||
model.is_preview = task.is_preview or False
|
||||
model.source_task_id = task.source_task_id or ""
|
||||
model.output_width = task.output_width
|
||||
model.output_height = task.output_height
|
||||
model.cover_url = task.cover_url or ""
|
||||
model.custom_title = task.custom_title or ""
|
||||
model.logs = task.logs
|
||||
self.session.commit()
|
||||
return task
|
||||
|
||||
@@ -293,6 +293,11 @@ class GenerationTaskModel(Base):
|
||||
video_title = Column(String(255), nullable=False, default="")
|
||||
resolution = Column(String(20), nullable=False, default="")
|
||||
is_preview = Column(Boolean, nullable=False, default=False, index=True)
|
||||
source_task_id = Column(String(32), nullable=False, default="", index=True)
|
||||
output_width = Column(Integer, nullable=False, default=1280)
|
||||
output_height = Column(Integer, nullable=False, default=720)
|
||||
cover_url = Column(String(1000), nullable=False, default="")
|
||||
custom_title = Column(String(500), nullable=False, default="")
|
||||
bgm_config = Column(JSON, nullable=False, default=dict)
|
||||
extra_meta = Column("metadata", JSON, nullable=False, default=dict)
|
||||
logs = Column(Text, nullable=False, default="[]", server_default="[]")
|
||||
|
||||
Reference in New Issue
Block a user