Your IP : 216.73.216.79


Current Path : /var/www/html/reddsis/app/Http/Controllers/Backend/
Upload File :
Current File : /var/www/html/reddsis/app/Http/Controllers/Backend/MenuCategoryController.php

<?php

namespace App\Http\Controllers\Backend;

use App\Http\Controllers\Controller;
use App\Models\Backend\menu\frontend\MenuCategory;
use Illuminate\Http\Request;

class MenuCategoryController extends Controller
{
    public function index(Request $request)
    {
        $search = $request->get('search');

        $categories = MenuCategory::query()
            ->when($search, fn ($query) => $query->where('category_name', 'like', "%{$search}%"))
            ->orderBy('category_name')
            ->paginate(10)
            ->withQueryString();

        return view('backend.module.menu.frontendMenuCategory.index', [
            'categories' => $categories,
            'search' => $search,
        ]);
    }

    public function create()
    {
        return view('backend.module.menu.frontendMenuCategory.create');
    }

    public function store(Request $request)
    {
        MenuCategory::create($this->validatedCategory($request) + [
            'created_by' => auth('admin')->id(),
            'created_at' => now()->toDateString(),
        ]);

        flash()->success('Menu category created successfully.');

        return redirect()->route('menu-category.index');
    }

    public function edit($id)
    {
        return view('backend.module.menu.frontendMenuCategory.edit', [
            'category' => MenuCategory::findOrFail($id),
        ]);
    }

    public function update(Request $request, $id)
    {
        MenuCategory::findOrFail($id)->update($this->validatedCategory($request) + [
            'updated_by' => auth('admin')->id(),
            'updated_at' => now()->toDateString(),
        ]);

        flash()->success('Menu category updated successfully.');

        return redirect()->route('menu-category.index');
    }

    public function destroy($id)
    {
        MenuCategory::findOrFail($id)->delete();

        flash()->success('Menu category deleted successfully.');

        return redirect()->route('menu-category.index');
    }

    private function validatedCategory(Request $request): array
    {
        return $request->validate([
            'category_name' => ['nullable', 'string', 'max:255'],
            'category_description' => ['nullable', 'string', 'max:255'],
            'category_status' => ['nullable', 'boolean'],
        ]) + ['category_status' => $request->boolean('category_status', true)];
    }
}