Class UserWalletService

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

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

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

  • Field Details

  • Constructor Details

  • Method Details

    • addWallet

      @Transactional public void addWallet(User user, String ticker)
      Adiciona um ativo a carteira.
      Parameters:
      user - O usuário.
      ticker - O código do ativo.
    • removeWallet

      @Transactional public void removeWallet(User user, String ticker)
      Remove um ativo da carteira.
      Parameters:
      user - O usuário.
      ticker - O código do ativo.
    • getUserWalletsTickers

      public List<String> getUserWalletsTickers(User user)
      Retorna a lista de tickers da carteira.
      Parameters:
      user - O usuário.
      Returns:
      Lista de strings.
    • getUserWalletsWithPrice

      public List<MarketDataDTO> getUserWalletsWithPrice(User user)
      Retorna a lista de ativos da carteira 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)