<?php
require_once __DIR__ . '/db.php';
try {
    $sql = file_get_contents(__DIR__ . '/install.sql');
    db()->exec($sql);

    // Compatibilidad para instalaciones antiguas: agrega columnas si no existen.
    $columns = db()->query("SHOW COLUMNS FROM reviews")->fetchAll(PDO::FETCH_COLUMN);
    $alter = [];
    if (!in_array('pdf_path', $columns, true)) $alter[] = "ADD COLUMN pdf_path VARCHAR(255) NULL AFTER signature_image";
    if (!in_array('email_sent', $columns, true)) $alter[] = "ADD COLUMN email_sent TINYINT(1) NOT NULL DEFAULT 0 AFTER pdf_path";
    if (!in_array('email_error', $columns, true)) $alter[] = "ADD COLUMN email_error TEXT NULL AFTER email_sent";
    if ($alter) db()->exec("ALTER TABLE reviews " . implode(', ', $alter));

    ensure_upload_dirs();
    if (!app_setting('access_password_hash')) {
        set_app_setting('access_password_hash', password_hash(DEFAULT_PASSWORD, PASSWORD_DEFAULT));
    }
    echo '<h2>Instalación/actualización correcta</h2><p>Ya puedes entrar a la aplicación. Por seguridad elimina o renombra install.php.</p>';
} catch (Throwable $e) {
    http_response_code(500);
    echo '<h2>Error de instalación</h2><pre>' . htmlspecialchars($e->getMessage()) . '</pre>';
}
