<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

require_once 'includes/funcoes.php';
include 'includes/header.php';

$pdo = conectarBanco();

// Processar formulário
$mensagem = '';
$tipoMensagem = '';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (isset($_POST['acao'])) {
        if ($_POST['acao'] === 'cadastrar') {
            $nome = sanitizar($_POST['nome']);
            $token = sanitizar($_POST['token']);
            $ambiente = sanitizar($_POST['ambiente']);
            // CORREÇÃO: Agora pega o valor diretamente do POST, sem usar isset
            $optante_simples = isset($_POST['optante_simples']) ? (int)$_POST['optante_simples'] : 0;
            $ativo = isset($_POST['ativo']) ? 1 : 0;
            
            try {
                $stmt = $pdo->prepare("INSERT INTO empresas (nome, token, ambiente, optante_simples, ativo, criado_em, atualizado_em) VALUES (?, ?, ?, ?, ?, NOW(), NOW())");
                $stmt->execute([$nome, $token, $ambiente, $optante_simples, $ativo]);
                $mensagem = "Empresa cadastrada com sucesso!";
                $tipoMensagem = "success";
            } catch (PDOException $e) {
                $mensagem = "Erro ao cadastrar: " . $e->getMessage();
                $tipoMensagem = "danger";
            }
        } elseif ($_POST['acao'] === 'editar') {
            $id = $_POST['id'];
            $nome = sanitizar($_POST['nome']);
            $token = sanitizar($_POST['token']);
            $ambiente = sanitizar($_POST['ambiente']);
            // CORREÇÃO: Mesma correção para o editar
            $optante_simples = isset($_POST['optante_simples']) ? (int)$_POST['optante_simples'] : 0;
            $ativo = isset($_POST['ativo']) ? 1 : 0;
            
            try {
                $stmt = $pdo->prepare("UPDATE empresas SET nome = ?, token = ?, ambiente = ?, optante_simples = ?, ativo = ?, atualizado_em = NOW() WHERE id = ?");
                $stmt->execute([$nome, $token, $ambiente, $optante_simples, $ativo, $id]);
                $mensagem = "Empresa atualizada com sucesso!";
                $tipoMensagem = "success";
            } catch (PDOException $e) {
                $mensagem = "Erro ao atualizar: " . $e->getMessage();
                $tipoMensagem = "danger";
            }
        } elseif ($_POST['acao'] === 'excluir') {
            $id = $_POST['id'];
            try {
                $stmt = $pdo->prepare("DELETE FROM empresas WHERE id = ?");
                $stmt->execute([$id]);
                $mensagem = "Empresa excluída com sucesso!";
                $tipoMensagem = "success";
            } catch (PDOException $e) {
                $mensagem = "Erro ao excluir: " . $e->getMessage();
                $tipoMensagem = "danger";
            }
        }
    }
}

// Buscar dados para edição
$editando = null;
if (isset($_GET['editar'])) {
    $stmt = $pdo->prepare("SELECT * FROM empresas WHERE id = ?");
    $stmt->execute([$_GET['editar']]);
    $editando = $stmt->fetch(PDO::FETCH_ASSOC);
}

// Listar empresas
$empresas = $pdo->query("SELECT * FROM empresas ORDER BY id DESC")->fetchAll(PDO::FETCH_ASSOC);
?>

<div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom">
    <h1>Empresas</h1>
    <button class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#modalEmpresa" onclick="limparForm()">
        <i class="bi bi-plus-circle"></i> Nova Empresa
    </button>
</div>

<?php if ($mensagem): ?>
<div class="alert alert-<?php echo $tipoMensagem; ?> alert-dismissible fade show" role="alert">
    <?php echo $mensagem; ?>
    <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
</div>
<?php endif; ?>

<div class="card">
    <div class="card-body">
        <div class="table-responsive">
            <table class="table table-striped table-hover">
                <thead>
                    <tr>
                        <th>ID</th>
                        <th>Nome</th>
                        <th>Token</th>
                        <th>Ambiente</th>
                        <th>Simples Nacional</th>
                        <th>Status</th>
                        <th>Cadastro</th>
                        <th>Ações</th>
                    </tr>
                </thead>
                <tbody>
                    <?php foreach ($empresas as $empresa): ?>
                    <tr>
                        <td><?php echo $empresa['id']; ?></td>
                        <td><strong><?php echo htmlspecialchars($empresa['nome']); ?></strong></td>
                        <td>
                            <code><?php echo substr($empresa['token'], 0, 20) . '...'; ?></code>
                            <button class="btn btn-sm btn-link" onclick="copiarToken('<?php echo $empresa['token']; ?>')" title="Copiar token completo">
                                <i class="bi bi-clipboard"></i>
                            </button>
                        </td>
                        <td>
                            <span class="badge <?php echo $empresa['ambiente'] == 'producao' ? 'bg-danger' : 'bg-warning'; ?>">
                                <?php echo $empresa['ambiente'] == 'producao' ? 'Produção' : 'Homologação'; ?>
                            </span>
                        </td>
                        <td>
                            <?php if ($empresa['optante_simples'] == 1): ?>
                                <span class="badge bg-success">Optante</span>
                            <?php else: ?>
                                <span class="badge bg-secondary">Não Optante</span>
                            <?php endif; ?>
                        </td>
                        <td>
                            <span class="badge <?php echo $empresa['ativo'] ? 'bg-success' : 'bg-secondary'; ?>">
                                <?php echo $empresa['ativo'] ? 'Ativo' : 'Inativo'; ?>
                            </span>
                        </td>
                        <td>
                            <small><?php echo date('d/m/Y H:i', strtotime($empresa['criado_em'])); ?></small>
                        </td>
                        <td>
                            <button class="btn btn-sm btn-warning" onclick="editarEmpresa(<?php echo htmlspecialchars(json_encode($empresa)); ?>)">
                                <i class="bi bi-pencil"></i>
                            </button>
                            <button class="btn btn-sm btn-danger" onclick="excluirEmpresa(<?php echo $empresa['id']; ?>, '<?php echo addslashes($empresa['nome']); ?>')">
                                <i class="bi bi-trash"></i>
                            </button>
                        </td>
                    </tr>
                    <?php endforeach; ?>
                </tbody>
            </table>
        </div>
    </div>
</div>

<!-- Modal Cadastro/Edição -->
<div class="modal fade" id="modalEmpresa" tabindex="-1">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <form method="POST">
                <div class="modal-header">
                    <h5 class="modal-title" id="modalTitulo">Cadastrar Empresa</h5>
                    <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
                </div>
                <div class="modal-body">
                    <input type="hidden" name="acao" id="acao" value="cadastrar">
                    <input type="hidden" name="id" id="empresa_id">
                    
                    <div class="mb-3">
                        <label class="form-label">Nome da Empresa *</label>
                        <input type="text" class="form-control" name="nome" id="nome" required>
                    </div>
                    
                    <div class="mb-3">
                        <label class="form-label">Token Focus NFe *</label>
                        <input type="text" class="form-control" name="token" id="token" required>
                        <small class="text-muted">Token gerado no painel da Focus NFe</small>
                    </div>
                    
                    <div class="row">
                        <div class="col-md-6 mb-3">
                            <label class="form-label">Ambiente *</label>
                            <select class="form-control" name="ambiente" id="ambiente" required>
                                <option value="homologacao">Homologação (Testes)</option>
                                <option value="producao">Produção (Notas Reais)</option>
                            </select>
                        </div>
                        
                        <div class="col-md-6 mb-3">
                            <label class="form-label">Simples Nacional</label>
                            <select class="form-control" name="optante_simples" id="optante_simples">
                                <option value="1">Optante pelo Simples Nacional</option>
                                <option value="0">Não optante</option>
                            </select>
                        </div>
                    </div>
                    
                    <div class="row">
                        <div class="col-md-6 mb-3 form-check">
                            <input type="checkbox" class="form-check-input" name="ativo" id="ativo" value="1" checked>
                            <label class="form-check-label">Empresa Ativa</label>
                        </div>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancelar</button>
                    <button type="submit" class="btn btn-primary">Salvar</button>
                </div>
            </form>
        </div>
    </div>
</div>

<script>
function limparForm() {
    document.getElementById('modalTitulo').innerHTML = 'Cadastrar Empresa';
    document.getElementById('acao').value = 'cadastrar';
    document.getElementById('empresa_id').value = '';
    document.getElementById('nome').value = '';
    document.getElementById('token').value = '';
    document.getElementById('ambiente').value = 'homologacao';
    document.getElementById('optante_simples').value = '1';
    document.getElementById('ativo').checked = true;
}

function editarEmpresa(empresa) {
    document.getElementById('modalTitulo').innerHTML = 'Editar Empresa';
    document.getElementById('acao').value = 'editar';
    document.getElementById('empresa_id').value = empresa.id;
    document.getElementById('nome').value = empresa.nome;
    document.getElementById('token').value = empresa.token;
    document.getElementById('ambiente').value = empresa.ambiente;
    document.getElementById('optante_simples').value = empresa.optante_simples;
    document.getElementById('ativo').checked = empresa.ativo == 1;
    
    new bootstrap.Modal(document.getElementById('modalEmpresa')).show();
}

function excluirEmpresa(id, nome) {
    if (confirm(`Tem certeza que deseja excluir a empresa "${nome}"?\n\nEsta ação não pode ser desfeita!`)) {
        var form = document.createElement('form');
        form.method = 'POST';
        form.innerHTML = `
            <input type="hidden" name="acao" value="excluir">
            <input type="hidden" name="id" value="${id}">
        `;
        document.body.appendChild(form);
        form.submit();
    }
}

function copiarToken(token) {
    navigator.clipboard.writeText(token).then(function() {
        // Usando um toast seria melhor, mas por enquanto um alert simples
        alert('Token copiado para a área de transferência!');
    }).catch(function() {
        alert('Erro ao copiar token!');
    });
}
</script>

<?php include 'includes/footer.php'; ?>