@extends('layouts.app') @push('styles') @endpush @section('content')
{{-- ============ HERO SECTION ============ --}}
Professionnels vérifiés

Trouvez le prestataire idéal

Des milliers de professionnels qualifiés prêts à réaliser vos projets. Comparez, contactez et réservez en toute confiance.

{{ $prestataires->total() }}+ Prestataires
{{ $categories->count() }} Catégories
4.8 Note moyenne
{{-- ============ SEARCH SECTION ============ --}}
@if(request()->anyFilled(['name', 'category', 'subcategory', 'city', 'latitude', 'longitude', 'radius'])) Réinitialiser @endif
{{-- ============ RESULTS BAR ============ --}}
{{ $prestataires->total() }} prestataire{{ $prestataires->total() > 1 ? 's' : '' }} trouvé{{ $prestataires->total() > 1 ? 's' : '' }} @if(request('category') && $categories->where('id', request('category'))->first()) dans {{ $categories->where('id', request('category'))->first()->name }} @endif @if(request('city')) à {{ request('city') }} @endif @if(request('latitude') && request('longitude')) dans un rayon de {{ (int) request('radius', 50) }} km @endif
{{-- ============ GRID PRESTATAIRES ============ --}}
@forelse($prestataires as $prestataire) @php $rating = (float) ($prestataire->reviews_avg_rating ?? 0); $reviewCount = (int) ($prestataire->reviews_count ?? 0); $isNew = $prestataire->created_at && $prestataire->created_at->diffInDays(now()) < 30; $isTop = $reviewCount >= 5 && $rating >= 4.5; $categoryName = $prestataire->category->name ?? $prestataire->secteur_activite ?? null; $coverPhoto = $prestataire->cover_photo ?? null; $coverUrl = $coverPhoto ? (filter_var($coverPhoto, FILTER_VALIDATE_URL) ? $coverPhoto : asset('storage/' . ltrim($coverPhoto, '/'))) : null; $avatarPath = $prestataire->photo ?: ($prestataire->user->avatar ?? null); $avatarUrl = $avatarPath ? (filter_var($avatarPath, FILTER_VALIDATE_URL) ? $avatarPath : asset('storage/' . ltrim($avatarPath, '/'))) : null; $serviceCount = (int) ($prestataire->active_services_count ?? 0); $distanceKm = isset($prestataire->distance_km) && is_numeric($prestataire->distance_km) ? (float) $prestataire->distance_km : null; $distanceLabel = $distanceKm !== null ? ($distanceKm < 1 ? round($distanceKm * 1000) . ' m' : number_format($distanceKm, 1) . ' km') : null; $locationLabel = $prestataire->city ?: $prestataire->address; $secondaryMetaIcon = $distanceLabel ? 'fa-location-arrow' : ($serviceCount > 0 ? 'fa-briefcase' : 'fa-calendar-alt'); $secondaryMetaLabel = $distanceLabel ? $distanceLabel : ($serviceCount > 0 ? $serviceCount . ' service' . ($serviceCount > 1 ? 's' : '') : ($prestataire->created_at ? 'Depuis ' . $prestataire->created_at->format('Y') : null)); $cardDescription = $prestataire->description ? Str::limit(trim(strip_tags($prestataire->description)), 120) : 'Profil professionnel disponible sur TaPrestation. Consultez son profil pour voir ses prestations.'; @endphp
@if($avatarUrl) {{ $prestataire->user->name }} @else
{{ strtoupper(substr($prestataire->user->name, 0, 1)) }}
@endif
{{ $prestataire->user->name }}
@if($categoryName) {{ $categoryName }} @endif
{{ $reviewCount > 0 ? number_format($rating, 1) : 'Nouveau' }}
@if($prestataire->isVerified() || $isTop || $isNew)
@if($prestataire->isVerified()) Vérifié @endif @if($isTop) Top @elseif($isNew) Nouveau @endif
@endif
{{-- Rating --}}
@for($i = 1; $i <= 5; $i++) @endfor
{{ $reviewCount > 0 ? $reviewCount . ' avis' : 'Premiers retours à venir' }}
{{-- Description --}}

{{ $cardDescription }}

{{-- Meta Info --}}
@if($locationLabel)
{{ $locationLabel }}
@endif @if($secondaryMetaLabel)
{{ $secondaryMetaLabel }}
@endif
{{-- Actions --}}
Voir profil @auth @if(auth()->user()->isClient()) @if(auth()->user()->client && auth()->user()->client->isFollowing($prestataire->id))
@csrf @method('DELETE')
@else
@csrf
@endif @endif @endauth
@empty

Aucun prestataire trouvé

Modifiez vos critères de recherche ou explorez toutes les catégories disponibles

@if(request()->anyFilled(['name', 'category', 'subcategory', 'city', 'latitude', 'longitude'])) Voir tous les prestataires @endif
@endforelse
{{-- Pagination --}} @if($prestataires->hasPages())
{{ $prestataires->withQueryString()->links() }}
@endif
{{-- Bouton scroll to top --}} @endsection @push('scripts') @endpush