@extends('layouts.app') @section('title', 'Barragens') @section('content')

Gestão de Barragens

Gerir todas as barragens do sistema hidrológico

@php $anoHidrologico = \App\Helpers\HydrologicalYear::getCurrentHydrologicalYear(); $estacaoAtual = \App\Helpers\HydrologicalYear::getCurrentSeason(); $progresso = \App\Helpers\HydrologicalYear::getYearProgress(); @endphp

Ano Hidrológico {{ $anoHidrologico }}/{{ $anoHidrologico + 1 }}

{{ $estacaoAtual['label'] }} • {{ $progresso }}% completo

@if($estacaoAtual['season'] == 'chuvosa') @else @endif {{ $estacaoAtual['months'] }}

Lista de Barragens ({{ $barragens->total() }})

@if($barragens->count() > 0)
@foreach($barragens as $barragem) @endforeach
Barragem & Bacia Localização & Coordenadas Capacidade & Características Monitoramento Atual Estado & Alertas Ações & Relatórios
{{ $barragem->codigo }}
@if($barragem->bacia_hidrografica)
{{ $barragem->bacia_hidrografica->nome }}
@endif
{{ $barragem->provincia ?? 'N/A' }}
{{ $barragem->distrito ?? 'N/A' }}
@if($barragem->latitude && $barragem->longitude)
{{ number_format($barragem->latitude, 4) }}°, {{ number_format($barragem->longitude, 4) }}°
@endif @if($barragem->ano_construcao)
{{ $barragem->ano_construcao }}
@endif
@if($barragem->volume_maximo)
{{ number_format($barragem->volume_maximo, 1) }} Mm³
Cap. Total
@endif @if($barragem->volume_morto)
{{ number_format($barragem->volume_morto, 1) }} Mm³
Vol. Morto
@endif
@if($barragem->cota_maxima)
{{ number_format($barragem->cota_maxima, 1) }}m
Máx
@endif @if($barragem->cota_minima)
{{ number_format($barragem->cota_minima, 1) }}m
Min
@endif
@if($barragem->nivel_alerta || $barragem->nivel_emergencia)
@if($barragem->nivel_alerta)
Alerta: {{ number_format($barragem->nivel_alerta, 1) }}m
@endif @if($barragem->nivel_emergencia)
Emerg.: {{ number_format($barragem->nivel_emergencia, 1) }}m
@endif
@endif @if($barragem->area_bacia_hidraulica)
Bacia: {{ number_format($barragem->area_bacia_hidraulica, 1) }} km²
@endif
@if($barragem->ultima_leitura)
{{ $barragem->ultima_leitura->data_leitura->format('d/m/Y') }}
{{ $barragem->ultima_leitura->hora_leitura ?? '06:00' }}
{{ number_format($barragem->ultima_leitura->cota_actual, 2) }}m @if($barragem->cota_maxima) /{{ number_format($barragem->cota_maxima, 1) }}m @endif
Cota Atual
@if($barragem->ultima_leitura->percentagem_enchimento) @php $percentage = min(100, $barragem->ultima_leitura->percentagem_enchimento); $bgColor = 'bg-blue-600'; $textColor = 'text-blue-900'; $bgLight = 'bg-blue-50'; if ($percentage >= 95) { $bgColor = 'bg-red-600'; $textColor = 'text-red-900'; $bgLight = 'bg-red-50'; } elseif ($percentage >= 85) { $bgColor = 'bg-orange-500'; $textColor = 'text-orange-900'; $bgLight = 'bg-orange-50'; } elseif ($percentage >= 70) { $bgColor = 'bg-yellow-500'; $textColor = 'text-yellow-900'; $bgLight = 'bg-yellow-50'; } elseif ($percentage >= 50) { $bgColor = 'bg-green-500'; $textColor = 'text-green-900'; $bgLight = 'bg-green-50'; } @endphp
{{ number_format($percentage, 1) }}%
Enchimento
@endif @if($barragem->ultima_leitura->volume_actual)
{{ number_format($barragem->ultima_leitura->volume_actual, 2) }} Mm³ atual
@endif @if($barragem->ultima_leitura->caudal_afluente || $barragem->ultima_leitura->caudal_efluente)
@if($barragem->ultima_leitura->caudal_afluente)
{{ number_format($barragem->ultima_leitura->caudal_afluente, 1) }}
Afluente
@endif @if($barragem->ultima_leitura->caudal_efluente)
{{ number_format($barragem->ultima_leitura->caudal_efluente, 1) }}
Efluente
@endif
@endif
{{ ucfirst($barragem->ultima_leitura->metodo_leitura ?? 'Manual') }} @if($barragem->ultima_leitura->validado) @else @endif
@else
Sem dados
Nenhuma leitura registada
@endif
@php $estadoConfig = [ 'activa' => [ 'class' => 'bg-green-100 text-green-800 border-green-200', 'icon' => 'fas fa-circle-check', 'text' => 'Ativa' ], 'inactiva' => [ 'class' => 'bg-red-100 text-red-800 border-red-200', 'icon' => 'fas fa-circle-xmark', 'text' => 'Inativa' ], 'manutencao' => [ 'class' => 'bg-yellow-100 text-yellow-800 border-yellow-200', 'icon' => 'fas fa-screwdriver-wrench', 'text' => 'Manutenção' ] ]; $config = $estadoConfig[$barragem->estado] ?? [ 'class' => 'bg-gray-100 text-gray-800 border-gray-200', 'icon' => 'fas fa-question-circle', 'text' => ucfirst($barragem->estado) ]; @endphp
{{ $config['text'] }} @if($barragem->ultima_leitura && $barragem->nivel_alerta && $barragem->ultima_leitura->cota_actual >= $barragem->nivel_alerta) @if($barragem->nivel_emergencia && $barragem->ultima_leitura->cota_actual >= $barragem->nivel_emergencia)
EMERGÊNCIA
@else
ALERTA
@endif @endif
@if($barragem->ultima_leitura) @php $ultimaAtualizacao = $barragem->ultima_leitura->data_leitura; $diasSemAtualizacao = $ultimaAtualizacao->diffInDays(now()); $statusClass = 'bg-green-100 text-green-800'; $statusIcon = 'fas fa-check-circle'; $statusText = 'Atualizado'; if ($diasSemAtualizacao > 7) { $statusClass = 'bg-red-100 text-red-800'; $statusIcon = 'fas fa-exclamation-circle'; $statusText = 'Desatualizado'; } elseif ($diasSemAtualizacao > 3) { $statusClass = 'bg-yellow-100 text-yellow-800'; $statusIcon = 'fas fa-clock'; $statusText = 'Atrasado'; } @endphp
{{ $statusText }} @if($diasSemAtualizacao > 0) ({{ $diasSemAtualizacao }}d) @endif
@else
Sem dados
@endif
@if($barragens->hasPages())
{{ $barragens->withQueryString()->links() }}
@endif @else

Nenhuma barragem encontrada

@if(request()->filled('search') || request()->filled('estado') || request()->filled('provincia')) Nenhuma barragem corresponde aos filtros aplicados. Tente ajustar os critérios de busca. @else Comece adicionando sua primeira barragem ao sistema para começar o monitoramento hidrológico. @endif

@if(request()->filled('search') || request()->filled('estado') || request()->filled('provincia')) Limpar Filtros @endif Adicionar Barragem
@endif
@endsection