Class UserFavoriteService

java.lang.Object
com.raphaelsalles.backend.domain.service.user.UserFavoriteService

@Service public class UserFavoriteService extends Object
Serviço de Gestão de Favoritos de Usuário.

Propósito: Gerenciar a lista de ativos favoritos e enriquecê-la com dados de mercado para exibição em dashboards.

  • Field Details

  • Constructor Details

  • Method Details

    • addFavorite

      @Transactional public void addFavorite(User user, String ticker)
      Adiciona um ativo aos favoritos.
      Parameters:
      user - O usuário.
      ticker - O código do ativo.
    • removeFavorite

      @Transactional public void removeFavorite(User user, String ticker)
      Remove um ativo dos favoritos.
      Parameters:
      user - O usuário.
      ticker - O código do ativo.
    • getUserFavoritesTickers

      public List<String> getUserFavoritesTickers(User user)
      Retorna a lista de tickers favoritos.
      Parameters:
      user - O usuário.
      Returns:
      Lista de strings.
    • getUserFavoritesWithPrice

      public List<MarketDataDTO> getUserFavoritesWithPrice(User user)
      Retorna a lista de favoritos enriquecida com preço e valuation.

      Nota de Auditoria: Executa chamadas de API externa em paralelo (CompletableFuture) para reduzir latência.

      Parameters:
      user - O usuário.
      Returns:
      Lista de DTOs de mercado.
    • processTicker

      private MarketDataDTO processTicker(String ticker)