Add per-episode play tracking with bar chart in admin analytics

- POST /api/analytics/play records a play event (title + date) on first
  play per player mount, skipping admin sessions
- Plays persisted to data/episode-plays.json with total + byDay buckets
- Admin stats response includes episodePlays sorted by total plays
- AnalyticsPanel shows horizontal bar chart + summary cards for all
  episodes dynamically — new episodes appear automatically as played

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
nmemmert
2026-06-17 13:39:35 -04:00
parent 54bc7b28da
commit 8450d81e7f
9 changed files with 129 additions and 2 deletions
+6
View File
@@ -564,6 +564,12 @@ export interface AdminStats {
}>
funnel?: { signups: number; firstVisit: number; firstCompletion: number }
}
episodePlays?: Array<{
title: string
total: number
byDay: Record<string, number>
last30Days: Array<{ day: string; plays: number }>
}>
}
interface AdminAsset {