<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Makanan;
use App\Http\Requests\MakananRequest;
use App\Http\Requests\UpdateMakananRequest;
use App\Models\Kategori;
use App\Http\Requests\KategoriRequest;
use App\Http\Requests\UpdateKategoriRequest;
use App\Models\JenisMakanan;
use App\Http\Requests\JenisMakananRequest;
use App\Http\Requests\UpdateJenisMakananRequest;

class MakananController extends Controller
{
    //

    public function makanan(){
        $makanans = Makanan::with('kategori', 'jenis')->get(); // Ambil semua data makanan dengan relasi kategori
        return view('admin.makanan.makanan', compact('makanans'));
    }
    
    public function editmakanan(Makanan $makanan){
        // Ambil semua kategori untuk dropdown  
        $kategoris = Kategori::pluck('kategori', 'id'); // Ambil nama dan ID kategori
        $jenis_makanans = JenisMakanan::pluck('name', 'id'); // Ambil nama dan ID kategori
        return view('admin.makanan.editmakanan', compact('makanan', 'kategoris', 'jenis_makanans'));
    }
    
    public function tambahMakanan(){
    // Mengambil semua data kategori
    $kategoris = Kategori::all(); // Pastikan ini adalah koleksi Eloquent
    $jenis_makanans = JenisMakanan::all(); // Pastikan ini adalah koleksi Eloquent
    // Mengirim data ke view
    return view('admin.makanan.tambahmakanan', compact('kategoris', 'jenis_makanans'));
}

    
    public function storemakanan(MakananRequest $request)
    {
        $validatedData = $request->validated();
        // dd($validatedData);
    
        // Ganti koma dengan titik untuk input desimal
        $validatedData['lemak'] = str_replace(',', '.', $validatedData['lemak']);
        $validatedData['natrium'] = str_replace(',', '.', $validatedData['natrium']);
        $validatedData['energi'] = str_replace(',', '.', $validatedData['energi']);
        $validatedData['karbohidrat'] = str_replace(',', '.', $validatedData['karbohidrat']);
        
    
        // Simpan relasi kategori_id ke database
        $validatedData['kategori_id'] = $request->input('kategori_id'); 
        $validatedData['jenis_id'] = $request->input('jenis_id');
        
        
    
        // Simpan data makanan ke database
        Makanan::create($validatedData);
    
        return redirect()->route('makanan')->with('success', 'Makanan berhasil ditambahkan!');
    }
    
    public function updatemakanan(UpdateMakananRequest $request, Makanan $makanan)
    {
        
        $validatedData = $request->validated();

        // Simpan relasi kategori_id ke database
        $validatedData['kategori_id'] = $request->input('kategori_id');
        $validatedData['jenis_id'] = $request->input('jenis_id');
    
        // Ganti koma dengan titik untuk input desimal
        $validatedData['lemak'] = str_replace(',', '.', $validatedData['lemak']);
        $validatedData['natrium'] = str_replace(',', '.', $validatedData['natrium']);
        $validatedData['energi'] = str_replace(',', '.', $validatedData['energi']);
        $validatedData['karbohidrat'] = str_replace(',', '.', $validatedData['karbohidrat']);
        
        // Update data makanan di database
        $makanan->update($validatedData);

    
        return redirect()->route('makanan')->with('success', 'Makanan berhasil diperbarui!');   
    }
    
    public function deletemakanan(Makanan $makanan) {
        $makanan->delete();
        return redirect()->route('makanan')->with('success', 'Makanan deleted successfully');
    }
    









    public function kategori(){
        $kategoris = Kategori::all();
        return view('admin.kategori.kategori', compact('kategoris'));
    }
    public function editkategori(Kategori $kategori){
        return view('admin.kategori.editkategori', compact('kategori'));
    }
    public function tambahkategori(){
        return view('admin.kategori.tambahkategori');
    }
    public function storekategori(KategoriRequest $request){
        $validatedData = $request->validated();
        Kategori::create($validatedData);
        return redirect()->route('kategori');
    }
    public function updatekategori(UpdateKategoriRequest $request, Kategori $kategori)
{
    $validatedData = $request->validated();
    $kategori->update($validatedData);
    return redirect()->route('kategori');
}

    public function deletekategori(Kategori $kategori) {
        $kategori->delete();
        return redirect()->route('kategori')->with('success', 'user deleted successfully');
    }





    


    public function jenismakanan()
{
    $jenis_makanans = JenisMakanan::all();
    return view('admin.jenismakanan.jenismakanan', compact('jenis_makanans'));
}

public function editjenismakanan(JenisMakanan $jenis)
{
    return view('admin.jenismakanan.editjenismakanan', compact('jenis'));
}

public function tambahjenismakanan()
{
    return view('admin.jenismakanan.tambahjenismakanan');
}

public function storejenismakanan(JenisMakananRequest $request)
{
    $validatedData = $request->validated();
    JenisMakanan::create($validatedData);
    return redirect()->route('jenismakanan');
}

public function updatejenismakanan(UpdateJenisMakananRequest $request, JenisMakanan $jenis)
{
    $validatedData = $request->validated();
    $jenis->update($validatedData);
    return redirect()->route('jenismakanan');
}

public function deletejenismakanan(JenisMakanan $jenis)
{
    $jenis->delete();
    return redirect()->route('jenismakanan')->with('success', 'Jenis makanan berhasil dihapus');
}
}
