<?php

namespace App\Http\Controllers;

use App\Models\Novedad;
use Illuminate\Http\Request;

use App\Models\Contacto;
use App\Models\Redes;
use App\Models\Categoria;

use Illuminate\Support\Facades\Storage;

class NovedadController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
        $novedades = Novedad::orderBy('orden', 'asc')->get();
        $categorias = Categoria::where('seccion', '=', 'novedades')->orderBy('orden', 'asc')->get();
        return view('adm.novedades.index')->with('novedades', $novedades)->with('categorias', $categorias);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        $categorias = Categoria::where('seccion', '=', 'Novedades')->orderBy('orden', 'asc')->get();
        return view('adm.novedades.create')->with('categorias', $categorias);
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $novedad = new Novedad;
        $novedad->titulo = $request->titulo;
        $novedad->orden = $request->orden;
        $novedad->fecha = date('Y:m:d');
        $novedad->descripcion_corta = $request->descripcion_corta;
        $novedad->descripcion_larga = $request->descripcion_larga;
        if($request->has('destacado')){
            $novedad->destacado = 1;
        } else {
            $novedad->destacado = 0;
        }
        $novedad->categoria_id = $request->categoria_id;
        if($request->hasFile('foto')){
            if($request->file('foto')->isValid()){
                $novedad->foto = $request->file('foto')->store('public/novedades');
            }
        }
        if($novedad->save()){
            $novedades = Novedad::orderBy('orden', 'asc')->get();
            return redirect()->route('indexNovedades')->with('novedades', $novedades);
        }
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\Models\Novedad  $novedad
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        $novedad = Novedad::find($id);
        $novedad->load('Categoria');
        $contacto = Contacto::find(1);
        $redes = Redes::find(1);
        $dia = substr($novedad->fecha, -2);
        $mes = substr($novedad->fecha, 5, 2);
        $anio = substr($novedad->fecha, 0, 4);
        $novedad->fechaParsed = $dia . '/' . $mes . '/' . $anio;
        return view('front.novedad')->with('novedad', $novedad)->with('redes', $redes)->with('contacto', $contacto);
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Models\Novedad  $novedad
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        $novedad = Novedad::find($id);
        $novedad->load('Categoria');
        $categoria = $novedad->Categoria;
        $categorias = Categoria::where('seccion', '=', 'Novedades')->orderBy('orden', 'asc')->get();
        return view('adm.novedades.edit')->with('novedad', $novedad)->with('categoria', $categoria)->with('categorias', $categorias);
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Models\Novedad  $novedad
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request)
    {
        $novedad = Novedad::find($request->id);
        $novedad->titulo = $request->titulo;
        $novedad->descripcion_corta = $request->descripcion_corta;
        $novedad->descripcion_larga = $request->descripcion_larga;
        if($request->has('destacado')){
            $novedad->destacado = 1;
        } else {
            $novedad->destacado = 0;
        }
        $novedad->categoria_id = $request->categoria_id;
        if($request->hasFile('foto')){
            if($request->file('foto')->isValid()){
                Storage::delete($novedad->foto);
                $novedad->foto = $request->file('foto')->store('public/novedades');
            }
        }
        if($novedad->save()){
            $novedades = Novedad::orderBy('orden', 'asc')->get();
            return redirect()->route('indexNovedades')->with('novedades', $novedades);
        }
    }

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