<?php

namespace App\Http\Controllers;
use App\Municipio;
use App\Departamento;
use App\MunicipioDB;
use App\Pais;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;

class MunicipiosController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');
    }
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
        $municipios=Municipio::with('paises')
                ->with('departamentos')
                ->get();
        return view('municipios.lista',compact('municipios'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
        $paises=Pais::all();
        $departamentos=Departamento::all();
        return view('municipios.nuevo',compact('paises','departamentos'));
    }


    public function BuscarMunicipio(Request $request){
        $municipios=MunicipioDB::where('departamento_id',$request->departamento)->get();;
        $municipiosJson = json_encode($municipios);
        return response()->json(['municipios' => $municipiosJson]);
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
        $where = [
            'descripcion_municipio' => $request->descripcion,
            'id_pais' => $request->id_pais,
            'id_departamento' => $request->id_departamento
        ];
        $verificarRepetido=Municipio::where($where)->first();
        if($verificarRepetido){
            $arrResponse = [
                'message' => 'El Municipio ya existe'
            ];
            return redirect()->route('municipio.index')->with($arrResponse);
            dd();
        }
        $municipios = new Municipio();
        $municipios->descripcion_municipio = $request->descripcion;
        $municipios->id_pais = $request->id_pais;
        $municipios->id_departamento = $request->id_departamento;
        $municipios->id_user = Auth::id();
        $municipios->save();
        $arrResponse = [
            'message' => 'Municipio guardado correctamente'
        ];
        return redirect()->route('municipio.index')->with($arrResponse);
    }

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

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit(Municipio $municipio)
    {
        //
        $paises=Pais::all();
        $departamentos=Departamento::all();
        return view('municipios.editar',compact('paises','departamentos','municipio'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Municipio $municipio)
    {
        //
        $municipio->descripcion_municipio = $request->descripcion;
        $municipio->id_pais = $request->id_pais;
        $municipio->id_departamento = $request->id_departamento;
        $municipio->id_user = Auth::id();
        $municipio->update();
        $arrResponse = [
            'message' => 'Municipio actualizado correctamente'
        ];
        return redirect()->route('municipio.index')->with($arrResponse);
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
        Municipio::destroy($id);
        $arrResponse = [
            'message' => 'Municipio eliminado correctamente'
        ];
        return redirect()->route('municipio.index')->with($arrResponse);
    }
}
