-- Create agent_activity_log table for trading agent service -- Tracks all agent activities for monitoring and auditing CREATE TYPE activity_type AS ENUM ( 'UNIVERSE_SELECTION', 'ASSET_SELECTION', 'ALLOCATION', 'ORDER_GENERATION', 'STRATEGY_EVENT' ); CREATE TABLE IF NOT EXISTS agent_activity_log ( activity_id UUID PRIMARY KEY DEFAULT gen_random_uuid(), activity_type activity_type NOT NULL, strategy_id UUID, -- Optional reference to strategy universe_id UUID, selection_id UUID, allocation_id UUID, batch_id UUID, event_data JSONB NOT NULL, -- Detailed event information message TEXT, created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), FOREIGN KEY (strategy_id) REFERENCES agent_strategies(strategy_id) ON DELETE SET NULL ); -- Indexes for performance CREATE INDEX idx_agent_activity_type ON agent_activity_log(activity_type); CREATE INDEX idx_agent_activity_strategy ON agent_activity_log(strategy_id); CREATE INDEX idx_agent_activity_created ON agent_activity_log(created_at DESC); CREATE INDEX idx_agent_activity_universe ON agent_activity_log(universe_id); -- Comments COMMENT ON TABLE agent_activity_log IS 'Audit log of all trading agent activities'; COMMENT ON COLUMN agent_activity_log.event_data IS 'Detailed event information in JSON format';