Files
xiaoxia-saas/packages/application/__init__.py
T
CI Bot 1f8de776e8 feat: 成片中心后端升级
- 成片列表分页接口(支持按项目/状态/复核状态筛选)
- 封面图自动生成(视频生成后ffmpeg抽首帧+OSS上传)
- 复核状态流转接口(pending_review/approved/rejected)
- 批量下载异步任务(打包zip+OSS上传+状态查询)
- 18个新增单测全绿,20个已有单测保持通过

新增文件:
- apps/api/app/api/routes/videos.py - 成片中心API
- apps/api/app/schemas/video_center.py - Schema定义
- apps/worker/video_processing/thumbnail_generator.py - 缩略图生成
- apps/worker/worker_app/tasks/batch_download.py - 批量下载任务
- tests/unit/test_video_center_backend.py - 单元测试

修改文件:
- packages/ports/generated_video_repository.py - 新增4个接口方法
- packages/adapters/sqlalchemy_impl/generated_video_repository.py - 实现4个方法
- packages/application/generated_videos.py - 新增3个UseCase
- packages/application/__init__.py - 导出新类
- apps/api/app/api/router.py - 注册videos路由
- apps/worker/video_processing/dedup_helpers.py - 集成缩略图生成
- apps/worker/worker_app/celery_app.py - 注册batch_download任务
2026-07-14 09:17:09 +08:00

107 lines
2.9 KiB
Python
Executable File

"""Application use cases package."""
from .asset_libraries import (
CreateAssetLibraryCommand,
CreateAssetLibraryUseCase,
ListAssetLibrariesUseCase,
)
from .assets import CreateAssetCommand, CreateAssetUseCase, ListAssetsUseCase
from .classification_jobs import (
SubmitClassificationJobCommand,
SubmitClassificationJobUseCase,
)
from .duplication import (
DeleteDuplicationRecordUseCase,
GetDuplicationDetailUseCase,
ListDuplicationRecordsUseCase,
RetryDuplicationUseCase,
UploadForDuplicationCommand,
UploadForDuplicationUseCase,
)
from .generated_videos import (
GetGeneratedVideoDownloadUrlUseCase,
GetGeneratedVideoUseCase,
GetVideosByIdsUseCase,
ListGeneratedVideosByTaskUseCase,
ListGeneratedVideosPaginatedUseCase,
ListGeneratedVideosUseCase,
UpdateVideoReviewStatusUseCase,
)
from .generation_tasks import (
CreateGenerationTaskCommand,
CreateGenerationTaskUseCase,
GetGenerationTaskUseCase,
)
from .ingest_jobs import SubmitIngestJobCommand, SubmitIngestJobUseCase
from .jobs import (
CancelJobUseCase,
CompleteJobCommand,
CompleteJobUseCase,
CreateJobCommand,
CreateJobUseCase,
FailJobCommand,
FailJobUseCase,
GetJobStatisticsUseCase,
GetJobUseCase,
ListJobsUseCase,
RetryJobUseCase,
SubmitJobUseCase,
UpdateJobProgressCommand,
UpdateJobProgressUseCase,
)
from .projects import (
CreateProjectCommand,
CreateProjectUseCase,
DeleteProjectUseCase,
GetProjectUseCase,
ListProjectsUseCase,
)
__all__ = [
"CancelJobUseCase",
"CompleteJobCommand",
"CompleteJobUseCase",
"CreateAssetCommand",
"CreateAssetLibraryCommand",
"CreateAssetLibraryUseCase",
"CreateAssetUseCase",
"CreateGenerationTaskCommand",
"CreateGenerationTaskUseCase",
"GetGenerationTaskUseCase",
"CreateJobCommand",
"CreateJobUseCase",
"CreateProjectCommand",
"CreateProjectUseCase",
"DeleteDuplicationRecordUseCase",
"DeleteProjectUseCase",
"FailJobCommand",
"FailJobUseCase",
"GetDuplicationDetailUseCase",
"GetGeneratedVideoDownloadUrlUseCase",
"GetGeneratedVideoUseCase",
"GetVideosByIdsUseCase",
"GetJobStatisticsUseCase",
"GetJobUseCase",
"GetProjectUseCase",
"ListAssetLibrariesUseCase",
"ListAssetsUseCase",
"ListDuplicationRecordsUseCase",
"ListGeneratedVideosByTaskUseCase",
"ListGeneratedVideosPaginatedUseCase",
"ListGeneratedVideosUseCase",
"ListJobsUseCase",
"ListProjectsUseCase",
"RetryDuplicationUseCase",
"RetryJobUseCase",
"SubmitClassificationJobCommand",
"SubmitClassificationJobUseCase",
"SubmitIngestJobCommand",
"SubmitIngestJobUseCase",
"SubmitJobUseCase",
"UpdateJobProgressCommand",
"UpdateJobProgressUseCase",
"UpdateVideoReviewStatusUseCase",
"UploadForDuplicationCommand",
"UploadForDuplicationUseCase",
]