-- 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;
