21cb3489a74b3b5b8e381973980aae85e33a7e71
User-level state for the music app, served by the platform from Postgres (not the sidecar, which is stateless about users) under the same /api/music prefix so the music-app account gate permits it: - music_favorites (userId, kind, key) — kind ∈ track|album|artist, opaque path key the server never interprets; unique per (user,kind,key), newest-first. GET /favorites (grouped), POST /favorites (idempotent), DELETE /favorites. - music_now_playing (one row/user) — current track + position snapshot for resume-across-launch/device, with a light title/artist/album cache so the resume card renders before the library index syncs. GET/PUT/DELETE /now-playing (upsert). Routes registered before the catch-all proxy. Tables created via direct DDL; query layer smoke-tested against the live DB. MUSIC_API.md documents the contract for the app. App-side wiring (heart toggles, Favorites view, player persistence) follows next. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Description
No description provided
42 MiB
Languages
TypeScript
90.9%
Shell
4.7%
JavaScript
4.1%
CSS
0.2%
HTML
0.1%