<?php

namespace App\Http\Controllers;

use App\Http\Requests\ProductoStoreRequest;
use App\Http\Requests\ProductoUpdateRequest;
use App\Http\Resources\ProductoCollection;
use App\Http\Resources\ProductoResource;
use App\Models\Producto;
use Illuminate\Http\Request;
use Illuminate\Http\Response;

class ProductoController extends Controller
{
    public function index(Request $request): ProductoCollection
    {
        $productos = Producto::all();

        return new ProductoCollection($productos);
    }

    public function store(ProductoStoreRequest $request): ProductoResource
    {
        $producto = Producto::create($request->validated());

        return new ProductoResource($producto);
    }

    public function show(Request $request, Producto $producto): ProductoResource
    {
        return new ProductoResource($producto);
    }

    public function update(ProductoUpdateRequest $request, Producto $producto): ProductoResource
    {
        $producto->update($request->validated());

        return new ProductoResource($producto);
    }

    public function destroy(Request $request, Producto $producto): Response
    {
        $producto->delete();

        return response()->noContent();
    }
}
