<?php
// =============================================
// CONFIGURAÇÃO DE ERROS
// =============================================
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// =============================================
// INÍCIO DO BUFFER
// =============================================
ob_start();

// =============================================
// DEFINIR BASE_URL DINAMICAMENTE
// =============================================
$baseUrl = rtrim(dirname($_SERVER['SCRIPT_NAME']), '/');
define('BASE_URL', $baseUrl);

require_once 'includes/funcoes.php';

$pdo = conectarBanco();

if (!$pdo) {
    die('Erro ao conectar ao banco de dados');
}

// =============================================
// FUNÇÃO PARA BUSCAR MUNICÍPIOS NA API DO IBGE
// =============================================
function buscarMunicipiosIBGE($nome = '') {
    // Buscar municípios do Rio Grande do Sul
    $url = 'https://servicodados.ibge.gov.br/api/v1/localidades/estados/RS/municipios';
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, ['accept: application/json']);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    
    $resposta = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $curlError = curl_error($ch);
    curl_close($ch);
    
    if ($curlError) {
        return ['sucesso' => false, 'erro' => 'Erro de conexão: ' . $curlError];
    }
    
    if ($httpCode != 200) {
        return ['sucesso' => false, 'erro' => 'Erro na API IBGE: HTTP ' . $httpCode];
    }
    
    $dados = json_decode($resposta, true);
    
    if (!$dados) {
        return ['sucesso' => false, 'erro' => 'Erro ao decodificar resposta da API'];
    }
    
    // Filtrar pelo nome (busca parcial)
    if (!empty($nome)) {
        $nomeLower = strtolower(trim($nome));
        $dados = array_filter($dados, function($municipio) use ($nomeLower) {
            return strpos(strtolower($municipio['nome']), $nomeLower) !== false;
        });
        $dados = array_values($dados); // Reindexar array
    }
    
    return ['sucesso' => true, 'dados' => $dados];
}

// =============================================
// BUSCAR MUNICÍPIO VIA API IBGE (AJAX)
// =============================================
if (isset($_GET['buscar_api']) && $_GET['buscar_api'] == '1' && isset($_GET['nome'])) {
    if (ob_get_length()) {
        ob_clean();
    }
    header('Content-Type: application/json');
    
    $nome = $_GET['nome'];
    $resultado = buscarMunicipiosIBGE($nome);
    
    if ($resultado['sucesso'] && !empty($resultado['dados'])) {
        $municipio = $resultado['dados'][0];
        echo json_encode([
            'sucesso' => true,
            'codigo' => $municipio['id'],
            'nome' => $municipio['nome'],
            'uf' => 'RS'
        ]);
    } else {
        echo json_encode([
            'sucesso' => false,
            'erro' => $resultado['erro'] ?? 'Município não encontrado no Rio Grande do Sul'
        ]);
    }
    exit;
}

// =============================================
// A PARTIR DAQUI: PÁGINA HTML NORMAL
// =============================================
include 'includes/header.php';

// =============================================
// PROCESSAR CRUD
// =============================================
$mensagem = '';
$tipoMensagem = '';
$editando = null;

// CADASTRAR
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['acao'])) {
    if ($_POST['acao'] === 'cadastrar') {
        $codigo_municipio = sanitizar($_POST['codigo_municipio']);
        $nome_municipio = sanitizar($_POST['nome_municipio']);
        $uf = 'RS';
        $aliquota_iss = (float)str_replace(',', '.', $_POST['aliquota_iss']);
        $ativo = isset($_POST['ativo']) ? 1 : 0;
        
        // Verificar se já existe
        $stmt = $pdo->prepare("SELECT id FROM municipios_iss WHERE codigo_municipio = ?");
        $stmt->execute([$codigo_municipio]);
        if ($stmt->fetch()) {
            $mensagem = "Erro: Já existe um município com o código IBGE $codigo_municipio";
            $tipoMensagem = "danger";
        } else {
            try {
                $stmt = $pdo->prepare("
                    INSERT INTO municipios_iss 
                    (codigo_municipio, nome_municipio, uf, aliquota_iss, ativo, criado_em) 
                    VALUES (?, ?, ?, ?, ?, NOW())
                ");
                $stmt->execute([$codigo_municipio, $nome_municipio, $uf, $aliquota_iss, $ativo]);
                $mensagem = "Município cadastrado com sucesso!";
                $tipoMensagem = "success";
            } catch (PDOException $e) {
                $mensagem = "Erro ao cadastrar: " . $e->getMessage();
                $tipoMensagem = "danger";
            }
        }
    }
    
    // EDITAR
    if ($_POST['acao'] === 'editar') {
        $id = (int)$_POST['id'];
        $codigo_municipio = sanitizar($_POST['codigo_municipio']);
        $nome_municipio = sanitizar($_POST['nome_municipio']);
        $uf = 'RS';
        $aliquota_iss = (float)str_replace(',', '.', $_POST['aliquota_iss']);
        $ativo = isset($_POST['ativo']) ? 1 : 0;
        
        try {
            $stmt = $pdo->prepare("
                UPDATE municipios_iss SET 
                    codigo_municipio = ?,
                    nome_municipio = ?,
                    uf = ?,
                    aliquota_iss = ?,
                    ativo = ?,
                    atualizado_em = NOW()
                WHERE id = ?
            ");
            $stmt->execute([$codigo_municipio, $nome_municipio, $uf, $aliquota_iss, $ativo, $id]);
            $mensagem = "Município atualizado com sucesso!";
            $tipoMensagem = "success";
        } catch (PDOException $e) {
            $mensagem = "Erro ao atualizar: " . $e->getMessage();
            $tipoMensagem = "danger";
        }
    }
    
    // EXCLUIR
    if ($_POST['acao'] === 'excluir') {
        $id = (int)$_POST['id'];
        
        try {
            $stmt = $pdo->prepare("DELETE FROM municipios_iss WHERE id = ?");
            $stmt->execute([$id]);
            $mensagem = "Município excluído com sucesso!";
            $tipoMensagem = "success";
        } catch (PDOException $e) {
            $mensagem = "Erro ao excluir: " . $e->getMessage();
            $tipoMensagem = "danger";
        }
    }
}

// BUSCAR PARA EDIÇÃO
if (isset($_GET['editar'])) {
    $stmt = $pdo->prepare("SELECT * FROM municipios_iss WHERE id = ?");
    $stmt->execute([$_GET['editar']]);
    $editando = $stmt->fetch(PDO::FETCH_ASSOC);
}

// =============================================
// FILTRO POR NOME DE MUNICÍPIO
// =============================================
$filtro_nome = isset($_GET['filtro_nome']) ? trim($_GET['filtro_nome']) : '';

// LISTAR MUNICÍPIOS COM FILTRO
$sql = "SELECT * FROM municipios_iss WHERE uf = 'RS'";
$params = [];

if (!empty($filtro_nome)) {
    $sql .= " AND nome_municipio LIKE ?";
    $params[] = '%' . $filtro_nome . '%';
}

$sql .= " ORDER BY nome_municipio ASC";

$stmt = $pdo->prepare($sql);
$stmt->execute($params);
$municipios = $stmt->fetchAll(PDO::FETCH_ASSOC);

// ESTATÍSTICAS
$totalMunicipios = count($municipios);
$totalAtivos = count(array_filter($municipios, function($m) { return $m['ativo'] == 1; }));
$totalInativos = $totalMunicipios - $totalAtivos;
$mediaAliquota = $totalMunicipios > 0 ? array_sum(array_column($municipios, 'aliquota_iss')) / $totalMunicipios : 0;
?>

<style>
    .card-shadow { box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
    .stat-card {
        background: #f8f9fa;
        padding: 15px 20px;
        border-radius: 8px;
        text-align: center;
        transition: transform 0.2s;
        border-left: 4px solid #007bff;
    }
    .stat-card:hover { transform: translateY(-3px); box-shadow: 0 4px 12px rgba(0,0,0,0.1); }
    .stat-card .number { font-size: 28px; font-weight: bold; }
    .stat-card .label { font-size: 13px; color: #666; text-transform: uppercase; letter-spacing: 0.5px; }
    .stat-card.total { border-left-color: #007bff; }
    .stat-card.total .number { color: #007bff; }
    .stat-card.ativos { border-left-color: #28a745; }
    .stat-card.ativos .number { color: #28a745; }
    .stat-card.inativos { border-left-color: #dc3545; }
    .stat-card.inativos .number { color: #dc3545; }
    .stat-card.media { border-left-color: #ffc107; }
    .stat-card.media .number { color: #ffc107; }
    
    .status-badge { padding: 4px 12px; border-radius: 20px; font-size: 12px; font-weight: 600; }
    .status-ativo { background-color: #d4edda; color: #155724; }
    .status-inativo { background-color: #f8d7da; color: #721c24; }
    
    .table-municipios td { vertical-align: middle; font-size: 14px; }
    .table-municipios th { font-size: 12px; text-transform: uppercase; letter-spacing: 0.5px; background: #f8f9fa; }
    .table-actions { white-space: nowrap; }
    
    .btn-edit { background: #ffc107; color: #212529; border: none; padding: 4px 10px; border-radius: 4px; font-size: 13px; }
    .btn-edit:hover { background: #e0a800; color: #212529; }
    .btn-delete { background: #dc3545; color: white; border: none; padding: 4px 10px; border-radius: 4px; font-size: 13px; }
    .btn-delete:hover { background: #c82333; color: white; }
    .btn-toggle { background: #17a2b8; color: white; border: none; padding: 4px 10px; border-radius: 4px; font-size: 13px; }
    .btn-toggle:hover { background: #138496; color: white; }
    
    .required-field:after { content: " *"; color: red; }
    .modal-lg-custom { max-width: 700px; }
    
    .uf-badge { font-size: 13px; font-weight: 600; padding: 3px 10px; border-radius: 4px; background: #e9ecef; color: #333; }
    .aliquota-badge { font-size: 14px; font-weight: 700; padding: 3px 10px; border-radius: 4px; background: #e7f3ff; color: #0066cc; }
    
    .rs-flag {
        background: #009739;
        color: white;
        padding: 2px 12px;
        border-radius: 4px;
        font-size: 12px;
        font-weight: 600;
    }
    
    .busca-loading {
        position: relative;
    }
    .busca-loading::after {
        content: '';
        position: absolute;
        right: 35px;
        top: 50%;
        transform: translateY(-50%);
        width: 16px;
        height: 16px;
        border: 2px solid #f3f3f3;
        border-top: 2px solid #0066cc;
        border-radius: 50%;
        animation: spin 0.8s linear infinite;
    }
    @keyframes spin {
        0% { transform: translateY(-50%) rotate(0deg); }
        100% { transform: translateY(-50%) rotate(360deg); }
    }
    
    .resultado-busca {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: white;
        border: 1px solid #dee2e6;
        border-radius: 4px;
        z-index: 1000;
        max-height: 200px;
        overflow-y: auto;
        display: none;
        box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    }
    .resultado-busca .item {
        padding: 10px 12px;
        cursor: pointer;
        border-bottom: 1px solid #f8f9fa;
    }
    .resultado-busca .item:hover {
        background: #e7f3ff;
    }
    .resultado-busca .item:last-child {
        border-bottom: none;
    }
    .resultado-busca .item .codigo {
        font-size: 12px;
        color: #6c757d;
    }
    .resultado-busca .item .nome {
        font-weight: 600;
        font-size: 15px;
    }
    .resultado-busca .item .fonte {
        font-size: 10px;
        color: #0066cc;
    }
    
    .campo-busca-wrapper {
        position: relative;
    }
    
    .ibge-badge {
        background: #0066cc;
        color: white;
        font-size: 10px;
        padding: 2px 8px;
        border-radius: 12px;
    }
    
    .filtro-container {
        background: #f8f9fa;
        padding: 15px 20px;
        border-radius: 8px;
        margin-bottom: 20px;
    }
    
    .filtro-container .btn-limpar {
        color: #6c757d;
        text-decoration: none;
    }
    .filtro-container .btn-limpar:hover {
        color: #dc3545;
    }
</style>

<div class="container-fluid mt-3">
    <!-- CABEÇALHO -->
    <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom">
        <div>
            <h1><i class="bi bi-geo-alt"></i> Cadastro de ISS - Rio Grande do Sul</h1>
            <span class="rs-flag"><i class="bi bi-flag"></i> RS</span>
            <span class="badge bg-info text-white ms-2">Gerenciamento de Alíquotas ISS</span>
            <span class="ibge-badge ms-2"><i class="bi bi-database"></i> Dados IBGE</span>
        </div>
        <div>
            <button class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#modalMunicipio" onclick="limparForm()">
                <i class="bi bi-plus-circle"></i> Novo Município
            </button>
            <button class="btn btn-outline-secondary ms-2" onclick="location.reload()">
                <i class="bi bi-arrow-clockwise"></i>
            </button>
        </div>
    </div>

    <!-- MENSAGENS -->
    <?php if ($mensagem): ?>
    <div class="alert alert-<?php echo $tipoMensagem; ?> alert-dismissible fade show">
        <i class="bi <?php echo $tipoMensagem == 'success' ? 'bi-check-circle' : 'bi-exclamation-triangle'; ?>"></i>
        <?php echo $mensagem; ?>
        <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
    </div>
    <?php endif; ?>

    <!-- ESTATÍSTICAS -->
    <div class="row mb-4">
        <div class="col-md-3">
            <div class="stat-card total">
                <div class="number"><?php echo $totalMunicipios; ?></div>
                <div class="label">Total de Municípios</div>
            </div>
        </div>
        <div class="col-md-3">
            <div class="stat-card ativos">
                <div class="number"><?php echo $totalAtivos; ?></div>
                <div class="label">✅ Ativos</div>
            </div>
        </div>
        <div class="col-md-3">
            <div class="stat-card inativos">
                <div class="number"><?php echo $totalInativos; ?></div>
                <div class="label">❌ Inativos</div>
            </div>
        </div>
        <div class="col-md-3">
            <div class="stat-card media">
                <div class="number"><?php echo number_format($mediaAliquota, 2, ',', '.'); ?>%</div>
                <div class="label">Média de Alíquota</div>
            </div>
        </div>
    </div>

    <!-- FILTRO POR NOME DO MUNICÍPIO -->
    <div class="filtro-container">
        <form method="GET" class="row g-3 align-items-end">
            <div class="col-md-8">
                <label for="filtro_nome" class="form-label">
                    <i class="bi bi-search"></i> Filtrar por nome do município
                </label>
                <div class="input-group">
                    <input type="text" class="form-control" id="filtro_nome" name="filtro_nome" 
                           placeholder="Digite o nome do município..." 
                           value="<?php echo htmlspecialchars($filtro_nome); ?>">
                    <button class="btn btn-primary" type="submit">
                        <i class="bi bi-search"></i> Filtrar
                    </button>
                    <?php if (!empty($filtro_nome)): ?>
                    <a href="<?php echo $_SERVER['PHP_SELF']; ?>" class="btn btn-outline-secondary">
                        <i class="bi bi-x-circle"></i> Limpar
                    </a>
                    <?php endif; ?>
                </div>
            </div>
            <div class="col-md-4 text-end">
                <span class="text-muted">
                    <i class="bi bi-info-circle"></i> 
                    <?php if (!empty($filtro_nome)): ?>
                        Mostrando <strong><?php echo $totalMunicipios; ?></strong> resultado(s)
                    <?php else: ?>
                        Total: <strong><?php echo $totalMunicipios; ?></strong> municípios
                    <?php endif; ?>
                </span>
            </div>
        </form>
    </div>

    <!-- TABELA -->
    <div class="card card-shadow">
        <div class="card-header bg-primary text-white d-flex justify-content-between align-items-center">
            <div>
                <strong><i class="bi bi-list-ul"></i> Municípios Cadastrados</strong>
                <span class="badge bg-light text-dark ms-2"><?php echo $totalMunicipios; ?> registros</span>
            </div>
            <div>
                <button class="btn btn-sm btn-light" onclick="exportarCSV()">
                    <i class="bi bi-download"></i> Exportar CSV
                </button>
            </div>
        </div>
        <div class="card-body">
            <div class="table-responsive">
                <table class="table table-striped table-hover table-municipios" id="tabelaMunicipios">
                    <thead>
                        <tr>
                            <th>ID</th>
                            <th>Código IBGE</th>
                            <th>Município</th>
                            <th>UF</th>
                            <th>Alíquota ISS</th>
                            <th>Status</th>
                            <th>Criado em</th>
                            <th>Atualizado em</th>
                            <th>Ações</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php foreach ($municipios as $municipio): ?>
                        <tr data-id="<?php echo $municipio['id']; ?>" 
                            data-codigo="<?php echo $municipio['codigo_municipio']; ?>"
                            data-nome="<?php echo htmlspecialchars($municipio['nome_municipio']); ?>"
                            data-uf="<?php echo $municipio['uf']; ?>"
                            data-aliquota="<?php echo $municipio['aliquota_iss']; ?>"
                            data-ativo="<?php echo $municipio['ativo']; ?>">
                            <td><?php echo $municipio['id']; ?></td>
                            <td><code><?php echo $municipio['codigo_municipio']; ?></code></td>
                            <td><strong><?php echo htmlspecialchars($municipio['nome_municipio']); ?></strong></td>
                            <td><span class="uf-badge"><?php echo $municipio['uf']; ?></span></td>
                            <td><span class="aliquota-badge"><?php echo number_format($municipio['aliquota_iss'], 2, ',', '.'); ?>%</span></td>
                            <td>
                                <span class="status-badge status-<?php echo $municipio['ativo'] ? 'ativo' : 'inativo'; ?>">
                                    <?php echo $municipio['ativo'] ? '✅ Ativo' : '❌ Inativo'; ?>
                                </span>
                            </td>
                            <td><small><?php echo date('d/m/Y H:i', strtotime($municipio['criado_em'])); ?></small></td>
                            <td>
                                <?php if ($municipio['atualizado_em']): ?>
                                    <small><?php echo date('d/m/Y H:i', strtotime($municipio['atualizado_em'])); ?></small>
                                <?php else: ?>
                                    <span class="text-muted">-</span>
                                <?php endif; ?>
                            </td>
                            <td class="table-actions">
                                <button class="btn-edit" onclick="editarMunicipio(<?php echo $municipio['id']; ?>)" title="Editar">
                                    <i class="bi bi-pencil"></i>
                                </button>
                                <button class="btn-toggle" onclick="toggleStatus(<?php echo $municipio['id']; ?>, <?php echo $municipio['ativo']; ?>)" title="Alternar status">
                                    <i class="bi bi-<?php echo $municipio['ativo'] ? 'eye-slash' : 'eye'; ?>"></i>
                                </button>
                                <button class="btn-delete" onclick="excluirMunicipio(<?php echo $municipio['id']; ?>, '<?php echo addslashes($municipio['nome_municipio']); ?>')" title="Excluir">
                                    <i class="bi bi-trash"></i>
                                </button>
                            </td>
                        </tr>
                        <?php endforeach; ?>
                        <?php if (empty($municipios)): ?>
                        <tr>
                            <td colspan="9" class="text-center text-muted py-4">
                                <i class="bi bi-inbox fs-1 d-block"></i>
                                <?php if (!empty($filtro_nome)): ?>
                                    Nenhum município encontrado com o nome "<strong><?php echo htmlspecialchars($filtro_nome); ?></strong>"
                                <?php else: ?>
                                    Nenhum município cadastrado
                                <?php endif; ?>
                            </td>
                        </tr>
                        <?php endif; ?>
                    </tbody>
                </table>
            </div>
        </div>
    </div>
</div>

<!-- MODAL CADASTRO/EDIÇÃO -->
<div class="modal fade" id="modalMunicipio" tabindex="-1" data-bs-backdrop="static">
    <div class="modal-dialog modal-dialog-centered modal-lg-custom">
        <div class="modal-content">
            <div class="modal-header <?php echo $editando ? 'bg-warning' : 'bg-primary'; ?> text-white">
                <h5 class="modal-title" id="modalTitulo">
                    <i class="bi <?php echo $editando ? 'bi-pencil' : 'bi-plus-circle'; ?>"></i>
                    <?php echo $editando ? 'Editar' : 'Cadastrar'; ?> Município
                </h5>
                <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal"></button>
            </div>
            <form method="POST" id="formMunicipio">
                <div class="modal-body">
                    <input type="hidden" name="acao" id="acao" value="<?php echo $editando ? 'editar' : 'cadastrar'; ?>">
                    <input type="hidden" name="id" id="municipio_id" value="<?php echo $editando ? $editando['id'] : ''; ?>">
                    <input type="hidden" name="uf" id="uf" value="RS">
                    
                    <div class="alert alert-info">
                        <i class="bi bi-info-circle"></i>
                        <strong>UF:</strong> Rio Grande do Sul (RS) - Fixo
                        <span class="ibge-badge ms-2"><i class="bi bi-database"></i> Dados do IBGE</span>
                    </div>
                    
                    <div class="row">
                        <div class="col-md-12 mb-3">
                            <label class="form-label required-field">Município</label>
                            <div class="campo-busca-wrapper">
                                <input type="text" class="form-control" id="nome_busca" 
                                       placeholder="Digite o nome do município para buscar o código IBGE..."
                                       autocomplete="off"
                                       value="<?php echo $editando ? htmlspecialchars($editando['nome_municipio']) : ''; ?>"
                                       onkeyup="buscarMunicipioAoDigitar(this.value)">
                                <div class="resultado-busca" id="resultadoBusca"></div>
                            </div>
                            <small class="text-muted">Digite o nome do município para carregar automaticamente o código IBGE (Fonte: IBGE)</small>
                        </div>
                    </div>
                    
                    <div class="row">
                        <div class="col-md-4 mb-3">
                            <label class="form-label required-field">Código IBGE</label>
                            <input type="text" class="form-control" name="codigo_municipio" id="codigo_municipio" 
                                   value="<?php echo $editando ? $editando['codigo_municipio'] : ''; ?>" 
                                   maxlength="7" required placeholder="Ex: 4303103" readonly>
                            <small class="text-muted">Carregado automaticamente</small>
                        </div>
                        <div class="col-md-5 mb-3">
                            <label class="form-label required-field">Nome do Município</label>
                            <input type="text" class="form-control" name="nome_municipio" id="nome_municipio" 
                                   value="<?php echo $editando ? htmlspecialchars($editando['nome_municipio']) : ''; ?>" 
                                   required placeholder="Ex: Cachoeirinha" readonly>
                            <small class="text-muted">Carregado automaticamente</small>
                        </div>
                        <div class="col-md-3 mb-3">
                            <label class="form-label required-field">UF</label>
                            <input type="text" class="form-control" value="RS" disabled>
                            <small class="text-muted">Rio Grande do Sul</small>
                        </div>
                    </div>
                    
                    <div class="row">
                        <div class="col-md-6 mb-3">
                            <label class="form-label required-field">Alíquota ISS (%)</label>
                            <input type="number" step="0.01" min="0" max="100" class="form-control" name="aliquota_iss" id="aliquota_iss" 
                                   value="<?php echo $editando ? number_format($editando['aliquota_iss'], 2, '.', '') : ''; ?>" 
                                   required placeholder="Ex: 3.37">
                            <small class="text-muted">Valor da alíquota do município</small>
                        </div>
                        <div class="col-md-6 mb-3">
                            <label class="form-label">Status</label>
                            <div class="form-check form-switch mt-2">
                                <input class="form-check-input" type="checkbox" name="ativo" id="ativo" value="1" 
                                       <?php echo (!$editando || $editando['ativo'] == 1) ? 'checked' : ''; ?>>
                                <label class="form-check-label" for="ativo">
                                    <span id="statusLabel"><?php echo (!$editando || $editando['ativo'] == 1) ? 'Ativo' : 'Inativo'; ?></span>
                                </label>
                            </div>
                            <small class="text-muted">Desative para não utilizar este município</small>
                        </div>
                    </div>
                    
                    <?php if ($editando): ?>
                    <div class="alert alert-info">
                        <i class="bi bi-info-circle"></i>
                        <strong>Informações:</strong> Criado em <?php echo date('d/m/Y H:i', strtotime($editando['criado_em'])); ?>
                        <?php if ($editando['atualizado_em']): ?>
                            | Última atualização: <?php echo date('d/m/Y H:i', strtotime($editando['atualizado_em'])); ?>
                        <?php endif; ?>
                    </div>
                    <?php endif; ?>
                </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">
                        <i class="bi bi-save"></i> Salvar
                    </button>
                </div>
            </form>
        </div>
    </div>
</div>

<!-- MODAL DE EXCLUSÃO -->
<div class="modal fade" id="modalExcluir" tabindex="-1">
    <div class="modal-dialog modal-dialog-centered">
        <div class="modal-content">
            <div class="modal-header bg-danger text-white">
                <h5 class="modal-title"><i class="bi bi-exclamation-triangle"></i> Confirmar Exclusão</h5>
                <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal"></button>
            </div>
            <div class="modal-body">
                <p>Tem certeza que deseja excluir o município <strong id="excluir_nome"></strong>?</p>
                <p class="text-danger"><small>Esta ação não pode ser desfeita!</small></p>
            </div>
            <div class="modal-footer">
                <form method="POST" id="formExcluir">
                    <input type="hidden" name="acao" value="excluir">
                    <input type="hidden" name="id" id="excluir_id">
                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancelar</button>
                    <button type="submit" class="btn btn-danger">Sim, Excluir</button>
                </form>
            </div>
        </div>
    </div>
</div>

<script>
// =============================================
// VARIÁVEIS GLOBAIS
// =============================================
var timeoutBusca = null;
var editando = <?php echo $editando ? 'true' : 'false'; ?>;

// =============================================
// FUNÇÃO PARA BUSCAR MUNICÍPIO AO DIGITAR
// =============================================
function buscarMunicipioAoDigitar(nome) {
    var resultadoDiv = document.getElementById('resultadoBusca');
    
    if (nome.length < 2) {
        resultadoDiv.style.display = 'none';
        return;
    }
    
    if (timeoutBusca) {
        clearTimeout(timeoutBusca);
    }
    
    document.getElementById('nome_busca').classList.add('busca-loading');
    
    timeoutBusca = setTimeout(function() {
        var url = window.location.pathname + '?buscar_api=1&nome=' + encodeURIComponent(nome);
        
        fetch(url)
            .then(response => response.json())
            .then(data => {
                document.getElementById('nome_busca').classList.remove('busca-loading');
                
                if (data.sucesso) {
                    mostrarResultadoBusca(data);
                } else {
                    resultadoDiv.innerHTML = '<div class="item text-muted"><i class="bi bi-exclamation-triangle"></i> ' + (data.erro || 'Município não encontrado no RS') + '</div>';
                    resultadoDiv.style.display = 'block';
                }
            })
            .catch(error => {
                document.getElementById('nome_busca').classList.remove('busca-loading');
                console.error('Erro na busca:', error);
                resultadoDiv.innerHTML = '<div class="item text-danger"><i class="bi bi-x-circle"></i> Erro ao buscar: ' + error.message + '</div>';
                resultadoDiv.style.display = 'block';
            });
    }, 500);
}

// =============================================
// FUNÇÃO PARA MOSTRAR RESULTADO DA BUSCA
// =============================================
function mostrarResultadoBusca(municipio) {
    var resultadoDiv = document.getElementById('resultadoBusca');
    
    resultadoDiv.innerHTML = `
        <div class="item" onclick="selecionarMunicipio('${municipio.codigo}', '${municipio.nome}')">
            <div class="nome">${municipio.nome} <span class="uf-badge">${municipio.uf}</span></div>
            <div class="codigo">IBGE: ${municipio.codigo}</div>
            <div class="fonte"><i class="bi bi-database"></i> Fonte: IBGE</div>
        </div>
    `;
    resultadoDiv.style.display = 'block';
}

// =============================================
// FUNÇÃO PARA SELECIONAR MUNICÍPIO
// =============================================
function selecionarMunicipio(codigo, nome) {
    document.getElementById('codigo_municipio').value = codigo;
    document.getElementById('nome_municipio').value = nome;
    document.getElementById('nome_busca').value = nome;
    document.getElementById('resultadoBusca').style.display = 'none';
    document.getElementById('nome_busca').classList.remove('busca-loading');
    
    document.getElementById('codigo_municipio').classList.remove('is-invalid');
    document.getElementById('nome_municipio').classList.remove('is-invalid');
    
    document.getElementById('aliquota_iss').focus();
}

// =============================================
// FUNÇÃO PARA LIMPAR FORMULÁRIO
// =============================================
function limparForm() {
    document.getElementById('modalTitulo').innerHTML = '<i class="bi bi-plus-circle"></i> Cadastrar Município';
    document.getElementById('acao').value = 'cadastrar';
    document.getElementById('municipio_id').value = '';
    document.getElementById('codigo_municipio').value = '';
    document.getElementById('nome_municipio').value = '';
    document.getElementById('nome_busca').value = '';
    document.getElementById('aliquota_iss').value = '';
    document.getElementById('ativo').checked = true;
    document.getElementById('statusLabel').textContent = 'Ativo';
    document.getElementById('resultadoBusca').style.display = 'none';
    document.getElementById('nome_busca').classList.remove('busca-loading');
    document.querySelectorAll('.is-invalid').forEach(el => el.classList.remove('is-invalid'));
    editando = false;
}

// =============================================
// FUNÇÃO PARA EDITAR MUNICÍPIO (VERSÃO MELHORADA)
// =============================================
function editarMunicipio(id) {
    // Buscar os dados da linha da tabela
    var row = document.querySelector('tr[data-id="' + id + '"]');
    if (!row) {
        alert('Erro: município não encontrado na tabela');
        return;
    }
    
    var codigo = row.dataset.codigo;
    var nome = row.dataset.nome;
    var uf = row.dataset.uf;
    var aliquota = row.dataset.aliquota;
    var ativo = row.dataset.ativo;
    
    // Preencher o formulário no modal
    document.getElementById('modalTitulo').innerHTML = '<i class="bi bi-pencil"></i> Editar Município';
    document.getElementById('acao').value = 'editar';
    document.getElementById('municipio_id').value = id;
    document.getElementById('codigo_municipio').value = codigo;
    document.getElementById('nome_municipio').value = nome;
    document.getElementById('nome_busca').value = nome;
    document.getElementById('aliquota_iss').value = aliquota;
    document.getElementById('ativo').checked = ativo == '1';
    document.getElementById('statusLabel').textContent = ativo == '1' ? 'Ativo' : 'Inativo';
    document.getElementById('resultadoBusca').style.display = 'none';
    document.querySelectorAll('.is-invalid').forEach(el => el.classList.remove('is-invalid'));
    
    editando = true;
    
    // Abrir o modal
    var modal = new bootstrap.Modal(document.getElementById('modalMunicipio'));
    modal.show();
}

// =============================================
// FUNÇÃO PARA EXCLUIR MUNICÍPIO
// =============================================
function excluirMunicipio(id, nome) {
    document.getElementById('excluir_nome').textContent = nome;
    document.getElementById('excluir_id').value = id;
    new bootstrap.Modal(document.getElementById('modalExcluir')).show();
}

// =============================================
// FUNÇÃO PARA ALTERNAR STATUS
// =============================================
function toggleStatus(id, ativoAtual) {
    var novoStatus = ativoAtual == 1 ? 0 : 1;
    var acao = novoStatus == 1 ? 'ativar' : 'desativar';
    
    if (confirm('Deseja ' + acao + ' este município?')) {
        var form = document.createElement('form');
        form.method = 'POST';
        form.innerHTML = `
            <input type="hidden" name="acao" value="editar">
            <input type="hidden" name="id" value="${id}">
            <input type="hidden" name="codigo_municipio" value="${document.querySelector('tr[data-id="' + id + '"]').dataset.codigo}">
            <input type="hidden" name="nome_municipio" value="${document.querySelector('tr[data-id="' + id + '"]').dataset.nome}">
            <input type="hidden" name="uf" value="RS">
            <input type="hidden" name="aliquota_iss" value="${document.querySelector('tr[data-id="' + id + '"]').dataset.aliquota}">
            <input type="hidden" name="ativo" value="${novoStatus}">
        `;
        document.body.appendChild(form);
        form.submit();
    }
}

// =============================================
// FUNÇÃO PARA EXPORTAR CSV
// =============================================
function exportarCSV() {
    var linhas = document.querySelectorAll('#tabelaMunicipios tbody tr');
    var csv = 'ID,Código IBGE,Município,UF,Alíquota (%),Status,Criado em,Atualizado em\n';
    
    linhas.forEach(function(linha) {
        var cols = linha.querySelectorAll('td');
        if (cols.length >= 8) {
            var id = cols[0].textContent.trim();
            var codigo = cols[1].textContent.trim();
            var nome = cols[2].textContent.trim();
            var uf = cols[3].textContent.trim();
            var aliquota = cols[4].textContent.trim().replace('%', '');
            var status = cols[5].textContent.trim();
            var criado = cols[6].textContent.trim();
            var atualizado = cols[7].textContent.trim();
            csv += `${id},"${codigo}","${nome}","${uf}","${aliquota}","${status}","${criado}","${atualizado}"\n`;
        }
    });
    
    var blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' });
    var link = document.createElement('a');
    link.href = URL.createObjectURL(blob);
    link.download = 'municipios_rs_iss_' + new Date().toISOString().slice(0,10) + '.csv';
    link.click();
}

// =============================================
// FECHAR RESULTADOS AO CLICAR FORA
// =============================================
document.addEventListener('click', function(e) {
    var wrapper = document.querySelector('.campo-busca-wrapper');
    if (wrapper && !wrapper.contains(e.target)) {
        document.getElementById('resultadoBusca').style.display = 'none';
    }
});

// =============================================
// ATUALIZAR LABEL DO SWITCH
// =============================================
document.getElementById('ativo').addEventListener('change', function() {
    document.getElementById('statusLabel').textContent = this.checked ? 'Ativo' : 'Inativo';
});

// =============================================
// VALIDAÇÃO DO FORMULÁRIO
// =============================================
document.getElementById('formMunicipio').addEventListener('submit', function(e) {
    var codigo = document.getElementById('codigo_municipio').value.trim();
    var nome = document.getElementById('nome_municipio').value.trim();
    var aliquota = parseFloat(document.getElementById('aliquota_iss').value.replace(',', '.'));
    
    var erros = [];
    
    if (!codigo || codigo.length < 7) {
        erros.push('Código IBGE deve ter 7 dígitos');
        document.getElementById('codigo_municipio').classList.add('is-invalid');
    } else {
        document.getElementById('codigo_municipio').classList.remove('is-invalid');
    }
    
    if (!nome) {
        erros.push('Nome do município é obrigatório');
        document.getElementById('nome_municipio').classList.add('is-invalid');
    } else {
        document.getElementById('nome_municipio').classList.remove('is-invalid');
    }
    
    if (!aliquota || isNaN(aliquota) || aliquota < 0 || aliquota > 100) {
        erros.push('Alíquota inválida (deve ser entre 0 e 100)');
        document.getElementById('aliquota_iss').classList.add('is-invalid');
    } else {
        document.getElementById('aliquota_iss').classList.remove('is-invalid');
    }
    
    if (erros.length > 0) {
        e.preventDefault();
        alert('❌ Por favor, corrija os seguintes erros:\n\n' + erros.join('\n'));
        return false;
    }
});
</script>

<?php 
ob_end_flush();
include 'includes/footer.php'; 
?>