Move media favorites from client state to PostgreSQL with server-side
search and pagination.
- Store favorites keyed by (tenant, user, group, resource) so a resource
can belong to multiple groups; the 500-resource cap counts distinct
resources, not memberships.
- Add favorite-group CRUD and group/global removal routes, with silent
cleanup of delisted or invisible resources on read.
- Serve favorite resource details server-side, 10 per page, with name/ID
search; favorites-page removal is group-scoped, resources-page removal
is global.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Introduce an end-to-end media-supply feature: tenant-side resource sync
service/worker backed by a Meijiequan supplier client, ops-side management
APIs, and admin/ops web views for resources, orders, favorites and
submission. Adds a shared digitocr helper, MediaSupply config blocks for
tenant and ops, shared types, and migrations for supplier media resources,
price overrides, customer visibility and order refunds.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>