<?php

namespace App\Http\Controllers;

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

class BundlesController extends Controller
{
    /**
     * Menampilkan daftar semua Bundles.
     */
    public function index()
    {
        // Mengambil semua data bundle dari database
        $bundles = Bundles::all();
        // Mengembalikan view dengan data bundles
        return view('pages.back.bundles.index', compact('bundles'));
    }

    /**
     * Menampilkan form untuk membuat Bundle baru.
     */
    public function create()
    {
        // Mengembalikan view form pembuatan bundle
        return view('pages.back.bundles.create');
    }

    /**
     * Menyimpan Bundle baru ke database.
     */
    public function store(Request $request)
    {
        // Validasi data input dari form
        $validatedData = $request->validate([
            'name' => 'required|string|max:255',
            'description' => 'nullable|string',
            // Tambahkan aturan validasi lain sesuai kolom tabel bundles Anda
        ]);

        // Membuat instance Bundle baru dan menyimpannya
        Bundle::create($validatedData);

        // Redirect ke halaman index bundles dengan pesan sukses
        return redirect()->route('pages.back.bundles.index')->with('success', 'Bundle berhasil ditambahkan!');
    }

    /**
     * Menampilkan detail satu Bundle tertentu.
     */
    public function show(Bundle $bundle) // Route model binding
    {
        // Mengembalikan view detail bundle dengan data bundle yang ditemukan
        return view('pages.back.bundles.show', compact('bundle'));
    }

    /**
     * Menampilkan form untuk mengedit Bundle yang sudah ada.
     */
    public function edit(Bundle $bundle) // Route model binding
    {
        // Mengembalikan view form edit bundle dengan data bundle yang ditemukan
        return view('pages.back.bundles.edit', compact('bundle'));
    }

    /**
     * Memperbarui data Bundle di database.
     */
    public function update(Request $request, Bundle $bundle) // Route model binding
    {
        // Validasi data input yang diperbarui
        $validatedData = $request->validate([
            'name' => 'required|string|max:255',
            'description' => 'nullable|string',
            // Tambahkan aturan validasi lain
        ]);

        // Memperbarui data bundle
        $bundle->update($validatedData);

        // Redirect ke halaman index bundles dengan pesan sukses
        return redirect()->route('pages.back.bundles.index')->with('success', 'Bundle berhasil diperbarui!');
    }

    /**
     * Menghapus Bundle dari database.
     */
    public function destroy(Bundle $bundle) // Route model binding
    {
        // Menghapus bundle
        $bundle->delete();

        // Redirect ke halaman index bundles dengan pesan sukses
        return redirect()->route('pages.back.bundles.index')->with('success', 'Bundle berhasil dihapus!');
    }
}
