- Add AddLibrary, RenameLibrary, RemoveLibrary, GetRemovalImpact methods - RemoveLibrary follows exact order: phantom populate → delete audio_files → orphan cleanup → commit → FTS5 rebuild → cover art file cleanup → queue compact → events - Add cancelLibraryScan and currentTrackBelongsToLibrary helpers - Add RemovalHooks type and removalHooks field on Library struct - Add LibraryAdded, LibraryRenamed, LibraryRemoved event constants - Regenerate frontend events.ts with new CRUD events - All hand-crafted SQL has SAFETY comments per project convention - Dual artist_credit FK check (recordings + release_groups) for orphan cleanup
53 lines
1.8 KiB
TypeScript
53 lines
1.8 KiB
TypeScript
// Code generated by genevents from backend/events/events.go. DO NOT EDIT.
|
|
|
|
export const Events = {
|
|
// Playback events (backend → frontend push)
|
|
PlaybackStateChanged: "PlaybackStateChanged",
|
|
PlaybackFinished: "PlaybackFinished",
|
|
TrackChanged: "TrackChanged",
|
|
SeekFailed: "SeekFailed",
|
|
VolumeChanged: "VolumeChanged",
|
|
|
|
// Queue events (backend → frontend push)
|
|
QueueChanged: "QueueChanged",
|
|
QueueIndexChanged: "QueueIndexChanged",
|
|
QueueModeChanged: "QueueModeChanged",
|
|
QueueTracksModified: "QueueTracksModified",
|
|
|
|
// Config events
|
|
LibraryConfigChanged: "LibraryConfigChanged",
|
|
ThemeConfigChanged: "ThemeConfigChanged",
|
|
TrackListConfigChanged: "TrackListConfigChanged",
|
|
FavoritesConfigChanged: "FavoritesConfigChanged",
|
|
ShortcutsConfigChanged: "ShortcutsConfigChanged",
|
|
|
|
// Playlist events
|
|
PlaylistCreated: "PlaylistCreated",
|
|
PlaylistDeleted: "PlaylistDeleted",
|
|
PlaylistRenamed: "PlaylistRenamed",
|
|
PlaylistTracksChanged: "PlaylistTracksChanged",
|
|
PlaylistsRestored: "PlaylistsRestored",
|
|
DefaultPlaylistChanged: "DefaultPlaylistChanged",
|
|
|
|
// Library events
|
|
LibraryScanStarted: "LibraryScanStarted",
|
|
LibraryScanProgress: "LibraryScanProgress",
|
|
LibraryScanComplete: "LibraryScanComplete",
|
|
|
|
// Scan control events
|
|
LibraryScanCancelled: "LibraryScanCancelled",
|
|
LibraryScanPaused: "LibraryScanPaused",
|
|
LibraryScanResumed: "LibraryScanResumed",
|
|
|
|
// Scan queue events
|
|
LibraryScanQueued: "LibraryScanQueued",
|
|
LibraryScanQueueDrained: "LibraryScanQueueDrained",
|
|
|
|
// Library CRUD events
|
|
LibraryAdded: "LibraryAdded",
|
|
LibraryRenamed: "LibraryRenamed",
|
|
LibraryRemoved: "LibraryRemoved",
|
|
} as const;
|
|
|
|
export type EventName = (typeof Events)[keyof typeof Events];
|