<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="csrf-token" content="{{ csrf_token() }}">
    <title>@yield('title', 'LABRE-DX Contest') — Sistema de Apuração</title>
    <link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}">
    <link rel="shortcut icon" type="image/x-icon" href="{{ asset('favicon.ico') }}">
    <link rel="stylesheet" href="{{ asset('css/app.css') }}">
</head>
<body>

@php
    // Mapa de dependências para o menu (etapa => etapa anterior necessária)
    $depMenu = [
        'processamento.juntar'           => 'A',
        'processamento.validar-qsos'     => '1',
        'processamento.validar-tempo'    => '2',
        'processamento.claimed-score'    => '3',
        'processamento.validar-contatos' => '4',
        'processamento.sem-logs'         => '5',
        'processamento.pontuar'          => '6',
        'processamento.final-score'      => '7',
        'processamento.resultado'        => '8',
        'processamento.records'          => '9',
        'processamento.encerrar.index'   => '10',
    ];
    // Carrega status das etapas do contest ATIVO (para menu Processamento)
    try {
        $etapasQuery = \Illuminate\Support\Facades\DB::table('contest_etapas');
        if ($contestAtivo) {
            $etapasQuery->where('contest_id', $contestAtivo->id);
        }
        $etapasStatus = $etapasQuery->pluck('status','etapa')->toArray();
    } catch (\Throwable) {
        $etapasStatus = [];
    }

    // Carrega status das etapas do contest VISUALIZADO (para menu Relatórios)
    // Se visualizado = encerrado/arquivado → todos os relatórios liberados
    // Se visualizado = ativo → respeita etapas reais do ativo
    // Se visualizado = futuro → tudo bloqueado
    try {
        if ($contestVisualizar && $contestAtivo && $contestVisualizar->id !== $contestAtivo->id) {
            // Contest diferente do ativo
            $flagVis = $contestVisualizar->flag ?? 0;
            if (in_array($flagVis, [\App\Models\ContestDate::FLAG_ENCERRADO, \App\Models\ContestDate::FLAG_ARQUIVADO])) {
                // Encerrado/Arquivado: todos os relatórios liberados
                $etapasStatusRel = array_fill_keys(['2','5','6','9','10'], 'concluida');
            } else {
                // Futuro: tudo bloqueado
                $etapasStatusRel = [];
            }
        } else {
            // Visualizando o contest ativo: usa as etapas reais
            $etapasStatusRel = $etapasStatus;
        }
    } catch (\Throwable) {
        $etapasStatusRel = $etapasStatus;
    }
    // Helper: verifica se um item de menu está habilitado
    $menuHabilitado = function(string $rota) use ($depMenu, $etapasStatus, $emProcessamento) {
        if ($emProcessamento) return false;
        if (!isset($depMenu[$rota])) return true;
        $dep = $depMenu[$rota];
        return isset($etapasStatus[$dep]) && $etapasStatus[$dep] === 'concluida';
    };

    // Flag labels para o seletor do navbar
    $flagLabels = \App\Models\ContestDate::FLAG_LABELS;
@endphp

<nav class="navbar {{ $emProcessamento ? 'navbar-processando' : '' }}">
    <div class="navbar-brand">
        <a href="{{ route('dashboard') }}">
            🏆 LABRE-DX Contest
            @if($contestAtivo)
                <span class="contest-ano">{{ $contestAtivo->name }}</span>
            @endif
        </a>
        @if($emProcessamento)
            <span class="navbar-aviso-proc">⏳ Processando...</span>
        @endif
    </div>
    <div class="navbar-menu {{ $emProcessamento ? 'menu-desabilitado' : '' }}">

        {{-- Dashboard sempre habilitado --}}
        <a href="{{ route('dashboard') }}" class="{{ $emProcessamento ? 'nav-disabled' : '' }}">Dashboard</a>

        {{-- Links Públicos --}}
        <div class="dropdown">
            <span>Links ▾</span>
            <div class="dropdown-content">
                <a href="{{ route('public.log.index') }}" target="_blank">
                    📤 Formulário de Envio de LOG
                </a>
                <a href="{{ route('public.logs.lista') }}" target="_blank">
                    📋 LOGs Recebidos (público)
                </a>
            </div>
        </div>

        {{-- LOGs — dropdown com seletor de contest --}}
        <div class="dropdown {{ $emProcessamento ? 'nav-disabled' : '' }}">
            <span>
                LOGs ▾
                @if($contestVisualizar)
                    @php $fl2 = $contestVisualizar->flag ?? 0; $flInfo2 = $flagLabels[$fl2] ?? []; @endphp
                    <span style="font-size:.7rem;padding:.1rem .35rem;border-radius:999px;
                                 background:{{ $flInfo2['bg'] ?? '#eee' }};color:{{ $flInfo2['cor'] ?? '#333' }};
                                 margin-left:.2rem;font-weight:600">
                        {{ \Carbon\Carbon::parse($contestVisualizar->start_date)->format('Y') }}
                    </span>
                @endif
            </span>
            @if(!$emProcessamento)
            <div class="dropdown-content">
                {{-- Seletor rápido de contest --}}
                <div style="padding:.4rem .75rem;font-size:.75rem;color:var(--muted);border-bottom:1px solid #eee">
                    Visualizando:
                    @foreach($todosContests as $tc)
                        @php
                            $tcFl3   = $tc->flag ?? 0;
                            $tcInfo3 = $flagLabels[$tcFl3] ?? ['cor'=>'#333','bg'=>'#eee'];
                            $tcAt3   = $contestVisualizar && $contestVisualizar->id === $tc->id;
                            $tcAno3  = \Carbon\Carbon::parse($tc->start_date)->format('Y');
                        @endphp
                        <a href="{{ request()->fullUrlWithQuery(['cv' => $tc->id]) }}"
                           style="display:inline-block;margin:.1rem .2rem;padding:.1rem .4rem;
                                  border-radius:4px;text-decoration:none;font-size:.72rem;
                                  font-weight:{{ $tcAt3 ? '700' : '400' }};
                                  border:1px solid {{ $tcAt3 ? $tcInfo3['cor'] : '#ccc' }};
                                  background:{{ $tcAt3 ? $tcInfo3['bg'] : '#fff' }};
                                  color:{{ $tcAt3 ? $tcInfo3['cor'] : '#555' }}">
                            {{ $tcAno3 }}{{ $tcAt3 ? ' ✓' : '' }}
                        </a>
                    @endforeach
                </div>
                <a href="{{ route('logs.index') }}">📂 LOGs no Diretório</a>
                <a href="{{ route('logs.envia-logs') }}">📧 Relatório por Callsign</a>
            </div>
            @endif
        </div>

        <a href="{{ route('dxcc.index') }}" class="{{ $emProcessamento ? 'nav-disabled' : '' }}">DXCC</a>

        {{-- Gestão --}}
        <a href="{{ route('gestao.contests.index') }}"
           class="{{ $emProcessamento ? 'nav-disabled' : '' }}">Gestão</a>

        {{-- Tabelas --}}
        <div class="dropdown {{ $emProcessamento ? 'nav-disabled' : '' }}">
            <span>Tabelas ▾</span>
            @if(!$emProcessamento)
            <div class="dropdown-content">
                <a href="{{ route('tabelas.index') }}">📋 Todas as Tabelas</a>
                <div class="dropdown-divider"></div>
                <a href="{{ route('tabelas.show', 'contest_date') }}">📅 Contest Date</a>
                <a href="{{ route('tabelas.show', 'exchange') }}">🔄 Exchanges Válidos</a>
                <a href="{{ route('tabelas.show', 'estaduais') }}">📡 Estações HQ</a>
                <a href="{{ route('tabelas.show', 'band_freq') }}">📻 Bandas / Frequências</a>
                <a href="{{ route('tabelas.show', 'categorias') }}">🏷️ Categorias</a>
                <a href="{{ route('tabelas.show', 'clubsbrasil') }}">🏛️ Clubes Brasil</a>
                <a href="{{ route('tabelas.records.index') }}">🏆 Records (Gestão)</a>
                <div class="dropdown-divider"></div>
                <a href="{{ route('tabelas.show', 'logs_cabecalhos') }}">📋 LOGs Cabeçalhos</a>
                <a href="{{ route('tabelas.show', 'resultados_final') }}">📊 Resultados Final 🔒</a>
                <a href="{{ route('tabelas.show', 'qsos_result') }}">📡 QSOs Result 🔒</a>
            </div>
            @endif
        </div>

        {{-- Processamento --}}
        <div class="dropdown {{ $emProcessamento ? 'nav-disabled' : '' }}">
            <span>Processamento ▾</span>
            @if(!$emProcessamento)
            <div class="dropdown-content">
                @if($contestAtivo)
                    <div style="padding:.4rem .75rem;font-size:.75rem;color:var(--muted);
                                border-bottom:1px solid #eee;margin-bottom:.25rem">
                        ⚡ Contest ativo: {{ $contestAtivo->name }}
                        {{ \Carbon\Carbon::parse($contestAtivo->start_date)->format('Y') }}
                    </div>
                @else
                    <div style="padding:.4rem .75rem;font-size:.75rem;color:#c62828;
                                border-bottom:1px solid #eee;margin-bottom:.25rem">
                        ⚠️ Nenhum contest ativo
                    </div>
                @endif
                {{-- Etapa A sempre habilitada --}}
                <a href="{{ route('processamento.importar') }}">A. Importar LOGs</a>
                <div class="dropdown-divider"></div>
                @php
                    $itens = [
                        ['1', 'Juntar LOGs',       'processamento.juntar'],
                        ['2', 'Validar QSOs',       'processamento.validar-qsos'],
                        ['3', 'Validar Tempo',      'processamento.validar-tempo'],
                        ['4', 'Claimed Score',      'processamento.claimed-score'],
                        ['5', 'Val. Contatos',      'processamento.validar-contatos'],
                        ['6', 'Sem LOGs/DUPs',      'processamento.sem-logs'],
                        ['7', 'Pontos+Multi+FS',    'processamento.pontuar'],
                        ['8', 'Final Score',        'processamento.final-score'],
                        ['9', 'Resultado',          'processamento.resultado'],
                        ['10','Records',            'processamento.records'],
                        ['11','Encerrar Contest',   'processamento.encerrar.index'],
                    ];
                @endphp
                @foreach($itens as [$num, $nome, $rota])
                    @if($menuHabilitado($rota))
                        <a href="{{ route($rota) }}">{{ $num }}. {{ $nome }}</a>
                    @else
                        <span class="dropdown-item-disabled"
                              title="Execute a etapa anterior primeiro">
                            🔒 {{ $num }}. {{ $nome }}
                        </span>
                    @endif
                @endforeach
            </div>
            @endif
        </div>

        {{-- Relatórios --}}
        @php
            $et2ok  = ($etapasStatusRel['2']  ?? '') === 'concluida';
            $et5ok  = ($etapasStatusRel['5']  ?? '') === 'concluida';
            $et6ok  = ($etapasStatusRel['6']  ?? '') === 'concluida';
            $et9ok  = ($etapasStatusRel['9']  ?? '') === 'concluida';
            $et10ok = ($etapasStatusRel['10'] ?? '') === 'concluida';
        @endphp
        <div class="dropdown {{ $emProcessamento ? 'nav-disabled' : '' }}">
            <span>
                Relatórios ▾
                @if($contestVisualizar)
                    @php $fl = $contestVisualizar->flag ?? 0; $flInfo = $flagLabels[$fl] ?? []; @endphp
                    <span style="font-size:.7rem;padding:.1rem .35rem;border-radius:999px;
                                 background:{{ $flInfo['bg'] ?? '#eee' }};color:{{ $flInfo['cor'] ?? '#333' }};
                                 margin-left:.2rem;font-weight:600">
                        {{ \Carbon\Carbon::parse($contestVisualizar->start_date)->format('Y') }}
                    </span>
                @endif
            </span>
            @if(!$emProcessamento)
            <div class="dropdown-content">
                {{-- Seletor rápido de contest dentro do dropdown --}}
                <div style="padding:.4rem .75rem;font-size:.75rem;color:var(--muted);border-bottom:1px solid #eee">
                    Visualizando:
                    @foreach($todosContests as $tc)
                        @php
                            $tcFl   = $tc->flag ?? 0;
                            $tcInfo = $flagLabels[$tcFl] ?? ['cor'=>'#333','bg'=>'#eee'];
                            $tcAtivo= $contestVisualizar && $contestVisualizar->id === $tc->id;
                            $tcAno  = \Carbon\Carbon::parse($tc->start_date)->format('Y');
                        @endphp
                        <a href="{{ request()->fullUrlWithQuery(['cv' => $tc->id]) }}"
                           style="display:inline-block;margin:.1rem .2rem;padding:.1rem .4rem;
                                  border-radius:4px;text-decoration:none;font-size:.72rem;
                                  font-weight:{{ $tcAtivo ? '700' : '400' }};
                                  border:1px solid {{ $tcAtivo ? $tcInfo['cor'] : '#ccc' }};
                                  background:{{ $tcAtivo ? $tcInfo['bg'] : '#fff' }};
                                  color:{{ $tcAtivo ? $tcInfo['cor'] : '#555' }}">
                            {{ $tcAno }}{{ $tcAtivo ? ' ✓' : '' }}
                        </a>
                    @endforeach
                </div>
                @if($et2ok)
                    <a href="{{ route('relatorios.invalidos') }}">1. QSOs Inválidos (Etapa 2)</a>
                @else
                    <span class="dropdown-item-disabled" title="Disponível após Etapa 2">🔒 1. QSOs Inválidos</span>
                @endif
                @if($et5ok)
                    <a href="{{ route('relatorios.contatos-invalidados') }}">2. Contatos Inválidos (Etapa 5)</a>
                @else
                    <span class="dropdown-item-disabled" title="Disponível após Etapa 5">🔒 2. Contatos Inválidos</span>
                @endif
                @if($et6ok)
                    <a href="{{ route('relatorios.duplicados') }}">3. Duplicados (Etapa 6)</a>
                @else
                    <span class="dropdown-item-disabled" title="Disponível após Etapa 6">🔒 3. Duplicados</span>
                @endif
                <div class="dropdown-divider"></div>
                @if($et6ok)
                    <a href="{{ route('relatorios.recebidos-nao-validados') }}">4. Recebidos Não Validados</a>
                    <a href="{{ route('relatorios.exchange-invalidos') }}">5. Exchange Inválidos</a>
                    <a href="{{ route('relatorios.call-rcvd-sem-log') }}">6. Call Rcvd Sem LOG</a>
                @else
                    <span class="dropdown-item-disabled" title="Disponível após Etapa 6">🔒 4. Recebidos Não Validados</span>
                    <span class="dropdown-item-disabled" title="Disponível após Etapa 6">🔒 5. Exchange Inválidos</span>
                    <span class="dropdown-item-disabled" title="Disponível após Etapa 6">🔒 6. Call Rcvd Sem LOG</span>
                @endif
                <div class="dropdown-divider"></div>
                @if($et9ok)
                    <a href="{{ route('relatorios.resultado') }}">7. Resultado por Categoria</a>
                    <a href="{{ route('relatorios.operadores-clubes') }}">8. Clubs e Operadores</a>
                    <a href="{{ route('relatorios.relatorio-final') }}">9. Relatório Final</a>
                @else
                    <span class="dropdown-item-disabled" title="Disponível após Etapa 9">🔒 7. Resultado por Categoria</span>
                    <span class="dropdown-item-disabled" title="Disponível após Etapa 9">🔒 8. Clubs e Operadores</span>
                    <span class="dropdown-item-disabled" title="Disponível após Etapa 9">🔒 9. Relatório Final</span>
                @endif
                @if($et10ok)
                    <a href="{{ route('relatorios.records') }}">10. Records</a>
                @else
                    <span class="dropdown-item-disabled" title="Disponível após Etapa 10">🔒 10. Records</span>
                @endif
                @if($et9ok)
                    <a href="{{ route('relatorios.emails') }}">11. Gerar Excel Vencedores</a>
                @else
                    <span class="dropdown-item-disabled" title="Disponível após Etapa 9">🔒 11. Gerar Excel Vencedores</span>
                @endif
            </div>
            @endif
        </div>

        <form method="POST" action="{{ route('logout') }}" style="display:inline">
            @csrf
            <button type="submit" class="btn-logout"
                    {{ $emProcessamento ? 'disabled style=opacity:.5;cursor:not-allowed' : '' }}>
                Sair ({{ auth()->user()->name }})
            </button>
        </form>
    </div>
</nav>

<main class="container">
    @if($emProcessamento)
        <div class="alert alert-warning" style="margin-bottom:1rem">
            ⏳ <strong>Processamento em andamento.</strong>
            O menu está desabilitado até a conclusão da etapa atual.
        </div>
    @endif
    @if(session('sucesso'))
        <div class="alert alert-success">✅ {{ session('sucesso') }}</div>
    @endif
    @if(session('erro'))
        <div class="alert alert-danger">❌ {{ session('erro') }}</div>
    @endif
    @if($errors->any())
        <div class="alert alert-danger">
            @foreach($errors->all() as $erro)
                <div>• {{ $erro }}</div>
            @endforeach
        </div>
    @endif

    @yield('content')
</main>

<footer class="footer">
    @if($contestAtivo)
        <p>
            {{ $contestAtivo->name }} &nbsp;|&nbsp;
            {{ $contestAtivo->start_date->format('d/m/Y H:i') }} –
            {{ $contestAtivo->end_date->format('d/m/Y H:i') }} UTC
            &nbsp;|&nbsp; PY6MV
        </p>
    @else
        <p>LABRE-DX Contest — Sistema de Apuração &nbsp;|&nbsp; PY6MV</p>
    @endif
</footer>

</body>
</html>
