where('name', '영업관리') ->whereNull('parent_id') ->orderBy('id') ->get(); if ($salesMenus->count() > 1) { // 첫 번째를 유지하고 나머지는 삭제 $mainSalesMenu = $salesMenus->first(); $duplicates = $salesMenus->skip(1); foreach ($duplicates as $dup) { // 중복 메뉴의 하위 메뉴들을 메인으로 이동 Menu::where('parent_id', $dup->id)->update(['parent_id' => $mainSalesMenu->id]); // 중복 메뉴 삭제 $dup->forceDelete(); $this->command->info("중복 영업관리 메뉴 삭제: ID {$dup->id}"); } } // 영업관리 메뉴 ID $salesParentId = Menu::where('tenant_id', $tenantId) ->where('name', '영업관리') ->whereNull('parent_id') ->value('id'); if (! $salesParentId) { $this->command->error('영업관리 메뉴를 찾을 수 없습니다.'); return; } // 세일즈 사이트 메뉴 찾아서 이동 $salesSite = Menu::where('tenant_id', $tenantId) ->where('name', '세일즈 사이트') ->first(); if ($salesSite) { $salesSite->parent_id = $salesParentId; $salesSite->sort_order = 5; $salesSite->save(); $this->command->info('세일즈 사이트 → 영업관리 하위로 이동'); } // 렌딩페이지 메뉴 찾아서 이동 및 URL 설정 $landingPage = Menu::where('tenant_id', $tenantId) ->where('name', '렌딩페이지') ->first(); if ($landingPage) { $landingPage->parent_id = $salesParentId; $landingPage->sort_order = 6; $landingPage->url = '/sales/salesmanagement/dashboard'; $landingPage->save(); $this->command->info('렌딩페이지 → 영업관리 하위로 이동, URL 설정'); } // 영업파트너 승인 메뉴 (없으면 생성, 있으면 순서 변경) $approvalMenu = Menu::where('tenant_id', $tenantId) ->where('name', '영업파트너 승인') ->first(); if ($approvalMenu) { $approvalMenu->parent_id = $salesParentId; $approvalMenu->sort_order = 5; $approvalMenu->save(); $this->command->info('영업파트너 승인 → sort_order 5로 변경'); } else { // 메뉴 생성 Menu::create([ 'tenant_id' => $tenantId, 'parent_id' => $salesParentId, 'name' => '영업파트너 승인', 'url' => '/sales/managers/approvals', 'icon' => 'check-circle', 'sort_order' => 5, 'is_active' => true, ]); $this->command->info('영업파트너 승인 메뉴 생성 (sort_order 5)'); } // 세일즈 사이트를 6으로 변경 if ($salesSite) { $salesSite->sort_order = 6; $salesSite->save(); } // 렌딩페이지를 7으로 변경 if ($landingPage) { $landingPage->sort_order = 7; $landingPage->save(); } // 결과 출력 $this->command->info(''); $this->command->info('=== 영업관리 하위 메뉴 ==='); $children = Menu::where('parent_id', $salesParentId) ->orderBy('sort_order') ->get(['name', 'url', 'sort_order']); foreach ($children as $child) { $this->command->info("{$child->sort_order}. {$child->name} ({$child->url})"); } } }