from fastapi import APIRouter, HTTPException from app.models.schemas import SignalSnapshot from app.services.signal_engine import compute_signals router = APIRouter(prefix="/signals", tags=["signals"]) @router.get("/{ticker}", response_model=SignalSnapshot) def get_signals(ticker: str): ticker = ticker.upper() snap = compute_signals(ticker) if snap is None: raise HTTPException(status_code=503, detail=f"Could not fetch market data for {ticker}") return snap