@extends('layouts.app') @use('Illuminate\Support\Facades\Storage') @section('title', 'Tableau de bord - Prestataire') @push('styles') @endpush @section('content')
{{-- Guide de démarrage interactif pour les nouveaux prestataires --}} @php $hasServices = ($totalServices ?? 0) > 0; $hasEquipment = ($equipmentCount ?? 0) > 0; $hasInventory = ($inventoryCount ?? 0) > 0; $hasProfilePhoto = auth()->user()->profile_photo_path || auth()->user()->avatar; $hasQrViews = false; // À connecter avec les vraies stats $hasAvailability = isset($weeklyAvailability) && $weeklyAvailability && $weeklyAvailability->count() > 0; $hasUrgentSale = ($urgentProductsCount ?? 0) > 0; $hasPaymentsSetup = !empty($prestataire?->stripe_account_id); $hasFood = ($foodOrdersCount ?? 0) > 0; $isNewUser = (!$hasServices && !$hasEquipment && !$hasUrgentSale) || (($profileCompletion['percentage'] ?? 0) < 60); $onboardingSteps = [ [ 'key' => 'profile', 'title' => 'Compléter votre profil', 'description' => 'Photo, description, catégories et contact', 'completed' => $hasProfilePhoto, 'url' => route('prestataire.profile.edit') ], [ 'key' => 'service', 'title' => 'Créer une prestation', 'description' => 'Événementiel, esthétique, travaux… + réservation', 'completed' => $hasServices, 'url' => route('prestataire.services.create') ], [ 'key' => 'planning', 'title' => 'Activer le planning', 'description' => 'Horaires + disponibilités pour automatiser les réservations', 'completed' => $hasAvailability, 'url' => route('prestataire.availability.index') ], [ 'key' => 'equipment', 'title' => 'Ajouter du matériel à louer', 'description' => 'Location + disponibilité + demandes', 'completed' => $hasEquipment, 'url' => route('prestataire.equipment.create') ], [ 'key' => 'shop', 'title' => 'Créer une annonce (boutique)', 'description' => 'Produits + stock + inventaire', 'completed' => $hasUrgentSale || $hasInventory, 'url' => route('prestataire.urgent-sales.create') ], [ 'key' => 'payments', 'title' => 'Configurer paiements', 'description' => 'Moyens de paiement + acompte/caution (blocage)', 'completed' => $hasPaymentsSetup, 'url' => (\Illuminate\Support\Facades\Route::has('prestataire.payments.connect') ? route('prestataire.payments.connect') : route('prestataire.payments.index')) ], ]; @endphp {{-- Checklist d'onboarding pour les nouveaux utilisateurs --}} @if($isNewUser)
Démarrage rapide
Où aller selon ton activité
Services
Si tu vends une prestation (coiffeuse, traiteur, décoratrice…), utilise Mes services.
Matériel
Si tu as du matériel à mettre en location, utilise Mon matériel.
Annonces
Si tu es vendeur/vendeuse, utilise Mes annonces (produits).
Mon menu
Si tu fais de la restauration rapide sur commande (repas du jour, tiramisu…), utilise Mon menu.
@endif

Mes services

{{ $totalServices ?? 0 }} service(s)

{{ $activeServices ?? 0 }}
En cours
{{ $totalServices ?? 0 }}
Total

Mon matériel

{{ $equipmentCount ?? 0 }} équipement(s)

{{ $equipmentRentalRequestsCount ?? 0 }}
Demandes
{{ $activeRentalsCount ?? 0 }}
Locations

Mes annonces

Offres & promos

{{ $urgentSalesCount ?? 0 }}
Ventes
{{ $urgentProductsCount ?? 0 }}
Produits

Mon inventaire

Stock & produits

{{ $inventoryCount ?? 0 }}
Articles
{{ $lowStockCount ?? 0 }}
Stock bas

Mon Menu

Commandes alimentaires

@php $foodTablesExist = \Illuminate\Support\Facades\Schema::hasTable('food_products'); $foodProductsCount = 0; $pendingFoodOrders = 0; $preparingFoodOrders = 0; if ($foodTablesExist) { try { $foodProductsCount = $prestataire->foodProducts()->count(); $pendingFoodOrders = $prestataire->foodOrders()->where('status', 'pending')->count(); $preparingFoodOrders = $prestataire->foodOrders()->whereIn('status', ['accepted', 'preparing'])->count(); } catch (\Exception $e) { // Tables not ready yet } } @endphp @if(!$foodTablesExist)

Migration requise : exécutez php artisan migrate

@else
{{ $foodProductsCount }}
Produits
{{ $pendingFoodOrders }}
En attente
{{ $preparingFoodOrders }}
En cours
@if($pendingFoodOrders > 0)

{{ $pendingFoodOrders }} commande(s) en attente !

@endif @endif
@if(Route::has('prestataire.food-orders.dashboard')) Tableau de bord cuisine @else

Fonctionnalité bientôt disponible

@endif

Appels d'Offres @if(($unreadInvitations ?? 0) > 0) {{ $unreadInvitations }} nouvelle(s) @endif

Trouvez des clients qui recherchent vos services

{{ $tenderStats['available'] ?? 0 }}
Disponibles
{{ $tenderStats['responded'] ?? 0 }}
Propositions
{{ $tenderStats['shortlisted'] ?? 0 }}
Présélect.
{{ $tenderStats['accepted'] ?? 0 }}
Acceptées
@if(isset($recentTenders) && $recentTenders->count() > 0) @endif
Explorer les appels Mes propositions @if(auth()->user()->client) Mes demandes créées @endif @if(($unreadInvitations ?? 0) > 0) Invitations ({{ $unreadInvitations }}) @endif
@if(session('success')) @endif @if($errors->any()) @endif

Mon profil

Progression de complétion

Profil complété {{ $profileCompletion['percentage'] }}%
    @foreach($profileCompletion['missing_fields'] as $field)
  • {{ $field }}
  • @endforeach @if(empty($profileCompletion['missing_fields']))
  • Votre profil est complet !
  • @endif
Profil

Vérification de compte

@if(auth()->user()->prestataire->isVerified()) Compte vérifié @else En attente de vérification @endif

@if(auth()->user()->prestataire->isVerified()) @endif
@if(auth()->user()->prestataire->isVerified())

Félicitations !

Votre compte est vérifié et bénéficie du badge "Prestataire Vérifié"

@else

Vérifiez votre compte

Obtenez le badge "Prestataire Vérifié" pour gagner la confiance des clients

@endif
@if(auth()->user()->prestataire->isVerified()) Vérification @else Vérifier @endif
@push('scripts') @endpush @endsection