<?php
/**
 * نظام تسجيل دخول الأطباء
 * تشغيل: php migrations/run_018_doctor_login_system.php
 */

require_once __DIR__ . '/../config/config.php';
require_once __DIR__ . '/../src/Core/Database.php';

use App\Core\Database;

$config = require __DIR__ . '/../config/config.php';
$db = Database::getInstance($config['db'])->connection();

echo "بدء إضافة نظام تسجيل دخول الأطباء...\n\n";

// قراءة ملف SQL وتنفيذه
$sqlFile = __DIR__ . '/018_doctor_login_system.sql';
if (!file_exists($sqlFile)) {
    die("❌ ملف SQL غير موجود: $sqlFile\n");
}

$sql = file_get_contents($sqlFile);

// تقسيم SQL إلى أوامر منفصلة
$statements = array_filter(
    array_map('trim', explode(';', $sql)),
    function($stmt) {
        return !empty($stmt) && !preg_match('/^--/', $stmt);
    }
);

$successCount = 0;
$errorCount = 0;

foreach ($statements as $statement) {
    if (empty(trim($statement))) continue;
    
    try {
        $db->exec($statement);
        $successCount++;
        if (preg_match('/ALTER TABLE `?(\w+)`?/i', $statement, $matches)) {
            echo "✓ تم تحديث جدول: {$matches[1]}\n";
        } elseif (preg_match('/CREATE TABLE (?:IF NOT EXISTS )?`?(\w+)`?/i', $statement, $matches)) {
            echo "✓ تم إنشاء جدول: {$matches[1]}\n";
        }
    } catch (PDOException $e) {
        $errorCount++;
        if (strpos($e->getMessage(), 'already exists') !== false || 
            strpos($e->getMessage(), 'Duplicate column') !== false) {
            echo "⚠ تم التخطي (موجود مسبقاً)\n";
        } else {
            echo "❌ خطأ: " . $e->getMessage() . "\n";
        }
    }
}

echo "\n========================================\n";
echo "✓ تم تنفيذ $successCount أمر بنجاح\n";
if ($errorCount > 0) {
    echo "⚠ واجه $errorCount خطأ (بعضها قد يكون طبيعياً)\n";
}
echo "تم الانتهاء من إضافة نظام تسجيل دخول الأطباء!\n";
