<?php
declare(strict_types=1);

require_once __DIR__ . '/common.php';

installStartSession();
$summary = installStatusSummary();
$lockInfo = installReadLock();

$statusRows = [
    ['Konfiguration', $summary['config_exists'] ? 'OK' : 'Fehlt'],
    ['Basisschema', $summary['schema_exists'] ? 'OK' : 'Fehlt'],
    ['DB-Verbindung', $summary['db_ok'] ? 'OK' : 'Fehler'],
    ['Vorhandene Installation', $summary['installed'] ? 'Ja' : 'Nein'],
    ['Install-Lock', $summary['locked'] ? 'Aktiv' : 'Nicht gesetzt'],
    ['Offene Migrationen', (string) count($summary['pending_migrations'])],
    ['Admin-Session', installIsAdminSession() ? 'Aktiv' : 'Nicht aktiv'],
];

$tableHtml = '<table><tbody>';
foreach ($statusRows as [$label, $value]) {
    $tableHtml .= '<tr><th>' . installH($label) . '</th><td>' . installH($value) . '</td></tr>';
}
$tableHtml .= '</tbody></table>';

$lockHtml = '';
if ($lockInfo !== []) {
    $lockHtml = '<div class="box warn"><strong>Lock-Info</strong><pre>' . installH(json_encode($lockInfo, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)) . '</pre></div>';
}

$errorHtml = $summary['error'] !== '' ? '<div class="box err"><strong>Systemhinweis:</strong><br>' . installH($summary['error']) . '</div>' : '';

$actions = '<div class="actions">';
$actions .= '<a class="btn" href="check.php">System prüfen</a>';
if (!$summary['locked'] && !$summary['installed']) {
    $actions .= '<a class="btn" href="install.php">Neuinstallation</a>';
} else {
    $actions .= '<a class="btn btn-secondary" href="install.php">Neuinstallation</a>';
}
$actions .= '<a class="btn" href="update.php">Update</a>';
$actions .= '<a class="btn btn-secondary" href="README.md">Install-README</a>';
$actions .= '</div>';

$notes = '<ul>'
    . '<li><strong>Neuinstallation:</strong> nur auf leerer Datenbank und solange kein <code>install.lock</code> gesetzt ist.</li>'
    . '<li><strong>Update:</strong> im Browser nur mit aktiver Admin-Anmeldung.</li>'
    . '<li><strong>CLI bleibt möglich:</strong> <code>php install/install.php</code> und <code>php install/update.php</code>.</li>'
    . '</ul>';

installRenderPage(
    'MailResponder Installer',
    '<h1>MailResponder Installer</h1>'
    . '<p class="muted">Startseite für Installation, Update und Systemcheck. Geeignet für einfache Hostings ohne Shell-Zugriff.</p>'
    . $errorHtml
    . '<h2>Status</h2>'
    . $tableHtml
    . $lockHtml
    . '<h2>Aktionen</h2>'
    . $actions
    . '<h2>Hinweise</h2>'
    . $notes
);