<?php
/**
 * Migration: نظام الحسابات المالية للمرضى
 * 
 * تشغيل: php migrations/run_027_patient_accounts.php
 */

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

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

$sqlFile = __DIR__ . '/027_patient_accounts.sql';

if (!file_exists($sqlFile)) {
    echo "❌ ملف SQL غير موجود: $sqlFile\n";
    exit(1);
}

$sql = file_get_contents($sqlFile);

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

$db->beginTransaction();

try {
    foreach ($statements as $statement) {
        if (empty(trim($statement))) continue;
        $db->exec($statement);
    }
    
    $db->commit();
    echo "✅ تم إنشاء جداول الحسابات المالية بنجاح!\n";
    echo "   - patient_accounts (حسابات المرضى)\n";
    echo "   - account_transactions (المعاملات المالية)\n";
    echo "   - account_invoices (الفواتير)\n";
    echo "   - account_payments (الدفعات)\n";
    
} catch (Throwable $e) {
    $db->rollBack();
    echo "❌ خطأ: " . $e->getMessage() . "\n";
    echo "   Trace: " . $e->getTraceAsString() . "\n";
    exit(1);
}
