13 lines
604 B
SQL
13 lines
604 B
SQL
-- Migration 088: User presence (online/away/offline, last_seen)
|
|
-- v0.301 Lot P1
|
|
|
|
CREATE TABLE IF NOT EXISTS user_presence (
|
|
user_id UUID PRIMARY KEY REFERENCES users(id) ON DELETE CASCADE,
|
|
status VARCHAR(20) NOT NULL DEFAULT 'offline' CHECK (status IN ('online', 'away', 'busy', 'offline')),
|
|
last_seen_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
status_message TEXT,
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_user_presence_status ON user_presence(status);
|
|
CREATE INDEX IF NOT EXISTS idx_user_presence_last_seen ON user_presence(last_seen_at DESC);
|