38 lines
2.3 KiB
SQL
38 lines
2.3 KiB
SQL
|
|
PRAGMA foreign_keys=ON;
|
|
CREATE TABLE metadata(key TEXT PRIMARY KEY,value_json TEXT NOT NULL);
|
|
CREATE TABLE titles(
|
|
id INTEGER PRIMARY KEY,type TEXT NOT NULL,title TEXT,description TEXT,
|
|
year INTEGER,imdb REAL,rating REAL,duration TEXT,classification TEXT,
|
|
image TEXT,cover TEXT,downloadas TEXT,playas TEXT,comments_enabled INTEGER,
|
|
raw_json TEXT NOT NULL);
|
|
CREATE INDEX titles_type ON titles(type);
|
|
CREATE INDEX titles_title ON titles(title COLLATE NOCASE);
|
|
CREATE INDEX titles_year ON titles(year);
|
|
CREATE TABLE genres(id INTEGER PRIMARY KEY,title TEXT);
|
|
CREATE TABLE countries(id INTEGER PRIMARY KEY,title TEXT,image TEXT);
|
|
CREATE TABLE title_genres(title_id INTEGER REFERENCES titles(id),genre_id INTEGER REFERENCES genres(id),PRIMARY KEY(title_id,genre_id));
|
|
CREATE TABLE title_countries(title_id INTEGER REFERENCES titles(id),country_id INTEGER REFERENCES countries(id),PRIMARY KEY(title_id,country_id));
|
|
CREATE TABLE movie_sources(
|
|
title_id INTEGER NOT NULL REFERENCES titles(id),source_index INTEGER NOT NULL,
|
|
source_id INTEGER,quality TEXT,media_type TEXT,url TEXT,raw_json TEXT NOT NULL,
|
|
PRIMARY KEY(title_id,source_index));
|
|
CREATE INDEX movie_sources_title ON movie_sources(title_id);
|
|
CREATE TABLE series_fetch_status(
|
|
series_id INTEGER PRIMARY KEY REFERENCES titles(id),status TEXT NOT NULL,
|
|
season_count INTEGER,source_url TEXT NOT NULL);
|
|
CREATE TABLE seasons(
|
|
series_id INTEGER NOT NULL REFERENCES titles(id),season_index INTEGER NOT NULL,
|
|
id INTEGER,title TEXT,raw_json TEXT NOT NULL,PRIMARY KEY(series_id,season_index));
|
|
CREATE TABLE episodes(
|
|
series_id INTEGER NOT NULL,season_index INTEGER NOT NULL,episode_index INTEGER NOT NULL,
|
|
id INTEGER,title TEXT,description TEXT,duration TEXT,downloadas TEXT,playas TEXT,raw_json TEXT NOT NULL,
|
|
PRIMARY KEY(series_id,season_index,episode_index),
|
|
FOREIGN KEY(series_id,season_index) REFERENCES seasons(series_id,season_index));
|
|
CREATE TABLE episode_sources(
|
|
series_id INTEGER NOT NULL,season_index INTEGER NOT NULL,episode_index INTEGER NOT NULL,source_index INTEGER NOT NULL,
|
|
source_id INTEGER,quality TEXT,media_type TEXT,url TEXT,raw_json TEXT NOT NULL,
|
|
PRIMARY KEY(series_id,season_index,episode_index,source_index),
|
|
FOREIGN KEY(series_id,season_index,episode_index) REFERENCES episodes(series_id,season_index,episode_index));
|
|
CREATE INDEX episode_sources_series ON episode_sources(series_id);
|