<?php $attributes ??= new \Illuminate\View\ComponentAttributeBag;

$__newAttributes = [];
$__propNames = \Illuminate\View\ComponentAttributeBag::extractPropNames((['selected']));

foreach ($attributes->all() as $__key => $__value) {
    if (in_array($__key, $__propNames)) {
        $$__key = $$__key ?? $__value;
    } else {
        $__newAttributes[$__key] = $__value;
    }
}

$attributes = new \Illuminate\View\ComponentAttributeBag($__newAttributes);

unset($__propNames);
unset($__newAttributes);

foreach (array_filter((['selected']), 'is_string', ARRAY_FILTER_USE_KEY) as $__key => $__value) {
    $$__key = $$__key ?? $__value;
}

$__defined_vars = get_defined_vars();

foreach ($attributes->all() as $__key => $__value) {
    if (array_key_exists($__key, $__defined_vars)) unset($$__key);
}

unset($__defined_vars, $__key, $__value); ?>


<?php
    use App\Models\Monitoring\ApiBlock;
    use App\Models\Monitoring\Notice;

    $estado = \Illuminate\Support\Facades\Cache::remember('monitoring:estado', 60, function () {
        return [
            // Solo los que están cortando de verdad: un bloqueo en observación no corta
            // a nadie y ponerlo en rojo sería mentir.
            'cortando' => ApiBlock::blocked()->where('enforced', true)->count(),
            'observando' => ApiBlock::blocked()->where('enforced', false)->count(),
            'fallidos' => Notice::whereNull('sent_at')->count(),

            // **La prueba de que la cosa funciona**, que es lo que hace que el verde
            // signifique algo. Ver el docblock de arriba.
            //
            // Para los avisos: alguno entregado en los últimos 30 días. El planificador los
            // manda a diario, así que un mes sin entregar nada es que no está corriendo.
            'avisosVivos' => Notice::whereNotNull('sent_at')
                ->where('sent_at', '>=', now()->subDays(30))
                ->exists(),

            // Para el tráfico: peticiones llegando. Si la API no recibe nada, «cero cortes»
            // no dice que el limitador esté bien: dice que no ha tenido nada que contar.
            'apiViva' => \App\Models\ApiRequestLog::where('started_at', '>=', now()->subDay())
                ->exists(),
            'caducaPronto' => \App\Models\Products\LicenseToken::where('active', true)
                ->whereNotNull('end_at')
                ->whereDate('end_at', '>=', now()->format('Y-m-d'))
                ->whereDate('end_at', '<=', now()->addDays(30)->format('Y-m-d'))
                ->count(),
        ];
    });

    // La quinta posición es el punto: `true` verde, `false` gris —hay algo que vigilar aquí
    // pero no datos con los que decir que va bien— y `null` sin punto, para las pestañas que
    // no afirman nada.
    $pestanas = [
        // **La portada, primera.** La sección entraba por «Tráfico y cortes» —la pantalla
        // más densa de las cinco— y ninguna decía qué son las otras cuatro. Ahora `/monitoring`
        // es una portada que enruta y explica, y esta pestaña es la vuelta a ella desde
        // cualquier sitio. No lleva número: es la que los tiene todos.
        'resumen' => ['Resumen', 'monitoring.index', 0, null, null],
        'trafico' => ['Tráfico y cortes', 'monitoring.traffic', $estado['cortando'], 'danger', $estado['apiViva']],
        // «Peticiones API» y no «Peticiones»: en esta sección casi todo son peticiones
        // —las de la API, los cortes que las rechazan, los avisos que salen de ellas— y a
        // secas no decía cuáles. Son las que los Moodle hacen al endpoint.
        'logs' => ['Peticiones API', 'api-logs.index', 0, null, null],
        'expirations' => ['Caducidades', 'monitoring.expirations', $estado['caducaPronto'], 'warning', null],
        'notices' => ['Avisos', 'monitoring.notices', $estado['fallidos'], 'warning', $estado['avisosVivos']],
        'system' => ['Acciones del panel', 'monitoring.system-log', 0, null, null],
        // **Sin número y sin punto.** No afirma nada sobre si algo va bien: es un dato
        // de tamaño, y un número aquí se leería como una alarma que no es.
        'tamano' => ['Tamaño de la base', 'monitoring.tamano', 0, null, null],
    ];
?>

<div class="w-full border-b" style="border-color:var(--border-subtle);">
    <div class="flex flex-wrap items-center justify-start gap-2">
        <?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php $__currentLoopData = $pestanas; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $clave => [$etiqueta, $ruta, $cuantos, $color, $conPuntoVerde]): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
            <a href="<?php echo e(route($ruta)); ?>" wire:navigate
               class="relative flex items-center gap-1.5 px-1 pb-2 pt-1 text-[13px] transition-colors"
               style="<?php echo \Illuminate\Support\Arr::toCssStyles([
                   'color:var(--text-strong); font-weight:600' => $selected === $clave,
                   'color:var(--text-muted); font-weight:400' => $selected !== $clave,
               ]) ?>">
                <span><?php echo e($etiqueta); ?></span>

                <?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if($cuantos > 0): ?>
                    <span class="rounded-full px-2 py-px text-[11px] font-bold text-white"
                          style="background:var(--<?php echo e($color); ?>-500);">
                        <?php echo e($cuantos); ?>

                    </span>
                <?php elseif($conPuntoVerde !== null): ?>
                    
                    <?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if($conPuntoVerde): ?>
                        <span class="h-[7px] w-[7px] rounded-full" style="background:var(--success-500);"
                              title="Nada que mirar aquí"></span>
                    <?php else: ?>
                        <span class="h-[7px] w-[7px] rounded-full" style="background:var(--neutral-400);"
                              title="Sin datos con los que decir que va bien: no hay actividad reciente"></span>
                    <?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
                <?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>

                <?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if($selected === $clave): ?>
                    <span class="absolute bottom-0 left-0 right-0 h-1" style="background:var(--orange-500);"></span>
                <?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
            </a>
        <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
    </div>
</div><?php /**PATH /var/www/html/resources/views/livewire/monitoring/components/menu.blade.php ENDPATH**/ ?>