<?php

namespace App\Http\Controllers;

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

class TiposCombustibleController extends Controller
{
    public function index()
    {
        $items = TipoCombustible::orderBy('id_tipo_combustible')->get();
        return view('tipos_combustible.index', compact('items'));
    }

    public function create()
    {
        return view('tipos_combustible.create');
    }

    public function store(Request $request)
    {
        $data = $request->validate([
            'nombre' => 'required|string|max:255',
            'octanaje' => 'nullable|numeric',
            'precio' => 'nullable|numeric',
            'estado' => 'nullable',
        ]);

        $data['estado'] = $request->has('estado') ? 1 : 0;

        TipoCombustible::create($data);
        return redirect()->route('tipos_combustible.index')->with('success', 'Tipo de combustible creado.');
    }

    public function edit(string $id)
    {
        $item = TipoCombustible::findOrFail($id);
        return view('tipos_combustible.edit', compact('item'));
    }

    public function update(Request $request, string $id)
    {
        $item = TipoCombustible::findOrFail($id);
        $data = $request->validate([
            'nombre' => 'required|string|max:255',
            'octanaje' => 'nullable|numeric',
            'precio' => 'nullable|numeric',
            'estado' => 'nullable',
        ]);

        $data['estado'] = $request->has('estado') ? 1 : 0;

        $item->update($data);
        return redirect()->route('tipos_combustible.index')->with('success', 'Tipo de combustible actualizado.');
    }

    public function destroy(string $id)
    {
        $item = TipoCombustible::findOrFail($id);
        $item->delete();
        return redirect()->route('tipos_combustible.index')->with('success', 'Tipo de combustible eliminado.');
    }
}
