validate([ 'game_id' => 'required|string', 'is_wishlist' => 'boolean', 'is_favorite' => 'boolean', 'saved_for_later' => 'boolean', 'price_alert' => 'boolean', ]); // 2. Pega o ID do usuário que a nossa fechadura extraiu do Token JWT $userId = $request->get('auth_id'); // 3. Salva no banco. // O updateOrCreate procura se esse usuário já tem esse jogo na lista. // Se tiver, ele apenas atualiza as flags (ex: ativa o price_alert). Se não tiver, ele cria um novo. $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, ] ); // 4. Devolve a resposta de sucesso return response()->json([ 'message' => 'Jogo salvo na lista com sucesso!', 'data' => $wishlistItem ], 201); } }