-- dolphin_violet DDL — consolidated from the LIVE dolphin_pink schema -- (post-ALTER: includes maras_tp + provenance columns). Generated 2026-06-12. -- Apply via apply_violet_ddl.py (one statement per HTTP POST). CREATE TABLE IF NOT EXISTS dolphin_violet.position_state ( `ts` DateTime64(6, 'UTC'), `trade_id` String, `asset` LowCardinality(String), `direction` Int8, `entry_price` Float64, `quantity` Float64, `notional` Float64, `leverage` Float32, `bucket_id` Int32 DEFAULT -1, `entry_bar` Int32 DEFAULT 0, `status` LowCardinality(String), `exit_reason` LowCardinality(String) DEFAULT '', `pnl` Float64 DEFAULT 0, `bars_held` UInt16 DEFAULT 0, `market_state_bundle_json` String DEFAULT '', `tp_base_pct` Float32 DEFAULT 0, `tp_effective_pct` Float32 DEFAULT 0, `our_leverage` Float32 DEFAULT 0 ) ENGINE = ReplacingMergeTree(ts) PARTITION BY toYYYYMM(ts) ORDER BY (trade_id, ts) TTL toDateTime(ts) + toIntervalDay(180) SETTINGS index_granularity = 8192;