fix: Rename player_sessions migration to 006 (avoid collision with 004_status_page)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Vantz Stockwell
2026-02-15 14:23:37 -05:00
parent f29524e633
commit 1f5516bbec
2 changed files with 5 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
-- Player Session Tracking for Retention Analytics
-- Phase 2 Feature: Track individual player sessions to calculate post-wipe retention
CREATE TABLE player_sessions (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
license_id UUID NOT NULL REFERENCES licenses(id) ON DELETE CASCADE,
steam_id VARCHAR(20) NOT NULL,
player_name VARCHAR(100) NOT NULL,
session_start TIMESTAMPTZ NOT NULL,
session_end TIMESTAMPTZ,
duration_seconds INTEGER,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE INDEX idx_player_sessions_license ON player_sessions(license_id);
CREATE INDEX idx_player_sessions_steam ON player_sessions(license_id, steam_id);
CREATE INDEX idx_player_sessions_start ON player_sessions(session_start DESC);
CREATE INDEX idx_player_sessions_steam_start ON player_sessions(license_id, steam_id, session_start DESC);
-- Index for retention queries (JOIN with wipe_history on date ranges)
CREATE INDEX idx_player_sessions_license_start_range ON player_sessions(license_id, session_start)
WHERE session_start IS NOT NULL;
COMMENT ON TABLE player_sessions IS 'Individual player join/leave sessions for retention analytics';
COMMENT ON COLUMN player_sessions.duration_seconds IS 'Calculated when session_end is set (session_end - session_start)';
COMMENT ON INDEX idx_player_sessions_steam_start IS 'Optimizes "last session for steam_id" queries when player leaves';