<?php

namespace App\Http\Controllers;

use App\Models\Balita;
use Illuminate\Http\Request;
use Carbon\Carbon;

class BalitaController extends Controller
{
    public function index(Request $request)
{
    // Ambil input pencarian dari request
    $search = $request->input('search');

    // Ambil data balita dan hitung umur dalam bulan
    $balitas = Balita::when($search, function ($query, $search) {
        // Filter berdasarkan Nama Anak atau NIK
        return $query->where('nama_anak', 'like', "%{$search}%")
                     ->orWhere('nik', 'like', "%{$search}%");
    })
    ->get()
    ->map(function ($balita) {
        // Hitung umur dalam bulan
        $balita->umur_bulan = Carbon::parse($balita->tanggal_lahir)->diffInMonths(now());
        return $balita;
    });

    return view('data_balita', compact('balitas'));
}


    public function create()
    {
        return view('pendaftaran_balita');
    }

    public function store(Request $request)
    {
        $request->validate([
            'nik' => 'required|unique:balitas,nik',
            'nama_anak' => 'required',
            'jenis_kelamin' => 'required',
            'tanggal_lahir' => 'required|date',
            'tempat_lahir' => 'required',
            'ibu_kandung' => 'required',
            'nama_ayah' => 'required',
            'alamat' => 'required',
        ]);

        Balita::create($request->all());

        return redirect()->route('balita.index')->with('success', 'Data balita berhasil ditambahkan!');
    }

    public function show($id)
    {
        $balita = Balita::findOrFail($id);
        $balita->umur_bulan = Carbon::parse($balita->tanggal_lahir)->diffInMonths(now());

        return view('show_balita', compact('balita'));
    }

    public function edit($id)
    {
        $balita = Balita::findOrFail($id);
        return view('edit_balita', compact('balita'));
    }

    public function update(Request $request, $id)
    {
        $balita = Balita::findOrFail($id);

        $balita->update([
            'nik' => $request->nik,
            'nama_anak' => $request->nama_anak,
            'jenis_kelamin' => $request->jenis_kelamin,
            'tanggal_lahir' => $request->tanggal_lahir,
            'tempat_lahir' => $request->tempat_lahir,
            'ibu_kandung' => $request->ibu_kandung,
            'nama_ayah' => $request->nama_ayah,
            'alamat' => $request->alamat,
        ]);

        return redirect()->route('balita.index')->with('success', 'Data berhasil diperbarui!');
    }

    public function destroy($id)
    {
        $balita = Balita::findOrFail($id);
        $balita->delete();

        return redirect()->route('balita.index')->with('success', 'Data balita berhasil dihapus!');
    }
}
