-- Schema for clue_hunt.db -- Drop tables if they exist DROP TABLE IF EXISTS clues; DROP TABLE IF EXISTS users; DROP TABLE IF EXISTS teams; DROP TABLE IF EXISTS game_settings; -- Users table CREATE TABLE users ( id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT UNIQUE NOT NULL, password TEXT NOT NULL, role TEXT NOT NULL DEFAULT 'user', team_id INTEGER, -- Ensure this column exists created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (team_id) REFERENCES teams(id) ); -- Teams table CREATE TABLE teams ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, code TEXT UNIQUE NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- Clues table CREATE TABLE clues ( id INTEGER PRIMARY KEY AUTOINCREMENT, description TEXT NOT NULL, team_id INTEGER NOT NULL, found BOOLEAN DEFAULT FALSE, found_at TIMESTAMP, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (team_id) REFERENCES teams(id) ); -- Game settings table CREATE TABLE game_settings ( id INTEGER PRIMARY KEY, hunt_active BOOLEAN DEFAULT FALSE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- Insert initial admin user INSERT INTO users (username, password, role) VALUES ('admin', '$2a$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy', 'admin'); -- Password is 'password123' - change this in production! -- Insert sample teams INSERT INTO teams (name, code) VALUES ('Team Alpha', 'ALPHA123'); INSERT INTO teams (name, code) VALUES ('Team Beta', 'BETA456'); INSERT INTO teams (name, code) VALUES ('Team Gamma', 'GAMMA789'); -- Insert sample clues for Team Alpha INSERT INTO clues (description, team_id) VALUES ('Find the red door', 1); INSERT INTO clues (description, team_id) VALUES ('Look under the bridge', 1); INSERT INTO clues (description, team_id) VALUES ('Check the library', 1);