<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Kecamatan;

class KecamatanController extends Controller
{
    public function index()
    {
        $dataKecamatan = Kecamatan::all();
        return view('kecamatan', compact('dataKecamatan'));
    }

    public function create()
    {
        return view('pages.tables.kecamatan');
    }

    public function store(Request $request)
    {
        $request->validate([
            'nama_kecamatan' => 'required|string|max:255',
            'jumlah_penduduk' => 'required|numeric',
            'longitude' => 'required|numeric',
            'latitude' => 'required|numeric',
        ]);

        Kecamatan::create([
            'nama_kecamatan' => $request->nama_kecamatan,
            'jumlah_penduduk' => $request->jumlah_penduduk,
            'longitude' => $request->longitude,
            'latitude' => $request->latitude,
        ]);

        return redirect()->route('kecamatan.index')->with('success', 'Kecamatan berhasil ditambahkan.');
    }

    public function update(Request $request, $id)
    {
        // Temukan objek Kecamatan berdasarkan ID
        $kecamatan = Kecamatan::find($id);

        $request->validate([
            'nama_kecamatan' => 'sometimes|required|string|max:255',
            'jumlah_penduduk' => 'sometimes|required|numeric',
            'longitude' => 'sometimes|required|numeric',
            'latitude' => 'sometimes|required|numeric',
        ]);

        if ($kecamatan) {
            // Memperbarui bidang-bidang yang ada dalam permintaan
            if ($request->has('nama_kecamatan')) {
                $kecamatan->nama_kecamatan = $request->nama_kecamatan;
            }
            if ($request->has('jumlah_penduduk')) {
                $kecamatan->jumlah_penduduk = $request->jumlah_penduduk;
            }
            if ($request->has('longitude')) {
                $kecamatan->longitude = $request->longitude;
            }
            if ($request->has('latitude')) {
                $kecamatan->latitude = $request->latitude;
            }
            
            // Menyimpan perubahan
            $kecamatan->save();
    
            // return response()->json(['message' => 'Data kecamatan berhasil diperbarui.']);
            return redirect()->route('kecamatan.index')->with('success', 'Kecamatan berhasil ditambahkan.');

        } else {
        return redirect()->route('kecamatan.index')->with('error', 'Data kecamatan tidak ditemukan.');

            // return response()->json(['error' => 'Data kecamatan tidak ditemukan.'], 404);
        }
    }
}