94 lines
2.1 KiB
MySQL
94 lines
2.1 KiB
MySQL
|
-- Your SQL goes here
|
||
|
/**
|
||
|
Store some information on the application.
|
||
|
*/
|
||
|
CREATE TABLE IF NOT EXISTS properties
|
||
|
(
|
||
|
id int GENERATED ALWAYS AS IDENTITY,
|
||
|
app_key text NOT NULL,
|
||
|
app_value text NOT NULL,
|
||
|
PRIMARY KEY (id),
|
||
|
UNIQUE (app_key)
|
||
|
);
|
||
|
|
||
|
/**
|
||
|
Film
|
||
|
*/
|
||
|
CREATE TABLE IF NOT EXISTS films
|
||
|
(
|
||
|
id int GENERATED ALWAYS AS IDENTITY,
|
||
|
imdb_id varchar(10) NOT NULL,
|
||
|
title text NOT NULL,
|
||
|
year int,
|
||
|
film_type text NOT NULL,
|
||
|
season int,
|
||
|
episode int,
|
||
|
poster_link text,
|
||
|
PRIMARY KEY (id),
|
||
|
UNIQUE (imdb_id)
|
||
|
);
|
||
|
|
||
|
/**
|
||
|
Available languages
|
||
|
*/
|
||
|
CREATE TABLE IF NOT EXISTS languages
|
||
|
(
|
||
|
id int GENERATED ALWAYS AS IDENTITY,
|
||
|
alpha3_b char(3) NOT NULL,
|
||
|
alpha3_t char(3),
|
||
|
alpha2 char(2),
|
||
|
english text NOT NULL,
|
||
|
french text NOT NULL,
|
||
|
PRIMARY KEY (id),
|
||
|
UNIQUE (alpha3_b)
|
||
|
);
|
||
|
|
||
|
/**
|
||
|
Subtitles
|
||
|
*/
|
||
|
CREATE TABLE IF NOT EXISTS subtitles
|
||
|
(
|
||
|
id int GENERATED ALWAYS AS IDENTITY,
|
||
|
film_id int NOT NULL,
|
||
|
language_id int NOT NULL,
|
||
|
importer_id bigint,
|
||
|
importer_guild_id bigint,
|
||
|
imported_date timestamptz NOT NULL DEFAULT now(),
|
||
|
UNIQUE (film_id, language_id),
|
||
|
PRIMARY KEY (id),
|
||
|
FOREIGN KEY (film_id)
|
||
|
REFERENCES films (id),
|
||
|
FOREIGN KEY (language_id)
|
||
|
REFERENCES languages (id)
|
||
|
);
|
||
|
|
||
|
/**
|
||
|
Subtitle lines
|
||
|
*/
|
||
|
CREATE TABLE IF NOT EXISTS subtitle_lines
|
||
|
(
|
||
|
id int GENERATED ALWAYS AS IDENTITY,
|
||
|
subtitle_id int NOT NULL,
|
||
|
dialog_line text NOT NULL,
|
||
|
time_code text NOT NULL,
|
||
|
PRIMARY KEY (id),
|
||
|
FOREIGN KEY (subtitle_id)
|
||
|
REFERENCES subtitles (id)
|
||
|
);
|
||
|
|
||
|
/**
|
||
|
User configurations
|
||
|
*/
|
||
|
CREATE TABLE IF NOT EXISTS user_config
|
||
|
(
|
||
|
id int GENERATED ALWAYS AS IDENTITY,
|
||
|
user_id bigint NOT NULL,
|
||
|
guild_id bigint DEFAULT NULL,
|
||
|
default_language_id int DEFAULT NULL,
|
||
|
PRIMARY KEY (id),
|
||
|
UNIQUE (user_id, guild_id),
|
||
|
FOREIGN KEY (default_language_id)
|
||
|
REFERENCES languages (id)
|
||
|
);
|
||
|
|