<?php

namespace App\Http\Controllers;

use App\Http\Requests\MovimientoCajaStoreRequest;
use App\Http\Requests\MovimientoCajaUpdateRequest;
use App\Http\Resources\MovimientoCajaCollection;
use App\Http\Resources\MovimientoCajaResource;
use App\Models\MovimientoCaja;
use Illuminate\Http\Request;
use Illuminate\Http\Response;

class MovimientoCajaController extends Controller
{
    public function index(Request $request): MovimientoCajaCollection
    {
        $movimientoCajas = MovimientoCaja::all();

        return new MovimientoCajaCollection($movimientoCajas);
    }

    public function store(MovimientoCajaStoreRequest $request): MovimientoCajaResource
    {
        $movimientoCaja = MovimientoCaja::create($request->validated());

        return new MovimientoCajaResource($movimientoCaja);
    }

    public function show(Request $request, MovimientoCaja $movimientoCaja): MovimientoCajaResource
    {
        return new MovimientoCajaResource($movimientoCaja);
    }

    public function update(MovimientoCajaUpdateRequest $request, MovimientoCaja $movimientoCaja): MovimientoCajaResource
    {
        $movimientoCaja->update($request->validated());

        return new MovimientoCajaResource($movimientoCaja);
    }

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

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