27 lines
1.1 KiB
SQL
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;
|