from __future__ import annotations from src.storage.session import get_connection DDL = [ ''' CREATE TABLE IF NOT EXISTS balance_snapshots ( id BIGSERIAL PRIMARY KEY, created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), source TEXT NOT NULL, payload_json JSONB NOT NULL ) ''', ''' CREATE TABLE IF NOT EXISTS journal_events ( id BIGSERIAL PRIMARY KEY, created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), level TEXT NOT NULL, event_type TEXT NOT NULL, message TEXT NOT NULL, payload_json JSONB ) ''', ''' CREATE TABLE IF NOT EXISTS order_drafts ( id BIGSERIAL PRIMARY KEY, created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), symbol TEXT NOT NULL, side TEXT NOT NULL, order_type TEXT NOT NULL, quantity NUMERIC(36, 18) NOT NULL, status TEXT NOT NULL, payload_json JSONB ) ''' ] def init_schema() -> None: with get_connection() as connection: with connection.cursor() as cursor: for statement in DDL: cursor.execute(statement)