- Storefronts use Figtree as the default font (shop/menu, booking, book)
- Remove "Powered by Ladill" branding from the storefront header
- Fix storefront logo hiding behind the cover (logo row now relative z-10)
- Add a Share button to storefront QR downloads using the Web Share API
(native mobile share sheet for image+link; clipboard fallback)
- storefronts:import-legacy: --deactivate-source now also retires the
platform copy of already-imported (skipped) codes, no --refresh needed
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
After importing, optionally mark the platform copy inactive so Merchant
is the sole live owner and the platform stops double-counting. Public
scans still forward here (the monolith's MerchantQrForwarder routes
shop/menu by type regardless of is_active).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
One-time importer that copies legacy menu/shop storefronts (and their
products, stored inline in qr_codes.payload.content.sections) from the
shared platform DB into this app's database, so owners who created them
before the Merchant extraction can see/manage them again.
- Maps platform owners to local users by public_id (SSO sub), creating a
local user stub when missing
- Copies product images from a new read-only `platform_qr` disk
(PLATFORM_QR_ROOT) to the local `qr` disk
- Idempotent (skips existing short_codes unless --refresh); supports
--user, --dry-run, --skip-images
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>