CREATE TABLE IF NOT EXISTS fcm_tokens ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE, token TEXT NOT NULL, platform TEXT NOT NULL CHECK (platform IN ('web', 'android', 'ios')), last_seen_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), UNIQUE(user_id, token) ); CREATE INDEX IF NOT EXISTS idx_fcm_tokens_last_seen_at ON fcm_tokens(last_seen_at);