<?php
/**
 * AegisOne Engineering — Установка / обновление базы данных
 *
 * Запускает миграцию из data/migration.sql
 * Безопасно при повторном запуске (IF NOT EXISTS, ON DUPLICATE KEY UPDATE)
 */
require_once __DIR__ . '/../data/db-config.php';

try {
    if (DB_TYPE === 'pgsql') {
        $dsn = 'pgsql:host=' . DB_HOST . ';port=' . DB_PORT . ';dbname=' . DB_NAME;
    } else {
        $dsn = 'mysql:host=' . DB_HOST . ';port=' . DB_PORT . ';dbname=' . DB_NAME . ';charset=' . DB_CHARSET;
    }
    $pdo = new PDO(
        $dsn,
        DB_USER,
        DB_PASS,
        [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
    );

    $sqlPath = DB_TYPE === 'pgsql'
        ? __DIR__ . '/../py_service/sql/schema_postgresql.sql'
        : __DIR__ . '/../data/migration.sql';
    $sql = file_get_contents($sqlPath);
    $statements = array_filter(array_map('trim', explode(';', $sql)));
    $created = 0;
    $inserted = 0;
    $errors = 0;

    foreach ($statements as $query) {
        if ($query === '' || strpos($query, '--') === 0) continue;
        try {
            $pdo->exec($query);
            if (stripos($query, 'CREATE') !== false) $created++;
            if (stripos($query, 'INSERT') !== false) $inserted++;
        } catch (\Throwable $e) {
            $errors++;
        }
    }

    echo '<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Миграция — AegisOne</title>';
    echo '<style>body{font-family:Inter,sans-serif;background:#0D1B2A;color:#E8EDF2;display:flex;align-items:center;justify-content:center;min-height:100vh;margin:0;}';
    echo '.box{background:#1B2838;border:1px solid #2a3a4a;border-radius:12px;padding:40px;max-width:500px;text-align:center;}';
    echo 'h1{color:#4DA8DA;margin:0 0 8px;font-size:22px;}p{color:#A0B4C8;font-size:14px;margin:0 0 20px;line-height:1.6;}';
    echo '.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0;}';
    echo '.stat{background:#0D1B2A;border-radius:8px;padding:16px;text-align:center;}';
    echo '.stat-value{font-size:28px;font-weight:700;color:#00ADEF;}';
    echo '.stat-label{font-size:11px;color:#6B8299;text-transform:uppercase;letter-spacing:0.1em;margin-top:4px;}';
    echo '.btn{display:inline-block;background:linear-gradient(135deg,#00ADEF,#0095cc);color:#fff;padding:12px 28px;border-radius:8px;text-decoration:none;font-weight:600;font-size:14px;margin-top:16px;}';
    echo '</style></head><body><div class="box">';
    echo '<h1>✅ Миграция завершена</h1>';
    echo '<p>База данных <strong>' . htmlspecialchars(DB_NAME) . '</strong> обновлена.</p>';
    echo '<div class="stats">';
    echo '<div class="stat"><div class="stat-value">' . $created . '</div><div class="stat-label">Таблиц</div></div>';
    echo '<div class="stat"><div class="stat-value">' . $inserted . '</div><div class="stat-label">Записей</div></div>';
    echo '<div class="stat"><div class="stat-value">' . $errors . '</div><div class="stat-label">Ошибок</div></div>';
    echo '</div>';
    echo '<a href="/service/" class="btn">Войти в систему</a>';
    echo '</div></body></html>';

} catch (\Throwable $e) {
    echo '<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Ошибка — AegisOne</title>';
    echo '<style>body{font-family:Inter,sans-serif;background:#0D1B2A;color:#E8EDF2;display:flex;align-items:center;justify-content:center;min-height:100vh;margin:0;}';
    echo '.box{background:#1B2838;border:1px solid #ef4444;border-radius:12px;padding:40px;max-width:500px;text-align:center;}';
    echo 'h1{color:#ef4444;margin:0 0 8px;font-size:22px;}p{color:#A0B4C8;font-size:14px;line-height:1.6;}</style></head><body>';
    echo '<div class="box"><h1>❌ Ошибка подключения</h1><p>' . htmlspecialchars($e->getMessage()) . '</p></div></body></html>';
}
