<?php

namespace App\Filament\Resources\KematianResource\Pages;

use App\Filament\Resources\KematianResource;
use App\Models\Penduduk;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;

class CreateKematian extends CreateRecord
{
    protected static string $resource = KematianResource::class;
    // protected static string $title = "Buat data kematian";
    
    protected function handleRecordCreation(array $data): \Illuminate\Database\Eloquent\Model
    {
        return DB::transaction(function () use ($data) {
            // 1. Buat record Kematian terlebih dahulu
            // Pastikan model Kematian memiliki field yang sesuai dengan $data
            $kematian = static::getModel()::create($data);
            Log::info('Record Kematian berhasil dibuat untuk Penduduk ID: ' . $data['penduduk_id']);

            // 2. Update status_penduduk pada model Penduduk yang sesuai
            // Cari penduduk berdasarkan ID dari data form
            $penduduk = Penduduk::find($data['penduduk_id']);

            if ($penduduk) {
                $penduduk->update([
                    'status_penduduk' => 'meninggal'
                ]);
                Log::info('Status Penduduk ID: ' . $penduduk->id . ' diupdate menjadi "meninggal".');
            } else {
                Log::warning('Penduduk dengan ID: ' . $data['penduduk_id'] . ' tidak ditemukan saat mencoba mengupdate status.');
                // Anda mungkin ingin throw exception di sini atau memberikan notifikasi ke user
            }

            return $kematian; // Kembalikan instance model Kematian yang baru dibuat
        });
    }


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