/// // M22 — Add logo file field to settings collection. // // Currently the shop logo is stored as a base64 data-URL inside the `data` // JSON blob. This migration adds a proper `logo` file field so logos are // stored as PB file records instead, eliminating bloated localStorage and // PB round-trips. // // The frontend continues to cache a base64 version in localStorage for // backward compatibility with PDF generation (jsPDF addImage expects // data URLs or Image objects). The PB file field is the canonical store. // // Migration is a no-op if the field already exists (idempotent). migrate( (app) => { const col = app.findCollectionByNameOrId('settings'); if (!col) { console.log('[M22] settings collection not found — skipping'); return; } if (col.fields.find(f => f.name === 'logo')) { console.log('[M22] logo field already exists — skipping'); return; } col.fields.add(new FileField({ name: 'logo', required: false, maxSize: 5242880, allowedMimeTypes: ['image/png', 'image/jpeg', 'image/webp', 'image/svg+xml'], })); app.save(col); console.log('[M22] added logo file field to settings collection'); }, (app) => { const col = app.findCollectionByNameOrId('settings'); if (!col) return; const field = col.fields.find(f => f.name === 'logo'); if (field) { col.fields.remove(field); app.save(col); console.log('[M22] removed logo file field from settings collection'); } } );