-- Create API Keys Table CREATE TABLE api_keys ( key_id INT PRIMARY KEY AUTO_INCREMENT, user_id INT NOT NULL, api_key VARCHAR(64) NOT NULL UNIQUE, name VARCHAR(255) NOT NULL, description TEXT, is_active BOOLEAN DEFAULT TRUE, last_used TIMESTAMP NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES users(user_id) ); -- Create API Rate Limiting Table CREATE TABLE api_rate_limits ( rate_limit_id INT PRIMARY KEY AUTO_INCREMENT, api_key VARCHAR(64) NOT NULL, request_count INT DEFAULT 1, window_start TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (api_key) REFERENCES api_keys(api_key) ); -- Create Indexes CREATE INDEX idx_api_key_active ON api_keys(api_key, is_active); CREATE INDEX idx_rate_limit_window ON api_rate_limits(api_key, window_start);