CI / lint (push) Canceled after 0s
CI / typecheck (push) Canceled after 0s
CI / unit-tests (push) Canceled after 0s
CI / integration-tests (push) Canceled after 0s
CI / container-build (push) Canceled after 0s
CI / dependency-audit (push) Canceled after 0s
New TMDb integration end to end: append_to_response "watch/providers", normalizer parsing grouped by country/monetization type, a WatchProvider catalog entry (external-id keyed, same get_or_create pattern as Company/ Collection/Person) + polymorphic WatchProviderOffering table (new migration 0002), ingestion write (including provider logos via the existing Artwork table), and API exposure -- embedded on movie/series detail plus a dedicated /watch-providers sub-route, shaped to mirror TMDb's own response for easy porting. Note: this data comes from JustWatch via TMDb and carries its own attribution requirement separate from TMDb's general one -- flagged in docs/api.md, must be satisfied before showing this in the frontend. Co-Authored-By: Claude Sonnet 5 <[email protected]>
86 lines
2.0 KiB
Python
86 lines
2.0 KiB
Python
"""Shared enumerations used across Aurora Core models."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import enum
|
|
|
|
|
|
class MovieStatus(enum.StrEnum):
|
|
RUMORED = "rumored"
|
|
PLANNED = "planned"
|
|
IN_PRODUCTION = "in_production"
|
|
POST_PRODUCTION = "post_production"
|
|
RELEASED = "released"
|
|
CANCELED = "canceled"
|
|
|
|
|
|
class SeriesStatus(enum.StrEnum):
|
|
PLANNED = "planned"
|
|
PILOT = "pilot"
|
|
IN_PRODUCTION = "in_production"
|
|
RETURNING_SERIES = "returning_series"
|
|
ENDED = "ended"
|
|
CANCELED = "canceled"
|
|
|
|
|
|
class ArtworkType(enum.StrEnum):
|
|
POSTER = "poster"
|
|
BACKDROP = "backdrop"
|
|
LOGO = "logo"
|
|
PROFILE = "profile"
|
|
STILL = "still"
|
|
BANNER = "banner"
|
|
THUMBNAIL = "thumbnail"
|
|
|
|
|
|
class VideoType(enum.StrEnum):
|
|
TRAILER = "trailer"
|
|
TEASER = "teaser"
|
|
CLIP = "clip"
|
|
FEATURETTE = "featurette"
|
|
BEHIND_THE_SCENES = "behind_the_scenes"
|
|
INTERVIEW = "interview"
|
|
OTHER = "other"
|
|
|
|
|
|
class CompanyType(enum.StrEnum):
|
|
PRODUCTION_COMPANY = "production_company"
|
|
NETWORK = "network"
|
|
STUDIO = "studio"
|
|
DISTRIBUTOR = "distributor"
|
|
|
|
|
|
class EntityType(enum.StrEnum):
|
|
"""Kinds of entity that polymorphic tables (credits, artwork, videos,
|
|
external IDs, release dates, provider records) can attach to."""
|
|
|
|
MOVIE = "movie"
|
|
SERIES = "series"
|
|
SEASON = "season"
|
|
EPISODE = "episode"
|
|
PERSON = "person"
|
|
COMPANY = "company"
|
|
COLLECTION = "collection"
|
|
WATCH_PROVIDER = "watch_provider"
|
|
|
|
|
|
class IngestionJobStatus(enum.StrEnum):
|
|
PENDING = "pending"
|
|
RUNNING = "running"
|
|
SUCCEEDED = "succeeded"
|
|
FAILED = "failed"
|
|
RETRYING = "retrying"
|
|
|
|
|
|
class MatchConfidence(enum.StrEnum):
|
|
"""How confident the entity matcher was when linking a provider record
|
|
to an Aurora entity. Anything below HIGH should be reviewable rather
|
|
than silently merged — see docs/architecture.md."""
|
|
|
|
EXACT = "exact"
|
|
HIGH = "high"
|
|
MEDIUM = "medium"
|
|
LOW = "low"
|
|
AMBIGUOUS = "ambiguous"
|
|
NEW = "new"
|