feat: instrument analysis

This commit is contained in:
OpenSquared
2026-06-28 13:52:34 +02:00
parent b5d4eb71e7
commit 20f1897211
3 changed files with 111 additions and 66 deletions

View File

@@ -527,8 +527,17 @@ def _get_relevant_events(
Returns max 15 events sorted by start_date descending.
"""
try:
from services.database import get_all_market_events
all_events = get_all_market_events()
from services.database import get_conn
conn = get_conn()
rows = conn.execute("""
SELECT e.*,
(SELECT a.template_id FROM causal_event_analyses a WHERE a.market_event_id = e.id ORDER BY a.id DESC LIMIT 1) AS template_id,
(SELECT a.id FROM causal_event_analyses a WHERE a.market_event_id = e.id ORDER BY a.id DESC LIMIT 1) AS analysis_id
FROM market_events e
ORDER BY e.start_date DESC
""").fetchall()
conn.close()
all_events = [dict(r) for r in rows]
except Exception as e:
logger.warning(f"[instrument_service] Could not load market events: {e}")
return []
@@ -570,6 +579,8 @@ def _get_relevant_events(
if keyword_hit or asset_hit:
filtered.append({
"id": ev.get("id"),
"template_id": ev.get("template_id"),
"date": ev_start,
"end_date": ev.get("end_date") or None,
"title": ev.get("name") or ev.get("event_name") or "",