22 lines
1013 B
SQL
22 lines
1013 B
SQL
ALTER TABLE app.watchlist_items
|
|
ADD COLUMN IF NOT EXISTS label TEXT NOT NULL DEFAULT 'general',
|
|
ADD COLUMN IF NOT EXISTS priority TEXT NOT NULL DEFAULT 'medium',
|
|
ADD COLUMN IF NOT EXISTS trigger_operator TEXT NOT NULL DEFAULT 'lte',
|
|
ADD COLUMN IF NOT EXISTS trigger_price_psm DOUBLE PRECISION CHECK (trigger_price_psm >= 0),
|
|
ADD COLUMN IF NOT EXISTS last_reviewed_at TIMESTAMPTZ;
|
|
|
|
CREATE TABLE IF NOT EXISTS app.watchlist_events (
|
|
event_id BIGSERIAL PRIMARY KEY,
|
|
watchlist_item_id BIGINT NOT NULL REFERENCES app.watchlist_items(watchlist_item_id) ON DELETE CASCADE,
|
|
event_type TEXT NOT NULL,
|
|
summary TEXT NOT NULL,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_watchlist_items_label
|
|
ON app.watchlist_items(label);
|
|
CREATE INDEX IF NOT EXISTS idx_watchlist_items_priority
|
|
ON app.watchlist_items(priority);
|
|
CREATE INDEX IF NOT EXISTS idx_watchlist_events_item_created
|
|
ON app.watchlist_events(watchlist_item_id, created_at DESC);
|