<?php
/**
 * تطوير ربط API للعيادات
 * تشغيل: php migrations/run_016_enhance_clinic_api.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 "بدء تطوير ربط API للعيادات...\n";

$columns = [
    "ip_whitelist TEXT NULL COMMENT 'قائمة IPs المسموحة'",
    "rate_limit_per_hour INT NULL DEFAULT 100 COMMENT 'حد الطلبات في الساعة'",
    "webhook_url VARCHAR(255) NULL COMMENT 'رابط webhook'",
    "webhook_secret VARCHAR(64) NULL COMMENT 'سر webhook'",
    "notes TEXT NULL",
    "last_used_at DATETIME NULL",
    "request_count INT NOT NULL DEFAULT 0",
    "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 clinic_api_keys LIKE '$colName'");
        if ($stmt->rowCount() > 0) {
            echo "العمود '$colName' موجود بالفعل، تم التخطي.\n";
            continue;
        }
        
        $db->exec("ALTER TABLE clinic_api_keys ADD COLUMN $colDef");
        echo "✓ تم إضافة العمود: $colName\n";
    } catch (PDOException $e) {
        echo "⚠ خطأ في إضافة العمود '$colName': " . $e->getMessage() . "\n";
    }
}

// إنشاء جدول سجل API
try {
    $db->exec("CREATE TABLE IF NOT EXISTS clinic_api_logs (
        id INT AUTO_INCREMENT PRIMARY KEY,
        api_key_id INT NOT NULL,
        clinic_name VARCHAR(150) NOT NULL,
        request_method VARCHAR(10) NOT NULL,
        request_url VARCHAR(500) NULL,
        request_params TEXT NULL,
        response_status INT NULL,
        response_data TEXT NULL,
        ip_address VARCHAR(50) NULL,
        user_agent VARCHAR(255) NULL,
        execution_time_ms INT NULL,
        error_message TEXT NULL,
        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
        INDEX idx_api_key_id (api_key_id),
        INDEX idx_created_at (created_at)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4");
    echo "✓ تم إنشاء جدول clinic_api_logs\n";
} catch (PDOException $e) {
    echo "⚠ خطأ في إنشاء جدول clinic_api_logs: " . $e->getMessage() . "\n";
}

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