<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\CotxeAutoritzat;
use Validator;
//use App\Persona;

class NewAutoritzacioController extends Controller
{
    /**
     * NewAutoritzacioController constructor.
     */
    public function __construct()
    {
        //midelware per demanar que s'estigui registrat
        $this->middleware('auth');
    }

    /** Llista els vehicles autoritzats
     * @param Request $request
     * @return vista
     */
    public function index(Request $request)
    {
        $autoritzats = $this->llistarAutoritzats();
        return view('altaAutoritzacio')->with('autoritzats', $autoritzats);
    }
    /** Afegeix nou vehicle
     * @param Request $request
     * @return redirect vista
     */
    public function addNewCotxe(Request $request)
    {
        // Retorna True o False segons
        $validator = $this->validarFormulari($request);
        $matricula = $request->input('matricula');
        $marca = $request->input('marca');
        $model = $request->input('model');
        //si falla retorno error sino afegeixo cotxe
        if ($validator->fails()) {
            return redirect('/alta_autoritzacio')
                ->withInput()
                // Este método devuelve los errores que contiene cada campo
                ->withErrors($validator);
        }else{
            $newCotxe = $this->newCotxe($matricula,$marca,$model);
        }
        return redirect('/alta_autoritzacio');
    }
    /**Borrar cotxe autoritzat
     * @param Request $request
     * @return mixed
     */
    public function borrarCotxe(Request $request){
        $CotxeAutoritzat = new CotxeAutoritzat();
        $id = $request->input('id');
        $dates = $CotxeAutoritzat->borrarCotxeAutoritzat($id);
        return redirect('/alta_autoritzacio');
    }
    /** Cerca i inserta un nou cotxe autoritzat si no existeix
     * @param $matricula
     * @param $marca
     * @param $model
     * @return bool|string
     */
    public function newCotxe($matricula, $marca, $model)
    {
        $CotxeAutoritzat = new CotxeAutoritzat();
        if(! $CotxeAutoritzat->searchCotxeAutoritzat($matricula)){
            return $CotxeAutoritzat->insertCotxeAutoritzat($matricula,$marca,$model);
        }
        else{
            //$miss = $miss.'<span class="label label-warning">El cotxe ja existeix</span>';
            return False;
        }
    }
    /**Validació de la matricula
     * @param Request $request
     * @return \Illuminate\Validation\Validator
     */
    public function validarFormulari(Request $request)
    {
        // Validem el request

        $validator = Validator::make($request->all(), [
            //Reglas de validación para cada campo
            'matricula' => 'required|between:5,7',

        ]);
        return $validator;
    }
    /**Llistat dels vehicles autoritzats
     * @return mixed
     */
    public function llistarAutoritzats()
    {
        $CotxeAutoritzat = new CotxeAutoritzat();
        $accessos = $CotxeAutoritzat->llistaCotxeAutoritzat();
        return $accessos;
    }
}
