from __future__ import annotations from typing import Protocol from packages.domain import GeneratedVideo class GeneratedVideoRepository(Protocol): def create(self, video: GeneratedVideo) -> GeneratedVideo: ... def get(self, video_id: str) -> GeneratedVideo | None: ... def list_by_project(self, project_id: str) -> list[GeneratedVideo]: ... def list_by_generation_task(self, generation_task_id: str) -> list[GeneratedVideo]: ... def list_by_batch(self, batch_id: str) -> list[GeneratedVideo]: ...