json([ 'preferred_fuel_type' => $request->user()->preferred_fuel_type, 'postcode' => $request->user()->postcode, ]); } public function updatePreferences(Request $request): JsonResponse { $validated = $request->validate([ 'preferred_fuel_type' => ['sometimes', Rule::in(['petrol', 'diesel', 'e5', 'b7_premium', 'b10', 'hvo'])], 'postcode' => ['sometimes', 'string', 'max:8'], ]); $request->user()->update($validated); return response()->json([ 'preferred_fuel_type' => $request->user()->fresh()->preferred_fuel_type, 'postcode' => $request->user()->fresh()->postcode, ]); } public function savedStations(Request $request): JsonResponse { $stations = $request->user()->savedStations()->get(); return response()->json(['data' => $stations]); } public function saveStation(Request $request): JsonResponse { $validated = $request->validate([ 'station_id' => ['required', 'string', 'max:64'], ]); $request->user()->savedStations()->firstOrCreate([ 'station_id' => $validated['station_id'], ]); return response()->json(null, 201); } public function removeStation(Request $request, string $stationId): Response { $request->user()->savedStations()->where('station_id', $stationId)->delete(); return response()->noContent(); } }