-- ============================================================================ -- PIMS Nepal — Plain PHP + MySQL schema -- Import this FIRST, then database/seed.sql -- ============================================================================ SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; CREATE TABLE IF NOT EXISTS admin_users ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(120) NOT NULL, email VARCHAR(160) NOT NULL UNIQUE, password_hash VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS settings ( id INT UNSIGNED PRIMARY KEY DEFAULT 1, site_name VARCHAR(160) NOT NULL DEFAULT 'PIMS Nepal Pvt. Ltd.', tagline VARCHAR(255) DEFAULT NULL, phone VARCHAR(60) DEFAULT NULL, whatsapp VARCHAR(60) DEFAULT NULL, email VARCHAR(160) DEFAULT NULL, address VARCHAR(255) DEFAULT NULL, map_embed_url TEXT DEFAULT NULL, facebook_url VARCHAR(255) DEFAULT NULL, linkedin_url VARCHAR(255) DEFAULT NULL, instagram_url VARCHAR(255) DEFAULT NULL, youtube_url VARCHAR(255) DEFAULT NULL, logo_path VARCHAR(255) DEFAULT NULL, promo_strip_enabled TINYINT(1) NOT NULL DEFAULT 1, promo_strip_text VARCHAR(255) DEFAULT NULL, promo_strip_cta_text VARCHAR(120) DEFAULT NULL, promo_strip_cta_link VARCHAR(255) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS seo_pages ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, page_key VARCHAR(40) NOT NULL UNIQUE, title VARCHAR(200) NOT NULL, meta_description VARCHAR(500) DEFAULT NULL, meta_keywords VARCHAR(500) DEFAULT NULL, og_image_path VARCHAR(255) DEFAULT NULL, canonical_url VARCHAR(255) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS nav_links ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, label VARCHAR(80) NOT NULL, url VARCHAR(255) NOT NULL, sort_order INT UNSIGNED NOT NULL DEFAULT 0, open_in_new_tab TINYINT(1) NOT NULL DEFAULT 0, is_active TINYINT(1) NOT NULL DEFAULT 1 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS hero_slides ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, image_path VARCHAR(255) DEFAULT NULL, badge VARCHAR(120) DEFAULT NULL, title VARCHAR(200) NOT NULL, subtitle VARCHAR(500) DEFAULT NULL, cta_text VARCHAR(80) DEFAULT NULL, cta_link VARCHAR(255) DEFAULT NULL, offer VARCHAR(120) DEFAULT NULL, sort_order INT UNSIGNED NOT NULL DEFAULT 0, is_active TINYINT(1) NOT NULL DEFAULT 1 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS services ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, slug VARCHAR(120) NOT NULL UNIQUE, icon VARCHAR(60) DEFAULT NULL, title VARCHAR(160) NOT NULL, short_desc VARCHAR(500) DEFAULT NULL, description TEXT DEFAULT NULL, banner_gradient VARCHAR(160) DEFAULT NULL, features TEXT DEFAULT NULL COMMENT 'JSON array of strings', faqs TEXT DEFAULT NULL COMMENT 'JSON array of {q,a}', sort_order INT UNSIGNED NOT NULL DEFAULT 0, is_active TINYINT(1) NOT NULL DEFAULT 1 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS downloads ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, category VARCHAR(80) NOT NULL, title VARCHAR(200) NOT NULL, version VARCHAR(40) DEFAULT NULL, release_date DATE DEFAULT NULL, file_size VARCHAR(40) DEFAULT NULL, download_count INT UNSIGNED NOT NULL DEFAULT 0, file_path VARCHAR(255) DEFAULT NULL, is_active TINYINT(1) NOT NULL DEFAULT 1 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS testimonials ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(120) NOT NULL, company VARCHAR(160) DEFAULT NULL, message TEXT NOT NULL, rating TINYINT UNSIGNED NOT NULL DEFAULT 5, sort_order INT UNSIGNED NOT NULL DEFAULT 0, is_active TINYINT(1) NOT NULL DEFAULT 1 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS industries ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(120) NOT NULL, icon VARCHAR(60) DEFAULT NULL, sort_order INT UNSIGNED NOT NULL DEFAULT 0, is_active TINYINT(1) NOT NULL DEFAULT 1 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS gallery_items ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, image_path VARCHAR(255) NOT NULL, caption VARCHAR(200) DEFAULT NULL, sort_order INT UNSIGNED NOT NULL DEFAULT 0, is_active TINYINT(1) NOT NULL DEFAULT 1 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS team_members ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(120) NOT NULL, role VARCHAR(120) DEFAULT NULL, photo_path VARCHAR(255) DEFAULT NULL, initials VARCHAR(4) DEFAULT NULL, sort_order INT UNSIGNED NOT NULL DEFAULT 0, is_active TINYINT(1) NOT NULL DEFAULT 1 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS tally_features ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, icon VARCHAR(60) DEFAULT NULL, tag VARCHAR(60) DEFAULT NULL, title VARCHAR(160) NOT NULL, description TEXT DEFAULT NULL, banner_gradient VARCHAR(160) DEFAULT NULL, sort_order INT UNSIGNED NOT NULL DEFAULT 0, is_active TINYINT(1) NOT NULL DEFAULT 1 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS about_content ( id INT UNSIGNED PRIMARY KEY DEFAULT 1, heading VARCHAR(200) DEFAULT NULL, intro TEXT DEFAULT NULL, mission TEXT DEFAULT NULL, vision TEXT DEFAULT NULL, value_points TEXT DEFAULT NULL COMMENT 'JSON array of strings', stats TEXT DEFAULT NULL COMMENT 'JSON array of {label,value}' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS contact_messages ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(120) NOT NULL, email VARCHAR(160) NOT NULL, phone VARCHAR(60) DEFAULT NULL, subject VARCHAR(200) DEFAULT NULL, message TEXT NOT NULL, is_read TINYINT(1) NOT NULL DEFAULT 0, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; SET FOREIGN_KEY_CHECKS = 1;