<?php

namespace App\Http\Controllers;

use App\DataTables\EventDataTable;
use App\Event;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;

class EventController extends Controller
{
    public function index(EventDataTable $event)
    {
        return $event->render('events.index');
    }

    public function create(Request $request)
    {
        if($request->isMethod('POST')):
                $request->validate([
                    'name' => 'required|unique:events',
                    'description' => 'required|max:400'
                ]);

                $data = $request->all();

                    DB::beginTransaction();
                        Event::query()->create($data);
                    DB::commit();

                return redirect()->route('events.index')->with('success','Events Successfully Added');


            endif;

        return view('events.create');
    }

    public function edit(Request $request, $id)
    {
        $event = Event::query()->find($id);

        if($request->isMethod('POST')):
                $request->validate([
                    'name' => 'required|unique:events,name,'.$event->id,
                    'description' => 'required|max:400'
                ]);

                $data = $request->all();

                    DB::beginTransaction();
                        $event->update($data);
                    DB::commit();

                return redirect()->route('events.index')->with('success','Events Successfully Updated');


            endif;

        return view('events.edit',compact('event'));
    }

    public function destroy($id)
    {
        $event = Event::query()->find($id);
        Auth::user()->log("DELETED EVENT {$event->name}");
        $event->delete();

        return redirect()->back()->with('success',"Event {$event->name}, successfully deleted");
    }
}
