/home2/mshostin/carnival.ms-hostingladz.com/app/Http/Controllers/OurServiceController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\OurService;

class OurServiceController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $ourServices = OurService::all();
        return view('dashboard.admin.our_services.index', compact('ourServices'));
    }

    public function create()
    {
        return view('dashboard.admin.our_services.create');
    }

    public function store(Request $request)
    {
        $request->validate([
            'title' => 'required|string|max:255',
            'icon' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
            'description' => 'required|string',
            'status' => 'required|integer|in:0,1',
        ]);

        $iconName = time().'.'.$request->icon->extension();
        $request->icon->move(public_path('images'), $iconName);

        OurService::create([
            'title' => $request->title,
            'icon' => $iconName,
            'description' => $request->description,
            'status' => $request->status,
        ]);

        return redirect()->route('our_services.index')
                         ->with('success', 'Service created successfully.');
    }

    public function show(OurService $ourService)
    {
        return view('dashboard.admin.our_services.show', compact('ourService'));
    }

    public function edit(OurService $ourService)
    {
        return view('dashboard.admin.our_services.edit', compact('ourService'));
    }

    public function update(Request $request, OurService $ourService)
    {
        $request->validate([
            'title' => 'required|string|max:255',
            'icon' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048',
            'description' => 'required|string',
            'status' => 'required|integer|in:0,1',
        ]);

        if ($request->hasFile('icon')) {
            $iconName = time().'.'.$request->icon->extension();
            $request->icon->move(public_path('images'), $iconName);
            $ourService->update([
                'title' => $request->title,
                'icon' => $iconName,
                'description' => $request->description,
                'status' => $request->status,
            ]);
        } else {
            $ourService->update($request->only(['title', 'description', 'status']));
        }

        return redirect()->route('our_services.index')
                         ->with('success', 'Service updated successfully.');
    }

    public function destroy(OurService $ourService)
    {
        if ($ourService->icon) {
            unlink(public_path('images/'.$ourService->icon));
        }
        
        $ourService->delete();

        return redirect()->route('our_services.index')
                         ->with('success', 'Service deleted successfully.');
    }
}