<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Distribuidor;
use App\Models\Contacto;
use App\Models\Redes;

use Illuminate\Support\Facades\Storage;

class DistribuidoresController extends Controller
{
    public function buscar(Request $request){
        $distArgentina = Distribuidor::where('provincia', '=', $request->provincia)->where('pais', '=', 'Argentina')->orderBy('orden', 'asc')->get();
        $distMundo = Distribuidor::where('pais', '<>', 'Argentina')->orderBy('orden', 'asc')->get();
        
        $contacto = Contacto::find(1);
        $redes = Redes::find(1);
        
        return view('front.distribuidores')->with('distArgentina', $distArgentina)->with('distMundo', $distMundo)
        ->with('contacto', $contacto)->with('redes', $redes);
    }
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $distribuidores = Distribuidor::orderBy('orden', 'asc')->get();
        return view('adm.distribuidores.index')->with('distribuidores', $distribuidores);
    }

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

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $distribuidor = new Distribuidor;
        $distribuidor->nombre = $request->nombre;
        $distribuidor->orden = $request->orden;
        $distribuidor->correo = $request->correo;
        $distribuidor->sitio = $request->sitio;
        $distribuidor->telefono = $request->telefono;
        $distribuidor->provincia = $request->provincia;
        $distribuidor->pais = $request->pais;
        $distribuidor->direccion = $request->direccion;
        
        if($request->hasFile('foto')){
            if($request->file('foto')->isValid()){
                $foto = $request->file('foto')->store('public/distribuidores');
                $distribuidor->foto = $foto;
            }
        }
        if($distribuidor->save()){
            $distribuidores = Distribuidor::orderBy('orden', 'asc')->get();
            return redirect()->route('indexDistribuidores')->with('distribuidores', $distribuidores);
        }
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\Models\Categoria  $categoria
     * @return \Illuminate\Http\Response
     */
    public function show()
    {
        //
        $argentina = Distribuidor::where('pais', 'LIKE', '%Argentina%')->get();
        $mundo = Distribuidor::where('pais', '<>', 'Argentina')->get();
        $contacto = Contacto::find(1);
        $redes = Redes::find(1);
        
        return view('front.distribuidores')->with('distArgentina', $argentina)->with('distMundo', $mundo)
        ->with('contacto', $contacto)->with('redes', $redes);
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Models\Categoria  $categoria
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        $distribuidor = Distribuidor::find($id);
        return view('adm.distribuidores.edit')->with('id', $id)->with('distribuidor', $distribuidor);
    }
    

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Models\Categoria  $categoria
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request)
    {
        $distribuidor = Distribuidor::find($request->id);
        $distribuidor->nombre = $request->nombre;
        $distribuidor->orden = $request->orden;
        $distribuidor->correo = $request->correo;
        $distribuidor->sitio = $request->sitio;
        $distribuidor->telefono = $request->telefono;
        $distribuidor->provincia = $request->provincia;
        $distribuidor->pais = $request->pais;
        $distribuidor->direccion = $request->direccion;
        if($request->hasFile('foto')){
            if($request->file('foto')->isValid()){
                $foto = $request->file('foto')->store('public/distribuidores');
                $distribuidor->foto = $foto;
            }
        }
        if($distribuidor->save()){
            $distribuidores = Distribuidor::orderBy('orden', 'asc')->get();
            return redirect()->route('indexDistribuidores')->with('distribuidores', $distribuidores);
        }
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Models\Categoria  $categoria
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        $distribuidor = Distribuidor::find($id);
        
        Storage::delete($distribuidor->foto);
        if($distribuidor->delete()){
            $distribuidores = Distribuidor::orderBy('orden', 'asc')->get();
            return redirect()->route('indexDistribuidores')->with('distribuidores', $distribuidores);
        }
    }
}
