diff --git a/app/Http/Controllers/Api/Admin/ItemFieldController.php b/app/Http/Controllers/Api/Admin/ItemFieldController.php index 8282c656..4116b200 100644 --- a/app/Http/Controllers/Api/Admin/ItemFieldController.php +++ b/app/Http/Controllers/Api/Admin/ItemFieldController.php @@ -909,4 +909,23 @@ private function suggestFieldType(string $type): string default => 'textbox', }; } + + /** + * 삭제된 필드 일괄 영구 삭제 (휴지통 비우기) + */ + public function purgeDeleted(): JsonResponse + { + $tenantId = session('selected_tenant_id'); + + if (! $tenantId || $tenantId === 'all') { + return response()->json([ + 'success' => false, + 'message' => '테넌트를 선택해주세요.', + ], 400); + } + + $result = $this->service->purgeDeletedFields($tenantId); + + return response()->json($result); + } } diff --git a/app/Services/ItemFieldSeedingService.php b/app/Services/ItemFieldSeedingService.php index fa5e7eba..e2997dbb 100644 --- a/app/Services/ItemFieldSeedingService.php +++ b/app/Services/ItemFieldSeedingService.php @@ -613,4 +613,36 @@ public function forceDeleteCustomField(int $tenantId, int $fieldId): array 'message' => '필드가 영구 삭제되었습니다.', ]; } + + /** + * 삭제된 필드 일괄 영구 삭제 (휴지통 비우기) + */ + public function purgeDeletedFields(int $tenantId): array + { + // 삭제된 필드(soft deleted) 조회 + $deletedFields = ItemField::onlyTrashed() + ->where('tenant_id', $tenantId) + ->get(); + + if ($deletedFields->isEmpty()) { + return [ + 'success' => true, + 'message' => '삭제된 필드가 없습니다.', + 'purged_count' => 0, + ]; + } + + $purgedCount = 0; + + foreach ($deletedFields as $field) { + $field->forceDelete(); + $purgedCount++; + } + + return [ + 'success' => true, + 'message' => "{$purgedCount}개의 삭제된 필드가 영구 삭제되었습니다.", + 'purged_count' => $purgedCount, + ]; + } } diff --git a/resources/views/item-fields/index.blade.php b/resources/views/item-fields/index.blade.php index 609c3238..8792c7e1 100644 --- a/resources/views/item-fields/index.blade.php +++ b/resources/views/item-fields/index.blade.php @@ -149,6 +149,15 @@ class="bg-gray-800 hover:bg-gray-900 text-white px-6 py-2 rounded-lg text-sm fon 검색 + + +