-- Add email verification field to users table if it doesn't exist
ALTER TABLE users
ADD COLUMN IF NOT EXISTS email_verified TINYINT(1) DEFAULT 0,
ADD COLUMN IF NOT EXISTS status ENUM('pending', 'active', 'suspended', 'deleted') DEFAULT 'pending';
-- Create table for email verification tokens
CREATE TABLE IF NOT EXISTS user_verifications (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
token VARCHAR(255) NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
expires_at DATETIME,
INDEX (user_id),
INDEX (token),
UNIQUE (user_id, token)
);
-- Create table for password reset tokens
CREATE TABLE IF NOT EXISTS password_resets (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
token VARCHAR(255) NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
expires_at DATETIME,
INDEX (user_id),
INDEX (token),
UNIQUE (user_id, token)
);
-- Create table for contact form messages if it doesn't exist
CREATE TABLE IF NOT EXISTS contact_messages (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL,
phone VARCHAR(20),
subject VARCHAR(200) NOT NULL,
message TEXT NOT NULL,
status ENUM('new', 'read', 'replied') DEFAULT 'new',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME ON UPDATE CURRENT_TIMESTAMP
);