312dad7497
六边形架构分层实现:
Domain 层:
- DuplicationRecord / DuplicateSegment 实体
- 状态机生命周期 (pending→processing→completed/failed)
Ports 层:
- DuplicationRecordRepository Protocol
Adapters 层:
- SQLAlchemyDuplicationRecordRepository 完整实现
- DuplicationRecordModel / DuplicationSegmentModel ORM 模型
Application 层:
- UploadForDuplicationUseCase (上传查重)
- ListDuplicationRecordsUseCase (记录列表)
- GetDuplicationDetailUseCase (详情查询)
- DeleteDuplicationRecordUseCase (删除)
- RetryDuplicationUseCase (重新查重)
API 层:
- POST /api/v1/duplication/upload (上传视频查重)
- GET /api/v1/duplication/records (记录列表)
- GET /api/v1/duplication/records/{id} (详情含片段)
- DELETE /api/v1/duplication/records/{id} (删除)
- POST /api/v1/duplication/records/{id}/retry (重新查重)
Alembic 迁移:
- 011_add_duplication_tables.py (duplication_records + duplication_segments)
API 契约与前端 feat/phase2-duplication-ui (PR#75) 完全对齐。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
63 lines
1.9 KiB
Python
63 lines
1.9 KiB
Python
"""Application use cases package."""
|
|
|
|
from .asset_libraries import (
|
|
CreateAssetLibraryCommand,
|
|
CreateAssetLibraryUseCase,
|
|
ListAssetLibrariesUseCase,
|
|
)
|
|
from .assets import CreateAssetCommand, CreateAssetUseCase, ListAssetsUseCase
|
|
from .duplication import (
|
|
DeleteDuplicationRecordUseCase,
|
|
GetDuplicationDetailUseCase,
|
|
ListDuplicationRecordsUseCase,
|
|
RetryDuplicationUseCase,
|
|
UploadForDuplicationCommand,
|
|
UploadForDuplicationUseCase,
|
|
)
|
|
from .classification_jobs import (
|
|
SubmitClassificationJobCommand,
|
|
SubmitClassificationJobUseCase,
|
|
)
|
|
from .generated_videos import (
|
|
GetGeneratedVideoDownloadUrlUseCase,
|
|
GetGeneratedVideoUseCase,
|
|
ListGeneratedVideosByTaskUseCase,
|
|
ListGeneratedVideosUseCase,
|
|
)
|
|
from .generation_tasks import (
|
|
CreateGenerationTaskCommand,
|
|
CreateGenerationTaskUseCase,
|
|
GetGenerationTaskUseCase,
|
|
)
|
|
from .ingest_jobs import SubmitIngestJobCommand, SubmitIngestJobUseCase
|
|
from .projects import CreateProjectCommand, CreateProjectUseCase, GetProjectUseCase, ListProjectsUseCase
|
|
|
|
__all__ = [
|
|
"CreateAssetCommand",
|
|
"CreateAssetLibraryCommand",
|
|
"CreateAssetLibraryUseCase",
|
|
"CreateAssetUseCase",
|
|
"CreateGenerationTaskCommand",
|
|
"CreateGenerationTaskUseCase",
|
|
"CreateProjectCommand",
|
|
"CreateProjectUseCase",
|
|
"DeleteDuplicationRecordUseCase",
|
|
"GetDuplicationDetailUseCase",
|
|
"GetGeneratedVideoDownloadUrlUseCase",
|
|
"GetGeneratedVideoUseCase",
|
|
"GetProjectUseCase",
|
|
"ListAssetLibrariesUseCase",
|
|
"ListAssetsUseCase",
|
|
"ListDuplicationRecordsUseCase",
|
|
"ListGeneratedVideosByTaskUseCase",
|
|
"ListGeneratedVideosUseCase",
|
|
"ListProjectsUseCase",
|
|
"RetryDuplicationUseCase",
|
|
"SubmitClassificationJobCommand",
|
|
"SubmitClassificationJobUseCase",
|
|
"SubmitIngestJobCommand",
|
|
"SubmitIngestJobUseCase",
|
|
"UploadForDuplicationCommand",
|
|
"UploadForDuplicationUseCase",
|
|
]
|