<?php
// fix_categories.php
require_once 'config/database.php';

$db = Database::getInstance()->getConnection();

echo "<h2>Исправление проблем с категориями</h2>";

try {
    // 1. Удаляем категорию с ID=0 если она есть
    $db->exec("DELETE FROM categories WHERE category_id = 0");

    // 2. Проверяем, есть ли категории
    $catCount = $db->query("SELECT COUNT(*) FROM categories")->fetchColumn();

    if ($catCount == 0) {
        echo "<p>Добавляем основные категории...</p>";
        $db->exec("
            INSERT INTO categories (name, slug, description, is_active) VALUES
            ('Диваны', 'divany', 'Мягкая мебель для гостиной', TRUE),
            ('Кресла', 'kresla', 'Кресла для гостиной и офиса', TRUE),
            ('Кровати', 'krovati', 'Мебель для спальни', TRUE),
            ('Столы', 'stoly', 'Обеденные и рабочие столы', TRUE),
            ('Стулья', 'stulya', 'Стулья для кухни и офиса', TRUE)
        ");
        echo "<p style='color: green;'>✓ Категории добавлены</p>";
    }

    // 3. Исправляем товары с category_id = 0 или NULL
    $badProducts = $db->query("
        SELECT COUNT(*) FROM products
        WHERE category_id IS NULL OR category_id = 0 OR
              category_id NOT IN (SELECT category_id FROM categories)
    ")->fetchColumn();

    if ($badProducts > 0) {
        echo "<p>Исправляем товары с некорректными категориями ($badProducts шт)...</p>";

        // Получаем первую категорию
        $firstCat = $db->query("SELECT category_id FROM categories LIMIT 1")->fetchColumn();

        if ($firstCat) {
            $db->exec("
                UPDATE products
                SET category_id = $firstCat
                WHERE category_id IS NULL OR category_id = 0 OR
                      category_id NOT IN (SELECT category_id FROM categories)
            ");
            echo "<p style='color: green;'>✓ Товары исправлены (category_id установлен в $firstCat)</p>";
        }
    }

    // 4. Показываем текущее состояние
    echo "<h3>Текущие категории:</h3>";
    $cats = $db->query("SELECT category_id, name FROM categories ORDER BY category_id")->fetchAll();

    echo "<table border='1' cellpadding='5'>";
    echo "<tr><th>ID</th><th>Название</th></tr>";
    foreach ($cats as $cat) {
        echo "<tr><td>{$cat['category_id']}</td><td>{$cat['name']}</td></tr>";
    }
    echo "</table>";

    echo "<p style='color: green; margin-top: 20px;'>✓ База данных исправлена!</p>";

} catch (PDOException $e) {
    echo "<p style='color: red;'>Ошибка: " . $e->getMessage() . "</p>";
}
?>