fix(stats): count each set once by its set playtime

Played, never started, under one hour and oldest unplayed used the
counted edition's own minutes, so a set played only on PS5 showed as
never started. They and their drill-down lists now use the set total
(user_game_entry_playtime). Refs #38. Nightly snapshot (#43) unchanged.
This commit is contained in:
lobo committed 2026-10-11 11:52:45 +02:00
1 parent 0550f3fe9c
commit 8f884040d8
8 files changed
+142 -12

No files matched your search

+4 -2
View File
@@ -122,8 +122,10 @@ flowchart LR
genres, moods, perfect games and the longest day list one entry per set, with the playtime of all its editions
(`user_game_entry_member`, V43; its list shows that sum as `minutes`). Every playtime number (most played, genres,
moods, the total playtime and moon trips, the drill-down lists) uses the set total, the view
`user_game_entry_playtime` (V45), the same as the library card, sort and public profile. Platforms stay per edition:
a Steam + PlayStation set counts on both platforms.
`user_game_entry_playtime` (V45), the same as the library card, sort and public profile. So do "played", "never
started" and "under one hour": a set counts once, judged by its set total (also the dashboard "never played" and the
oldest unplayed game). Only the nightly trend snapshot `never_played` still uses the counted edition's own minutes.
Platforms stay per edition: a Steam + PlayStation set counts on both platforms.
- **Drill-down**: every countable number opens the games behind it. A `StatKey` (library), `CommunityKey` (landing page)
or a Pile Points track/bonus row names a number; its SQL "game set" is the same text the number counts, so the
list and the number cannot drift. 40 games per page (at most page 250), a fixed order per key. A profile visitor