{{-- Carte d'intervention pour les workers --}}
{{-- En-tête avec numéro d'intervention, logo client, nom client et date --}}
INTERVENTION Nº{{ $intervention->id }}
{{ $intervention->client_name }}
Date d'intervention
@if($intervention->intervention_date) {{ $intervention->intervention_date->locale('fr')->isoFormat('dddd DD/MM/YYYY') }}
@php $today = \Carbon\Carbon::today(); $interventionDate = \Carbon\Carbon::parse($intervention->intervention_date)->startOfDay(); $diffInDays = $today->diffInDays($interventionDate, false); $status = $intervention->status; @endphp @if($status === \App\Enums\InterventionStatus::COMPLETED->value) Terminée @elseif($status === \App\Enums\InterventionStatus::IN_PROGRESS->value) (aujourd'hui) @elseif($diffInDays === 0) (aujourd'hui) @elseif($diffInDays < 0) @php $daysLate = abs($diffInDays); $pluralS = $daysLate > 1 ? 's' : ''; @endphp @php $lateText = \App\Helpers\TranslationHelper::getUserTranslations()['translations']['interventions']['status_late'] ?? '(en retard de %days% jour%s%)'; $lateText = str_replace(['%days%', '%s%'], [$daysLate, $pluralS], $lateText); @endphp {{ $lateText }} @elseif($diffInDays > 0) @php $daysFuture = $diffInDays; $pluralS = $daysFuture > 1 ? 's' : ''; @endphp @php $futureText = \App\Helpers\TranslationHelper::getUserTranslations()['translations']['interventions']['status_future'] ?? '(dans %days% jour%s%)'; $futureText = str_replace(['%days%', '%s%'], [$daysFuture, $pluralS], $futureText); @endphp {{ $futureText }} @endif
@else Non définie @endif
{{-- Corps de la carte --}}
{{-- Adresse --}}

Adresse

{{ $intervention->address }}

@if($intervention->client && $intervention->client->primaryAddress)

@if($intervention->client->primaryAddress->floor) Étage: {{ $intervention->client->primaryAddress->floor }}@endif @if($intervention->client->primaryAddress->side) Côté: {{ $intervention->client->primaryAddress->side }}@endif

@endif
{{-- Séparateur horizontal --}}
{{-- Priorité et Titre sur la même ligne --}}
{{-- Container pour Priorité et Statut --}}
{{-- Priorité --}}
@php // Utiliser directement la valeur de priorité depuis la base de données $priority = $intervention->priority ?? 'normal'; // Mapping des priorités avec les clés de traduction $priorityTranslations = [ 'urgent' => 'interventions.priority_urgent', 'normal' => 'interventions.priority_normal', ]; $priorityKey = $priorityTranslations[$priority] ?? $priorityTranslations['normal']; // Mapping des classes CSS $priorityClass = match($priority) { 'urgent' => 'priority-badge--urgent', 'normal' => 'priority-badge--normal', }; // Mapping des icônes $priorityIcon = match($priority) { 'urgent' => 'fa-exclamation-triangle', 'normal' => 'fa-check-circle', }; @endphp {{ ucfirst($priority) }}
{{-- Titre --}}

Titre

{{ $intervention->title }}

{{-- Description (max 2 lignes) --}} @if($intervention->description)

Description

{{ \Illuminate\Support\Str::limit($intervention->description, 120) }}

@endif {{-- Séparateur horizontal --}}
{{-- Conteneur pour équipe et médias --}}
{{-- Équipe (à gauche) --}}
@if($intervention->workers && $intervention->workers->count() > 0)

{{ $intervention->workers->count() }} {{ $intervention->workers->count() > 1 ? 'personnes' : 'personne' }}

@else

Aucun intervenant assigné

@endif
{{-- Médias (à droite) --}}

@php $mediaCount = $intervention->photos()->count(); @endphp {{ $mediaCount }} {{ $mediaCount > 1 ? 'médias' : 'média' }}

{{-- Pied de carte avec bouton de détails --}}