CREATE TABLE signals (
id TEXT PRIMARY KEY,
event_id TEXT NOT NULL UNIQUE,
-- NEW: 1:1 backing event for replayability
watcher_id TEXT,
-- NEW: optional provenance hook
signal_type TEXT NOT NULL,
value TEXT NOT NULL,
threshold TEXT,
direction TEXT,
severity TEXT,
window TEXT,
source TEXT NOT NULL,
reason_trace TEXT,
dedupe_key TEXT NOT NULL,
throttle_s INTEGER DEFAULT 0,
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),
FOREIGN KEY (event_id) REFERENCES events(id) ON DELETE RESTRICT DEFERRABLE INITIALLY DEFERRED,
FOREIGN KEY (watcher_id) REFERENCES watchers(id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED
)