5d41ccac1c
Closes the action loop — instead of polling the dashboard, the platform pushes actionable signals to Telegram. New hourly 'alerts' job dispatches four toggleable triggers, deduped via a new alert_log table (cooldown-based for qualified/S-R/digest, watermark-based for score deterioration). Admin → Settings gains a Telegram panel (write-only bot token, chat ID, per-trigger toggles, Send Test). Credentials follow DB > env precedence (TELEGRAM_BOT_TOKEN / _CHAT_ID). Backend: alert_service + AlertLog model + migration 005, scheduler job, admin endpoints/schema. Frontend: AlertSettings panel, hooks, api, types. Deploy: run alembic upgrade (new alert_log table). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
28 lines
773 B
Python
28 lines
773 B
Python
from app.models.ticker import Ticker
|
|
from app.models.ohlcv import OHLCVRecord
|
|
from app.models.user import User
|
|
from app.models.sentiment import SentimentScore
|
|
from app.models.fundamental import FundamentalData
|
|
from app.models.score import DimensionScore, CompositeScore
|
|
from app.models.sr_level import SRLevel
|
|
from app.models.trade_setup import TradeSetup
|
|
from app.models.watchlist import WatchlistEntry
|
|
from app.models.settings import SystemSetting, IngestionProgress
|
|
from app.models.alert import AlertLog
|
|
|
|
__all__ = [
|
|
"Ticker",
|
|
"OHLCVRecord",
|
|
"User",
|
|
"SentimentScore",
|
|
"FundamentalData",
|
|
"DimensionScore",
|
|
"CompositeScore",
|
|
"SRLevel",
|
|
"TradeSetup",
|
|
"WatchlistEntry",
|
|
"SystemSetting",
|
|
"IngestionProgress",
|
|
"AlertLog",
|
|
]
|