feat: 封面模板 CRUD API
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 39s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 52s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 53s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 58s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m43s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 1m52s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 2m43s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m55s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 2m56s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 2m44s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m58s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 4m9s
AI Code Review / AI Code Review (pull_request) Failing after 4m27s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m15s
CI/CD Pipeline / Unit 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
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 910h41m1s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 910h41m1s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 910h41m3s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 910h41m4s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 910h41m5s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 910h41m5s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 911h14m27s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 39s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 52s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 53s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 58s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m43s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 1m52s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 2m43s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m55s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 2m56s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 2m44s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m58s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 4m9s
AI Code Review / AI Code Review (pull_request) Failing after 4m27s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m15s
CI/CD Pipeline / Unit 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
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 910h41m1s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 910h41m1s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 910h41m3s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 910h41m4s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 910h41m5s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 910h41m5s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 911h14m27s
新增 cover_templates 表及完整 CRUD 接口:
- GET /api/v1/cover-templates 列出系统+用户模板
- POST /api/v1/cover-templates 创建自定义模板
- PUT /api/v1/cover-templates/{id} 更新模板(系统模板不可改)
- DELETE /api/v1/cover-templates/{id} 删除自定义模板(系统模板不可删)
技术实现:
- 领域实体 CoverTemplate(packages/domain/cover_template.py)
- 仓储接口 + SQLAlchemy 实现 + InMemory 实现
- Schema 对齐前端 CoverTemplate 类型定义
- Alembic migration 055,含 8 个系统模板 seed 数据
- 28 个新单测,全量 13704 单测通过
This commit is contained in:
@@ -600,3 +600,18 @@ class VideoShareModel(Base):
|
||||
is_active = Column(Boolean, nullable=False, default=True)
|
||||
created_at = Column(DateTime(timezone=True), nullable=False, default=lambda: datetime.now(timezone.utc))
|
||||
updated_at = Column(DateTime(timezone=True), nullable=False, default=lambda: datetime.now(timezone.utc))
|
||||
|
||||
|
||||
class CoverTemplateModel(Base):
|
||||
"""封面模板"""
|
||||
|
||||
__tablename__ = "cover_templates"
|
||||
|
||||
id = Column(String(36), primary_key=True)
|
||||
user_id = Column(String(36), nullable=True, index=True) # NULL = 系统模板
|
||||
name = Column(String(200), nullable=False)
|
||||
thumbnail_url = Column(String(1000), nullable=False, default="")
|
||||
is_system = Column(Boolean, nullable=False, default=False, index=True)
|
||||
config = Column(JSON, nullable=False, default=dict)
|
||||
created_at = Column(DateTime(timezone=True), nullable=False, default=lambda: datetime.now(timezone.utc))
|
||||
updated_at = Column(DateTime(timezone=True), nullable=False, default=lambda: datetime.now(timezone.utc))
|
||||
|
||||
Reference in New Issue
Block a user