<?php

namespace App\Http\Controllers;

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

class EquipoController extends Controller
{
    public function index()
    {
        $equipos = Equipo::with('club', 'jugadores')->get();
        return response()->json($equipos);
    }

    public function show($id)
    {
        $equipo = Equipo::with('club', 'jugadores')->findOrFail($id);
        return response()->json($equipo);
    }

    public function publicShow($id)
    {
        $equipo = Equipo::with(['club', 'jugadores'])->findOrFail($id);
        return view('equipos.show', compact('equipo'));
    }

    public function store(Request $request)
    {
        $data = $request->validate([
            'id_club' => 'required|integer|exists:clubes,id_club',
            'categoria' => 'required|string|max:20',
            'division' => 'nullable|string|max:5',
        ]);
        $equipo = Equipo::create($data);
        return response()->json($equipo, 201);
    }

    public function update(Request $request, $id)
    {
        $equipo = Equipo::findOrFail($id);
        $data = $request->validate([
            'id_club' => 'sometimes|integer|exists:clubes,id_club',
            'categoria' => 'sometimes|string|max:20',
            'division' => 'nullable|string|max:5',
        ]);
        $equipo->update($data);
        return response()->json($equipo);
    }

    public function destroy($id)
    {
        $equipo = Equipo::findOrFail($id);
        $equipo->delete();
        return response()->json(null, 204);
    }
}
