Files
xiaoxia-saas/packages/application/generated_videos.py
T
Xiaoxia AI e67f2a17c6
CI/CD Pipeline / Run Tests (push) Has been cancelled
CI/CD Pipeline / Build Summary (push) Has been cancelled
CI/CD Pipeline / Code Quality Check (push) Has been cancelled
feat(phase7): align asset flow and scaffold generation pipeline
2026-06-18 19:59:37 +08:00

33 lines
1.3 KiB
Python

from __future__ import annotations
from packages.domain import GeneratedVideo
from packages.ports.generated_video_repository import GeneratedVideoRepository
class ListGeneratedVideosUseCase:
def __init__(self, generated_video_repository: GeneratedVideoRepository):
self.generated_video_repository = generated_video_repository
def execute(self, project_id: str) -> list[GeneratedVideo]:
if not project_id.strip():
raise ValueError("project_id 不能为空")
return self.generated_video_repository.list_by_project(project_id.strip())
class GetGeneratedVideoUseCase:
def __init__(self, generated_video_repository: GeneratedVideoRepository):
self.generated_video_repository = generated_video_repository
def execute(self, video_id: str) -> GeneratedVideo | None:
return self.generated_video_repository.get(video_id)
class ListGeneratedVideosByTaskUseCase:
def __init__(self, generated_video_repository: GeneratedVideoRepository):
self.generated_video_repository = generated_video_repository
def execute(self, generation_task_id: str) -> list[GeneratedVideo]:
if not generation_task_id.strip():
raise ValueError("generation_task_id 不能为空")
return self.generated_video_repository.list_by_generation_task(generation_task_id.strip())