-- Database schema for nnaam.com/client -- Run this in the site's MySQL database before enabling the PHP pages. CREATE TABLE clients ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(160) NOT NULL, slug VARCHAR(180) NOT NULL, description TEXT NULL, phone VARCHAR(40) NULL, email VARCHAR(254) NULL, address VARCHAR(255) NULL, maps_url VARCHAR(2048) NULL, facebook_url VARCHAR(2048) NULL, instagram_url VARCHAR(2048) NULL, tiktok_url VARCHAR(2048) NULL, whatsapp_url VARCHAR(2048) NULL, logo_path VARCHAR(500) NULL, is_active TINYINT(1) NOT NULL DEFAULT 1, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY uq_clients_slug (slug), KEY idx_clients_active (is_active) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE client_access_tokens ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, client_id INT UNSIGNED NOT NULL, token_hash CHAR(64) NOT NULL, expires_at DATETIME NOT NULL, revoked_at DATETIME NULL, last_used_at DATETIME NULL, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY uq_token_hash (token_hash), KEY idx_token_client (client_id), KEY idx_token_validity (expires_at, revoked_at), CONSTRAINT fk_token_client FOREIGN KEY (client_id) REFERENCES clients(id) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE admin_users ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, email VARCHAR(254) NOT NULL, password_hash VARCHAR(255) NOT NULL, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY uq_admin_email (email) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE audit_logs ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, actor_type ENUM('admin', 'client') NOT NULL, actor_id BIGINT UNSIGNED NULL, action VARCHAR(80) NOT NULL, client_id INT UNSIGNED NULL, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_audit_client (client_id), KEY idx_audit_created (created_at), CONSTRAINT fk_audit_client FOREIGN KEY (client_id) REFERENCES clients(id) ON DELETE SET NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;