<?php
/**
 * تشخيص خطأ 500 - يُحمّل كل ملف هجرة على حدة لمعرفة أين يفشل
 * افتح: https://a-manara.com/Hardware_maintenance/diagnose_500.php
 * احذف هذا الملف بعد حل المشكلة
 */
error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
header('Content-Type: text/html; charset=utf-8');

$steps = [];
$currentStep = 'بدء التشخيص';

register_shutdown_function(function () use (&$steps, &$currentStep) {
    $err = error_get_last();
    if ($err && in_array($err['type'], [E_ERROR, E_PARSE, E_CORE_ERROR, E_COMPILE_ERROR], true)) {
        echo "<h2>تم اكتشاف الخطأ</h2>";
        echo "<p><strong>أثناء تحميل:</strong> $currentStep</p>";
        echo "<pre>النوع: {$err['type']}\nالرسالة: {$err['message']}\nالملف: {$err['file']}\nالسطر: {$err['line']}</pre>";
    }
});

$steps[] = '1. بدء التشخيص';

$steps[] = '2. تحميل config (بدون migrates)...';
if (!file_exists(__DIR__ . '/config.php')) {
    die('<pre>خطأ: config.php غير موجود</pre>');
}

$skipFile = __DIR__ . '/.skip_migrate';
$hadSkip = file_exists($skipFile);
if (!$hadSkip) {
    @file_put_contents($skipFile, '');
}
$currentStep = 'config.php';
require_once __DIR__ . '/config.php';
$steps[] = '3. تم تحميل config و $conn';

if (!isset($conn) || $conn->connect_error) {
    die('<pre>خطأ الاتصال: ' . ($conn->error ?? 'غير معروف') . '</pre>');
}

if (!$hadSkip && file_exists($skipFile)) {
    @unlink($skipFile);
}

$migrates = [
    'check_tables.php', 'migrate_permissions.php', 'migrate_sectors.php', 'migrate_utf8.php',
    'migrate_governorates.php', 'fix_governorates_encoding.php', 'remove_duplicate_governorates.php',
    'migrate_activity_log.php', 'migrate_security.php', 'security.php', 'activity_log.php',
];

foreach ($migrates as $i => $m) {
    $path = __DIR__ . '/includes/' . $m;
    $currentStep = $m;
    if (!file_exists($path)) {
        $steps[] = ($i + 4) . ". تخطي $m (غير موجود)";
        continue;
    }
    require_once $path;
    $steps[] = ($i + 4) . ". تم تحميل $m ✓";
}

$currentStep = 'انتهى';
$steps[] = 'انتهى التشخيص.';

echo "<h2>نتيجة التشخيص</h2><pre dir='ltr'>" . implode("\n", $steps) . "</pre>";
echo "<p><a href='hospitals.php'>تجربة hospitals.php</a></p>";
echo "<p><small>احذف diagnose_500.php بعد الحل</small></p>";
