Hindimovieslink Extra Quality May 2026
Hindimovieslink Extra Quality May 2026
app = FastAPI(title="HindimoviesLink API", version="0.1.0")
class RatingIn(BaseModel): rating: int # 1‑5 review_text: Optional[str] = None
CREATE TABLE movie_links ( id BIGSERIAL PRIMARY KEY, movie_id BIGINT REFERENCES movies(id) ON DELETE CASCADE, platform_id BIGINT REFERENCES platforms(id), url TEXT NOT NULL, price_usd NUMERIC(5,2), price_local NUMERIC(5,2), currency TEXT, is_free BOOLEAN DEFAULT FALSE, last_checked TIMESTAMP, UNIQUE(movie_id, platform_id) ); hindimovieslink
-- Watch‑Later / Favorites CREATE TABLE user_lists ( id BIGSERIAL PRIMARY KEY, user_id BIGINT REFERENCES users(id) ON DELETE CASCADE, movie_id BIGINT REFERENCES movies(id) ON DELETE CASCADE, list_type TEXT CHECK (list_type IN ('watch_later','favorites')), created_at TIMESTAMP DEFAULT now(), UNIQUE(user_id, movie_id, list_type) ); Add pg_trgm indexes for fuzzy title search:
CREATE EXTENSION IF NOT EXISTS pg_trgm; CREATE INDEX idx_movies_title_trgm ON movies USING gin (title gin_trgm_ops); from fastapi import FastAPI, Depends, HTTPException, Query from pydantic import BaseModel from typing import List, Optional from sqlalchemy.orm import Session import models, crud, schemas, auth app = FastAPI(title="HindimoviesLink API", version="0
# ------------------------------------------------- # 4️⃣ Watch‑Later List # ------------------------------------------------- @app.post("/me/watchlist", response_model=schemas.WatchlistItemOut) def add_to_watchlist( payload: schemas.WatchlistIn, user: models.User = Depends(auth.get_current_user), db: Session = Depends(auth.get_db) ): return crud.add_to_watchlist(db, user.id, payload.movie_id)
class WatchlistIn(BaseModel): movie_id: int app = FastAPI(title="HindimoviesLink API"
# ------------------------------------------------- # 3️⃣ Rate / Review (Auth required) # ------------------------------------------------- @app.post("/movies/movie_id/rating", response_model=schemas.RatingOut) def rate_movie( movie_id: int, payload: schemas.RatingIn, user: models.User = Depends(auth.get_current_user), db: Session = Depends(auth.get_db) ): return crud.upsert_rating(db, user.id, movie_id, payload)




