CREATE TABLE messages ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, message TEXT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, signature TEXT, is_encrypted BOOLEAN DEFAULT FALSE, INDEX idx_created_at (created_at) ); CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL, pgp_key TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, is_moderator TINYINT(1) NOT NULL DEFAULT 0, login_attempts INT NOT NULL DEFAULT 0, last_attempt TIMESTAMP NULL, is_blocked TINYINT(1) NOT NULL DEFAULT 0, block_reason TEXT, INDEX idx_username (username) ); CREATE TABLE registrations ( id INT AUTO_INCREMENT PRIMARY KEY, ip VARCHAR(45) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, INDEX idx_ip_created (ip, created_at), INDEX idx_created_at (created_at) );