Hindimovieslink Site
-- Movies CREATE TABLE movies ( id BIGSERIAL PRIMARY KEY, title TEXT NOT NULL, year INT, description TEXT, poster_url TEXT, imdb_id TEXT UNIQUE, runtime_minutes INT, language TEXT, genre TEXT[], director TEXT, cast TEXT[], rating_imdb NUMERIC(2,1), rating_user_avg NUMERIC(2,1) DEFAULT 0, rating_user_cnt INT DEFAULT 0, created_at TIMESTAMP DEFAULT now() );
app = FastAPI(title="HindimoviesLink API", version="0.1.0") hindimovieslink
class Config: orm_mode = True
class LinkOut(BaseModel): platform: PlatformOut url: str price_usd: Optional[float] is_free: bool -- Movies CREATE TABLE movies ( id BIGSERIAL
-- User Ratings CREATE TABLE user_ratings ( id BIGSERIAL PRIMARY KEY, user_id BIGINT REFERENCES users(id) ON DELETE CASCADE, movie_id BIGINT REFERENCES movies(id) ON DELETE CASCADE, rating SMALLINT CHECK (rating BETWEEN 1 AND 5), review_text TEXT, created_at TIMESTAMP DEFAULT now(), UNIQUE(user_id, movie_id) ); title TEXT NOT NULL
-- OTT Links (one movie can have many platforms) CREATE TABLE platforms ( id BIGSERIAL PRIMARY KEY, name TEXT NOT NULL, logo_url TEXT, affiliate_template TEXT -- e.g. "https://partner.com/checkout?movie=imdb_id" );
class MovieDetail(MovieOut): description: Optional[str] genre: List[str] = [] director: Optional[str] cast: List[str] = [] links: List[LinkOut] = []