<?php
/**
 * تطوير إدارة الفروع والمختبرات - إضافة حقول جديدة
 * تشغيل: php migrations/run_015_enhance_branches.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";

$columns = [
    "branch_type ENUM('branch', 'laboratory', 'collection_center') DEFAULT 'branch' AFTER branch_code",
    "manager_name VARCHAR(150) NULL AFTER name",
    "manager_phone VARCHAR(30) NULL AFTER manager_name",
    "working_hours VARCHAR(100) NULL COMMENT 'ساعات العمل'",
    "city VARCHAR(100) NULL AFTER address",
    "country VARCHAR(100) NULL DEFAULT 'السعودية' AFTER city",
    "postal_code VARCHAR(20) NULL AFTER country",
    "website VARCHAR(255) NULL AFTER email",
    "notes TEXT NULL",
    "capacity INT NULL COMMENT 'القدرة الاستيعابية'",
    "services TEXT NULL",
    "latitude DECIMAL(10, 8) NULL",
    "longitude DECIMAL(11, 8) NULL",
    "opening_date DATE NULL",
    "updated_at TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP"
];

foreach ($columns as $colDef) {
    $colName = preg_match('/^(\w+)\s/', $colDef, $m) ? $m[1] : null;
    if (!$colName) continue;
    
    try {
        // التحقق من وجود العمود
        $stmt = $db->query("SHOW COLUMNS FROM branches LIKE '$colName'");
        if ($stmt->rowCount() > 0) {
            echo "العمود '$colName' موجود بالفعل، تم التخطي.\n";
            continue;
        }
        
        // إضافة العمود
        $db->exec("ALTER TABLE branches ADD COLUMN $colDef");
        echo "✓ تم إضافة العمود: $colName\n";
    } catch (PDOException $e) {
        echo "⚠ خطأ في إضافة العمود '$colName': " . $e->getMessage() . "\n";
    }
}

// إضافة الفهارس
$indexes = [
    'idx_branch_type' => 'branch_type',
    'idx_branch_city' => 'city'
];

foreach ($indexes as $idxName => $colName) {
    try {
        $stmt = $db->query("SHOW INDEX FROM branches WHERE Key_name = '$idxName'");
        if ($stmt->rowCount() > 0) {
            echo "الفهرس '$idxName' موجود بالفعل، تم التخطي.\n";
            continue;
        }
        
        $db->exec("ALTER TABLE branches ADD INDEX $idxName ($colName)");
        echo "✓ تم إضافة الفهرس: $idxName\n";
    } catch (PDOException $e) {
        echo "⚠ خطأ في إضافة الفهرس '$idxName': " . $e->getMessage() . "\n";
    }
}

echo "\nتم الانتهاء من تطوير إدارة الفروع والمختبرات!\n";
