feat(M003/S03): play count column + data pipeline

Backend:
- GetAllTracksWithFullMetadata queries now select play_count and last_played
- mapTrackRow accepts and passes through PlayCount/LastPlayed
- PlayCount + LastPlayed added to library.Track struct
- sqlcgen Row types updated with new fields

Frontend:
- PlayCount + LastPlayed added to library.Track TypeScript model
- 'Plays' column added to track-list column definitions (60px, right-aligned, sortable)

Queries without play data (search, genre, album) pass 0/empty defaults.
This commit is contained in:
2026-03-21 15:33:08 -04:00
parent 9c85cfcc7b
commit 2ee157a376
5 changed files with 48 additions and 4 deletions
+6 -2
View File
@@ -95,7 +95,9 @@ SELECT
af.bit_depth,
af.channels,
af.bitrate,
af.file_size
af.file_size,
af.play_count,
COALESCE(af.last_played, '') AS last_played
FROM audio_files af
JOIN recordings r ON af.recording_id = r.id
JOIN artist_credit ac ON r.artist_credit_id = ac.id
@@ -159,7 +161,9 @@ SELECT
af.bit_depth,
af.channels,
af.bitrate,
af.file_size
af.file_size,
af.play_count,
COALESCE(af.last_played, '') AS last_played
FROM audio_files af
JOIN recordings r ON af.recording_id = r.id
JOIN artist_credit ac ON r.artist_credit_id = ac.id