-- ============================================================================ -- Schema: trading -- Table: watchlist_items -- Description: Items individuales dentro de watchlists -- Dependencies: trading.watchlists, trading.symbols -- ============================================================================ CREATE TABLE trading.watchlist_items ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), -- Referencias watchlist_id UUID NOT NULL REFERENCES trading.watchlists(id) ON DELETE CASCADE, symbol_id UUID NOT NULL REFERENCES trading.symbols(id) ON DELETE CASCADE, -- Configuración personalizada notes TEXT, alert_price_high DECIMAL(20,8), alert_price_low DECIMAL(20,8), -- Ordenamiento display_order INTEGER DEFAULT 0, -- Timestamps created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), -- Constraint: un símbolo solo una vez por watchlist CONSTRAINT uq_watchlist_items_watchlist_symbol UNIQUE (watchlist_id, symbol_id) ); -- Índices CREATE INDEX idx_watchlist_items_watchlist ON trading.watchlist_items(watchlist_id); CREATE INDEX idx_watchlist_items_symbol ON trading.watchlist_items(symbol_id); -- Comentarios COMMENT ON TABLE trading.watchlist_items IS 'Símbolos individuales dentro de una watchlist'; COMMENT ON COLUMN trading.watchlist_items.alert_price_high IS 'Precio superior para alertas'; COMMENT ON COLUMN trading.watchlist_items.alert_price_low IS 'Precio inferior para alertas';