<?php

namespace App\Http\Controllers;

use App\Persona;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\DB;

class PersonaController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $personas=Persona::paginate(800);
        return view('personas.index', compact('personas'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        return view('personas.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $request->validate([
            'archivo'=>'required|mimes:jpg|unique:personas,archivo',
            
        ]);
        $persona=request()->except('_token');
        
        if($request->hasFile('archivo')){
            $persona['archivo']=$request->file('archivo')->store('uploads','public');
        }
        Persona::create($persona);
       // return response()->json($gaceta);
        
        return redirect()->route('personas.index')->with('info','personas guardada con exito!!.');
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\Persona  $persona
     * @return \Illuminate\Http\Response
     */
    public function show(Persona $persona)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Persona  $persona
     * @return \Illuminate\Http\Response
     */
    public function edit(Persona $persona)
    {
        return view('personas.edit',compact('persona'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Persona  $persona
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Persona $persona)
    {
        /* $request->validate([
            'nombre'=>'required|max:120',
            'descripcion'=>'required|max:500',
            'gacetamunicipal_id'=>'required|numeric',
            //'archivo'=>'required|mimes:pdf|unique:gacetas,archivo',
            
        ]); */
        $datosPersona=request()->except(['_token','_method']);
        if($request->hasFile('archivo')){
            $persona=Persona::findOrFail($persona->id);
            Storage::delete('public/'.$persona->archivo);
            $datosPersona['archivo']=$request->file('archivo')->store('uploads','public');
        }
        Persona::where('id','=',$persona->id)->update($datosPersona);
        return redirect()->route('personas.index')->with('info','Gaceta Actualizado con exito!!.');
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Persona  $persona
     * @return \Illuminate\Http\Response
     */
    public function destroy(Persona $persona)
    {
        $persona->delete();
        return back()->with('info', 'eliminado correctamente');
    }
}
