json($aficionados); } public function show($id) { $aficionado = Aficionado::findOrFail($id); return response()->json($aficionado); } public function store(Request $request) { $data = $request->validate([ 'nombre' => 'required|string|max:100', 'apellido' => 'required|string|max:100', 'dni' => 'required|string|max:20|unique:aficionados', 'fecha_nacimiento' => 'nullable|date', 'email' => 'nullable|email|max:150', 'telefono' => 'nullable|string|max:50', 'localidad' => 'nullable|string|max:100', 'password' => 'nullable|string', ]); if (isset($data['password'])) { $data['password'] = bcrypt($data['password']); } $aficionado = Aficionado::create($data); return response()->json($aficionado, 201); } public function update(Request $request, $id) { $aficionado = Aficionado::findOrFail($id); $data = $request->validate([ 'nombre' => 'sometimes|string|max:100', 'apellido' => 'sometimes|string|max:100', 'dni' => 'sometimes|string|max:20|unique:aficionados,dni,' . $id . ',id_aficionado', 'fecha_nacimiento' => 'nullable|date', 'email' => 'nullable|email|max:150', 'telefono' => 'nullable|string|max:50', 'localidad' => 'nullable|string|max:100', 'password' => 'nullable|string', ]); if (isset($data['password'])) { $data['password'] = bcrypt($data['password']); } $aficionado->update($data); return response()->json($aficionado); } public function destroy($id) { $aficionado = Aficionado::findOrFail($id); $aficionado->delete(); return response()->json(null, 204); } }