@extends('layouts.app') @section('content')

Nouvelle Réservation

Réservez un créneau pour le service sélectionné

@if(session('error'))
{{ session('error') }}
@endif

Détails du service

{{ $service->name }}

{{ Str::limit($service->description, 100) }}

Prix : {{ number_format($service->price * (($service->price_type === 'heure' || $service->price_type === 'jour') && $service->quantity ? $service->quantity : 1), 2) }} €
@if($service->duration)
Durée : {{ $service->duration }} min
@endif @if($service->price_type === 'jour' && $service->quantity)
Durée : {{ $service->quantity }} jour{{ $service->quantity > 1 ? 's' : '' }}
@endif

Sélectionner un créneau

@csrf @if(count($availableSlots) > 0 && collect($availableSlots)->where('is_booked', false)->count() > 0) @php $firstSlot = collect($availableSlots)->first(); $hasBreak = $firstSlot && $firstSlot['break_start_time'] && $firstSlot['break_end_time']; @endphp @if($firstSlot)

Informations sur les horaires

Horaires de travail : {{ \Carbon\Carbon::parse($firstSlot['availability_start'])->format('H:i') }} - {{ \Carbon\Carbon::parse($firstSlot['availability_end'])->format('H:i') }}
@if($hasBreak)
Pause : {{ \Carbon\Carbon::parse($firstSlot['break_start_time'])->format('H:i') }} - {{ \Carbon\Carbon::parse($firstSlot['break_end_time'])->format('H:i') }}
@endif
Durée des créneaux : @php // Handle daily services differently if (isset($firstSlot['service_duration_days'])) { $days = $firstSlot['service_duration_days']; echo $days . ' jour' . ($days > 1 ? 's' : ''); } else { $duration = $firstSlot['duration']; $hours = floor($duration / 60); $minutes = $duration % 60; if($hours > 0) { echo $hours . ' heure' . ($hours > 1 ? 's' : '') . ($minutes > 0 ? ' ' . $minutes . ' min' : ''); } else { echo $minutes . ' minutes'; } } @endphp
@endif
Aucun créneau sélectionné

Légende :

Disponible
Sélectionné
Demande en attente
Réservé

💡 Conseils :

  • • Cliquez sur plusieurs créneaux pour réserver plusieurs heures
  • • Utilisez Ctrl+A (Cmd+A sur Mac) pour sélectionner tous les créneaux
  • • Appuyez sur Échap pour désélectionner tous les créneaux
@php $groupedSlots = collect($availableSlots)->groupBy(function($slot) { return $slot['datetime']->format('Y-m-d'); }); @endphp @foreach($groupedSlots as $date => $slots)
@foreach($slots as $slot) @if($slot['is_booked'])
@if(isset($slot['service_duration_days'])) {{ $slot['datetime']->format('d/m/Y') }} - {{ $slot['end_datetime']->format('d/m/Y') }} @else {{ $slot['datetime']->format('H:i') }} - {{ $slot['end_datetime']->format('H:i') }} @endif
@php if (isset($slot['service_duration_days'])) { $days = $slot['service_duration_days']; echo $days . ' jour' . ($days > 1 ? 's' : ''); } else { $duration = $slot['duration']; $hours = floor($duration / 60); $minutes = $duration % 60; if($hours > 0) { echo $hours . 'h' . ($minutes > 0 ? sprintf('%02d', $minutes) : ''); } else { echo $minutes . ' min'; } } @endphp
Réservé
@elseif(isset($slot['has_pending']) && $slot['has_pending']) @else @endif @endforeach
@endforeach

Créneaux sélectionnés :

Total: créneau(x) Prix:

@else

Aucun créneau disponible

Ce prestataire n'a pas de créneaux disponibles pour les 30 prochains jours.

@endif @if(count($availableSlots) > 0)

Maximum 1000 caractères. Ces notes s'appliqueront à tous les créneaux sélectionnés.

Total à payer : {{ number_format($service->price * (($service->price_type === 'heure' || $service->price_type === 'jour') && $service->quantity ? $service->quantity : 1), 2) }} €
Retour
@else @endif
@endsection