<?php

namespace App\Http\Controllers;

use App\Models\Items; // Asumsikan ada model Item (untuk makanan/minuman)
use Illuminate\Http\Request;

class ItemsController extends Controller
{
    /**
     * Menampilkan daftar semua Items (makanan/minuman).
     */
    public function index()
    {
        $items = Items::all(); // Atau bisa juga Item::with('category', 'typeItem')->get();
        return view('pages.back.items.index', compact('items'));
    }

    /**
     * Menampilkan form untuk membuat Item baru.
     */
    public function create()
    {
        // Jika ada relasi ke kategori atau type, Anda mungkin perlu mengirim data itu juga
        // $categories = Category::all();
        // $typeItems = TypeItem::all();
        return view('pages.back.items.create'); // , compact('categories', 'typeItems')
    }

    /**
     * Menyimpan Item baru ke database.
     */
    public function store(Request $request)
    {
        $validatedData = $request->validate([
            'name' => 'required|string|max:255',
            'description' => 'nullable|string',
            'price' => 'required|numeric|min:0',
            'category_id' => 'nullable|exists:categories,id', // Jika ada relasi
            'type_item_id' => 'nullable|exists:type_items,id', // Jika ada relasi
            // ... kolom lain seperti image_url, is_available
        ]);

        Items::create($validatedData);

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

    /**
     * Menampilkan detail satu Item tertentu.
     */
    public function show(Item $item)
    {
        return view('pages.back.items.show', compact('item'));
    }

    /**
     * Menampilkan form untuk mengedit Item yang sudah ada.
     */
    public function edit(Item $item)
    {
        // $categories = Category::all();
        // $typeItems = TypeItem::all();
        return view('pages.back.items.edit', compact('item')); // , compact('item', 'categories', 'typeItems')
    }

    /**
     * Memperbarui data Item di database.
     */
    public function update(Request $request, Item $item)
    {
        $validatedData = $request->validate([
            'name' => 'required|string|max:255',
            'description' => 'nullable|string',
            'price' => 'required|numeric|min:0',
            'category_id' => 'nullable|exists:categories,id',
            'type_item_id' => 'nullable|exists:type_items,id',
            // ...
        ]);

        $item->update($validatedData);

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

    /**
     * Menghapus Item dari database.
     */
    public function destroy(Item $item)
    {
        $item->delete();
        return redirect()->route('items.index')->with('success', 'Item berhasil dihapus!');
    }
}
