<?php

namespace App\Http\Controllers;

use App\Models\CaraEstacion;
use App\Models\Estacion;
use Illuminate\Http\Request;

class CaraEstacionController extends Controller
{
    public function index()
    {
        $items = CaraEstacion::with('estacion')->orderBy('id_cara')->get();
        return view('caras_estacion.index', compact('items'));
    }

    public function create()
    {
        $estaciones = Estacion::orderBy('nombre')->get();
        return view('caras_estacion.create', compact('estaciones'));
    }

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

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

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

    public function edit(string $id)
    {
        $item = CaraEstacion::findOrFail($id);
        $estaciones = Estacion::orderBy('nombre')->get();
        return view('caras_estacion.edit', compact('item', 'estaciones'));
    }

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

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

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

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