11from datetime import datetime , timezone
2+ from typing import Literal
23
34from fastapi import APIRouter , HTTPException , Request
45from loguru import logger
@@ -23,6 +24,11 @@ class TokenRequest(BaseModel):
2324 poster_rating : PosterRatingConfig | None = Field (default = None , description = "Poster rating provider configuration" )
2425 excluded_movie_genres : list [str ] = Field (default_factory = list , description = "List of movie genre IDs to exclude" )
2526 excluded_series_genres : list [str ] = Field (default_factory = list , description = "List of series genre IDs to exclude" )
27+ popularity : Literal ["mainstream" , "balanced" , "gems" , "all" ] = Field (
28+ default = "balanced" , description = "Popularity for TMDB API"
29+ )
30+ year_min : int = Field (default = 2010 , description = "Minimum release year for TMDB API" )
31+ year_max : int = Field (default = 2025 , description = "Maximum release year for TMDB API" )
2632
2733
2834class TokenResponse (BaseModel ):
@@ -85,6 +91,9 @@ async def create_token(payload: TokenRequest, request: Request) -> TokenResponse
8591 poster_rating = poster_rating ,
8692 excluded_movie_genres = payload .excluded_movie_genres ,
8793 excluded_series_genres = payload .excluded_series_genres ,
94+ year_min = payload .year_min ,
95+ year_max = payload .year_max ,
96+ popularity = payload .popularity ,
8897 )
8998
9099 # 4. Prepare payload to store
0 commit comments