-- 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 매칭 시.';