diff --git a/app/Filament/Resources/EventAchievementResource.php b/app/Filament/Resources/EventAchievementResource.php index ea3111c4de..2b3fe5a982 100644 --- a/app/Filament/Resources/EventAchievementResource.php +++ b/app/Filament/Resources/EventAchievementResource.php @@ -12,6 +12,7 @@ use App\Models\EventAchievement; use App\Models\Game; use App\Models\User; +use Closure; use Filament\Forms; use Filament\Infolists; use Filament\Pages\Page; @@ -167,6 +168,17 @@ public static function form(Schema $schema): Schema } return $label; + }) + ->rule(function (): Closure { + return function (string $attribute, mixed $value, Closure $fail): void { + if ($value === null) { + return; + } + + if (EventAchievement::where('achievement_id', (int) $value)->exists()) { + $fail('Source achievement cannot be an event achievement.'); + } + }; }), Forms\Components\DatePicker::make('active_from')