Class StockController

java.lang.Object
com.raphaelsalles.backend.api.controller.StockController

@RestController @RequestMapping("/api/stocks") public class StockController extends Object
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.
Nota de Auditoria: Esta classe possui alto acoplamento (6 dependências). Considerar refatoração para um padrão Facade (ex: StockAggregatorService) para simplificar a orquestração.
  • Field Details

  • Constructor Details

  • 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.