{{-- Central da Sessão — só apresenta o que já existe em outras telas (Pauta, Quórum e Votação, Ata, Painel Público). Toda ação sensível (abrir/encerrar votação, confirmar presença, autorizar fala, gerar Ata) continua acontecendo nas rotas/Controllers/Services de sempre; os botões daqui só levam pra lá. wire:poll.5s (não mais rápido que isso — esta tela é uma visão geral, não a tela de votação em si, que já tem seu próprio wire:poll mais curto em QuorumVotacao). --}}

Central da Sessão

@if($this->sessao)
{{ $this->sessao->numero }}ª Sessão {{ $this->sessao->tipo }}
{{ $this->sessao->data_sessao->format('d/m/Y') }}
@endif
@if($this->sessao)
EM ANDAMENTO
@if($mostrarDiagnostico)
    @foreach($this->diagnostico as $item)
  • ✓ {{ $item['label'] }} {{ $item['detalhe'] }}
  • @endforeach
@endif
@endif
@if(! $this->sessao) {{-- ===================== Sem sessão ativa ===================== --}}
Nenhuma sessão em andamento no momento.
@if($this->proximaSessao)

Próxima sessão

{{ $this->proximaSessao->numero }}ª Sessão {{ $this->proximaSessao->tipo }}
{{ $this->proximaSessao->data_sessao->format('d/m/Y') }}
Ver / preparar sessão →
@endif @if($this->ultimaSessaoEncerrada)

Última sessão

{{ $this->ultimaSessaoEncerrada->numero }}ª Sessão {{ $this->ultimaSessaoEncerrada->tipo }}
{{ $this->ultimaSessaoEncerrada->data_sessao->format('d/m/Y') }} — Encerrada
Ver sessão → Resultados →
@endif @if($this->proximasSessoes->isNotEmpty())

Próximas sessões

@endif
@else {{-- ===================== Sessão ativa ===================== --}} @php($materiaAtual = $this->materiaEmVotacao) @php($bloco = $this->blocoAtivo) @php($fala = $this->falaEmAndamento) {{-- ===================== Motor Regimental (Etapa C.2) — banner de fase ===================== "ONDE ESTOU?" — só aparece pra sessão com Perfil Regimental associado; sessão sem perfil não mostra nada disto (comportamento legado). --}} @if($this->sessao->temPerfilRegimental())
Fase atual
{{ $this->sessao->faseRegimentalAtual->nome ?? '—' }}
@if($this->fasesDoPerfilAtual->isNotEmpty())
@foreach($this->fasesDoPerfilAtual as $fase) @php($ehAtual = $this->sessao->fase_regimental_atual_id === $fase->id) @php($jaPassou = $this->sessao->faseRegimentalAtual && $fase->ordem < $this->sessao->faseRegimentalAtual->ordem) @if($jaPassou) ✓ @elseif($ehAtual) ● @else ○ @endif {{ $fase->nome }} @endforeach
@endif
@if($mostrarAjudaFase)
FASE ATUAL: {{ mb_strtoupper($this->sessao->faseRegimentalAtual->nome ?? '') }}

A sessão está em {{ $this->sessao->faseRegimentalAtual->nome ?? '—' }}. As ações disponíveis dependem do Perfil Regimental configurado. Você pode realizar as ações habilitadas abaixo.

@endif
@if($modoAvancado)

Detalhes regimentais

Perfil:
{{ $this->sessao->perfilRegimental->nome }}
Fase:
{{ $this->sessao->faseRegimentalAtual->nome ?? '—' }}
Votação:
{{ $this->votacaoComportamentoLabel }}
@endif @endif @if($this->sessao->isSuspensa()) {{-- Sessao.status continua 'ativa' de propósito (ver Sessao::isSuspensa()) — por isso todo o resto da tela (pauta, presença, fila) continua aparecendo normalmente abaixo, sem perder nenhum estado. --}}
SESSÃO SUSPENSA
@if($this->sessao->suspensa_motivo)
Motivo: {{ $this->sessao->suspensa_motivo }}
@endif
@endif @if($this->sessao->isMensagemTelaoAtiva())
MENSAGEM ATIVA NO TELÃO
"{{ $this->sessao->mensagem_telao_texto }}"
@endif @if($this->proximaAcao)
Próxima ação sugerida: {{ $this->proximaAcao }}
@endif
@if(! $this->quorumAtingido)
Quórum insuficiente — {{ $this->presentes }}/{{ $this->quorumMinimoNecessario }} necessários
@endif @if($materiaAtual || $bloco)
Votação aberta
@endif @if($this->pedidosPendentesCount > 0)
{{ $this->pedidosPendentesCount }} {{ $this->pedidosPendentesCount === 1 ? 'pedido de fala aguardando' : 'pedidos de fala aguardando' }}
@endif

Presentes

{{ $this->presentes }} / {{ $this->totalVereadoresAtivos }}
{{ $this->quorumAtingido ? 'Quórum atingido' : 'Quórum insuficiente' }}
@if($this->ultimaVerificacaoQuorum)
Última verificação:
@endif
Ver presença →

Pauta

{{ $this->totalMaterias }}
{{ $this->totalMaterias === 1 ? 'matéria' : 'matérias' }} — {{ $this->materiasFinalizadas }} finalizada(s)
Ver pauta →

Votação

@if($materiaAtual)
ABERTA
{{ \Illuminate\Support\Str::limit($materiaAtual->materia->titulo, 34) }}
@elseif($bloco)
ABERTA (bloco)
{{ $bloco->itens->count() }} matérias no bloco
@else
—
Nenhuma votação aberta
@endif Gerenciar votação →

Falas

{{ $this->pedidosPendentesCount }}
aguardando{{ $fala ? ' — 1 em andamento' : '' }}
Gerenciar falas →
@php($materiaDiscussao = $this->materiaEmDiscussao) @php($materiaDiscussaoEncerrada = $materiaDiscussao ? null : $this->materiaDiscussaoEncerradaAguardandoVotacao) @if($materiaAtual || $bloco || $materiaDiscussao || $materiaDiscussaoEncerrada || $this->materiaEmLeitura || $this->ultimaVotacaoFinalizada) @if($materiaAtual)

Matéria em apreciação

{{ $materiaAtual->materia->tipo }}{{ $materiaAtual->materia->numero ? ' nº '.$materiaAtual->materia->numero.'/'.$materiaAtual->materia->ano : '' }} @if($materiaAtual->materia->voto_secreto) 🔒 Secreta @endif
@if($materiaAtual->materia->autor)
Autor: {{ $materiaAtual->materia->autor->name }}
@endif @if($materiaAtual->materia->descricao)
{{ $materiaAtual->materia->descricao }}
@endif
Votação aberta
Favor: {{ $this->contagemMateriaAtual['favor'] }} Contra: {{ $this->contagemMateriaAtual['contra'] }} Abstenção: {{ $this->contagemMateriaAtual['abstencao'] }}
{{-- Só informa — não bloqueia nada. A regra de quem pode encerrar continua sendo só a policy já existente, aplicada onde "Encerrar votação" de fato acontece (admin.sessoes.votacao). --}} @if($this->statusVotantes)
Presentes: {{ $this->statusVotantes['presentes'] }} Votaram: {{ $this->statusVotantes['votaram'] }} Ainda não votaram: {{ $this->statusVotantes['pendentes'] }}
@endif
Ver matéria @if($materiaAtual->materia->anexo_pdf) Documento @endif Gerenciar votação
@elseif($bloco)

Votação em bloco em apreciação

{{ $bloco->itens->count() }} matérias
    @foreach($bloco->itens as $item)
  • {{ $item->materia->tipo }} — {{ \Illuminate\Support\Str::limit($item->materia->titulo, 60) }}
  • @endforeach
Votação aberta
Favor: {{ $this->contagemBloco['favor'] }} Contra: {{ $this->contagemBloco['contra'] }} Abstenção: {{ $this->contagemBloco['abstencao'] }}
@elseif($materiaDiscussao)

Ato atual

{{ $materiaDiscussao->materia->tipo }}{{ $materiaDiscussao->materia->numero ? ' nº '.$materiaDiscussao->materia->numero.'/'.$materiaDiscussao->materia->ano : '' }}
@if($materiaDiscussao->materia->autor)
Autor: {{ $materiaDiscussao->materia->autor->name }}
@endif
🗣️ Em discussão
Iniciada às {{ $materiaDiscussao->discussao_iniciada_em->format('H:i') }}
{{ $this->oradoresAguardandoDiscussao }} {{ $this->oradoresAguardandoDiscussao === 1 ? 'orador aguardando' : 'oradores aguardando' }}
Gerenciar falas
@elseif($materiaDiscussaoEncerrada)

Ato atual

{{ $materiaDiscussaoEncerrada->materia->tipo }}{{ $materiaDiscussaoEncerrada->materia->numero ? ' nº '.$materiaDiscussaoEncerrada->materia->numero.'/'.$materiaDiscussaoEncerrada->materia->ano : '' }}
Discussão encerrada
@elseif($this->materiaEmLeitura) @php($sm = $this->materiaEmLeitura)

Matéria em leitura

{{ $sm->materia->tipo }}{{ $sm->materia->numero ? ' nº '.$sm->materia->numero.'/'.$sm->materia->ano : '' }}
@if($sm->materia->autor)
Autor: {{ $sm->materia->autor->name }}
@endif
Em leitura
@else @php($ultima = $this->ultimaVotacaoFinalizada)

Último resultado

{{ $ultima->materia->tipo }}{{ $ultima->materia->numero ? ' nº '.$ultima->materia->numero.'/'.$ultima->materia->ano : '' }}
@if($ultima->materia->voto_secreto) 🔒 Votação secreta @endif
{{ ucfirst($ultima->resultado) }}
Favor: {{ $ultima->votos_favor }} Contra: {{ $ultima->votos_contra }} Abstenção: {{ $ultima->votos_abstencao }}
@endif @else
Nenhuma matéria em apreciação no momento.
@endif

Linha do tempo da sessão

@if($this->timeline->isNotEmpty())
    @foreach($this->timeline as $evento)
  • {{ $evento['horario'] }} {{ $evento['descricao'] }}
  • @endforeach
@else
Nenhum evento registrado ainda pra esta sessão.
@endif
Timeline completa exige uma futura estrutura de auditoria/eventos — esta lista mostra só o que já está registrado.

Com a palavra

@if($fala)
{{ $fala->nomeExibicao() }}
{{ $fala->isAparte() ? 'Aparte' : 'Fala' }} @if($this->restanteSegundosFala !== null) — {{ sprintf('%02d:%02d', intdiv($this->restanteSegundosFala, 60), $this->restanteSegundosFala % 60) }} restantes @endif
{{ $fala->isAparte() ? 'Gerenciar aparte' : 'Gerenciar fala' }} → @else
Ninguém com a palavra no momento.
@endif @if($this->proximosNaFila->isNotEmpty() || $this->pedidosNormaisPendentesCount >= 2)
{{ $this->sorteioOrdemFala ? 'Ordem sorteada' : 'Próximos na fila' }}
@if($this->pedidosNormaisPendentesCount >= 2) @endif
@if($this->proximosNaFila->isNotEmpty())
    @foreach($this->proximosNaFila as $pedido)
  1. {{ $pedido->ordem ? $pedido->ordem.'º ' : '' }}{{ $pedido->nomeExibicao() }}
  2. @endforeach
Ver fila completa → @else
Nenhum inscrito no momento.
@endif
@endif
{{-- Fase atual (Etapa C) agora vive no banner do topo da Central, sempre visível (item 2 da Etapa C.2) — não repete a informação aqui pra não duplicar a mesma coisa em dois lugares. --}}

Ata

@if(! $this->ata)
Ainda não gerada.
@csrf
@elseif(! $this->ata->publicar_site)
Em preparação
Rascunho — ainda não publicada.
Abrir Ata → @else
Disponível
Publicada.
Visualizar Ata → @endif

Ações principais

Pauta Votação Falas @if(! $this->sessao->isSuspensa()) @endif
Outras ações
{{-- ===================== Modal: Cancelar votação ===================== --}} @if($modalCancelarVotacao && $materiaAtual)

Cancelar esta votação?

Os votos registrados nesta tentativa serão desconsiderados do resultado oficial (continuam preservados no histórico, nunca são apagados). O cancelamento ficará registrado na linha do tempo da sessão.
@if($motivoCancelamento === 'Outro') @endif @error('motivoCancelamento')
{{ $message }}
@enderror
@endif {{-- ===================== Modal: Alterar fase (Motor Regimental) ===================== --}} @if($modalAlterarFase)

Alterar fase da sessão

@foreach($this->fasesDoPerfilAtual as $fase) @php($ehAtual = $this->sessao?->fase_regimental_atual_id === $fase->id) @php($jaPassou = $this->sessao?->faseRegimentalAtual && $fase->ordem < $this->sessao->faseRegimentalAtual->ordem) @endforeach
@error('novaFaseSelecionadaId')
{{ $message }}
@enderror
@endif {{-- ===================== Modal: Verificar quórum (Etapa E) ===================== --}} @if($modalVerificarQuorum)

Verificar quórum

@if($this->comportamentoVerificacaoQuorum === 'alertar')
O Perfil Regimental desta Câmara prevê um aviso para verificação de quórum durante a fase atual: {{ $this->sessao->faseRegimentalAtual->nome ?? '—' }}.
@endif

A verificação registra, de forma permanente, quem está presente agora — {{ $this->presentes }} de {{ $this->totalVereadoresAtivos }}.

@error('finalidadeVerificacao')
{{ $message }}
@enderror
@endif {{-- ===================== Modal: verificação de quórum bloqueada (informativo) ===================== --}} @if($modalVerificacaoQuorumBloqueada)

Verificação não disponível nesta fase

Fase atual: {{ $this->sessao->faseRegimentalAtual->nome ?? '—' }}

Conforme a configuração do Perfil Regimental, a verificação de quórum está bloqueada nesta fase.

@endif {{-- ===================== Modal: detalhe de uma verificação (relação nominal) ===================== --}} @if($modalDetalheVerificacao && $this->verificacaoDetalhe)

Verificação de quórum

{{ $this->verificacaoDetalhe->criado_em->format('d/m/Y H:i') }} — {{ $this->verificacaoDetalhe->finalidadeLabel() }} @if($this->verificacaoDetalhe->faseRegimental) · Fase: {{ $this->verificacaoDetalhe->faseRegimental->nome }} @endif @if($this->verificacaoDetalhe->sessaoMateria?->materia) · {{ $this->verificacaoDetalhe->sessaoMateria->materia->tipo }} @if($this->verificacaoDetalhe->sessaoMateria->materia->numero) nº {{ $this->verificacaoDetalhe->sessaoMateria->materia->numero }}/{{ $this->verificacaoDetalhe->sessaoMateria->materia->ano }} @endif @endif

@if($this->verificacaoDetalhe->observacao)

Observação: {{ $this->verificacaoDetalhe->observacao }}

@endif
Presentes: {{ $this->verificacaoDetalhe->total_presentes }} Ausentes: {{ $this->verificacaoDetalhe->totalAusentes() }}
    @foreach($this->verificacaoDetalhe->presencas->sortBy('vereador.name') as $p)
  • {{ $p->vereador->name ?? '—' }} {{ $p->presente ? 'Presente' : 'Ausente' }}
  • @endforeach
@endif {{-- ===================== Modal: Suspender sessão ===================== --}} @if($modalSuspender)

Suspender a sessão?

A sessão continua existindo — pauta, presença, votos, fila de fala e inscrições são preservados. Enquanto suspensa, nenhum voto pode ser registrado.
@if($motivoSuspensaoPreset === 'Outro') @endif @error('motivoSuspensaoPreset')
{{ $message }}
@enderror
@endif {{-- ===================== Modal: Registrar ocorrência ===================== --}} @if($modalOcorrencia)

Registrar ocorrência

@error('ocorrenciaDescricao')
{{ $message }}
@enderror
@endif {{-- ===================== Modal: Mensagem no Telão ===================== --}} @if($modalMensagemTelao)

Mensagem no Telão

A mensagem é só uma camada de apresentação — não altera status, votação, matéria, fala nem cronômetro. Quando ocultada, o telão volta sozinho ao que estiver acontecendo de verdade.
@error('mensagemTelaoTexto')
{{ $message }}
@enderror
@endif {{-- ===================== Modal: Checklist de encerramento (item 4) ===================== --}} @if($modalEncerrar)

Checklist de encerramento

    @foreach($this->checklistEncerramento as $item)
  • @if($item['tipo'] === 'ok') ✓ @elseif($item['tipo'] === 'aviso') ⚠ @else ✕ @endif {{ $item['label'] }}
  • @endforeach
@if(! $this->podeEncerrarSessao)
Não é possível encerrar com uma votação em andamento. Encerre ou cancele a votação antes de tentar novamente.
@endif
@csrf
@endif @endif