feat(confluence): add racks, evaluations, and signal-history schema + repository (M22 slice 3)
This commit is contained in:
@@ -212,6 +212,48 @@ function runMigrations(db: DatabaseSync): void {
|
||||
sent_at TEXT
|
||||
)`,
|
||||
`CREATE INDEX IF NOT EXISTS idx_notification_outbox_pending ON notification_outbox(status, created_at)`,
|
||||
// Confluence Signal Engine (M22) — racks, evaluations, signal history.
|
||||
`CREATE TABLE IF NOT EXISTS confluence_racks (
|
||||
id TEXT PRIMARY KEY,
|
||||
owner_id TEXT,
|
||||
name TEXT NOT NULL,
|
||||
slot_ids_json TEXT NOT NULL,
|
||||
description TEXT,
|
||||
is_system INTEGER NOT NULL DEFAULT 0,
|
||||
created_at TEXT NOT NULL
|
||||
)`,
|
||||
`CREATE INDEX IF NOT EXISTS idx_confluence_racks_owner ON confluence_racks(owner_id)`,
|
||||
`CREATE TABLE IF NOT EXISTS confluence_evaluations (
|
||||
id TEXT PRIMARY KEY,
|
||||
symbol TEXT NOT NULL,
|
||||
as_of TEXT NOT NULL,
|
||||
rack_id TEXT NOT NULL REFERENCES confluence_racks(id) ON DELETE CASCADE,
|
||||
assessments_json TEXT NOT NULL,
|
||||
bull_evidence REAL NOT NULL,
|
||||
bear_evidence REAL NOT NULL,
|
||||
bull_count INTEGER NOT NULL,
|
||||
bear_count INTEGER NOT NULL,
|
||||
assessed_count INTEGER NOT NULL,
|
||||
net_evidence REAL NOT NULL,
|
||||
total_evidence REAL NOT NULL,
|
||||
quality TEXT NOT NULL,
|
||||
created_at TEXT NOT NULL,
|
||||
UNIQUE(symbol, as_of, rack_id)
|
||||
)`,
|
||||
`CREATE INDEX IF NOT EXISTS idx_confluence_evals_symbol_asof ON confluence_evaluations(symbol, as_of DESC)`,
|
||||
`CREATE TABLE IF NOT EXISTS confluence_signal_history (
|
||||
id TEXT PRIMARY KEY,
|
||||
symbol TEXT NOT NULL,
|
||||
slot_id TEXT NOT NULL,
|
||||
rack_id TEXT NOT NULL REFERENCES confluence_racks(id) ON DELETE CASCADE,
|
||||
fired_at TEXT NOT NULL,
|
||||
quality_at_fire TEXT NOT NULL,
|
||||
price_resolved INTEGER NOT NULL DEFAULT 0,
|
||||
price_confirmed INTEGER NOT NULL DEFAULT 0,
|
||||
resolved_at TEXT,
|
||||
verdict TEXT
|
||||
)`,
|
||||
`CREATE INDEX IF NOT EXISTS idx_confluence_signal_symbol_slot ON confluence_signal_history(symbol, slot_id)`,
|
||||
];
|
||||
for (const sql of migrations) {
|
||||
try { db.exec(sql); } catch { /* column already exists */ }
|
||||
|
||||
Reference in New Issue
Block a user