-- 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);