<?php

namespace App\Http\Controllers;

use App\Http\Requests\DetalleCompraStoreRequest;
use App\Http\Requests\DetalleCompraUpdateRequest;
use App\Http\Resources\DetalleCompraCollection;
use App\Http\Resources\DetalleCompraResource;
use App\Models\DetalleCompra;
use Illuminate\Http\Request;
use Illuminate\Http\Response;

class DetalleCompraController extends Controller
{
    public function index(Request $request): DetalleCompraCollection
    {
        $detalleCompras = DetalleCompra::all();

        return new DetalleCompraCollection($detalleCompras);
    }

    public function store(DetalleCompraStoreRequest $request): DetalleCompraResource
    {
        $detalleCompra = DetalleCompra::create($request->validated());

        return new DetalleCompraResource($detalleCompra);
    }

    public function show(Request $request, DetalleCompra $detalleCompra): DetalleCompraResource
    {
        return new DetalleCompraResource($detalleCompra);
    }

    public function update(DetalleCompraUpdateRequest $request, DetalleCompra $detalleCompra): DetalleCompraResource
    {
        $detalleCompra->update($request->validated());

        return new DetalleCompraResource($detalleCompra);
    }

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

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