Sequence diagram: Save to library
Sequence diagram: Save to library
sequenceDiagram
participant User
participant Shell as Svelte Shell
participant Lib as Library Service
participant DB as SQLite
User->>Shell: Click save on search result
Shell->>Shell: Get TrackStub from search cache
Shell->>Lib: invoke("library_save_track", stub, plugin_id, content_id)
Lib->>DB: Check content_resolution for (plugin_id, content_id)
DB-->>Lib: No existing entry
Lib->>Lib: Run dedup check (normalized title::artist)
DB-->>Lib: No match found
Lib->>Lib: Generate UUIDv4
Lib->>DB: INSERT library_items (id, plugin_id, content_id, title, ...)
Lib->>DB: INSERT content_resolution (content_id, plugin_id, foreign_id)
DB-->>Lib: Done
Lib-->>Shell: Return Track with core UUID
Shell-->>User: Show "Saved to library" toast
Shell-->>Shell: emit("library_updated", { kind: "saved", track_id })
sequenceDiagram
participant Shell as Svelte Shell
participant Lib as Library Service
participant DB as SQLite
Shell->>Lib: invoke("library_save_track", stub, plugin_id, content_id)
Lib->>DB: Check content_resolution for (plugin_id, content_id)
DB-->>Lib: No existing entry
Lib->>DB: Search library_items by normalized title::artist
DB-->>Lib: Found existing track (id = "abc-123")
Lib->>DB: INSERT content_resolution (content_id="abc-123", plugin_id, foreign_id)
DB-->>Lib: Done
Lib-->>Shell: Return existing Track (abc-123)
Was this page helpful?
Thanks for your feedback!