<?php

namespace App\Filament\Resources\KematianResource\Pages;

use App\Filament\Resources\KematianResource;
use Filament\Actions;
use Filament\Forms\Components\Select; // Import Select
use Filament\Forms\Components\DatePicker; // Import DatePicker
use Filament\Resources\Pages\ListRecords;
use Illuminate\Support\Facades\Auth;
use Maatwebsite\Excel\Facades\Excel;
use App\Exports\KematianExport; // Import class export Kematian

class ListKematians extends ListRecords
{
    protected static string $resource = KematianResource::class;

    protected function getHeaderActions(): array
    {
        return [
            
            // Tambahkan Action untuk Export Excel
            Actions\Action::make('export_excel')
                ->label('Export Laporan Kematian')
                ->icon('heroicon-o-arrow-down-tray')
                ->color('gray')
                ->form([
                    Select::make('dusun_id')
                        ->label('Filter Dusun')
                        ->options(fn () => \App\Models\Dusun::pluck('nama', 'id')->toArray())
                        ->placeholder('Pilih Dusun (Opsional)')
                        ->nullable(),
                    DatePicker::make('tanggal_mati_dari')
                        ->label('Tanggal Kematian Dari')
                        ->placeholder('Pilih Tanggal Mulai (Opsional)')
                        ->nullable(),
                    DatePicker::make('tanggal_mati_sampai')
                        ->label('Tanggal Kematian Sampai')
                        ->placeholder('Pilih Tanggal Akhir (Opsional)')
                        ->nullable(),
                ])
                ->action(function (array $data) {
                    $dusunId = $data['dusun_id'];
                    $tanggalMatiDari = $data['tanggal_mati_dari'];
                    $tanggalMatiSampai = $data['tanggal_mati_sampai'];

                    $fileName = 'data_kematian';
                    if ($dusunId) {
                        $dusun = \App\Models\Dusun::find($dusunId);
                        $fileName .= '_dusun_' . ($dusun->nama ?? 'unknown');
                    }
                    if ($tanggalMatiDari) {
                        $fileName .= '_dari_' . \Carbon\Carbon::parse($tanggalMatiDari)->format('Ymd');
                    }
                    if ($tanggalMatiSampai) {
                        $fileName .= '_sampai_' . \Carbon\Carbon::parse($tanggalMatiSampai)->format('Ymd');
                    }
                    $fileName .= '_' . now()->format('Ymd_His') . '.xlsx';

                    return Excel::download(
                        new KematianExport($dusunId, $tanggalMatiDari, $tanggalMatiSampai),
                        $fileName
                    );
                }),
                Actions\CreateAction::make()
                    ->visible(fn (): bool => Auth::user()->role !== 'kepala_desa'),
        ];
    }
}