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
+19 -4
View File
@@ -37,6 +37,7 @@ type AudioFile struct {
Bitrate int64
FileSize int64
Basename string
LibraryID int64
}
type CoverArt struct {
@@ -56,6 +57,13 @@ type Genre struct {
Name string
}
type Library struct {
ID int64
Name string
Path string
CreatedAt time.Time
}
type PlayerState struct {
ID int64
Volume int64
@@ -72,10 +80,16 @@ type Playlist struct {
}
type PlaylistTrack struct {
ID int64
PlaylistID int64
AudioFileID int64
Position int64
ID int64
PlaylistID int64
AudioFileID sql.NullInt64
Position int64
PhantomTitle sql.NullString
PhantomArtist sql.NullString
PhantomAlbum sql.NullString
PhantomDurationMs sql.NullInt64
PhantomGenre sql.NullString
PhantomCoverArtPath sql.NullString
}
type Queue struct {
@@ -155,4 +169,5 @@ type TrackMetadatum struct {
Channels int64
Bitrate int64
FileSize int64
LibraryID int64
}