2026-09-04 17:34:03 -05:00
|
|
|
"""Collection/franchise response schemas."""
|
|
|
|
|
|
|
|
|
|
from __future__ import annotations
|
|
|
|
|
|
|
|
|
|
from datetime import datetime
|
|
|
|
|
|
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
2026-09-05 20:08:26 -05:00
|
|
|
from app.schemas.common import CollectionBriefOut
|
2026-09-04 17:34:03 -05:00
|
|
|
from app.schemas.movie import MovieSummaryOut
|
|
|
|
|
from app.schemas.tv import SeriesSummaryOut
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CollectionDetailOut(BaseModel):
|
|
|
|
|
id: str
|
|
|
|
|
type: str = "collection"
|
|
|
|
|
name: str
|
|
|
|
|
overview: str | None = None
|
|
|
|
|
poster_path: str | None = None
|
|
|
|
|
backdrop_path: str | None = None
|
|
|
|
|
movies: list[MovieSummaryOut] = []
|
|
|
|
|
series: list[SeriesSummaryOut] = []
|
|
|
|
|
|
|
|
|
|
created_at: datetime
|
|
|
|
|
updated_at: datetime
|
2026-09-05 20:08:26 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class CollectionListOut(BaseModel):
|
|
|
|
|
page: int
|
|
|
|
|
page_size: int
|
|
|
|
|
total_results: int
|
|
|
|
|
total_pages: int
|
|
|
|
|
results: list[CollectionBriefOut] = []
|