@php // Get role from session first, fallback to auth $role = session('admin_role'); $tenantId = session('tenant_id'); // If session is empty, get from auth if (empty($role)) { $admin = auth()->guard('admin')->user(); $role = $admin ? $admin->role : null; $tenantId = $admin ? $admin->tenant_id : null; // Also set the session for future use if ($admin) { session([ 'admin_role' => $admin->role, 'admin_id' => $admin->id, 'tenant_id' => $admin->tenant_id, ]); $role = $admin->role; } } // Get tenant slug from URL for tenant-aware routes $tenantSlug = request()->segment(1); $isTenantRoute = $tenantSlug && \App\Models\Tenant::where('slug', $tenantSlug)->exists(); $title = match ($role) { 'platform_owner' => 'Platform Owner Dashboard', 'company_admin' => 'Company Admin Dashboard', 'sales' => 'Sales Dashboard', 'broker' => 'Broker Dashboard', default => 'Dashboard' }; // Badge counts — computed once, used throughout sidebar // $pendingFeedback = in_array($role, ['platform_owner', 'company_admin', 'sales']) // ? \App\Models\Feedback::where('status', 'pending')->count() : 0; $pendingFeedback = 0; if (in_array($role, ['platform_owner', 'company_admin', 'sales'])) { $feedbackQuery = \App\Models\Feedback::where('status', 'pending'); if ($role !== 'platform_owner') { $feedbackQuery->where('tenant_id', $tenantId); } if ($role === 'sales') { $adminUser = \Illuminate\Support\Facades\Auth::guard('admin')->user(); $feedbackQuery->whereHas('booking', function ($q) use ($adminUser) { $q->where('sales_person_id', $adminUser->id); }); } $pendingFeedback = $feedbackQuery->count(); } $pendingBookings = in_array($role, ['platform_owner', 'company_admin', 'sales']) ? \App\Models\Bookings::where('booking_status', 'pending')->count() : 0; $brokerBookings = 0; if ($role === 'broker') { $adminUser = \Illuminate\Support\Facades\Auth::guard('admin')->user(); $frontendUser = $adminUser ? \App\Models\User::where('email', $adminUser->email) ->where('role', 'broker') ->first() : null; $brokerBookings = $frontendUser ? \App\Models\Bookings::where('booked_by_broker_id', $frontendUser->id) ->where('booking_status', 'pending') ->count() : 0; } $pendingPayments = in_array($role, ['platform_owner', 'company_admin', 'sales']) ? \App\Models\PaymentTransaction::where('status', 'pending')->count() : 0; $newLeads = in_array($role, ['platform_owner', 'company_admin', 'sales']) ? \App\Models\Lead::where('status', 'new')->count() : 0; $wishlistCount = in_array($role, ['platform_owner', 'company_admin', 'sales']) ? \App\Models\WishlistModel::whereDate('created_at', '>=', now()->subDays(7))->count() : 0; $unreadMessages = \App\Models\AdminMessage::where('is_read', false) ->where('sender', 'user') ->count(); $unreadNotifCount = $role === 'platform_owner' || $role === 'company_admin' ? \App\Models\UserNotification::where('is_read', false)->count() : 0; // Helper function to generate tenant-aware URLs function tenantUrl($path, $tenantSlug) { if ($tenantSlug) { return '/' . $tenantSlug . $path; } return $path; } @endphp