diff --git a/database/seeders/SalesMenuFixSeeder.php b/database/seeders/SalesMenuFixSeeder.php new file mode 100644 index 00000000..90c80289 --- /dev/null +++ b/database/seeders/SalesMenuFixSeeder.php @@ -0,0 +1,87 @@ +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 설정'); + } + + // 결과 출력 + $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})"); + } + } +}