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

namespace App\Http\Controllers;

use App\Models\FAQ;
use App\Models\EventsCountryTab;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class FAQController extends Controller
{
    public function index()
    {
        $faqs = FAQ::with('eventsCountryTab')->get();
        return view('dashboard.admin.faqs.index', compact('faqs'));
    }

    public function create()
    {
        $modelVal = EventsCountryTab::all();
        return view('dashboard.admin.faqs.create', compact('modelVal'));
    }

    public function store(Request $request)
    {
        $request->validate([
            'modelable_type' => 'required|string|max:255',
            'modelable_id' => 'required|integer',
            'question' => 'required|string|max:255',
            'answer' => 'required|string',
            'status' => 'required|boolean',
        ]);

        $data = $request->all();

        FAQ::create($data);

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

    public function show($id)
    {
        $faq = FAQ::findOrFail($id);
        return view('dashboard.admin.faqs.show', compact('faq'));
    }

    public function edit($id)
    {
        $faq = FAQ::findOrFail($id);
        $modelVal = EventsCountryTab::all();
        return view('dashboard.admin.faqs.edit', compact('faq', 'modelVal'));
    }

    public function update(Request $request, $id)
    {
        try {
            $validatedData = $request->validate([
                'modelable_type' => 'required|string|max:255',
                'modelable_id' => 'required|integer',
                'question' => 'required|string|max:255',
                'answer' => 'required|string',
                'status' => 'required|boolean',
            ]);

            $faq = FAQ::findOrFail($id);
            $faq->update($validatedData);

            return redirect()->route('faqs.index')->with('success', 'FAQ updated successfully.');
        } catch (Exception $ex) {
            return redirect()->back()->with('error', $ex->getMessage());
        }
    }

    public function destroy($id)
    {
        $faq = FAQ::findOrFail($id);
        $faq->delete();

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