getConnection(); // Создаем таблицы, если они не существуют $tables = [ 'users' => " CREATE TABLE IF NOT EXISTS users ( user_id SERIAL PRIMARY KEY, email VARCHAR(255) UNIQUE NOT NULL, password_hash VARCHAR(255) NOT NULL, full_name VARCHAR(100) NOT NULL, phone VARCHAR(20), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, is_active BOOLEAN DEFAULT TRUE, is_admin BOOLEAN DEFAULT FALSE ) ", 'categories' => " CREATE TABLE IF NOT EXISTS categories ( category_id SERIAL PRIMARY KEY, name VARCHAR(100) NOT NULL, slug VARCHAR(100) UNIQUE NOT NULL, parent_id INTEGER REFERENCES categories(category_id), description TEXT, sort_order INTEGER DEFAULT 0, is_active BOOLEAN DEFAULT TRUE ) ", 'products' => " CREATE TABLE IF NOT EXISTS products ( product_id SERIAL PRIMARY KEY, category_id INTEGER REFERENCES categories(category_id), name VARCHAR(200) NOT NULL, slug VARCHAR(200) UNIQUE NOT NULL, description TEXT, price DECIMAL(10, 2) NOT NULL, old_price DECIMAL(10, 2), sku VARCHAR(50) UNIQUE, stock_quantity INTEGER DEFAULT 0, is_available BOOLEAN DEFAULT TRUE, is_featured BOOLEAN DEFAULT FALSE, rating DECIMAL(3, 2) DEFAULT 0, review_count INTEGER DEFAULT 0, image_url VARCHAR(500), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) " ]; foreach ($tables_to_create as $table_name => $sql) { try { $db->exec($sql); echo "Таблица '$table_name' создана/проверена
"; } catch (PDOException $e) { echo "Ошибка создания таблицы '$table_name': " . $e->getMessage() . "
"; } } // Добавляем тестовые данные // Проверяем, есть ли уже категории $check_categories = $db->query("SELECT COUNT(*) FROM categories")->fetchColumn(); if ($check_categories == 0) { // Добавляем категории $categories = [ ['Мягкая мебель', 'myagkaya-mebel', NULL, 'Диваны, кресла, пуфы'], ['Диваны', 'divany', 1, 'Прямые и угловые диваны'], ['Кресла', 'kresla', 1, 'Кресла для гостиной и офиса'], ['Спальня', 'spalnya', NULL, 'Кровати, тумбы, комоды'], ['Кровати', 'krovati', 4, 'Односпальные и двуспальные кровати'] ]; foreach ($categories as $category) { $stmt = $db->prepare("INSERT INTO categories (name, slug, parent_id, description) VALUES (?, ?, ?, ?)"); $stmt->execute($category); } echo "Добавлены категории
"; } // Проверяем, есть ли уже товары $check_products = $db->query("SELECT COUNT(*) FROM products")->fetchColumn(); if ($check_products == 0) { // Добавляем товары $products = [ [2, 'Диван VELVET', 'divan-velvet', 'Прямой диван с тканевой обивкой', 45999, 54999, 'DIV-VEL-001', 10], [2, 'Диван MODERN', 'divan-modern', 'Угловой диван с кожаной обивкой', 78999, 89999, 'DIV-MOD-002', 5], [3, 'Кресло OPPORTUNITY', 'kreslo-opportunity', 'Кресло с деревянными ножками', 16999, 19999, 'KRES-OPP-001', 15], [3, 'Кресло GOLDEN', 'kreslo-golden', 'Золотистое кресло для гостиной', 19999, 23999, 'KRES-GOL-002', 8], [5, 'Кровать CLASSIC', 'krovat-classic', 'Двуспальная кровать из массива дуба', 64999, 74999, 'KROV-CLA-001', 3] ]; foreach ($products as $product) { $stmt = $db->prepare("INSERT INTO products (category_id, name, slug, description, price, old_price, sku, stock_quantity) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"); $stmt->execute($product); } echo "Добавлены товары
"; } // Проверяем, есть ли администратор $check_admin = $db->prepare("SELECT COUNT(*) FROM users WHERE email = ?"); $check_admin->execute(['admin@aeterna.ru']); if ($check_admin->fetchColumn() == 0) { // Добавляем администратора (пароль: admin123) $admin_password = password_hash('admin123', PASSWORD_DEFAULT); $stmt = $db->prepare("INSERT INTO users (email, password_hash, full_name, phone, is_admin) VALUES (?, ?, ?, ?, ?)"); $stmt->execute(['admin@aeterna.ru', $admin_password, 'Администратор AETERNA', '+79129991223', true]); echo "Добавлен администратор (email: admin@aeterna.ru, пароль: admin123)
"; } echo "

База данных успешно инициализирована!

"; echo "Перейти в каталог"; ?>