<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Cucina;
use App\DataTables\CucinaDataTable;
use App\DataTables\CucinaDataTableEditor;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Session;


class CucinaController extends Controller
{
    public static $permission_group = "Cucina";
    public static $permissions = [
        'view-cucina' => 'Vedi',
        'create-cucina' => 'Crea',
        'edit-cucina' => 'Modifica',
        'delete-cucina' => 'Elimina',
    ];

    public static function middleware(): array
    {
        return [
            new Middleware('permission:view-cucina', only: ['index']),
            new Middleware('permission:create-cucina|edit-cucina|delete-cucina', only: ['store', 'update', 'destroy']),
        ];
    }

    public function index(CucinaDataTable $dataTable)
    {
        $dataTable->attivita_id = Session::get('attivita_attuale');

        if (request()->boolean('dashboard')) {
            $dataTable->dashboard = true;
        }

        return $dataTable->render('cucina.index');
    }

    public function store(CucinaDataTableEditor $editor)
    {
        $request = request();
        $input = $request->all();
        if($request->has('action')){
          switch($input['action']){
            case 'create':
              if(!Auth::user()->can('create-cucina')) return;
              break;
            case 'edit':
              if(!Auth::user()->can('edit-cucina')) return;
              break;
            case 'remove':
              if(!Auth::user()->can('delete-cucina')) return;
              break;
          }
        }
        return $editor->process($request);
    }


    public function dashboard(CucinaDataTable $dataTable)
    {
        // if(request()->has('dashboard')){
        //     $dataTable->dashboard = true;
        // }
        $dataTable->dashboard = true;
        $dataTable->attivita_id = Session::get('attivita_attuale');
        return $dataTable->render('cucina.dashboard');
    }

    // public function dashboard(Request $request)
    // {
    //     $attivita = \App\Models\Attivita::find(Session::get('attivita_attuale'));
    //     if(!$attivita) return redirect()->route('attivita.index')->with('error', 'Attività non trovata');

    //     $dataTable_cucina = app(\App\DataTables\CucinaDataTable::class);
    //     $dataTable_cucina->attivita_id = $attivita->id;
    //     $dataTable_cucina->dashboard = 1;

    //     $dataTable_piatto = app(\App\DataTables\PiattoDataTable::class);
    //     $dataTable_piatto->attivita_id = $attivita->id;
    //     $dataTable_piatto->dashboard = true;

    //     $dataTable_variante = app(\App\DataTables\VariantePiattoDataTable::class);
    //     $dataTable_variante->attivita_id = $attivita->id;
    //     $dataTable_variante->dashboard = true;

    //     return view('cucina.dashboard')->with([
    //         'dataTable_cucina' => $dataTable_cucina,
    //         'dataTable_piatto' => $dataTable_piatto,
    //         'dataTable_variante' => $dataTable_variante,
    //     ]);
    // }

}
