diff --git a/app/Providers/ViewServiceProvider.php b/app/Providers/ViewServiceProvider.php index 8b8f2aaf..d04c1cfa 100644 --- a/app/Providers/ViewServiceProvider.php +++ b/app/Providers/ViewServiceProvider.php @@ -3,6 +3,7 @@ namespace App\Providers; use App\Models\Tenants\Tenant; +use App\Services\Sales\SalesManagerService; use Illuminate\Support\Facades\View; use Illuminate\Support\ServiceProvider; @@ -31,5 +32,26 @@ public function boot(): void $view->with('globalTenants', $globalTenants); } }); + + // 사이드바 메뉴 뱃지 데이터 (라우트명 => 건수) + View::composer('partials.sidebar', function ($view) { + $menuBadges = []; + + if (auth()->check()) { + try { + $salesManagerService = app(SalesManagerService::class); + $approvalStats = $salesManagerService->getApprovalStats(); + + // 영업파트너 승인 대기 건수 + if ($approvalStats['pending'] > 0) { + $menuBadges['sales.managers.approvals'] = $approvalStats['pending']; + } + } catch (\Exception $e) { + // 서비스 오류 시 무시 + } + } + + $view->with('menuBadges', $menuBadges); + }); } } diff --git a/resources/views/components/sidebar/menu-item.blade.php b/resources/views/components/sidebar/menu-item.blade.php index 84c6bd25..434e0f92 100644 --- a/resources/views/components/sidebar/menu-item.blade.php +++ b/resources/views/components/sidebar/menu-item.blade.php @@ -21,6 +21,9 @@ : 'text-gray-700 hover:bg-gray-100'; $target = $menu->is_external ? '_blank' : '_self'; + + // 메뉴 뱃지 확인 (라우트명 기준) + $badgeCount = isset($menuBadges) && $routeName ? ($menuBadges[$routeName] ?? 0) : 0; @endphp