<?php

namespace App\Http\Controllers;

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

class RiwayatPenyakitController extends Controller
{
    // Menampilkan semua riwayat penyakit untuk anak tertentu
    public function index(Request $request)
    {
        $request->validate([
            'anak_id' => 'required|exists:anak,id'
        ]);

        $riwayatPenyakit = RiwayatPenyakit::where('anak_id', $request->anak_id)->get();

        return response()->json([
            'message' => 'Data riwayat penyakit berhasil diambil',
            'data' => $riwayatPenyakit
        ], 200);
    }

    // Menyimpan riwayat penyakit baru
    public function store(Request $request)
    {
        $request->validate([
            'anak_id' => 'required|exists:anak,id',
            'nama_penyakit' => 'required|string|max:255',
            'tanggal_sakit' => 'required|date',
            'deskripsi' => 'nullable|string',
            'obat' => 'nullable|string',
        ]);

        $riwayat = RiwayatPenyakit::create($request->all());

        return response()->json([
            'message' => 'Riwayat penyakit berhasil ditambahkan',
            'data' => $riwayat
        ], 201);
    }

    // Menampilkan detail riwayat penyakit berdasarkan ID
    public function show($id)
    {
        $riwayat = RiwayatPenyakit::find($id);

        if (!$riwayat) {
            return response()->json(['message' => 'Riwayat penyakit tidak ditemukan'], 404);
        }

        return response()->json([
            'message' => 'Data riwayat penyakit ditemukan',
            'data' => $riwayat
        ], 200);
    }

    // Mengupdate riwayat penyakit berdasarkan ID
    public function update(Request $request, $id)
    {
        $request->validate([
            'nama_penyakit' => 'sometimes|required|string|max:255',
            'tanggal_sakit' => 'sometimes|required|date',
            'deskripsi' => 'nullable|string',
            'obat' => 'nullable|string',
        ]);

        $riwayat = RiwayatPenyakit::find($id);

        if (!$riwayat) {
            return response()->json(['message' => 'Riwayat penyakit tidak ditemukan'], 404);
        }

        $riwayat->update($request->all());

        return response()->json([
            'message' => 'Riwayat penyakit berhasil diperbarui',
            'data' => $riwayat
        ], 200);
    }

    // Menghapus riwayat penyakit berdasarkan ID
    public function destroy($id)
    {
        $riwayat = RiwayatPenyakit::find($id);

        if (!$riwayat) {
            return response()->json(['message' => 'Riwayat penyakit tidak ditemukan'], 404);
        }

        $riwayat->delete();

        return response()->json(['message' => 'Riwayat penyakit berhasil dihapus'], 200);
    }
}
