ugc-scaper/archiver/migrations/20250414181350_teams.sql
2025-04-15 21:45:24 +02:00

82 lines
No EOL
2 KiB
SQL

CREATE TYPE region AS ENUM ('europe', 'north-america', 'south-america', 'asia', 'australia');
CREATE TYPE game_mode AS ENUM ('highlander', 'eights', 'sixes', 'fours', 'ultiduo');
CREATE TYPE membership_role AS ENUM ('leader', 'member');
CREATE TABLE teams
(
id INTEGER NOT NULL,
tag VARCHAR NOT NULL,
name VARCHAR NOT NULL,
image VARCHAR,
format game_mode NOT NULL,
region region,
timezone VARCHAR,
steam_group VARCHAR,
division VARCHAR NOT NULL,
description VARCHAR NOT NULL
);
CREATE UNIQUE INDEX teams_id_idx
ON teams USING BTREE (id);
CREATE INDEX teams_format_idx
ON teams USING BTREE (format);
CREATE INDEX teams_region_idx
ON teams USING BTREE (region);
CREATE INDEX teams_division_idx
ON teams USING BTREE (division);
CREATE INDEX teams_timezone_idx
ON teams USING BTREE (timezone);
CREATE TABLE titles
(
team_id INTEGER NOT NULL,
title VARCHAR NOT NULL
);
CREATE INDEX titles_team_id_idx
ON titles USING BTREE (team_id);
CREATE TABLE team_name_changes
(
team_id INTEGER NOT NULL,
from_tag VARCHAR NOT NULL,
from_name VARCHAR NOT NULL,
to_tag VARCHAR NOT NULL,
to_name VARCHAR NOT NULL,
date DATE
);
CREATE INDEX team_name_changes_team_id_idx
ON team_name_changes USING BTREE (team_id);
CREATE TABLE records
(
team_id INTEGER NOT NULL,
season INTEGER NOT NULL,
wins INTEGER NOT NULL,
losses INTEGER NOT NULL
);
CREATE INDEX records_team_id_idx
ON records USING BTREE (team_id);
CREATE INDEX records_season_idx
ON records USING BTREE (season);
CREATE TABLE memberships
(
team_id INTEGER NOT NULL,
steam_id BIGINT NOT NULL,
role membership_role NOT NULL,
since TIMESTAMP WITH TIME ZONE NOT NULL
);
CREATE INDEX memberships_team_id_idx
ON memberships USING BTREE (team_id);
CREATE INDEX memberships_steam_id_idx
ON memberships USING BTREE (steam_id);