<?php

namespace Sargilla\Flatlab4\Controllers;

use Illuminate\Support\Str;
use Illuminate\Http\Request;
use Yajra\DataTables\DataTables;
use App\Http\Controllers\Controller;
use Sargilla\Flatlab4\Flatlab4Menu as Menu;

class MenuController extends Controller
{

    public function __construct()
    {
        $this->middleware('auth');
    }

    public function index()
    {
        return view('flatlab::menus.index');
    }

    public function store(Request $request)
    {
         $this->validate(request(),[
            'nombre'=> 'required',
            'tipo' => 'required',
            'destino'=> 'required'
        ]);
        request()->request->add(['alias'=> Str::slug(request()->nombre)]);

        Menu::create(request()->all());

        return ['mensaje'=> 'Menu Creado correctamente!'];
    }

    public function show(Menu $menu)
    {
       return $menu;
    }

    public function update(Request $request, Menu $menu)
    {
        $this->validate(request(),[
            'nombre'=> 'required',
            'tipo' => 'required',
            'menu' => 'required',
            'destino'=> 'required'
        ]);
        request()->request->add(['alias'=> Str::slug(request()->nombre)]);

        $menu->update(request()->all());

        return ['mensaje'=> 'Menu Actualizado correctamente!'];
    }

    public function destroy(Menu $menu)
    {
        $menu->delete();
        return ['mensaje'=> 'Menu Borrado correctamente!'];
    }
    /**
     *  getMenus
     */
    public function getMenus()
    {
        if (!request()->ajax()) {
             return redirect()->route('menus.index');
        }
        return DataTables::of(Menu::all())
        	->editColumn('padre_id', function($query){
                if($query->padre_id == 0)
                    return null;
                else
                    return $query->padre->nombre;
            })
            ->editColumn('icono', function($query){
            	return '<i class="fa '.$query->icono.'"></i>';
            })
            ->addColumn('acciones', function($query){
                return view('flatlab::menus.acciones', compact('query'))->render();
            })
            ->rawColumns(['acciones','icono'])
            ->make(true);
    }
}
