talk / backend /sql /023_user_last_seen_per_platform.sql
user
Deploy StyleVoiceChat backend
aa9892b
Raw History Blame Contribute Delete
1.54 kB
-- 023_user_last_seen_per_platform.sql
-- ํ”Œ๋žซํผ๋ณ„ ์ตœ๊ทผ ์ ‘์† ์‹œ๊ฐ ์ปฌ๋Ÿผ ์ถ”๊ฐ€ (web / iOS / Android).
--
-- ๊ธฐ์กด last_seen_at ์€ "๋งˆ์ง€๋ง‰ ์ ‘์† (์ „์ฒด)" ์œผ๋กœ ์œ ์ง€. ํ”Œ๋žซํผ๋ณ„ ์ปฌ๋Ÿผ์€
-- session_tracker ๊ฐ€ X-Client-Platform ํ—ค๋” ๋˜๋Š” user-agent ํœด๋ฆฌ์Šคํ‹ฑ์œผ๋กœ
-- ๋ถ„๋ฅ˜ํ•ด ํ•ด๋‹น ์ปฌ๋Ÿผ๋งŒ ๊ฐฑ์‹ ํ•œ๋‹ค. admin ์‚ฌ์šฉ์ž ๋ชฉ๋ก์—์„œ ์ฑ„๋„๋ณ„ ํ™œ์„ฑ๋„ ํ™•์ธ์šฉ.
ALTER TABLE public.users
ADD COLUMN IF NOT EXISTS last_seen_web_at TIMESTAMPTZ,
ADD COLUMN IF NOT EXISTS last_seen_ios_at TIMESTAMPTZ,
ADD COLUMN IF NOT EXISTS last_seen_android_at TIMESTAMPTZ;
-- ์ •๋ ฌ/ํ•„ํ„ฐ ์ธ๋ฑ์Šค (admin UI ๊ฐ€ ํ”Œ๋žซํผ๋ณ„ ์ตœ๊ทผ ์ ‘์† ์ •๋ ฌํ•  ์ˆ˜ ์žˆ๋„๋ก)
CREATE INDEX IF NOT EXISTS idx_users_last_seen_web ON public.users (last_seen_web_at DESC NULLS LAST);
CREATE INDEX IF NOT EXISTS idx_users_last_seen_ios ON public.users (last_seen_ios_at DESC NULLS LAST);
CREATE INDEX IF NOT EXISTS idx_users_last_seen_android ON public.users (last_seen_android_at DESC NULLS LAST);
COMMENT ON COLUMN public.users.last_seen_web_at IS '์›น(๋ธŒ๋ผ์šฐ์ €) ์ฑ„๋„ ์ตœ๊ทผ ์ ‘์† ์‹œ๊ฐ โ€” session_tracker ๊ฐ€ X-Client-Platform=web ๋˜๋Š” UA Mozilla/* ๋งค์นญ ์‹œ ๊ฐฑ์‹ .';
COMMENT ON COLUMN public.users.last_seen_ios_at IS 'iOS ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ ์ตœ๊ทผ ์ ‘์† ์‹œ๊ฐ โ€” X-Client-Platform=ios ๋˜๋Š” UA ์˜ Darwin/CFNetwork ๋งค์นญ ์‹œ.';
COMMENT ON COLUMN public.users.last_seen_android_at IS 'Android ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ ์ตœ๊ทผ ์ ‘์† ์‹œ๊ฐ โ€” X-Client-Platform=android ๋˜๋Š” UA ์˜ okhttp/Android ๋งค์นญ ์‹œ.';