feat(10-01): update SQL schema files for multi-library fresh installs

- Create _libraries.sql with libraries table (name, path, created_at)
- Add library_id FK column and index to audio_files.sql
- Update playlist_tracks.sql with nullable audio_file_id, SET NULL FK, and 6 phantom columns
- Add af.library_id to track_metadata VIEW
- Regenerate sqlc code for updated schemas
- Fix playlist.go to use sql.NullInt64 for nullable audio_file_id
This commit is contained in:
2026-03-09 09:36:47 -04:00
parent 6f44512ebc
commit 535855b383
8 changed files with 68 additions and 22 deletions
+12 -5
View File
@@ -7,16 +7,17 @@ package sqlcgen
import (
"context"
"database/sql"
)
const addPlaylistTrack = `-- name: AddPlaylistTrack :one
INSERT INTO playlist_tracks (playlist_id, audio_file_id, position) VALUES (?, ?, ?)
RETURNING id, playlist_id, audio_file_id, position
RETURNING id, playlist_id, audio_file_id, position, phantom_title, phantom_artist, phantom_album, phantom_duration_ms, phantom_genre, phantom_cover_art_path
`
type AddPlaylistTrackParams struct {
PlaylistID int64
AudioFileID int64
AudioFileID sql.NullInt64
Position int64
}
@@ -28,6 +29,12 @@ func (q *Queries) AddPlaylistTrack(ctx context.Context, arg AddPlaylistTrackPara
&i.PlaylistID,
&i.AudioFileID,
&i.Position,
&i.PhantomTitle,
&i.PhantomArtist,
&i.PhantomAlbum,
&i.PhantomDurationMs,
&i.PhantomGenre,
&i.PhantomCoverArtPath,
)
return i, err
}
@@ -116,7 +123,7 @@ ORDER BY pt.playlist_id, pt.position
type GetAllPlaylistTracksWithMetadataRow struct {
ID int64
PlaylistID int64
AudioFileID int64
AudioFileID sql.NullInt64
Position int64
FilePath string
LengthMilliseconds int64
@@ -262,7 +269,7 @@ ORDER BY pt.position
type GetPlaylistTracksRow struct {
ID int64
PlaylistID int64
AudioFileID int64
AudioFileID sql.NullInt64
Position int64
FilePath string
}
@@ -326,7 +333,7 @@ ORDER BY pt.position
type GetPlaylistTracksWithMetadataRow struct {
ID int64
PlaylistID int64
AudioFileID int64
AudioFileID sql.NullInt64
Position int64
FilePath string
LengthMilliseconds int64