법인차량관리 하위에 차량일지 메뉴 추가 */ class VehicleLogMenuSeeder extends Seeder { public function run(): void { $tenantId = 1; // 법인차량관리 메뉴 찾기 $vehicleMenu = Menu::where('tenant_id', $tenantId) ->where('name', '법인차량관리') ->first(); if (! $vehicleMenu) { $this->command->error('법인차량관리 메뉴를 찾을 수 없습니다.'); return; } // 차량일지 메뉴가 이미 있는지 확인 $existingMenu = Menu::where('tenant_id', $tenantId) ->where('name', '차량일지') ->where('parent_id', $vehicleMenu->id) ->first(); if ($existingMenu) { $this->command->info('차량일지 메뉴가 이미 존재합니다.'); return; } // 법인차량관리가 그룹 메뉴인지 확인 // 그룹 메뉴가 아니면 그룹으로 변경 if ($vehicleMenu->url) { // 기존 URL을 차량목록으로 변경 $vehicleListMenu = Menu::create([ 'tenant_id' => $tenantId, 'parent_id' => $vehicleMenu->id, 'name' => '차량목록', 'url' => $vehicleMenu->url, 'icon' => 'car', 'sort_order' => 1, 'is_active' => true, ]); $this->command->info("차량목록 하위 메뉴 생성: {$vehicleListMenu->url}"); // 법인차량관리를 그룹 메뉴로 변경 $vehicleMenu->url = null; $vehicleMenu->save(); $this->command->info('법인차량관리를 그룹 메뉴로 변경'); // 차량일지 메뉴 생성 $vehicleLogMenu = Menu::create([ 'tenant_id' => $tenantId, 'parent_id' => $vehicleMenu->id, 'name' => '차량일지', 'url' => '/finance/vehicle-logs', 'icon' => 'file-text', 'sort_order' => 2, 'is_active' => true, ]); $this->command->info("차량일지 메뉴 생성: {$vehicleLogMenu->url}"); // 차량정비 메뉴가 있으면 순서 조정 $maintenanceMenu = Menu::where('tenant_id', $tenantId) ->where('name', '차량정비') ->where('parent_id', $vehicleMenu->id) ->first(); if ($maintenanceMenu) { $maintenanceMenu->sort_order = 3; $maintenanceMenu->save(); } } else { // 이미 그룹 메뉴인 경우 차량일지만 추가 // 기존 하위 메뉴 순서 확인 $maxSortOrder = Menu::where('parent_id', $vehicleMenu->id) ->max('sort_order') ?? 0; $vehicleLogMenu = Menu::create([ 'tenant_id' => $tenantId, 'parent_id' => $vehicleMenu->id, 'name' => '차량일지', 'url' => '/finance/vehicle-logs', 'icon' => 'file-text', 'sort_order' => $maxSortOrder + 1, 'is_active' => true, ]); $this->command->info("차량일지 메뉴 생성: {$vehicleLogMenu->url}"); } // 결과 출력 $this->command->info(''); $this->command->info('=== 법인차량관리 하위 메뉴 ==='); $children = Menu::where('parent_id', $vehicleMenu->id) ->orderBy('sort_order') ->get(['name', 'url', 'sort_order']); foreach ($children as $child) { $this->command->info("{$child->sort_order}. {$child->name} ({$child->url})"); } } }