2f64fea7f0
CI/CD Pipeline / Check if frontend-only change (push) Has been skipped
CI Build & Deploy Pipeline / Build Staging Web Image (push) Successful in 3m34s
CI Build & Deploy Pipeline / Build Production API Image (push) Has been skipped
CI Build & Deploy Pipeline / Build Production Web Image (push) Has been skipped
CI Build & Deploy Pipeline / Build Production Worker Image (push) Has been skipped
CI Build & Deploy Pipeline / Deploy Production (push) Has been skipped
CI Build & Deploy Pipeline / Production Browser E2E (push) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 6m51s
CI/CD Pipeline / Validate Code Quality And Tests (push) Successful in 7m14s
CI/CD Pipeline / Frontend Lint (push) Successful in 7m49s
CI/CD Pipeline / Unit Tests (push) Successful in 8m29s
CI Build & Deploy Pipeline / Build Staging API Image (push) Successful in 9m2s
CI/CD Pipeline / Integration Tests (push) Successful in 2m5s
CI Build & Deploy Pipeline / Build Staging Worker Image (push) Successful in 10m1s
CI Build & Deploy Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 47s
CI Build & Deploy Pipeline / Staging API Integration Tests (push) Successful in 4m39s
CI Build & Deploy Pipeline / Staging E2E Tests (push) Failing after 5m12s
Co-authored-by: xiaoxia <dev@xiaoxiajianji.com> Co-committed-by: xiaoxia <dev@xiaoxiajianji.com>
39 lines
1.2 KiB
Python
Executable File
39 lines
1.2 KiB
Python
Executable File
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]: ...
|
|
|
|
def list_paginated(
|
|
self,
|
|
*,
|
|
user_id: str | None = None,
|
|
project_id: str | None = None,
|
|
status: str | None = None,
|
|
review_status: str | None = None,
|
|
page: int = 1,
|
|
page_size: int = 20,
|
|
) -> tuple[list[GeneratedVideo], int]: ...
|
|
|
|
def update_review_status(self, video_id: str, review_status: str) -> GeneratedVideo | None: ...
|
|
|
|
def update_thumbnail(self, video_id: str, thumbnail_url: str) -> bool: ...
|
|
|
|
def get_by_ids(self, video_ids: list[str]) -> list[GeneratedVideo]: ...
|
|
|
|
def delete(self, video_id: str) -> bool: ...
|
|
|
|
def batch_delete(self, video_ids: list[str]) -> int: ...
|