<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use App\Handlers\AnagraficaHandler as Ah;

use App\Anagrafica;
use App\AnagraficaTipo;

class AnagraficaController extends Controller
{
   /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //echo "GHERRY<br/>";
        //$data['listaAnagrafica'] = \App\Anagrafica::all();
        $data['listaAnagrafica'] = \App\Anagrafica::with('tipo')->get();
        return view('admin.anagrafica.index', $data);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        $data['listaAnagraficaTipo'] = \App\AnagraficaTipo::lists('nome', 'id');
        return view('admin.anagrafica.create', $data);
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Ah $ah)
    {
        
        $esitoValidazioneDati = $ah->datiValidi();
        if ($esitoValidazioneDati === true) {
            $ah->inserisciDati();
            return redirect('admin/anagrafica')->with('ok_message', 'La tua rubrica è stata aggiornata con un nuovo utente');
        }
        return redirect('admin/anagrafica/create')->withErrors($esitoValidazioneDati)->withInput();
    }
    
    /*
    public function store(Request $request)
        
        $this->validate($request, [
            'nome' => 'required'
            ,'cognome' => 'required'
            ,'email' => 'required|email'
            ,'telefono' => 'required'
        ],
        [
            'nome.required' => 'Il nome è obbligatorio!'
            ,'cognome.required' => 'Per favore, anche il cognome'
            ,'email.required' => 'E l\'email è importante'
            ,'telefono.required' => 'Per favore, inserisci il numero di telefono'
            ,'email.email' => 'L\'email non è in formato corretto'
        ]);

        $agenda = new \App\Agenda();

        $agenda->nome = $request->input('nome');
        $agenda->cognome = $request->input('cognome');
        $agenda->email = $request->input('email');
        $agenda->telefono = $request->input('telefono');
        $agenda->save();

        return redirect('agenda')->with('ok_message', 'La tua rubrica è stata aggiornata con un nuovo utente');
         
    }
     */

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        $data['datiRecuperati'] = \App\Anagrafica::find($id);
        $data['listaAnagraficaTipo'] = \App\AnagraficaTipo::lists('nome', 'id');
        return view('admin.anagrafica.view', $data);
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //$data['datiRecuperati'] = \App\Anagrafica::findOrNew($id);
        $data['datiRecuperati'] = \App\Anagrafica::findOrFail($id);
        $data['listaAnagraficaTipo'] = \App\AnagraficaTipo::lists('nome', 'id');
        return view('admin.anagrafica.edit', $data);
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Ah $ah, $id)
    {
        $esitoValidazioneDati = $ah->datiValidi();
        if ($esitoValidazioneDati === true) {
            $ah->aggiornaDati($id);
            return redirect('admin/anagrafica')->with('ok_message', 'La tua rubrica è stata aggiornata');
        }
        return redirect('admin/anagrafica/'.$id.'/edit')->withErrors($esitoValidazioneDati)->withInput();
    } 
    /*
    public function update(Request $request, $id)
    {
        $this->validate($request, [
            'nome' => 'required'
            ,'cognome' => 'required'
            ,'email' => 'required|email'
            ,'telefono' => 'required'
        ],
        [
            'nome.required' => 'Il nome è obbligatorio!'
            ,'cognome.required' => 'Per favore, anche il cognome'
            ,'email.required' => 'E l\'email è importante'
            ,'telefono.required' => 'Per favore, inserisci il numero di telefono'
            ,'email.email' => 'L\'email non è in formato corretto'
        ]);

        $agenda = \App\Agenda::find($id);

        $agenda->nome = $request->input('nome');
        $agenda->cognome = $request->input('cognome');
        $agenda->email = $request->input('email');
        $agenda->telefono = $request->input('telefono');
        $agenda->save();

        return redirect('agenda')->with('ok_message', 'La tua rubrica è stata aggiornata aggiornando l\'utente');
    }
    */
    
    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        \App\Anagrafica::destroy($id);
        return redirect('admin/anagrafica')->with('ok_message', 'La tua rubrica è stata aggiornata eliminando l\'utente');
    }
}
