feat: bank forceasts
This commit is contained in:
@@ -738,6 +738,54 @@ def init_db():
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
# ── Bank Forecast Sources ──────────────────────────────────────────────────
|
||||
c.execute("""CREATE TABLE IF NOT EXISTS bank_forecast_sources (
|
||||
id TEXT PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
url TEXT NOT NULL DEFAULT '',
|
||||
active INTEGER NOT NULL DEFAULT 1,
|
||||
last_scraped TEXT,
|
||||
notes TEXT DEFAULT ''
|
||||
)""")
|
||||
# Pre-seed well-known public research sites (URL left blank — user fills in)
|
||||
_default_banks = [
|
||||
('BFS_ING', 'ING Think', ''),
|
||||
('BFS_RABO', 'Rabobank Economics',''),
|
||||
('BFS_COMM', 'Commerzbank Research',''),
|
||||
('BFS_DANSK', 'Danske Research', ''),
|
||||
('BFS_MUFG', 'MUFG Research', ''),
|
||||
('BFS_WELLS', 'Wells Fargo Economics',''),
|
||||
('BFS_BBVA', 'BBVA Research', ''),
|
||||
('BFS_NATIX', 'Natixis Research', ''),
|
||||
]
|
||||
for _bid, _bname, _burl in _default_banks:
|
||||
try:
|
||||
c.execute("INSERT OR IGNORE INTO bank_forecast_sources (id,name,url) VALUES (?,?,?)",
|
||||
(_bid, _bname, _burl))
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
c.execute("""CREATE TABLE IF NOT EXISTS bank_forecasts (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
source_id TEXT NOT NULL REFERENCES bank_forecast_sources(id),
|
||||
series_id TEXT NOT NULL,
|
||||
event_name TEXT NOT NULL DEFAULT '',
|
||||
event_date TEXT NOT NULL,
|
||||
forecast_value REAL,
|
||||
unit TEXT DEFAULT '',
|
||||
confidence TEXT DEFAULT 'medium',
|
||||
snippet TEXT DEFAULT '',
|
||||
source_url TEXT DEFAULT '',
|
||||
extracted_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
UNIQUE(source_id, series_id, event_date)
|
||||
)""")
|
||||
try:
|
||||
c.execute("CREATE INDEX IF NOT EXISTS idx_bf_series ON bank_forecasts(series_id, event_date)")
|
||||
c.execute("CREATE INDEX IF NOT EXISTS idx_bf_date ON bank_forecasts(event_date)")
|
||||
c.execute("CREATE INDEX IF NOT EXISTS idx_bf_source ON bank_forecasts(source_id)")
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
# ── Specialist Desks ───────────────────────────────────────────────────────
|
||||
c.execute("""CREATE TABLE IF NOT EXISTS specialist_reports (
|
||||
id TEXT PRIMARY KEY,
|
||||
|
||||
Reference in New Issue
Block a user