<?php
/**
 * إصلاح جداول المنشورات
 * يضيف الجداول الناقصة بدون حذف الجدول القديم
 */

require_once '../config/database.php';

$database = new Database();
$conn = $database->getConnection();

echo "<!DOCTYPE html>
<html lang='ar' dir='rtl'>
<head>
    <meta charset='UTF-8'>
    <title>إصلاح جداول المنشورات</title>
    <style>
        * { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; }
        body { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); min-height: 100vh; padding: 20px; }
        .container { max-width: 800px; margin: 0 auto; background: white; padding: 40px; border-radius: 15px; box-shadow: 0 10px 40px rgba(0,0,0,0.3); }
        h1 { color: #667eea; margin-bottom: 30px; }
        .success { background: #d4edda; color: #155724; padding: 15px; border-radius: 8px; margin: 10px 0; border-left: 4px solid #28a745; }
        .error { background: #f8d7da; color: #721c24; padding: 15px; border-radius: 8px; margin: 10px 0; border-left: 4px solid #dc3545; }
        .info { background: #d1ecf1; color: #0c5460; padding: 15px; border-radius: 8px; margin: 10px 0; border-left: 4px solid #17a2b8; }
        .btn { display: inline-block; padding: 12px 30px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; text-decoration: none; border-radius: 50px; margin: 10px 5px; font-weight: 600; }
        .btn:hover { transform: translateY(-2px); box-shadow: 0 5px 15px rgba(0,0,0,0.2); }
    </style>
</head>
<body>
    <div class='container'>
        <h1>🔧 إصلاح جداول المنشورات</h1>";

$errors = [];
$success = [];

try {
    // 1. تحديث جدول posts القديم
    echo "<h3>1️⃣ تحديث جدول posts...</h3>";
    
    // فحص الأعمدة الموجودة
    $columns = $conn->query("SHOW COLUMNS FROM posts")->fetchAll(PDO::FETCH_COLUMN);
    
    // إضافة الأعمدة الناقصة (فحص قبل الإضافة)
    $new_columns = [
        'title' => "ALTER TABLE posts ADD COLUMN title VARCHAR(255) AFTER id",
        'slug' => "ALTER TABLE posts ADD COLUMN slug VARCHAR(255) AFTER title",
        'excerpt' => "ALTER TABLE posts ADD COLUMN excerpt TEXT AFTER slug",
        'content' => "ALTER TABLE posts ADD COLUMN content LONGTEXT AFTER excerpt",
        'featured_image' => "ALTER TABLE posts ADD COLUMN featured_image VARCHAR(255) AFTER content",
        'author_id' => "ALTER TABLE posts ADD COLUMN author_id INT AFTER featured_image",
        'category' => "ALTER TABLE posts ADD COLUMN category VARCHAR(100) AFTER author_id",
        'tags' => "ALTER TABLE posts ADD COLUMN tags VARCHAR(255) AFTER category",
        'status' => "ALTER TABLE posts ADD COLUMN status ENUM('draft', 'published', 'scheduled') DEFAULT 'draft' AFTER tags",
        'is_featured' => "ALTER TABLE posts ADD COLUMN is_featured TINYINT(1) DEFAULT 0 AFTER status",
        'views_count' => "ALTER TABLE posts ADD COLUMN views_count INT DEFAULT 0 AFTER is_featured",
        'likes_count' => "ALTER TABLE posts ADD COLUMN likes_count INT DEFAULT 0 AFTER views_count",
        'comments_count' => "ALTER TABLE posts ADD COLUMN comments_count INT DEFAULT 0 AFTER likes_count",
        'published_at' => "ALTER TABLE posts ADD COLUMN published_at DATETIME AFTER comments_count"
    ];
    
    foreach ($new_columns as $col_name => $sql) {
        if (!in_array($col_name, $columns)) {
            try {
                $conn->exec($sql);
                echo "<div class='info'>✅ تم إضافة عمود: $col_name</div>";
            } catch (Exception $e) {
                echo "<div class='error'>❌ خطأ في إضافة $col_name: " . $e->getMessage() . "</div>";
            }
        }
    }
    
    // نقل البيانات القديمة (بعد إضافة الأعمدة)
    try {
        $conn->exec("UPDATE posts SET content = caption WHERE content IS NULL OR content = ''");
    } catch (Exception $e) {}
    
    try {
        $conn->exec("UPDATE posts SET title = SUBSTRING(caption, 1, 100) WHERE title IS NULL OR title = ''");
    } catch (Exception $e) {}
    
    try {
        $conn->exec("UPDATE posts SET slug = CONCAT('post-', id) WHERE slug IS NULL OR slug = ''");
    } catch (Exception $e) {}
    
    try {
        $conn->exec("UPDATE posts SET status = 'published' WHERE status IS NULL");
    } catch (Exception $e) {}
    
    try {
        $conn->exec("UPDATE posts SET featured_image = image WHERE featured_image IS NULL AND image IS NOT NULL");
    } catch (Exception $e) {}
    
    $success[] = "تم تحديث جدول posts بنجاح";
    
    // 2. إنشاء جدول post_categories
    echo "<h3>2️⃣ إنشاء جدول post_categories...</h3>";
    $sql = "CREATE TABLE IF NOT EXISTS post_categories (
        id INT AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(100) NOT NULL,
        slug VARCHAR(100) UNIQUE NOT NULL,
        description TEXT,
        icon VARCHAR(50),
        color VARCHAR(20),
        posts_count INT DEFAULT 0,
        is_active TINYINT(1) DEFAULT 1,
        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci";
    $conn->exec($sql);
    $success[] = "تم إنشاء جدول post_categories";
    
    // إضافة فئات افتراضية
    $categories = [
        ['أخبار المتجر', 'store-news', 'آخر أخبار وتحديثات المتجر', '📰', '#E57393'],
        ['نصائح جمالية', 'beauty-tips', 'نصائح للعناية بالبشرة والجمال', '💡', '#9B59B6'],
        ['عروض خاصة', 'special-offers', 'أحدث العروض والخصومات', '🔥', '#E74C3C'],
        ['منتجات جديدة', 'new-products', 'تعرفي على أحدث منتجاتنا', '✨', '#3498DB'],
        ['قصص نجاح', 'success-stories', 'تجارب عملائنا الناجحة', '⭐', '#2ECC71'],
        ['دليل الاستخدام', 'how-to', 'طرق استخدام المنتجات', '📚', '#F39C12']
    ];
    
    $stmt = $conn->prepare("INSERT IGNORE INTO post_categories (name, slug, description, icon, color) VALUES (?, ?, ?, ?, ?)");
    foreach ($categories as $cat) {
        $stmt->execute($cat);
    }
    $success[] = "تم إضافة الفئات الافتراضية";
    
    // 3. إنشاء جدول post_comments
    echo "<h3>3️⃣ إنشاء جدول post_comments...</h3>";
    $sql = "CREATE TABLE IF NOT EXISTS post_comments (
        id INT AUTO_INCREMENT PRIMARY KEY,
        post_id INT NOT NULL,
        user_id INT,
        author_name VARCHAR(100),
        author_email VARCHAR(100),
        comment TEXT NOT NULL,
        is_approved TINYINT(1) DEFAULT 0,
        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
        INDEX idx_post (post_id),
        INDEX idx_approved (is_approved)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci";
    $conn->exec($sql);
    $success[] = "تم إنشاء جدول post_comments";
    
    // 4. إنشاء جدول post_likes
    echo "<h3>4️⃣ إنشاء جدول post_likes...</h3>";
    $sql = "CREATE TABLE IF NOT EXISTS post_likes (
        id INT AUTO_INCREMENT PRIMARY KEY,
        post_id INT NOT NULL,
        user_id INT NOT NULL,
        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
        UNIQUE KEY unique_like (post_id, user_id)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci";
    $conn->exec($sql);
    $success[] = "تم إنشاء جدول post_likes";
    
    // 5. إنشاء مجلد الصور
    $upload_dir = '../uploads/posts';
    if (!file_exists($upload_dir)) {
        mkdir($upload_dir, 0755, true);
        $success[] = "تم إنشاء مجلد uploads/posts";
    }
    
    // عرض النتائج
    echo "<div class='success'>";
    echo "<h2>✅ تم الإصلاح بنجاح!</h2>";
    echo "<ul>";
    foreach ($success as $msg) {
        echo "<li>$msg</li>";
    }
    echo "</ul>";
    echo "</div>";
    
    echo "<div class='info'>";
    echo "<h3>📊 الإحصائيات:</h3>";
    $count = $conn->query("SELECT COUNT(*) FROM posts")->fetchColumn();
    echo "<p>عدد المنشورات: <strong>$count</strong></p>";
    $count = $conn->query("SELECT COUNT(*) FROM post_categories")->fetchColumn();
    echo "<p>عدد الفئات: <strong>$count</strong></p>";
    echo "</div>";
    
    echo "<div style='text-align: center; margin-top: 30px;'>";
    echo "<a href='../admin/posts/index.php' class='btn'>📝 فتح المنشورات</a>";
    echo "<a href='../admin/dashboard.php' class='btn'>🏠 الداشبورد</a>";
    echo "</div>";
    
} catch (Exception $e) {
    echo "<div class='error'>";
    echo "<h3>❌ حدث خطأ:</h3>";
    echo "<p>" . $e->getMessage() . "</p>";
    echo "</div>";
}

echo "</div>
</body>
</html>";
?>
