<?php

namespace App\Http\Controllers;

use App\Http\Requests\ProveedorRequest;
use App\Models\Proveedor;
use Illuminate\Http\RedirectResponse;
use Illuminate\View\View;

class ProveedorController extends Controller
{
    public function index(): View
    {
        $proveedores = Proveedor::orderBy('nombre')->paginate(15);

        return view('catalogos.proveedores.index', compact('proveedores'));
    }

    public function create(): View
    {
        return view('catalogos.proveedores.create');
    }

    public function store(ProveedorRequest $request): RedirectResponse
    {
        Proveedor::create($request->validated());

        return redirect()->route('proveedores.index')->with('status', 'Proveedor registrado correctamente.');
    }

    public function edit(Proveedor $proveedor): View
    {
        return view('catalogos.proveedores.edit', compact('proveedor'));
    }

    public function update(ProveedorRequest $request, Proveedor $proveedor): RedirectResponse
    {
        $proveedor->update($request->validated());

        return redirect()->route('proveedores.index')->with('status', 'Proveedor actualizado correctamente.');
    }

    public function toggle(Proveedor $proveedor): RedirectResponse
    {
        $proveedor->update(['active' => ! $proveedor->active]);

        return redirect()->route('proveedores.index')->with('status', 'Estado del proveedor actualizado.');
    }
}
