fix(13-02): auto-resolve phantom playlist tracks after library scan

- Add phantom_file_path column to playlist_tracks (migration 7)
- Store original file_path during RemoveLibrary phantom metadata population
- After each successful scan, UPDATE phantom tracks whose phantom_file_path
  now matches an audio_files row, re-linking them and clearing phantom metadata
- Update schema file, sqlc generated code, and database test for new column
This commit is contained in:
2026-03-16 12:29:06 -04:00
parent f05d2bb603
commit 93262b9ae0
7 changed files with 116 additions and 6 deletions
@@ -16,7 +16,7 @@ INSERT INTO playlist_tracks (
phantom_title, phantom_artist, phantom_album,
phantom_duration_ms, phantom_genre, phantom_cover_art_path
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
RETURNING id, playlist_id, audio_file_id, position, phantom_title, phantom_artist, phantom_album, phantom_duration_ms, phantom_genre, phantom_cover_art_path
RETURNING id, playlist_id, audio_file_id, position, phantom_title, phantom_artist, phantom_album, phantom_duration_ms, phantom_genre, phantom_cover_art_path, phantom_file_path
`
type AddPlaylistTrackParams struct {
@@ -55,6 +55,7 @@ func (q *Queries) AddPlaylistTrack(ctx context.Context, arg AddPlaylistTrackPara
&i.PhantomDurationMs,
&i.PhantomGenre,
&i.PhantomCoverArtPath,
&i.PhantomFilePath,
)
return i, err
}