-- Analytical fact table: positions_daily
-- End-of-day position snapshots.
-- Partitioned by dt on MinIO.
-- Path: s3://stonks-lakehouse/warehouse/positions_daily/dt={yyyy-mm-dd}/part-*.parquet
-- Requirements: 9.4, 9.5, 10.1, 10.3
-- Design ref: Section 7 (lake.positions_daily)

CREATE TABLE IF NOT EXISTS lakehouse.stonks.positions_daily (
    ticker            VARCHAR,
    quantity          DOUBLE,
    avg_entry_price   DOUBLE,
    close_price       DOUBLE,
    market_value      DOUBLE,
    unrealized_pnl    DOUBLE,
    broker_account    VARCHAR,
    execution_mode    VARCHAR,
    snapshot_at       TIMESTAMP(6) WITH TIME ZONE,
    dt                DATE
) WITH (
    format = 'PARQUET',
    partitioned_by = ARRAY['dt'],
    external_location = 's3a://stonks-lakehouse/warehouse/positions_daily/'
);
