diff --git a/clue_hunt.db-journal b/clue_hunt.db-journal new file mode 100644 index 0000000..54c1c25 Binary files /dev/null and b/clue_hunt.db-journal differ diff --git a/initialise-databse.sql b/initialise-databse.sql index 9c610fe..f2a7231 100644 --- a/initialise-databse.sql +++ b/initialise-databse.sql @@ -1,3 +1,77 @@ -INSERT INTO users (username, password, role) VALUES ('admin', 'hashed_password', 'admin'); +-- 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 +); + +-- Execute this in your database: +CREATE TABLE IF NOT EXISTS hunts ( + id INT AUTO_INCREMENT PRIMARY KEY, + active BOOLEAN DEFAULT FALSE, + start_time DATETIME DEFAULT NULL, + end_time DATETIME DEFAULT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +-- Insert a default hunt row if none exists: +INSERT INTO hunts (active) +SELECT FALSE +WHERE NOT EXISTS (SELECT 1 FROM hunts LIMIT 1); + + + +-- 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 clues (description, team_id) VALUES ('Find the red door', 1); \ No newline at end of file +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); +