mirror of
https://github.com/shawnkim1997/All-in-one-Financial-Analysis.git
synced 2026-08-26 08:48:05 +00:00
39 lines
1.2 KiB
SQL
39 lines
1.2 KiB
SQL
-- Portfolio positions table
|
|||
|
|
CREATE TABLE IF NOT EXISTS positions (
|
||
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||
|
|
user_id TEXT NOT NULL,
|
||
|
|
ticker TEXT NOT NULL,
|
||
|
|
company_name TEXT,
|
||
|
|
quantity DECIMAL(15,6) NOT NULL,
|
||
|
|
avg_price DECIMAL(15,4) NOT NULL,
|
||
|
|
currency TEXT DEFAULT 'USD',
|
||
|
|
source TEXT DEFAULT 'manual',
|
||
|
|
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||
|
|
updated_at TIMESTAMPTZ DEFAULT NOW()
|
||
|
|
);
|
||
|
|
|
||
|
|
-- Watchlist table
|
||
|
|
CREATE TABLE IF NOT EXISTS watchlist (
|
||
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||
|
|
user_id TEXT NOT NULL,
|
||
|
|
ticker TEXT NOT NULL,
|
||
|
|
added_at TIMESTAMPTZ DEFAULT NOW()
|
||
|
|
);
|
||
|
|
|
||
|
|
-- Analysis cache table
|
||
|
|
CREATE TABLE IF NOT EXISTS analysis_cache (
|
||
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||
|
|
ticker TEXT NOT NULL,
|
||
|
|
analysis_type TEXT NOT NULL,
|
||
|
|
data JSONB NOT NULL,
|
||
|
|
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||
|
|
expires_at TIMESTAMPTZ NOT NULL
|
||
|
|
);
|
||
|
|
|
||
|
|
-- Indexes
|
||
|
|
CREATE INDEX idx_positions_user ON positions(user_id);
|
||
|
|
CREATE INDEX idx_positions_ticker ON positions(ticker);
|
||
|
|
CREATE INDEX idx_watchlist_user ON watchlist(user_id);
|
||
|
|
CREATE INDEX idx_cache_ticker_type ON analysis_cache(ticker, analysis_type);
|
||
|
|
CREATE INDEX idx_cache_expires ON analysis_cache(expires_at);
|