feat: implement full-stack awards module with Filament management, database support, and localization.

This commit is contained in:
Ümit Tunç
2026-05-27 06:32:31 +03:00
parent 05e8059b5d
commit 3c92a81cfe
14 changed files with 1127 additions and 0 deletions
@@ -0,0 +1,52 @@
<?php
namespace App\Filament\Admin\Resources\Awards\Pages;
use App\Filament\Admin\Resources\Awards\AwardResource;
use App\Filament\Admin\Resources\Components\TranslationTabs;
use Filament\Actions\DeleteAction;
use Filament\Actions\ForceDeleteAction;
use Filament\Actions\RestoreAction;
use Filament\Resources\Pages\EditRecord;
class EditAward extends EditRecord
{
protected static string $resource = AwardResource::class;
public function getTitle(): string
{
return __('awards.edit') ?? 'Ödülü Düzenle';
}
protected function getHeaderActions(): array
{
return [
DeleteAction::make()
->label(__('awards.delete') ?? 'Sil'),
ForceDeleteAction::make()
->label(__('awards.force_delete') ?? 'Kalıcı Olarak Sil'),
RestoreAction::make()
->label(__('awards.restore') ?? 'Geri Yükle'),
];
}
protected function getRedirectUrl(): string
{
return $this->getResource()::getUrl('index');
}
protected function getSavedNotificationTitle(): ?string
{
return __('awards.updated_successfully') ?? 'Ödül başarıyla güncellendi.';
}
protected function mutateFormDataBeforeFill(array $data): array
{
return array_merge($data, TranslationTabs::fillFromRecord($this->record));
}
protected function afterSave(): void
{
TranslationTabs::saveTranslations($this->record, $this->form->getState());
}
}