<?php
require_once __DIR__ . '/includes/layout.php';
require_login();
ensure_default_settings();

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    try {
        if (trim($_POST['new_password'] ?? '') !== trim($_POST['confirm_password'] ?? '')) {
            throw new RuntimeException('Confirmação de senha não confere.');
        }
        update_admin_credentials(
            $_POST['current_password'] ?? '',
            $_POST['new_username'] ?? '',
            $_POST['new_password'] ?? ''
        );
        flash('success', 'Credenciais atualizadas com sucesso.');
    } catch (Throwable $e) {
        flash('error', $e->getMessage());
    }
    header('Location: credentials.php');
    exit;
}

$currentUser = get_admin_username();

render_header(
    'Alterar credenciais',
    'credentials',
    'Atualize usuário e senha de acesso ao painel',
    [
        ['label' => 'Dashboard', 'url' => 'dashboard.php'],
        ['label' => 'Credenciais', 'url' => null],
    ]
);
?>

<div class="content-split credentials-page">
    <div class="content-main">
        <div class="card">
            <h2>Dados de acesso</h2>
            <p class="card-desc">Usuário atual: <strong><?= htmlspecialchars($currentUser) ?></strong>. Após alterar, use as novas credenciais no próximo login.</p>

            <form method="post" class="form-narrow">
                <div class="form-group">
                    <label>Senha atual</label>
                    <input type="password" name="current_password" required autocomplete="current-password">
                </div>
                <div class="form-group">
                    <label>Novo usuário</label>
                    <input type="text" name="new_username" required value="<?= htmlspecialchars($currentUser) ?>" autocomplete="username">
                </div>
                <div class="form-group">
                    <label>Nova senha</label>
                    <input type="password" name="new_password" required minlength="6" autocomplete="new-password">
                    <p class="form-hint">Mínimo de 6 caracteres</p>
                </div>
                <div class="form-group">
                    <label>Confirmar nova senha</label>
                    <input type="password" name="confirm_password" required minlength="6" autocomplete="new-password">
                </div>
                <button type="submit" class="btn primary">Salvar credenciais</button>
            </form>
        </div>
    </div>

    <aside class="content-side">
        <div class="card monitor-card monitor-purple">
            <h2>Segurança</h2>
            <p class="card-desc">A senha é armazenada com hash seguro (bcrypt). Nunca compartilhe suas credenciais do painel.</p>
        </div>
        <div class="card">
            <h2>Dicas</h2>
            <ul class="tips-list">
                <li>Use senha forte com letras e números</li>
                <li>Altere o padrão <code>admin/admin123</code> após instalar</li>
                <li>Proteja o acesso HTTPS ao painel</li>
            </ul>
        </div>
    </aside>
</div>

<?php render_footer(); ?>
