<?php
session_start();

// --- LÓGICA DE LOGOUT ---
if (isset($_GET['acao']) && $_GET['acao'] === 'logout') {
    session_destroy();
    header("Location: login.php");
    exit();
}

$db_entregadores = 'db_entregadores.json';
$db_clientes = 'usuarios.json';
$db_movimentacoes = 'historico_financeiro.json';

// --- FUNÇÃO DE CARREGAMENTO INTELIGENTE ---
function carregar($arq) {
    if (!file_exists($arq)) return [];
    $conteudo = trim(file_get_contents($arq));
    if (empty($conteudo)) return [];
    
    // Tenta decodificar como Array (Padrão Clientes/Index)
    if (strpos($conteudo, '[') === 0) {
        $decodificado = json_decode($conteudo, true);
        return is_array($decodificado) ? $decodificado : [];
    }
    
    // Tenta decodificar como Linhas (Padrão Entregadores)
    return array_filter(array_map(function($l) {
        return json_decode(trim($l), true);
    }, file($arq, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES)));
}

// --- LÓGICA DE SALVAMENTO (SEM MUDAR O FORMATO ORIGINAL) ---
function salvar($arq, $dados_array, $tipo) {
    if ($tipo === 'cliente') {
        // Garante que Clientes SEMPRE seja um Array JSON válido
        $json = json_encode(array_values($dados_array), JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
        file_put_contents($arq, $json);
    } else {
        // Mantém Entregadores como linhas separadas (JSONL)
        $linhas = array_map(fn($d) => json_encode($d, JSON_UNESCAPED_UNICODE), $dados_array);
        file_put_contents($arq, implode(PHP_EOL, $linhas) . PHP_EOL);
    }
}

// --- LÓGICA DE PROCESSAMENTO (RESOLVIDO: ADICIONAR SALDO) ---
if (isset($_GET['acao']) && isset($_GET['cpf'])) {
    $cpf = $_GET['cpf'];
    $tipo = $_GET['tipo'] ?? 'entregador';
    $tab_atual = $_GET['tab'] ?? 'entregadores';
    $arquivo = ($tipo === 'cliente') ? $db_clientes : $db_entregadores;

    if (file_exists($arquivo)) {
        $dados_lista = carregar($arquivo);
        $houve_alteracao = false;

        // O "&" antes de $dados é fundamental para que a alteração seja persistida no array
        foreach ($dados_lista as $key => &$dados) {
            $id_vinc = $dados['cpf'] ?? $dados['usuario'] ?? $dados['id'] ?? null;
            
            if ($id_vinc === $cpf) {
                $houve_alteracao = true;
                
                if ($_GET['acao'] === 'excluir') {
                    unset($dados_lista[$key]);
                    continue;
                }
                
                if ($_GET['acao'] === 'aprovar') $dados['status'] = 'aprovado';
                if ($_GET['acao'] === 'reprovar') $dados['status'] = 'reprovado';

                if ($_GET['acao'] === 'salvar_edicao') {
                    // Edição de Nome
                    if (!empty($_POST['edit_nome'])) {
                        $novo_nome = mb_strtoupper($_POST['edit_nome'], 'UTF-8');
                        if (isset($dados['usuario'])) $dados['usuario'] = $novo_nome;
                        else $dados['nome'] = $novo_nome;
                    }
                    // Edição de Senha
                    if (!empty($_POST['edit_senha'])) {
                        $dados['senha'] = password_hash($_POST['edit_senha'], PASSWORD_DEFAULT);
                    }
                    
                    // --- ADICIONAR SALDO (RESOLVIDO) ---
                    if ($tipo === 'cliente' && !empty($_POST['add_saldo'])) {
                        $valor = (float)$_POST['add_saldo'];
                        $saldo_atual = (float)($dados['saldo'] ?? 0);
                        $dados['saldo'] = $saldo_atual + $valor;
                        
                        // Registro de log financeiro
                        $log_entry = [
                            "data" => date('d/m/Y H:i'),
                            "cpf" => $cpf,
                            "valor" => $valor,
                            "descricao" => "Crédito via Master: " . ($dados['nome'] ?? $dados['usuario'] ?? 'Cliente')
                        ];
                        file_put_contents($db_movimentacoes, json_encode($log_entry, JSON_UNESCAPED_UNICODE) . PHP_EOL, FILE_APPEND);
                    }
                }
            }
        }

        if ($houve_alteracao) {
            salvar($arquivo, $dados_lista, $tipo);
            header("Location: admin_master.php?tab=$tab_atual&msg=ok");
            exit();
        }
    }
}

$tab_ativa = $_GET['tab'] ?? 'entregadores';
$entregadores = carregar($db_entregadores);
$clientes = carregar($db_clientes);
$movimentacoes = array_reverse(carregar($db_movimentacoes));
?>

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://cdn.tailwindcss.com"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <title>Admin Master | BRT PRO</title>
    <style>
        @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;700;900&display=swap');
        body { font-family: 'Inter', sans-serif; background: #f1f5f9; }
        .tab-active { background: rgba(255,255,255,0.15); border-left: 4px solid #facc15; }
    </style>
</head>
<body class="min-h-screen flex flex-col md:flex-row">

    <aside class="w-full md:w-64 bg-[#003964] text-white p-6 shadow-2xl flex flex-col">
        <div class="mb-10 text-center">
            <h1 class="text-2xl font-black italic uppercase">BRT <span class="text-yellow-400">PRO</span></h1>
        </div>
        <nav class="space-y-2 flex-1 text-xs font-bold uppercase italic">
            <a href="?tab=entregadores" class="flex items-center gap-3 p-4 rounded-xl hover:bg-white/10 <?php echo $tab_ativa == 'entregadores' ? 'tab-active' : ''; ?>">
                <i class="fas fa-motorcycle text-lg"></i> Entregadores
            </a>
            <a href="?tab=clientes" class="flex items-center gap-3 p-4 rounded-xl hover:bg-white/10 <?php echo $tab_ativa == 'clientes' ? 'tab-active' : ''; ?>">
                <i class="fas fa-user-friends text-lg"></i> Clientes
            </a>
            <a href="?tab=financeiro" class="flex items-center gap-3 p-4 rounded-xl hover:bg-white/10 <?php echo $tab_ativa == 'financeiro' ? 'tab-active' : ''; ?>">
                <i class="fas fa-wallet text-lg"></i> Financeiro
            </a>
        </nav>
        <a href="?acao=logout" class="p-4 text-red-400 font-black text-[10px] uppercase italic mt-auto"><i class="fas fa-power-off"></i> Sair do Painel</a>
    </aside>

    <main class="flex-1 p-6 md:p-12">
        <h2 class="text-3xl font-black text-[#003964] uppercase italic mb-8">Gerenciar <?php echo ucfirst($tab_ativa); ?></h2>

        <div class="bg-white rounded-[2rem] shadow-sm overflow-hidden border">
            <table class="w-full text-left">
                <?php if($tab_ativa != 'financeiro'): ?>
                    <thead>
                        <tr class="bg-slate-50 border-b text-[10px] font-black uppercase text-slate-400 italic">
                            <th class="p-6">Nome / ID</th>
                            <th class="p-6">Info</th>
                            <?php if($tab_ativa == 'entregadores'): ?> <th class="p-6">Status</th> <?php endif; ?>
                            <th class="p-6 text-center">Ações</th>
                        </tr>
                    </thead>
                    <tbody class="divide-y">
                        <?php 
                        $lista = ($tab_ativa == 'clientes') ? $clientes : $entregadores;
                        $tipo_g = ($tab_ativa == 'clientes') ? 'cliente' : 'entregador';
                        foreach($lista as $u): 
                            $nome = $u['nome'] ?? $u['usuario'] ?? 'SEM NOME';
                            $id = $u['cpf'] ?? $u['usuario'] ?? $u['id'] ?? '---';
                        ?>
                        <tr class="hover:bg-slate-50">
                            <td class="p-6">
                                <p class="text-xs font-black text-[#003964] uppercase"><?php echo $nome; ?></p>
                                <p class="text-[9px] text-slate-400 font-bold"><?php echo $id; ?></p>
                            </td>
                            <td class="p-6">
                                <?php if($tipo_g == 'cliente'): ?>
                                    <span class="text-green-600 font-black italic">R$ <?php echo number_format($u['saldo'] ?? 0, 2, ',', '.'); ?></span>
                                <?php else: ?>
                                    <a href="uploads/selfies/<?php echo $u['foto_selfie'] ?? ''; ?>" target="_blank" class="text-[10px] font-bold text-blue-500 uppercase italic">Ver Selfie</a>
                                <?php endif; ?>
                            </td>
                            <?php if($tab_ativa == 'entregadores'): ?>
                            <td class="p-6">
                                <span class="px-3 py-1 rounded-full text-[9px] font-black uppercase <?php echo (strtolower($u['status'] ?? '') == 'aprovado') ? 'bg-green-100 text-green-600' : 'bg-yellow-100 text-yellow-600'; ?>">
                                    <?php echo $u['status'] ?? 'pendente'; ?>
                                </span>
                            </td>
                            <?php endif; ?>
                            <td class="p-6 flex justify-center gap-2">
                                <button onclick="abrirModal('<?php echo $id; ?>', '<?php echo addslashes($nome); ?>', '<?php echo $tipo_g; ?>')" class="bg-blue-600 text-white px-3 py-2 rounded-lg text-[10px] font-black uppercase italic">EDITAR</button>
                                <?php if($tab_ativa == 'entregadores'): ?>
                                    <a href="?acao=aprovar&cpf=<?php echo $id; ?>&tipo=entregador&tab=entregadores" class="bg-green-500 text-white p-2 rounded-lg text-xs"><i class="fas fa-check"></i></a>
                                <?php endif; ?>
                                <a href="?acao=excluir&cpf=<?php echo $id; ?>&tipo=<?php echo $tipo_g; ?>&tab=<?php echo $tab_ativa; ?>" onclick="return confirm('Excluir permanentemente?')" class="bg-red-500 text-white p-2 rounded-lg text-xs"><i class="fas fa-trash"></i></a>
                            </td>
                        </tr>
                        <?php endforeach; ?>
                    </tbody>
                <?php else: ?>
                    <tbody class="divide-y">
                        <?php foreach($movimentacoes as $m): ?>
                            <tr class="text-[10px] font-bold">
                                <td class="p-5 text-slate-400"><?php echo $m['data'] ?? ''; ?></td>
                                <td class="p-5 uppercase text-[#003964]"><?php echo $m['descricao'] ?? ''; ?></td>
                                <td class="p-5 text-green-600">R$ <?php echo number_format($m['valor'] ?? 0, 2, ',', '.'); ?></td>
                            </tr>
                        <?php endforeach; ?>
                    </tbody>
                <?php endif; ?>
            </table>
        </div>
    </main>

    <div id="modalMaster" class="hidden fixed inset-0 bg-black/80 backdrop-blur-sm flex items-center justify-center p-4 z-50">
        <div class="bg-white rounded-[2rem] w-full max-w-sm overflow-hidden shadow-2xl border">
            <div class="bg-[#003964] p-6 text-white text-center font-black uppercase italic" id="modalNome">EDITAR</div>
            <form id="formMaster" method="POST" class="p-8 space-y-4">
                <input type="text" name="edit_nome" id="inputNome" class="w-full p-4 bg-slate-100 rounded-xl text-xs font-bold uppercase" required>
                <input type="password" name="edit_senha" class="w-full p-4 bg-slate-100 rounded-xl text-xs font-bold" placeholder="NOVA SENHA (OPCIONAL)">
                <div id="areaSaldo" class="p-4 bg-blue-50 rounded-xl border border-blue-100 hidden">
                    <label class="text-[9px] font-black text-blue-400 block mb-1 uppercase">Adicionar Saldo (R$)</label>
                    <input type="number" step="0.01" name="add_saldo" class="w-full bg-transparent text-xl font-black text-blue-600 outline-none" placeholder="0.00">
                </div>
                <button type="submit" class="w-full bg-yellow-400 text-[#003964] font-black py-4 rounded-xl uppercase italic text-xs shadow-lg">Salvar Alterações</button>
                <button type="button" onclick="document.getElementById('modalMaster').classList.add('hidden')" class="w-full text-slate-400 text-[10px] font-black uppercase text-center mt-2">Fechar</button>
            </form>
        </div>
    </div>

    <script>
        function abrirModal(cpf, nome, tipo) {
            document.getElementById('modalNome').innerText = nome;
            document.getElementById('inputNome').value = nome;
            document.getElementById('formMaster').action = `?acao=salvar_edicao&cpf=${cpf}&tipo=${tipo}&tab=${tipo === 'cliente' ? 'clientes' : 'entregadores'}`;
            (tipo === 'cliente') ? document.getElementById('areaSaldo').classList.remove('hidden') : document.getElementById('areaSaldo').classList.add('hidden');
            document.getElementById('modalMaster').classList.remove('hidden');
        }
    </script>
</body>
</html>