diff --git a/app/Services/TenantService.php b/app/Services/TenantService.php index 2ec0de7a..c44dbbad 100644 --- a/app/Services/TenantService.php +++ b/app/Services/TenantService.php @@ -132,6 +132,14 @@ public function forceDeleteTenant(int $id): bool $tenant->users()->detach(); // user_tenants 관계 삭제 $tenant->departments()->forceDelete(); // 부서 영구 삭제 $tenant->menus()->forceDelete(); // 메뉴 영구 삭제 + + // 역할 삭제 전 하위 참조 데이터 정리 + $roleIds = $tenant->roles()->pluck('id'); + if ($roleIds->isNotEmpty()) { + DB::table('user_roles')->whereIn('role_id', $roleIds)->delete(); + DB::table('role_menu_permissions')->whereIn('role_id', $roleIds)->delete(); + DB::table('role_has_permissions')->whereIn('role_id', $roleIds)->delete(); + } $tenant->roles()->forceDelete(); // 역할 영구 삭제 // 3. 테넌트 영구 삭제