<?php

namespace App\Http\Controllers;

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

class MarcaController extends Controller
{
    /**
     * Display a listing of the resource.
     */
    public function index(Request $request)
    {
        $busqueda = $request->busqueda;

    if($busqueda) {
        $marcas = Marca::where('nombre', 'LIKE', "%{$busqueda}%")->get();

        if($marcas->count() == 0) {
            return redirect()->route('marca.index')
                           ->with('error', 'No existe ninguna marca con el nombre "' . $busqueda . '". Por favor, inténtalo de nuevo.');
        }

        // Si solo hay una marca, mostrar sus detalles
        if($marcas->count() == 1) {
            $marca = $marcas->first();
            return redirect()->route('marca.edit', $marca->id);
        }

        // Si hay múltiples coincidencias, mostrar la lista filtrada
        return view('marca', ["marcas" => $marcas]);
    }

        // Si no hay búsqueda, mostrar todas las marcas
        $marcas = Marca::all();
        return view('marcas', ["marcas" => $marcas]);
    }

    /**
     * Show the form for creating a new resource.
     */
    public function create()
    {
        $marcas = Marca::all();
        return view('marcasCrearEditar',['marcas'=>$marcas]);
    }

    /**
     * Store a newly created resource in storage.
     */
    public function store(Request $request)
    {
        $marca = new Marca($request->all());
        $marca->save();
        return redirect()->route('marca.index')->with('success', 'Marca creada exitosamente.');
    }

    /**
     * Display the specified resource.
     */
    public function show(Marca $marca)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     */
    public function edit($id)
    {
        $marca = Marca::find($id);
        return view('marcasCrearEditar',['marca'=>$marca]);
    }

    /**
     * Update the specified resource in storage.
     */
    public function update(Request $request, $id)
    {
        $marca = Marca::find($id);
        $marca->fill($request->all());
        $marca->save();
        return redirect()->route('marca.index')->with('success', 'Marca actualizada exitosamente.');
    }

    /**
     * Remove the specified resource from storage.
     */
    public function destroy($id )
    {
        $marca = Marca::find($id);
        $marca->delete();
        return redirect()->route('marca.index')->with('success', 'Marca eliminada exitosamente.');

    }
}