a9896e1507
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 21s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 37s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 25s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m21s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m23s
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 1m55s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 23s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 59s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 53s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 4m34s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m40s
AI Code Review / AI Code Review (pull_request) Successful in 4m4s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 5m49s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 10m3s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 19s
- 领域模型 GenerationTask 新增 bgm_config 字段 - ORM/Repository/UseCase/API 全链路透传 bgm_config - Worker 端新增 BGM 配置合并逻辑(用户配置 > 模板配置) - enabled 字段特殊处理:用户显式传才覆盖模板状态 - 合并逻辑抽至 packages/domain/bgm_utils.py 纯函数 - 14个BGM合并单测 + 2个领域单测,全量4246通过
33 lines
950 B
Python
Executable File
33 lines
950 B
Python
Executable File
"""BGM配置相关的领域工具函数。"""
|
|
|
|
from __future__ import annotations
|
|
|
|
|
|
def merge_bgm_config(template_bgm: dict, user_bgm: dict) -> dict:
|
|
"""合并模板BGM配置与用户自定义BGM配置。
|
|
|
|
用户配置优先级高于模板配置:
|
|
- 用户显式指定的字段覆盖模板对应字段
|
|
- 用户未指定的字段保留模板值
|
|
- enabled 特殊处理:只有用户显式传了才覆盖,否则保留模板状态
|
|
|
|
Args:
|
|
template_bgm: 模板BGM配置
|
|
user_bgm: 用户自定义BGM配置
|
|
|
|
Returns:
|
|
合并后的BGM配置字典
|
|
"""
|
|
if not user_bgm:
|
|
return dict(template_bgm)
|
|
if not template_bgm:
|
|
return dict(user_bgm)
|
|
|
|
merged = {**template_bgm, **user_bgm}
|
|
|
|
# enabled 特殊处理:用户没传就保留模板的
|
|
if "enabled" not in user_bgm and "enabled" in template_bgm:
|
|
merged["enabled"] = template_bgm["enabled"]
|
|
|
|
return merged
|