Class StockController
java.lang.Object
com.raphaelsalles.backend.api.controller.StockController
Controller principal para visualização de dados de ações.
Papel na Arquitetura: Atua como um agregador de dados para o frontend. Ele orquestra chamadas para múltiplos serviços de domínio (Análise, Histórico, Mercado, Valuation) e compõe uma resposta unificada (DTO).
Responsabilidades Principais:- Expor endpoints REST para consulta de detalhes de ações (/api/stocks/{ticker}).
- Integrar dados estáticos (Balanço CVM) com dados dinâmicos (Preço de Mercado).
- Acionar o cálculo de Valuation (P/L, P/VP) em tempo de execução.
- Fornecer histórico financeiro formatado para gráficos.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final StockAnalysisRepositoryprivate final FundamentalAnalysisServiceprivate final AssetRepositoryprivate final StockHistoryServiceprivate final MarketDataServiceprivate final FinancialStatementRepositoryprivate final ValuationService -
Constructor Summary
ConstructorsConstructorDescriptionStockController(StockAnalysisRepository analysisRepository, FinancialStatementRepository statementRepository, FundamentalAnalysisService analysisService, MarketDataService marketDataService, ValuationService valuationService, StockHistoryService historyService, AssetRepository assetRepository) -
Method Summary
Modifier and TypeMethodDescriptionorg.springframework.http.ResponseEntity<StockAnalysisDTO> getAnalysis(String ticker) Endpoint unificado que retorna a Análise Fundamentalista + Dados de Mercado.org.springframework.http.ResponseEntity<List<StockHistoryDTO>> getStockHistory(String ticker, String typeStr) Retorna o histórico financeiro da empresa para plotagem de gráficos.
-
Field Details
-
analysisRepository
-
statementRepository
-
analysisService
-
marketDataService
-
valuationService
-
historyService
-
assetRepository
-
-
Constructor Details
-
StockController
public StockController(StockAnalysisRepository analysisRepository, FinancialStatementRepository statementRepository, FundamentalAnalysisService analysisService, MarketDataService marketDataService, ValuationService valuationService, StockHistoryService historyService, AssetRepository assetRepository)
-
-
Method Details
-
getAnalysis
@GetMapping("/{ticker}") public org.springframework.http.ResponseEntity<StockAnalysisDTO> getAnalysis(@PathVariable String ticker) Endpoint unificado que retorna a Análise Fundamentalista + Dados de Mercado.Realiza uma composição de dados: 1. Busca a análise persistida (cache frio). 2. Se não existir, tenta gerar on-the-fly a partir do último balanço (Self-Healing). 3. Busca o preço atual na API externa (MarketData). 4. Calcula indicadores de valuation (P/L, P/VP) combinando balanço e preço.
- Parameters:
ticker- O código do ativo (ex: PETR4).- Returns:
- DTO contendo análise de saúde, indicadores e cotação atual.
-
getStockHistory
@GetMapping("/{ticker}/history") public org.springframework.http.ResponseEntity<List<StockHistoryDTO>> getStockHistory(@PathVariable String ticker, @RequestParam(value="type",required=false) String typeStr) Retorna o histórico financeiro da empresa para plotagem de gráficos.- Parameters:
ticker- O código do ativo.typeStr- (Opcional) "DFP" para visão anual consolidada. Se omitido, retorna visão trimestral com cálculo de 4T.- Returns:
- Lista de DTOs com Receita, Lucro e Patrimônio por período.
-