76 lines
2.5 KiB
PHP
76 lines
2.5 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use App\Models\Commons\Menu;
|
|
use Illuminate\Database\Seeder;
|
|
|
|
/**
|
|
* 차량정비이력 메뉴를 법인차량관리 하위로 이동
|
|
*/
|
|
class VehicleMaintenanceMenuMoveSeeder extends Seeder
|
|
{
|
|
public function run(): void
|
|
{
|
|
$tenantId = 1;
|
|
|
|
// 법인차량관리 부모 메뉴 찾기
|
|
$parentMenu = Menu::where('tenant_id', $tenantId)
|
|
->where('name', '법인차량관리')
|
|
->first();
|
|
|
|
if (! $parentMenu) {
|
|
$this->command->error('법인차량관리 메뉴를 찾을 수 없습니다.');
|
|
|
|
return;
|
|
}
|
|
|
|
// 차량정비이력 메뉴 찾기
|
|
$maintenanceMenu = Menu::where('tenant_id', $tenantId)
|
|
->where(function ($q) {
|
|
$q->where('name', '차량정비이력')
|
|
->orWhere('name', '차량정비');
|
|
})
|
|
->first();
|
|
|
|
if (! $maintenanceMenu) {
|
|
$this->command->error('차량정비이력 메뉴를 찾을 수 없습니다.');
|
|
Menu::where('tenant_id', $tenantId)
|
|
->whereNull('parent_id')
|
|
->orderBy('sort_order')
|
|
->get(['id', 'name', 'url'])
|
|
->each(fn ($m) => $this->command->line(" - [{$m->id}] {$m->name} ({$m->url})"));
|
|
|
|
return;
|
|
}
|
|
|
|
// 이미 법인차량관리 하위에 있는지 확인
|
|
if ($maintenanceMenu->parent_id == $parentMenu->id) {
|
|
$this->command->info('차량정비이력은 이미 법인차량관리 하위에 있습니다.');
|
|
|
|
return;
|
|
}
|
|
|
|
$oldParentId = $maintenanceMenu->parent_id;
|
|
|
|
// 법인차량관리 하위 메뉴 중 최대 sort_order 확인
|
|
$maxSortOrder = Menu::where('parent_id', $parentMenu->id)
|
|
->max('sort_order') ?? 0;
|
|
|
|
// 차량정비이력을 법인차량관리 하위로 이동
|
|
$maintenanceMenu->parent_id = $parentMenu->id;
|
|
$maintenanceMenu->sort_order = $maxSortOrder + 1;
|
|
$maintenanceMenu->save();
|
|
|
|
$this->command->info("차량정비이력 메뉴 이동 완료: parent_id {$oldParentId} → {$parentMenu->id}");
|
|
|
|
// 결과 출력
|
|
$this->command->info('');
|
|
$this->command->info('=== 법인차량관리 하위 메뉴 ===');
|
|
Menu::where('parent_id', $parentMenu->id)
|
|
->orderBy('sort_order')
|
|
->get(['name', 'url', 'sort_order'])
|
|
->each(fn ($m) => $this->command->info(" {$m->sort_order}. {$m->name} ({$m->url})"));
|
|
}
|
|
}
|