fix(api): create_plan接口增加asset_ids参数并传递给PlanGeneratorService
CI Build & Deploy Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Staging API Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI Build & Deploy Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI Build & Deploy Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production Web Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production API Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Deploy Production (pull_request) Has been skipped
CI Build & Deploy Pipeline / Production Browser E2E (pull_request) Has been skipped
AI Code Review / AI Code Review (pull_request) Successful in 44s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 5s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 41s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 2m45s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 3m18s
Auto Approve CI PRs / Auto Approve on CI Green (pull_request) Successful in 9m4s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m21s
Auto Merge CI PRs / Auto Merge on CI Green + Approved (pull_request) Successful in 10m16s

- EditPlanCreateRequest增加asset_ids字段
- create_plan调用generate_from_template时传递body.asset_ids而非硬编码空数组
- asset_ids同时写入plan.config,供generate时兜底分配
- 新增test_create_with_asset_ids测试验证参数传递
This commit is contained in:
CI Bot
2026-07-17 15:53:18 +08:00
parent cefd97966a
commit 53c6e66eaa
2 changed files with 50 additions and 1 deletions
+9 -1
View File
@@ -50,6 +50,7 @@ class EditPlanCreateRequest(BaseModel):
config: dict[str, Any] = Field(default_factory=dict, description="计划配置 (JSON)")
total_duration: float = Field(default=0.0, ge=0.0, description="总时长 (秒)")
project_id: str = Field(default="", description="所属项目 ID")
asset_ids: List[str] = Field(default_factory=list, description="素材 ID 列表,创建时自动分配给片段")
class EditPlanUpdateRequest(BaseModel):
@@ -419,7 +420,7 @@ def create_plan(
result = generator.generate_from_template(
template=template,
clip_configs=clip_configs,
asset_ids=[],
asset_ids=body.asset_ids,
project_id=project_id,
created_by_user_id=current_user.user.id,
name=body.name,
@@ -445,6 +446,13 @@ def create_plan(
total_duration=body.total_duration if body.total_duration > 0 else None,
)
# 把 asset_ids 写入 plan.config,供生成时兜底分配使用
if body.asset_ids:
current_config = plan.config or {}
if current_config.get("asset_ids") != body.asset_ids:
current_config["asset_ids"] = body.asset_ids
plan = svc.update_plan(plan.id, config=normalize_plan_config(current_config))
logger.info(
"创建剪辑计划: id=%s name=%s clips=%d by user=%s",
plan.id,