<?php
// 1. CONFIGURAÇÕES E ERROS
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

include_once('../config.php');
include_once('../header.php');

// 2. Lógica para Cadastrar Link
if (isset($_POST['btn_cadastrar'])) {
    $depto = mysqli_real_escape_string($conn, $_POST['departamento']);
    $desc  = mysqli_real_escape_string($conn, $_POST['descricao']);
    $url   = mysqli_real_escape_string($conn, $_POST['url_link']);

    if (!empty($depto) && !empty($url)) {
        $sql = "INSERT INTO linksuteis (departamento, descricao, url) VALUES ('$depto', '$desc', '$url')";
        if ($conn->query($sql)) {
            echo "<script>alert('LINK CADASTRADO COM SUCESSO!'); window.location.href='linksuteis.php';</script>";
        }
    }
}

// 3. Lógica para Excluir Link
if (isset($_GET['excluir'])) {
    $id = (int)$_GET['excluir'];
    $conn->query("DELETE FROM linksuteis WHERE id = $id");
    echo "<script>window.location.href='linksuteis.php';</script>";
}

// 4. Buscar Links Cadastrados e Organizar por Departamento
$sql_links = $conn->query("SELECT * FROM linksuteis ORDER BY departamento ASC, descricao ASC");
$links_por_depto = [];

if ($sql_links && $sql_links->num_rows > 0) {
    while ($row = $sql_links->fetch_assoc()) {
        $links_por_depto[$row['departamento']][] = $row;
    }
}

// Busca departamentos únicos para a lista suspensa
$sql_deptos_lista = $conn->query("SELECT DISTINCT departamento FROM linksuteis ORDER BY departamento ASC");

// Função para gerar uma cor fixa baseada na string do departamento
function gerarCorDepto($texto) {
    $hash = md5($texto);
    return '#' . substr($hash, 0, 6);
}
?>

<style>
    .ponto-wrapper { background: #fff; padding: 20px; font-family: 'Segoe UI', sans-serif; text-transform: uppercase; }
    .secao-cadastro { background: #f9f9f9; padding: 20px; border: 2px solid #333; border-radius: 4px; margin-bottom: 30px; }
    .titulo-secao { font-size: 14px; font-weight: bold; margin-bottom: 15px; border-left: 5px solid #000; padding-left: 10px; }
    
    .form-grupo { display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap; }
    .input-bloco { display: flex; flex-direction: column; flex: 1; min-width: 200px; }
    .input-bloco label { font-size: 10px; font-weight: bold; margin-bottom: 5px; }
    .input-ponto { padding: 10px; border: 1px solid #ccc; font-weight: bold; text-transform: uppercase; }
    
    .btn-salvar { background: #28a745; color: #fff; border: none; padding: 11px 25px; font-weight: bold; cursor: pointer; border-radius: 4px; }
    .btn-salvar:hover { background: #218838; }

    /* Estilo das Tabelas */
    .container-depto { margin-bottom: 40px; border: 1px solid #ddd; padding: 10px; border-radius: 4px; }
    
    .titulo-depto { 
        font-size: 16px; 
        font-weight: bold; 
        padding: 10px; 
        color: #000; 
        margin: -10px -10px 10px -10px; 
        border-radius: 4px 4px 0 0; 
        display: flex; 
        justify-content: space-between; 
    }
    
    .tabela-ponto { width: 100%; border-collapse: collapse; font-size: 11px; }
    .tabela-ponto th { background: #333; color: #fff; padding: 12px; text-align: left; }
    .tabela-ponto td { padding: 10px; border: 1px solid #ddd; font-weight: bold; background: #fff; }
    .tabela-ponto tr:nth-child(even) td { background: #fafafa; }
    
    .btn-excluir { color: #dc3545; text-decoration: none; font-size: 10px; font-weight: bold; }
    .btn-acessar { background: #007bff; color: #fff !important; text-decoration: none; padding: 5px 10px; border-radius: 3px; font-size: 10px; display: inline-block; }
</style>

<div class="ponto-wrapper">
    <h2 style="text-align:center; background:#eee; padding:10px; font-size:14px;">🔗 GESTÃO DE LINKS ÚTEIS (DEPARTAMENTOS)</h2>

    <div class="secao-cadastro">
        <div class="titulo-secao">CADASTRAR NOVO LINK</div>
        <form method="POST" class="form-grupo">
            <div class="input-bloco">
                <label>DEPARTAMENTO</label>
                <input type="text" name="departamento" class="input-ponto" placeholder="EX: FORNECEDORES" list="lista_deptos" autocomplete="off" required>
                <datalist id="lista_deptos">
                    <?php while ($d = $sql_deptos_lista->fetch_assoc()): ?>
                        <option value="<?php echo $d['departamento']; ?>">
                    <?php endwhile; ?>
                </datalist>
            </div>
            <div class="input-bloco">
                <label>DESCRIÇÃO / NOME</label>
                <input type="text" name="descricao" class="input-ponto" placeholder="EX: SITE DISTRIBUIDORA X">
            </div>
            <div class="input-bloco">
                <label>URL (LINK COMPLETO)</label>
                <input type="url" name="url_link" class="input-ponto" placeholder="http://..." required>
            </div>
            <button type="submit" name="btn_cadastrar" class="btn-salvar">💾 SALVAR LINK</button>
        </form>
    </div>

    <div class="titulo-secao">LINKS ORGANIZADOS POR DEPARTAMENTO</div>
    
    <input type="text" id="inputBusca" onkeyup="filtrar()" placeholder="🔍 BUSCAR LINK OU DEPTO..." 
           style="width: 100%; padding: 10px; margin-bottom: 20px; border: 1px solid #ccc; font-weight: bold; font-size: 11px;">

    <div id="listaTabelas">
        <?php if(!empty($links_por_depto)): ?>
            <?php foreach($links_por_depto as $depto_nome => $lista_links): 
                $cor = gerarCorDepto($depto_nome); 
            ?>
                <div class="container-depto secao-depto-filtro">
                    <div class="titulo-depto" style="background-color: <?php echo $cor; ?>;">
                        <span>🏢 <?php echo $depto_nome; ?></span>
                        <small style="font-size: 10px; opacity: 0.8; color: #000;"><?php echo count($lista_links); ?> LINK(S)</small>
                    </div>
                    
                    <table class="tabela-ponto">
                        <thead>
                            <tr>
                                <th style="background: rgba(0,0,0,0.1); color: #000;">DESCRIÇÃO</th>
                                <th style="background: rgba(0,0,0,0.1); color: #000;">URL</th>
                                <th style="width: 150px; text-align: center; background: rgba(0,0,0,0.1); color: #000;">AÇÕES</th>
                            </tr>
                        </thead>
                        <tbody>
                            <?php foreach($lista_links as $l): ?>
                            <tr class="linha-link">
                                <td style="width: 30%;"><?php echo !empty($l['descricao']) ? $l['descricao'] : '---'; ?></td>
                                <td style="text-transform: lowercase; color: #666;"><?php echo $l['url']; ?></td>
                                <td style="text-align: center;">
                                    <a href="<?php echo $l['url']; ?>" target="_blank" class="btn-acessar">🔗 ACESSAR</a>
                                    <a href="?excluir=<?php echo $l['id']; ?>" class="btn-excluir" onclick="return confirm('DESEJA REMOVER ESTE LINK?')"> [X]</a>
                                </td>
                            </tr>
                            <?php endforeach; ?>
                        </tbody>
                    </table>
                </div>
            <?php endforeach; ?>
        <?php else: ?>
            <div style="text-align:center; padding: 40px; background: #f9f9f9; border: 1px dashed #ccc;">NENHUM LINK CADASTRADO.</div>
        <?php endif; ?>
    </div>
</div>

<script>
function filtrar() {
    var input = document.getElementById("inputBusca");
    var filter = input.value.toUpperCase();
    var secoes = document.getElementsByClassName("secao-depto-filtro");

    for (var i = 0; i < secoes.length; i++) {
        var linhas = secoes[i].getElementsByClassName("linha-link");
        var deptoTexto = secoes[i].getElementsByClassName("titulo-depto")[0].innerText.toUpperCase();
        var algumVisivel = false;

        if (deptoTexto.indexOf(filter) > -1) {
            secoes[i].style.display = "";
            for (var j = 0; j < linhas.length; j++) {
                linhas[j].style.display = "";
            }
            continue;
        }

        for (var j = 0; j < linhas.length; j++) {
            var textoLinha = linhas[j].innerText || linhas[j].textContent;
            if (textoLinha.toUpperCase().indexOf(filter) > -1) {
                linhas[j].style.display = "";
                algumVisivel = true;
            } else {
                linhas[j].style.display = "none";
            }
        }

        secoes[i].style.display = algumVisivel ? "" : "none";
    }
}
</script>