feat(db): add DLOB latest tables
This commit is contained in:
@@ -163,3 +163,51 @@ AS $$
|
|||||||
ORDER BY bucket DESC
|
ORDER BY bucket DESC
|
||||||
LIMIT p_limit;
|
LIMIT p_limit;
|
||||||
$$;
|
$$;
|
||||||
|
|
||||||
|
-- Latest DLOB orderbook snapshots (top-N levels), per market.
|
||||||
|
-- Filled by a VPS worker (collector) and consumed by the UI via Hasura subscriptions.
|
||||||
|
CREATE TABLE IF NOT EXISTS public.dlob_l2_latest (
|
||||||
|
market_name TEXT PRIMARY KEY,
|
||||||
|
market_type TEXT NOT NULL DEFAULT 'perp',
|
||||||
|
market_index INTEGER,
|
||||||
|
ts BIGINT,
|
||||||
|
slot BIGINT,
|
||||||
|
mark_price NUMERIC,
|
||||||
|
oracle_price NUMERIC,
|
||||||
|
best_bid_price NUMERIC,
|
||||||
|
best_ask_price NUMERIC,
|
||||||
|
bids JSONB,
|
||||||
|
asks JSONB,
|
||||||
|
raw JSONB,
|
||||||
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX IF NOT EXISTS dlob_l2_latest_updated_at_idx
|
||||||
|
ON public.dlob_l2_latest (updated_at DESC);
|
||||||
|
|
||||||
|
-- Derived stats for fast UI display.
|
||||||
|
CREATE TABLE IF NOT EXISTS public.dlob_stats_latest (
|
||||||
|
market_name TEXT PRIMARY KEY,
|
||||||
|
market_type TEXT NOT NULL DEFAULT 'perp',
|
||||||
|
market_index INTEGER,
|
||||||
|
ts BIGINT,
|
||||||
|
slot BIGINT,
|
||||||
|
mark_price NUMERIC,
|
||||||
|
oracle_price NUMERIC,
|
||||||
|
best_bid_price NUMERIC,
|
||||||
|
best_ask_price NUMERIC,
|
||||||
|
mid_price NUMERIC,
|
||||||
|
spread_abs NUMERIC,
|
||||||
|
spread_bps NUMERIC,
|
||||||
|
depth_levels INTEGER,
|
||||||
|
depth_bid_base NUMERIC,
|
||||||
|
depth_ask_base NUMERIC,
|
||||||
|
depth_bid_usd NUMERIC,
|
||||||
|
depth_ask_usd NUMERIC,
|
||||||
|
imbalance NUMERIC,
|
||||||
|
raw JSONB,
|
||||||
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX IF NOT EXISTS dlob_stats_latest_updated_at_idx
|
||||||
|
ON public.dlob_stats_latest (updated_at DESC);
|
||||||
|
|||||||
Reference in New Issue
Block a user