# ------------------------------------------------- # 1️⃣ Search Movies # ------------------------------------------------- @app.get("/search", response_model=List[schemas.MovieOut]) def search_movies( q: str = Query(..., description="Search term"), genre: Optional[str] = None, year: Optional[int] = None, limit: int = 20, db: Session = Depends(auth.get_db) ): """ Full‑text / trigram fuzzy search on title + optional filters. """ return crud.search_movies(db, q, genre, year, limit)
class WatchlistItemOut(BaseModel): movie_id: int added_at: datetime.datetime hindimovieslink
class RatingOut(BaseModel): average: float count: int genre: Optional[str] = None
class RatingIn(BaseModel): rating: int # 1‑5 review_text: Optional[str] = None year: Optional[int] = None
class Config: orm_mode = True
class PlatformOut(BaseModel): name: str logo_url: Optional[str]