63 lines
1.5 KiB
SQL
63 lines
1.5 KiB
SQL
-- migrations/001_initial_schema.up.sql
|
|
|
|
CREATE TABLE rooms (
|
|
id TEXT PRIMARY KEY,
|
|
created_at TIMESTAMP NOT NULL,
|
|
creator_name TEXT NOT NULL,
|
|
team_turn TEXT,
|
|
this_turn_limit INTEGER,
|
|
opened_this_turn INTEGER,
|
|
blue_counter INTEGER,
|
|
red_counter INTEGER,
|
|
red_turn BOOLEAN,
|
|
mime_done BOOLEAN,
|
|
is_public BOOLEAN,
|
|
is_running BOOLEAN,
|
|
language TEXT,
|
|
round_time INTEGER,
|
|
is_over BOOLEAN,
|
|
team_won TEXT,
|
|
room_pass TEXT
|
|
);
|
|
|
|
CREATE TABLE players (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
room_id TEXT NOT NULL,
|
|
username TEXT NOT NULL,
|
|
team TEXT, -- 'red' or 'blue'
|
|
role TEXT, -- 'guesser' or 'mime'
|
|
is_bot BOOLEAN DEFAULT FALSE,
|
|
FOREIGN KEY (room_id) REFERENCES rooms(id)
|
|
);
|
|
|
|
CREATE TABLE word_cards (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
room_id TEXT NOT NULL,
|
|
word TEXT NOT NULL,
|
|
color TEXT,
|
|
revealed BOOLEAN DEFAULT FALSE,
|
|
mime_view BOOLEAN DEFAULT FALSE,
|
|
FOREIGN KEY (room_id) REFERENCES rooms(id)
|
|
);
|
|
|
|
CREATE TABLE card_marks (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
card_id INTEGER NOT NULL,
|
|
username TEXT NOT NULL,
|
|
active BOOLEAN DEFAULT TRUE,
|
|
FOREIGN KEY (card_id) REFERENCES word_cards(id)
|
|
);
|
|
|
|
CREATE TABLE actions (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
room_id TEXT NOT NULL,
|
|
actor TEXT NOT NULL,
|
|
actor_color TEXT,
|
|
action_type TEXT NOT NULL,
|
|
word TEXT,
|
|
word_color TEXT,
|
|
number_associated TEXT, -- for clues
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (room_id) REFERENCES rooms(id)
|
|
);
|