<?php

namespace App\Http\Controllers;

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

class ManguerasController extends Controller
{
    public function index()
    {
        $items = Manguera::with(['cara.estacion', 'tipoCombustible'])->orderBy('id_manguera')->get();
        return view('mangueras.index', compact('items'));
    }

    public function create()
    {
        $caras = CaraEstacion::orderBy('nombre')->get();
        $tipos = TipoCombustible::orderBy('nombre')->get();
        return view('mangueras.create', compact('caras', 'tipos'));
    }

    public function store(Request $request)
    {
        $data = $request->validate([
            'id_cara' => 'required|integer',
            'id_tipo_combustible' => 'required|integer',
            'numero_manguera' => 'required|string|max:20',
            'estado' => 'nullable',
        ]);

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

        Manguera::create($data);
        return redirect()->route('mangueras.index')->with('success', 'Manguera creada.');
    }

    public function edit(string $id)
    {
        $item = Manguera::findOrFail($id);
        $caras = CaraEstacion::orderBy('nombre')->get();
        $tipos = TipoCombustible::orderBy('nombre')->get();
        return view('mangueras.edit', compact('item', 'caras', 'tipos'));
    }

    public function update(Request $request, string $id)
    {
        $item = Manguera::findOrFail($id);
        $data = $request->validate([
            'id_cara' => 'required|integer',
            'id_tipo_combustible' => 'required|integer',
            'numero_manguera' => 'required|string|max:20',
            'estado' => 'nullable',
        ]);

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

        $item->update($data);
        return redirect()->route('mangueras.index')->with('success', 'Manguera actualizada.');
    }

    public function destroy(string $id)
    {
        $item = Manguera::findOrFail($id);
        $item->delete();
        return redirect()->route('mangueras.index')->with('success', 'Manguera eliminada.');
    }
}
