<?php

namespace App\Filament\Resources\KelahiranResource\Pages;

use App\Exports\KelahiranExport; // <-- Import class export
use App\Filament\Resources\KelahiranResource;
use Filament\Actions;
use Filament\Forms\Components\Select;
use Filament\Resources\Pages\ListRecords;
use Illuminate\Support\Facades\Auth;
use Maatwebsite\Excel\Facades\Excel;

class ListKelahirans extends ListRecords
{
    protected static string $resource = KelahiranResource::class;

    protected function getHeaderActions(): array
    {
        return [
            // Tambahkan Action untuk Export Excel
            Actions\Action::make('export_excel')
                ->label('Export Laporan Kelahiran')
                ->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(),
                    Select::make('bulan_kelahiran')
                        ->label('Filter Bulan Kelahiran')
                        ->options([
                            1 => 'Januari', 2 => 'Februari', 3 => 'Maret', 4 => 'April',
                            5 => 'Mei', 6 => 'Juni', 7 => 'Juli', 8 => 'Agustus',
                            9 => 'September', 10 => 'Oktober', 11 => 'November', 12 => 'Desember',
                        ])
                        ->placeholder('Pilih Bulan (Opsional)')
                        ->nullable(),
                ])
                ->action(function (array $data) {
                    $dusunId = $data['dusun_id'];
                    $bulanKelahiran = $data['bulan_kelahiran'];

                    $fileName = 'data_kelahiran';
                    if ($dusunId) {
                        $dusun = \App\Models\Dusun::find($dusunId);
                        $fileName .= '_dusun_' . ($dusun->nama ?? 'unknown');
                    }
                    if ($bulanKelahiran) {
                        $bulanNama = [
                            1 => 'Januari', 2 => 'Februari', 3 => 'Maret', 4 => 'April',
                            5 => 'Mei', 6 => 'Juni', 7 => 'Juli', 8 => 'Agustus',
                            9 => 'September', 10 => 'Oktober', 11 => 'November', 12 => 'Desember',
                        ][$bulanKelahiran];
                        $fileName .= '_bulan_' . $bulanNama;
                    }
                    $fileName .= '_' . now()->format('Ymd_His') . '.xlsx';

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