validate([ 'game_id' => 'required|string', 'is_wishlist' => 'boolean', 'is_favorite' => 'boolean', 'saved_for_later' => 'boolean', 'price_alert' => 'boolean', ]); $userId = $request->get('auth_id'); $wishlistItem = WishlistItem::updateOrCreate( [ 'user_id' => $userId, 'game_id' => $validated['game_id'], ], [ 'is_wishlist' => $validated['is_wishlist'] ?? false, 'is_favorite' => $validated['is_favorite'] ?? false, 'saved_for_later' => $validated['saved_for_later'] ?? false, 'price_alert' => $validated['price_alert'] ?? false, ] ); return response()->json([ 'message' => 'Jogo salvo na lista com sucesso!', 'data' => $wishlistItem ], 201); } /** * Lista todos os jogos salvos pelo usuário logado. */ public function index(Request $request) { $userId = $request->get('auth_id'); // Busca no banco todos os registros que pertencem a este usuário $items = WishlistItem::where('user_id', $userId)->get(); return response()->json([ 'data' => $items ], 200); } /** * Remove um jogo da lista do usuário. */ public function destroy(Request $request, $game_id) { $userId = $request->get('auth_id'); // Procura o jogo específico deste usuário e deleta $deleted = WishlistItem::where('user_id', $userId) ->where('game_id', $game_id) ->delete(); // Se o jogo não existia na lista, avisa o Frontend if (!$deleted) { return response()->json(['message' => 'Jogo não encontrado na sua lista.'], 404); } return response()->json(['message' => 'Jogo removido com sucesso!'], 200); } }