<?php

namespace App\Filament\Resources\Services\Pages;

use App\Filament\Resources\Services\ServiceResource;
use Filament\Actions\DeleteAction;
use Filament\Actions\Action; 
use Filament\Resources\Pages\EditRecord;
use Illuminate\Support\Facades\Cache;

class EditService extends EditRecord
{
    protected static string $resource = ServiceResource::class;

    protected function getHeaderActions(): array
    {
        return [
            DeleteAction::make()
                ->after(function () {
                     // Hapus Cache saat dihapus
                     Cache::forget('home_services');
                     Cache::forget('services_page_list');
                     Cache::forget('services_sidebar_list');
                }),
            
            // Tombol Kembali
            Action::make('back')
                ->label('Kembali')
                ->url($this->getResource()::getUrl('index'))
                ->color('gray')
                ->icon('heroicon-m-arrow-left'),
        ];
    }

    // TOMBOL SIMPAN (UPDATE)
    protected function getSaveFormAction(): Action
    {
        return Action::make('simpanPerubahan')
            ->label('Simpan Perubahan')
            ->action(fn () => $this->save()) 
            ->requiresConfirmation()
            ->modalIcon('heroicon-o-check-circle')
            ->modalHeading('Simpan Perubahan?')
            ->modalDescription('Apakah Anda yakin ingin memperbarui layanan ini?')
            ->modalSubmitActionLabel('Ya, Update')
            ->keyBindings(['mod+s']);
    }

    // HAPUS CACHE SETELAH EDIT
    protected function afterSave(): void
    {
        Cache::forget('home_services');
        Cache::forget('services_page_list');
        Cache::forget('services_sidebar_list');
    }

    protected function getRedirectUrl(): string
    {
        return $this->getResource()::getUrl('index');
    }
}