<?php
/**
 * Menu Generativo Automático — Estilo Mega Menu
 * Lê categorias do banco ordenadas por posicao (drag-and-drop no admin).
 * Categorias pai (sem parent_id)  → item de nível 1 na navbar
 * Categorias filhas (com parent_id) → aparecem dentro do mega-menu da pai
 * Categorias pai SEM filhos → link simples na navbar
 */

// Busca TODAS as categorias ativas ordenadas pela posição
$_sql_menu = "SELECT id, nome, parent_id
              FROM categorias
              WHERE status = 'Ativo' OR status = 'ativo'
              ORDER BY posicao ASC, id ASC";
$_res_menu = $conn->query($_sql_menu);

$_pais_menu   = [];   // Categorias de nível 1
$_filhos_menu = [];   // Indexado por parent_id

if ($_res_menu && $_res_menu->num_rows > 0) {
    while ($_r = $_res_menu->fetch_assoc()) {
        if (empty($_r['parent_id'])) {
            $_pais_menu[] = $_r;
        } else {
            $_filhos_menu[(int)$_r['parent_id']][] = $_r;
        }
    }
}

// ── Renderiza ────────────────────────────────────────────────────────────────
foreach ($_pais_menu as $_pai) {
    $_pid   = (int)$_pai['id'];
    $_pnome = htmlspecialchars($_pai['nome'], ENT_QUOTES, 'UTF-8');
    $_subs  = $_filhos_menu[$_pid] ?? [];

    if (!empty($_subs)) {
        // ── MEGA MENU (categoria com subcategorias) — sempre 4 colunas ─────
        // Divide as subcategorias em exatamente 4 colunas
        $_total     = count($_subs);
        $_perCol    = (int)ceil($_total / 4);
        if ($_perCol < 1) $_perCol = 1;
        $_colunas   = array_chunk($_subs, $_perCol);

        echo '<div class="nav-item dropdown dropdown-mega">';
        echo '<a href="departamento.php?categoria_id=' . $_pid . '" '
           . 'class="nav-link dropdown-toggle" '
           . 'data-bs-toggle="dropdown">'
           . $_pnome . '</a>';

        echo '<div class="dropdown-menu m-0">';
        echo '<div class="container-fluid"><div class="row g-4">';

        foreach ($_colunas as $_idx => $_colFilhos) {
            echo '<div class="col-md-3">';
            echo '<div class="d-flex flex-column">';

            // Primeira coluna: título e link direto para a categoria mãe
            if ($_idx === 0) {
                echo '<a class="mega-menu-title">' . $_pnome . '</a>';
                echo '<a href="departamento.php?categoria_id=' . $_pid . '" '
                   . 'class="dropdown-item-mega fw-semibold">'
                   . '▸ ' . $_pnome . '</a>';
            } else {
                echo '<div class="mega-menu-title">&nbsp;</div>';
            }

            foreach ($_colFilhos as $_sub) {
                $_sid   = (int)$_sub['id'];
                $_snome = htmlspecialchars($_sub['nome'], ENT_QUOTES, 'UTF-8');
                echo '<a href="departamento.php?categoria_id=' . $_sid . '" '
                   . 'class="dropdown-item-mega">'
                   . $_snome . '</a>';
            }

            echo '</div></div>';
        }

        // Preenche colunas vazias para sempre manter 4
        $_vazias = 4 - count($_colunas);
        for ($_v = 0; $_v < $_vazias; $_v++) {
            echo '<div class="col-md-3"><div class="mega-menu-title">&nbsp;</div></div>';
        }

        echo '</div></div></div></div>';


    } else {
        // ── LINK SIMPLES (sem filhos) ────────────────────────────────────────
        echo '<a href="departamento.php?categoria_id=' . $_pid . '" '
           . 'class="nav-item nav-link">'
           . $_pnome . '</a>';
    }
}

// Limpa variáveis para não vazar escopo
unset($_sql_menu, $_res_menu, $_pais_menu, $_filhos_menu, $_pai, $_pid, $_pnome,
      $_subs, $_sub, $_sid, $_snome, $_r, $_idx, $_colunas, $_colFilhos,
      $_chunkSize, $_numColunas, $_colClass);
?>
