@extends('layouts.app') @section('title', 'Alertes — '.$ref) @section('content')
{{-- En-tête --}}

Alertes — {{ $ref }}

Gérez les seuils par ruche (min/max, hystérésis, activation).

{{-- Sélecteur de ruche + Bootstrap --}}
@csrf
{{-- Flash message / erreurs --}} @if (session('status'))
{{ session('status') }}
@endif @if ($errors->any())
Erreurs :
@endif {{-- Tableau des réglages --}}

Réglages des seuils

Astuce : laissez vide pour « sans seuil ».
@if($settings->isEmpty())
Aucun réglage pour cette ruche. Cliquez sur “Initialiser les seuils manquants”.
@else
@foreach($settings as $s) {{-- Formulaire d’édition ligne par ligne --}} @csrf @endforeach
Type Seuil min Seuil max Hystérésis Activé Actions
{{ $s->type }}
@switch($s->type) @case('temperature') °C @break @case('humidity') % @break @case('weight') kg @break @case('battery') V @break @default — @endswitch
Bande anti-rebond
@csrf @method('DELETE')
Si les deux seuils sont renseignés, min ≤ max.
@endif
{{-- Dernières alertes déclenchées (lecture seule) --}}

Dernières alertes

@if($latestAlerts->isEmpty())
Aucune alerte enregistrée pour l’instant.
@else
@foreach($latestAlerts as $a) {{-- Cellule robuste sur la direction --}} @endforeach
Date Type Valeur Seuil franchi Message
{{ data_get($a,'created_at','—') }} {{ data_get($a,'type','—') }} {{ data_get($a,'value','—') }} @php $dir = data_get($a, 'direction'); @endphp @if ($dir === 'up') MAX @elseif ($dir === 'down') MIN @elseif (!is_null($dir)) {{ $dir }} @else — @endif {{ data_get($a,'message','—') }}
@endif
@endsection @push('scripts') @endpush