<?php

namespace App\Http\Controllers;

use App\Models\Meja; // Asumsikan ada model Meja
use Illuminate\Http\Request;

class MejaController extends Controller
{
    /**
     * Menampilkan daftar semua Meja.
     */
    public function index()
    {
        $mejas = Meja::all();
        return view('pages.back.mejas.index', compact('mejas'));
    }

    /**
     * Menampilkan form untuk membuat Meja baru.
     */
    public function create()
    {
        return view('pages.back.mejas.create');
    }

    /**
     * Menyimpan Meja baru ke database.
     */
    public function store(Request $request)
    {
        $validatedData = $request->validate([
            'table_number' => 'required|integer|unique:mejas,table_number', // Nomor meja harus unik
            'capacity' => 'required|integer|min:1',
            'status' => 'required|in:available,occupied,reserved', // Contoh status meja
        ]);

        Meja::create($validatedData);

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

    /**
     * Menampilkan detail satu Meja tertentu.
     */
    public function show(Meja $meja)
    {
        return view('pages.back.mejas.show', compact('meja'));
    }

    /**
     * Menampilkan form untuk mengedit Meja yang sudah ada.
     */
    public function edit(Meja $meja)
    {
        return view('pages.back.mejas.edit', compact('meja'));
    }

    /**
     * Memperbarui data Meja di database.
     */
    public function update(Request $request, Meja $meja)
    {
        $validatedData = $request->validate([
            'table_number' => 'required|integer|unique:mejas,table_number,' . $meja->id, // Kecualikan ID meja saat ini
            'capacity' => 'required|integer|min:1',
            'status' => 'required|in:available,occupied,reserved',
        ]);

        $meja->update($validatedData);

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

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