initial commit
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
/// <reference path="../pb_data/types.d.ts" />
|
||||
// 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');
|
||||
}
|
||||
}
|
||||
);
|
||||
Reference in New Issue
Block a user