<?php

namespace App\Filament\Resources\Promos\Pages;

use App\Filament\Resources\Promos\PromoResource;
use Filament\Actions\DeleteAction;
use Filament\Actions\Action; 
use Filament\Resources\Pages\EditRecord;
use Illuminate\Support\Facades\Cache;

class EditPromo extends EditRecord
{
    protected static string $resource = PromoResource::class;

    protected function getHeaderActions(): array
    {
        return [
            DeleteAction::make()
                ->after(function () {
                     // Hapus Cache saat dihapus
                     Cache::forget('home_promos');
                     Cache::forget('promos_page_list');
                     Cache::forget('promos_sidebar_all');
                }),
            
            // 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 data promo ini?')
            ->modalSubmitActionLabel('Ya, Update')
            ->keyBindings(['mod+s']);
    }

    // HAPUS CACHE SETELAH EDIT
    protected function afterSave(): void
    {
        Cache::forget('home_promos');
        Cache::forget('promos_page_list');
        Cache::forget('promos_sidebar_all');
    }

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