feat: nullable songs.artwork_url for the artist page V2

Merged
SW
2mo ago
+10-0

Row 2 of recoupable/chat#1968.

One migration: nullable artwork_url text on public.songs, with a column comment. No backfill — the api PR (row 3) populates it lazily via a fetch-on-miss write-through from the Apple batch ISRC lookup, per the decision recorded on the issue. add column if not exists keeps the migration re-runnable.

Merge order

After docs#304, before the api PR — the api writes this column.


Summary by cubic

Persists per-song artwork by adding a nullable artwork_url on public.songs, so Artist page V2 serves artwork without calling a streaming provider on every build. Previously we didn’t store artwork; now the API lazily resolves and writes the URL on first lookup (source-agnostic, provider chosen by the API; Apple Music today).

Review and rollout

  • Adds artwork_url text with a column comment; idempotent via add column if not exists.
  • No backfill; API write-through fills on cache misses. Consumers must handle nulls.
  • Merge after recoupable/docs#304 and before the API PR that writes this column.

Summary by CodeRabbit

  • New Features
    • Added optional artwork support for songs.
    • Song records can now include an artwork image URL when available.