<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Routing\Controllers\Middleware;
use App\Models\OpzioneForm;
use App\DataTables\OpzioneFormDataTable;
use App\DataTables\OpzioneFormDataTableEditor;
use Illuminate\Support\Facades\Auth;

class OpzioneFormController extends Controller
{
    public static $permission_group = "Opzione Form";
    public static $permissions = [
        'view-opzione_form' => 'Vedi',
        'create-opzione_form' => 'Crea',
        'edit-opzione_form' => 'Modifica',
        'delete-opzione_form' => 'Elimina',
    ];

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

    public function index(Request $request, OpzioneFormDataTable $dataTable)
    {
        $dataTable->evento_form_id = $request->get('evento_form_id');
        return $dataTable->render('evento_form.opzioni.index');
    }

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

   
}
