This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
CREATE TABLE escape_scenarios (
|
||||
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
||||
slug VARCHAR(150) NOT NULL UNIQUE,
|
||||
title VARCHAR(200) NOT NULL,
|
||||
difficulty VARCHAR(30) NOT NULL DEFAULT 'leicht',
|
||||
exam_scope VARCHAR(20) NOT NULL DEFAULT 'AP1',
|
||||
description VARCHAR(1200),
|
||||
time_limit_seconds INT NOT NULL DEFAULT 900,
|
||||
sort_order INT NOT NULL DEFAULT 0,
|
||||
active BOOLEAN NOT NULL DEFAULT TRUE,
|
||||
CONSTRAINT chk_escape_exam_scope CHECK (exam_scope IN ('AP1','AP2_FIAE','AP2_FISI','CROSS'))
|
||||
);
|
||||
CREATE TABLE escape_rooms (
|
||||
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
||||
scenario_id BIGINT NOT NULL REFERENCES escape_scenarios(id) ON DELETE CASCADE,
|
||||
title VARCHAR(200) NOT NULL, intro VARCHAR(2000), door_prompt VARCHAR(500),
|
||||
door_code VARCHAR(50) NOT NULL, success_text VARCHAR(1000), sort_order INT NOT NULL DEFAULT 0
|
||||
);
|
||||
CREATE TABLE escape_puzzles (
|
||||
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
||||
room_id BIGINT NOT NULL REFERENCES escape_rooms(id) ON DELETE CASCADE,
|
||||
puzzle_type VARCHAR(30) NOT NULL, prompt VARCHAR(500) NOT NULL,
|
||||
points INT NOT NULL DEFAULT 100, code_fragment VARCHAR(20) NOT NULL,
|
||||
sort_order INT NOT NULL DEFAULT 0, payload VARCHAR(8000) NOT NULL
|
||||
);
|
||||
CREATE INDEX idx_escape_rooms_scenario ON escape_rooms(scenario_id);
|
||||
CREATE INDEX idx_escape_puzzles_room ON escape_puzzles(room_id);
|
||||
Reference in New Issue
Block a user