@extends('layouts.app') @section('title', 'Commande #' . $foodOrder->order_number) @push('styles') @endpush @section('content') @php $statusConfig = [ 'pending' => ['gradient' => 'from-amber-400 to-orange-500', 'bg' => 'bg-amber-500', 'icon' => '⏳', 'label' => 'En attente', 'desc' => 'Le prestataire va confirmer votre commande', 'step' => 1], 'accepted' => ['gradient' => 'from-blue-400 to-indigo-500', 'bg' => 'bg-blue-500', 'icon' => '👍', 'label' => 'Acceptée', 'desc' => 'Votre commande va être préparée', 'step' => 2], 'preparing' => ['gradient' => 'from-purple-400 to-pink-500', 'bg' => 'bg-purple-500', 'icon' => '👨‍🍳', 'label' => 'En préparation', 'desc' => 'Le chef prépare votre commande', 'step' => 3], 'ready' => ['gradient' => 'from-green-400 to-emerald-500', 'bg' => 'bg-green-500', 'icon' => $foodOrder->delivery_type === 'pickup' ? '🎉' : '🚚', 'label' => $foodOrder->delivery_type === 'pickup' ? 'Prête !' : 'En route', 'desc' => $foodOrder->delivery_type === 'pickup' ? 'Venez récupérer votre commande' : 'Votre commande arrive bientôt', 'step' => 4], 'delivered' => ['gradient' => 'from-emerald-400 to-teal-500', 'bg' => 'bg-teal-500', 'icon' => '📦', 'label' => 'Livrée', 'desc' => 'Bon appétit !', 'step' => 5], 'completed' => ['gradient' => 'from-gray-400 to-gray-500', 'bg' => 'bg-gray-500', 'icon' => '✅', 'label' => 'Terminée', 'desc' => 'Merci pour votre commande', 'step' => 5], 'cancelled' => ['gradient' => 'from-red-400 to-rose-500', 'bg' => 'bg-red-500', 'icon' => '❌', 'label' => 'Annulée', 'desc' => 'Commande annulée', 'step' => 0], 'rejected' => ['gradient' => 'from-red-400 to-rose-500', 'bg' => 'bg-red-500', 'icon' => '🚫', 'label' => 'Refusée', 'desc' => 'Le prestataire a refusé', 'step' => 0], ]; $config = $statusConfig[$foodOrder->status] ?? $statusConfig['pending']; $isActive = !in_array($foodOrder->status, ['cancelled', 'rejected', 'completed']); @endphp
{{-- Header Sticky avec statut --}}

Commande

#{{ $foodOrder->order_number }}

@if($isActive)
Live
@else
@endif
{{-- Statut principal --}}
{{ $config['icon'] }}

{{ $config['label'] }}

{{ $config['desc'] }}

@if($isActive && in_array($foodOrder->status, ['accepted', 'preparing']))
⏱️ ≈ {{ $foodOrder->prestataire->food_estimated_prep_time ?? 30 }} min
@endif
{{-- Progress bar horizontale minimaliste --}} @if(!in_array($foodOrder->status, ['cancelled', 'rejected']))
@php $steps = [ ['step' => 1, 'icon' => '📝', 'label' => 'Reçue'], ['step' => 2, 'icon' => '✓', 'label' => 'Acceptée'], ['step' => 3, 'icon' => '🔥', 'label' => 'Préparation'], ['step' => 4, 'icon' => $foodOrder->delivery_type === 'pickup' ? '📍' : '🚚', 'label' => $foodOrder->delivery_type === 'pickup' ? 'Prête' : 'Livrée'], ]; @endphp @foreach($steps as $i => $step)
@if($i > 0)
@endif
@if($config['step'] > $step['step']) @else {{ $step['icon'] }} @endif
{{ $step['label'] }}
@endforeach
@endif
{{-- Alerte action requise --}} @if($foodOrder->isDelivered() && !$foodOrder->client_confirmed)

Commande reçue ?

Confirmez la réception pour terminer

@csrf
@endif {{-- Carte - Adresse livraison/retrait --}} @if($foodOrder->delivery_type === 'pickup' || ($foodOrder->delivery_lat && $foodOrder->delivery_lng))

{{ $foodOrder->delivery_type === 'pickup' ? '📍 Adresse de retrait' : '🏠 Livraison' }}

@if($foodOrder->delivery_type === 'pickup') {{ $foodOrder->prestataire->address }}, {{ $foodOrder->prestataire->city }} @else {{ $foodOrder->delivery_address }} @endif

@if($foodOrder->delivery_floor)

Étage {{ $foodOrder->delivery_floor }}@if($foodOrder->delivery_door_code) • Code: {{ $foodOrder->delivery_door_code }}@endif

@endif
@php $lat = $foodOrder->delivery_type === 'pickup' ? $foodOrder->prestataire->latitude : $foodOrder->delivery_lat; $lng = $foodOrder->delivery_type === 'pickup' ? $foodOrder->prestataire->longitude : $foodOrder->delivery_lng; @endphp @if($lat && $lng) @endif
@endif {{-- Prestataire - Compact --}}
@if($foodOrder->prestataire->profile_image) @else
👨‍🍳
@endif

{{ $foodOrder->prestataire->company_name ?? $foodOrder->prestataire->business_name }}

{{ $foodOrder->prestataire->city }}

@if($foodOrder->prestataire->phone) @endif
{{-- Articles - Accordion --}}
@foreach($foodOrder->items as $item)
{{ $item->quantity }}x {{ $item->product_name }} {{ number_format($item->total_price, 2) }} €
@if($item->special_instructions)

💬 {{ $item->special_instructions }}

@endif @endforeach
Sous-total {{ number_format($foodOrder->subtotal, 2) }} €
@if($foodOrder->service_fee > 0)
Frais de service {{ number_format($foodOrder->service_fee, 2) }} €
@endif @if($foodOrder->delivery_fee > 0)
Livraison {{ number_format($foodOrder->delivery_fee, 2) }} €
@endif
Total {{ number_format($foodOrder->total, 2) }} €
{{-- Paiement --}}
💳

@if($foodOrder->payment_method === 'card') Carte bancaire @elseif($foodOrder->payment_method === 'cash') Espèces @else Paiement @endif

{{ $foodOrder->payment_status === 'paid' ? '✓ Payé' : 'En attente' }}

{{ number_format($foodOrder->total, 2) }} €
{{-- Bouton payer si pas encore payé ET prestataire a Stripe --}} @if(function_exists('feature_enabled') && feature_enabled('food_payment_enabled') && $foodOrder->prestataire->stripe_onboarding_completed) @if($foodOrder->payment_status !== 'paid' && !in_array($foodOrder->status, ['cancelled', 'rejected'])) 💳 Payer maintenant @endif @endif
{{-- Infos supplémentaires - Accordion --}}
Commandé le {{ $foodOrder->created_at->format('d/m/Y à H:i') }}
@if($foodOrder->accepted_at)
Acceptée {{ $foodOrder->accepted_at->format('H:i') }}
@endif @if($foodOrder->preparing_at)
En préparation {{ $foodOrder->preparing_at->format('H:i') }}
@endif @if($foodOrder->ready_at)
Prête {{ $foodOrder->ready_at->format('H:i') }}
@endif @if($foodOrder->delivered_at)
Livrée {{ $foodOrder->delivered_at->format('H:i') }}
@endif
Type {{ $foodOrder->delivery_type === 'pickup' ? 'À emporter' : 'Livraison' }}
@if($foodOrder->delivery_contact_name)
Contact {{ $foodOrder->delivery_contact_name }}
@endif @if($foodOrder->notes)

Notes

{{ $foodOrder->notes }}

@endif
{{-- Annuler la commande --}} @if($foodOrder->canBeCancelled()) @endif
{{-- Bottom bar fixe - Commander à nouveau --}} @if(in_array($foodOrder->status, ['completed', 'delivered']))
🔄 Commander à nouveau
@endif
{{-- Modal annulation --}} @endsection @push('scripts') @endpush