feat: export a import kampani a cenoviek pre prenos na novy server

- npm run db:export: kampane a sablony cenoviek do supabase/data/ (+ obrazky z uloziska)
- npm run db:import [-- --dry-run]: nahra data s povodnymi ID, prepise odkazy
  na nove ulozisko, da sa spustit opakovane
- aktualny export: 7 kampani, 1 sablona cenovky

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Jakub_HostacnyandClaude Opus 5.5 committed 2026-10-19 11:00:35 +02:00
1 parent 5d1900740c
commit 5f6a39debe
7 files changed
+4832 -4

No files matched your search

+46
View File
@@ -0,0 +1,46 @@
[
{
"id": "57384db9-7751-4e36-898d-b8b19f2a1f63",
"name": "Super cena so zlovaou",
"svg_background_url": null,
"svg_raw": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"81.35\" height=\"117.08\" version=\"1.1\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 81.35 117.08\">\n <!-- Generator: Adobe Illustrator 30.8.2, SVG Export Plug-In . SVG Version: 2.1.4 Build 7) -->\n <defs>\n <clipPath id=\"clippath\">\n <rect x=\"1\" y=\"11.28\" width=\"79.11\" height=\"98.14\" fill=\"none\"/>\n </clipPath>\n <clipPath id=\"clippath-1\">\n <rect x=\"1\" y=\"11.28\" width=\"79.11\" height=\"98.14\" fill=\"none\"/>\n </clipPath>\n <clipPath id=\"clippath-2\">\n <rect x=\"-10.9\" y=\"-33.7\" width=\"131.52\" height=\"171.36\" fill=\"none\"/>\n </clipPath>\n <mask id=\"mask\" x=\"-10.9\" y=\"-33.7\" width=\"131.52\" height=\"171.36\" maskUnits=\"userSpaceOnUse\">\n <g clip-path=\"url(#clippath-2)\">\n <image width=\"548\" height=\"714\" transform=\"translate(-10.9 -33.7) scale(.24)\" xlink:href=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAiIAAALJCAYAAACJN0hrAAAACXBIWXMAAC4jAAAuIwF4pT92AAAU8UlEQVR4nO3dIXAj9/3G4W/+7VyIhUpsbhefTEKk4lO5jY5Yxr6QEtukJDa/w5VJ0BmVxCIllUhJZBRic4kFWCgFV9RM/zNpk7vYfrW7zzOzk8xkkrxzM3fz8e5Pq8+q6kMBAAT8X3oAANBdQgQAiBEiAECMEAEAYoQIABAjRACAGCECAMQIEQAgRogAADFCBACIESIAQIwQAQBihAgAECNEAIAYIQIAxAgRACBGiAAAMUIEAIgRIgBAjBABAGKECAAQI0QAgBghAgDECBEAIEaIAAAxQgQAiBEiAECMEAEAYoQIABAjRACAGCECAMQIEQAgRogAADFCBACIESIAQIwQAQBihAgAECNEAIAYIQIAxAgRACBGiAAAMUIEAIgRIgBAjBABAGKECAAQI0QAgBghAgDECBEAIEaIAAAxQgQAiBEiAECMEAEAYoQIABAjRACAGCECAMQIEQAgRogAADFCBACIESIAQIwQAQBihAgAECNEAIAYIQIAxAgRACBGiAAAMUIEAIgRIgBAjBABAGKECAAQI0QAgBghAgDECBEAIEaIAAAxQgQAiBEiAECMEAEAYoQIABAjRACAGCECAMQIEQAgRogAADFCBACIESIAQIwQAQBihAgAECNEAIAYIQIAxAgRACBGiAAAMUIEAIgRIgBAjBABAGKECAAQI0QAgBghAgDECBEAIEaIAAAxQgQAiBEiAECMEAEAYoQIABAjRACAGCECAMQIEQAgRogAADFCBACIESIAQIwQAQBihAgAECNEAIAYIQIAxAgRACBGiAAAMUIEAIgRIgBAjBABAGKECAAQI0QAgBghAgDECBEAIEaIAAAxQgQAiBEiAECMEAEAYoQIABAjRACAGCECAMQIEQAgRogAADFCBACIESIAQIwQAQBihAgAECNEAIAYIQIAxAgRACBGiAAAMUIEAIgRIgBAjBABAGKECAAQI0QAgBghAgDECBEAIEaIAAAxQgQAiBEiAECMEAEAYoQIABAjRACAGCECAMQIEQAgRogAADFCBACIESIAQIwQAQBihAgAECNEAIAYIQIAxAgRACBGiAAAMUIEAIgRIgBAjBABAGKECAAQI0QAgBghAgDECBEAIEaIAAAx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 truncated
"layers_config": {
"align": "center",
"width": 130,
"layers": [
{
"x": 39,
"y": 82,
"id": "l-1790245126860-2",
"fill": "#ffffff",
"text": "{cena}",
"type": "text",
"align": "center",
"fontSize": 37,
"fontFamily": "Aptly",
"fontSource": "adobe",
"fontWeight": "900",
"indexOffsetY": -10,
"indexFontSize": 16
},
{
"x": 50,
"y": 20,
"id": "l-1790245215231",
"fill": "#ffffff",
"text": "-{zlava}",
"type": "text",
"align": "center",
"fontSize": 12,
"fontFamily": "Aptly",
"fontSource": "adobe",
"fontWeight": "800"
}
],
"paddingTop": 9,
"paddingBottom": 4
},
"preview_image_url": null,
"created_at": "2026-09-24T10:20:25.008977+00:00"
}
]
+4
View File
@@ -0,0 +1,4 @@
{
"exportedAt": "2026-10-19T08:59:25.680Z",
"sourceStorageBase": "https://dqexxfspkylqttrtxsww.supabase.co/storage/v1/object/public/newsletter-assets/"
}
File diff suppressed because it is too large. Load diff