Files

27 lines
1.1 KiB
SQL

CREATE TABLE IF NOT EXISTS rec_exam_attempt (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
participant_id INT NOT NULL,
phase TINYINT UNSIGNED NOT NULL,
questions_json MEDIUMTEXT NOT NULL,
answers_json MEDIUMTEXT NOT NULL,
deadline BIGINT NOT NULL,
active_token CHAR(64) NOT NULL,
status VARCHAR(20) NOT NULL DEFAULT 'active',
started_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
submitted_at DATETIME NULL,
UNIQUE KEY participant_phase (participant_id, phase)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS rec_exam_event (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
attempt_id BIGINT UNSIGNED NOT NULL,
event_type VARCHAR(40) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
KEY attempt_events (attempt_id, id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS rec_candidate_login_guard (
email_hash CHAR(64) NOT NULL PRIMARY KEY,
failures INT NOT NULL DEFAULT 0,
blocked_until BIGINT NOT NULL DEFAULT 0,
window_started BIGINT NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;