<?php
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');

// مسار قاعدة البيانات
$db_path = dirname(__DIR__) . '/dramalive.db';

if (!file_exists($db_path)) {
    http_response_code(500);
    echo json_encode(["success" => false, "message" => "قاعدة البيانات غير موجودة"], JSON_UNESCAPED_UNICODE);
    exit;
}

// ✅ دالة لتنظيف الروابط
function clean_url($url) {
    // إزالة الـ backslashes
    $url = str_replace('\\/', '/', $url);
    
    // قواعد التنظيف
    $clean_rules = [
        // إزالة 'embed-' من جميع السيرفرات
        '/\/embed-/' => '/',
        
        // إزالة '/e/' من xenolyzb.com و filemoon.to
        '/^(https?:\/\/(?:www\.)?(?:xenolyzb\.com|filemoon\.to|deva-[^\/]+\.cimanowtv\.com))\/e\//' => '$1/',
        
        // إزالة '/v/' من dingtezuni.com
        '/^(https?:\/\/(?:www\.)?dingtezuni\.com)\/v\//' => '$1/',
        
        // إزالة '/iframe/' من megatukmax.xyz
        '/^(https?:\/\/(?:www\.)?w\.megatukmax\.xyz)\/iframe\//' => '$1/'
    ];
    
    // تطبيق قواعد التنظيف
    foreach ($clean_rules as $pattern => $replacement) {
        $url = preg_replace($pattern, $replacement, $url);
    }
    
    return $url;
}

// الحصول على اسم المسلسل
$series_name = $_GET['name'] ?? '';

if (empty($series_name)) {
    http_response_code(400);
    echo json_encode(["success" => false, "message" => "يجب إدخال اسم المسلسل"], JSON_UNESCAPED_UNICODE);
    exit;
}

try {
    // الاتصال بقاعدة البيانات
    $db = new SQLite3($db_path);
    $db->enableExceptions(true);

    // ✅ استخراج اسم المسلسل ورقم الجزء من النص
    $original_name = $series_name;
    $season_number = '';
    
    // أنماط للبحث عن رقم الجزء
    $patterns = [
        '/(.+)\s+الجزء\s*(\d+)$/u',      // "بنات الثانوي الجزء 2"
        '/(.+)\s+part\s*(\d+)$/i',       // "بنات الثانوي part 2"  
        '/(.+)\s+(\d+)$/u',              // "بنات الثانوي 2"
        '/(.+)الجزء\s*(\d+)$/u',         // "بنات الثانويالجزء2"
    ];
    
    $base_series_name = $series_name;
    
    foreach ($patterns as $pattern) {
        if (preg_match($pattern, $series_name, $matches)) {
            $base_series_name = trim($matches[1]);
            $season_number = $matches[2];
            break;
        }
    }

    // البحث عن المسلسل الأساسي
    $stmt = $db->prepare('SELECT id, title FROM series WHERE title LIKE :name LIMIT 1');
    $stmt->bindValue(':name', '%' . $base_series_name . '%', SQLITE3_TEXT);
    $result = $stmt->execute();
    $series = $result->fetchArray(SQLITE3_ASSOC);

    if (!$series) {
        echo json_encode(["success" => false, "message" => "المسلسل غير موجود"], JSON_UNESCAPED_UNICODE);
        exit;
    }

    $series_id = $series['id'];

    // بناء الاستعلام بناءً على وجود رقم الجزء
    if (!empty($season_number)) {
        // ✅ إذا كان هناك رقم جزء، نبحث في عنوان الموسم
        $stmt = $db->prepare('
            SELECT e.id, e.title, e.episode_order
            FROM episodes e
            JOIN seasons s ON e.season_id = s.id
            WHERE s.series_id = :series_id 
            AND (s.title LIKE :season OR s.title LIKE :season2 OR s.title LIKE :season3)
            ORDER BY s.season_order, e.episode_order
        ');
        $stmt->bindValue(':series_id', $series_id, SQLITE3_INTEGER);
        $stmt->bindValue(':season', '%' . $season_number . '%', SQLITE3_TEXT);
        $stmt->bindValue(':season2', '%الجزء ' . $season_number . '%', SQLITE3_TEXT);
        $stmt->bindValue(':season3', '%part ' . $season_number . '%', SQLITE3_TEXT);
    } else {
        // إذا لم يكن هناك جزء، نجلب كل الحلقات
        $stmt = $db->prepare('
            SELECT e.id, e.title, e.episode_order
            FROM episodes e
            JOIN seasons s ON e.season_id = s.id
            WHERE s.series_id = :series_id
            ORDER BY s.season_order, e.episode_order
        ');
        $stmt->bindValue(':series_id', $series_id, SQLITE3_INTEGER);
    }

    $result = $stmt->execute();

    $episodes_result = [];

    while ($ep = $result->fetchArray(SQLITE3_ASSOC)) {
        $episode_id = $ep['id'];
        $corrected_order = $ep['episode_order'] + 1;

        // جلب روابط الحلقة
        $stmt_sources = $db->prepare('SELECT url FROM episode_sources WHERE episode_id = :episode_id ORDER BY source_order');
        $stmt_sources->bindValue(':episode_id', $episode_id, SQLITE3_INTEGER);
        $sources_result = $stmt_sources->execute();

        $episode_obj = [
            "Episoade_Name" => $ep['title'],
            "episoade_order" => $corrected_order
        ];

        $source_index = 0;
        while ($source = $sources_result->fetchArray(SQLITE3_ASSOC)) {
            $clean_url = clean_url($source['url']);
            
            if ($source_index === 0) {
                $episode_obj["url"] = $clean_url;
            } else {
                $episode_obj["url" . $source_index] = $clean_url;
            }
            $source_index++;
        }

        $episodes_result[] = $episode_obj;
    }

    $db->close();

    // ✅ إرجاع النتيجة بنفس الهيكل الأساسي
    $response = [
        "episodes" => $episodes_result,
        "success" => true
    ];

    echo json_encode($response, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);

} catch (Exception $e) {
    http_response_code(500);
    echo json_encode(["success" => false, "message" => "حدث خطأ في الخادم: " . $e->getMessage()], JSON_UNESCAPED_UNICODE);
}
?>