<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Equipo;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\File; 

class EquipoController extends Controller
{
    public function index(Request $request)
    {
        $filtro = $request->get('filtro');
        
        $equipos = Equipo::orderBy('id', 'DESC')
            ->with('proveedor')
            ->with('tipos_equipo')
            ->paginate(5);
        
        return [
            'paginacion' => [
                'total'         => $equipos->total(),
                'pagina_actual' => $equipos->currentPage(),
                'por_pagina'    => $equipos->perPage(),
                'ultima_pagina' => $equipos->lastPage(),
                'desde'         => $equipos->firstItem(),
                'hasta'         => $equipos->lastItem(),
            ],
            'equipos' => $equipos
        ];
    }

    public function store(Request $request)
    {
        $this->validate($request, [
            // 'tipos_equipo_id' => 'required',
            // 'titulo'    => 'required',
            // 'copete' => 'required',
            // 'descripcion' => 'required'
        ]);

        $equipo = Equipo::create($request->all());

        if($request->hasFile('imagen')) {
            $path = Storage::disk('public')->put('img/equipos', $request->file('imagen'));

            $equipo->imagen = asset($path);
            $equipo->save();
        }

        return;
    }

    public function update(Request $request, $id)
    {
        $this->validate($request, [
            // 'tipos_equipo_id' => 'required',
            // 'titulo'    => 'required',
            // 'copete' => 'required',
            // 'descripcion' => 'required'
        ]);

        $equipo = Equipo::find($id);

        //Si se agrega o cambia la imágen
        if (!is_null($request->fileImagen)) {

            //Si se cambia
            if (!is_null($equipo->imagen)) Storage::disk('public')->delete($equipo->imagen);

            $path = Storage::disk('public')->put('img/equipos', $request->file('fileImagen'));

            $equipo->imagen = $path;
        }
        //Si se borra
        else if (is_null($request->imagen) && !is_null($equipo->imagen)){

            Storage::disk('public')->delete($equipo->imagen);
            
            $equipo->imagen = null;
        }

        $equipo->nombre = $request->nombre;
        $equipo->venta = $request->venta;
        $equipo->alquiler = $request->alquiler;
        $equipo->descripcion = $request->descripcion;
        $equipo->tipos_equipo_id = $request->tipos_equipo_id;
        $equipo->proveedor_id = $request->proveedor_id;
        $equipo->save();

        return;
    }
}
