<?php
// devices.php - Visualizador de Dispositivos Registrados

// 1. Inclui funções essenciais (Conexão DB, Helpers)
require_once __DIR__ . '/includes/functions.php';

// 2. Inclui o cabeçalho do painel (Autenticação, CSS, Menu)
require_once __DIR__ . '/includes/header.php';

// 3. Processar Ações (Excluir Dispositivo)
$message = '';
if (isset($_POST['delete_id'])) {
    $id_to_delete = (int)$_POST['delete_id'];
    if ($id_to_delete > 0) {
        $pdo = db();
        $stmt = $pdo->prepare("DELETE FROM app_device_keys WHERE id = ?");
        if ($stmt->execute([$id_to_delete])) {
            $message = '<div class="alert alert-success alert-dismissible fade show" role="alert">
                            Dispositivo removido com sucesso. O App gerará uma nova chave no próximo acesso.
                            <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
                        </div>';
        } else {
            $message = '<div class="alert alert-danger alert-dismissible fade show" role="alert">
                            Erro ao remover dispositivo.
                            <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
                        </div>';
        }
    }
}

// 4. Buscar Dispositivos no Banco (app_device_keys)
$pdo = db();
$sql = "SELECT * FROM app_device_keys ORDER BY updated_at DESC";
$devices = $pdo->query($sql)->fetchAll();

?>

<style>
    .key-box {
        font-family: 'Courier New', Courier, monospace;
        font-size: 0.8rem;
        background: #f1f3f5;
        padding: 6px;
        border: 1px solid #dee2e6;
        border-radius: 4px;
        color: #495057;
        max-width: 100%;
        overflow-x: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
        cursor: help;
    }
    .badge-date {
        font-size: 0.75rem;
        font-weight: normal;
    }
    .table-card {
        background: #fff;
        border-radius: 8px;
        box-shadow: 0 0 15px rgba(0,0,0,0.05);
        padding: 20px;
        margin-bottom: 30px;
    }
</style>

<div class="container-fluid mt-4">
    
    <div class="row mb-3">
        <div class="col-md-12">
            <h3>📱 Dispositivos Registrados (Criptografia)</h3>
            <p class="text-muted">Lista de aparelhos que enviaram chave pública para receber dados criptografados.</p>
        </div>
    </div>

    <?php echo $message; ?>

    <div class="table-card">
        <?php if (count($devices) > 0): ?>
            <div class="table-responsive">
                <table class="table table-striped table-hover align-middle">
                    <thead class="table-dark">
                        <tr>
                            <th scope="col" style="width: 50px;">ID</th>
                            <th scope="col">Device ID (UUID)</th>
                            <th scope="col">Chave Pública (Resumo)</th>
                            <th scope="col">Última Atualização</th>
                            <th scope="col" class="text-end">Ação</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php foreach ($devices as $d): ?>
                            <tr>
                                <td><?php echo $d['id']; ?></td>
                                
                                <td>
                                    <span class="fw-bold text-primary">
                                        <?php echo htmlspecialchars($d['device_id']); ?>
                                    </span>
                                </td>
                                
                                <td>
                                    <div class="key-box" title="<?php echo htmlspecialchars($d['public_key_b64']); ?>">
                                        <?php 
                                            // Mostra apenas o início e o fim da chave para não poluir a tela
                                            $key = $d['public_key_b64'];
                                            if (strlen($key) > 50) {
                                                echo substr($key, 0, 20) . ' ... ' . substr($key, -20);
                                            } else {
                                                echo $key;
                                            }
                                        ?>
                                    </div>
                                </td>
                                
                                <td>
                                    <div class="d-flex flex-column">
                                        <span class="badge bg-light text-dark border badge-date mb-1">
                                            Criado: <?php echo date('d/m/Y H:i', strtotime($d['created_at'])); ?>
                                        </span>
                                        <span class="badge bg-info text-dark badge-date">
                                            Atualizado: <?php echo date('d/m/Y H:i', strtotime($d['updated_at'])); ?>
                                        </span>
                                    </div>
                                </td>
                                
                                <td class="text-end">
                                    <form method="POST" onsubmit="return confirm('ATENÇÃO: Ao excluir, o dispositivo perderá o acesso criptografado até que o app seja reiniciado e gere uma nova chave. Deseja continuar?');">
                                        <input type="hidden" name="delete_id" value="<?php echo $d['id']; ?>">
                                        <button type="submit" class="btn btn-danger btn-sm">
                                            <i class="fa fa-trash"></i> Excluir
                                        </button>
                                    </form>
                                </td>
                            </tr>
                        <?php endforeach; ?>
                    </tbody>
                </table>
            </div>
            
            <div class="mt-3 text-muted small">
                <strong>Total:</strong> <?php echo count($devices); ?> dispositivos seguros.
            </div>

        <?php else: ?>
            <div class="alert alert-info text-center py-5">
                <h4>Nenhum dispositivo registrado.</h4>
                <p>Abra o aplicativo Android para que ele gere as chaves e apareça aqui.</p>
            </div>
        <?php endif; ?>
    </div>
</div>

<?php
// Se você tiver um footer.php, pode incluí-lo aqui:
// include __DIR__ . '/includes/footer.php';
?>
</main>
</body>
</html>
