/** * Zet de huidige Over ons-foto's écht in de mediabibliotheek (R2 + `media`-tabel) en * koppelt ze aan de beeldvelden, zodat ze in het CMS-veld zichtbaar zijn (niet leeg). * Lokaal provider: storage_key == R2-objectkey; src wordt op displaytijd afgeleid. * Print de R2-keys zodat de PowerShell-stap de juiste bestanden uploadt. */ import { ulid } from "ulidx"; import { writeFileSync, mkdirSync } from "node:fs"; const heroId = ulid(); const storyId = ulid(); const q = (s) => "'" + String(s).replace(/'/g, "''") + "'"; const heroAlt = "Schone, verzorgde gevel van een woonhuis na reiniging"; const storyAlt = "Vakman aan het werk aan het voegwerk van een gevel"; const heroVal = { id: heroId, provider: "local", filename: "over-ons-hero.webp", mimeType: "image/webp", width: 1280, height: 714, alt: heroAlt, meta: { storageKey: heroId + ".webp" } }; const storyVal = { id: storyId, provider: "local", filename: "over-ons-verhaal.webp", mimeType: "image/webp", width: 738, height: 983, alt: storyAlt, meta: { storageKey: storyId + ".webp" } }; const sql = `-- Over ons: huidige foto's in de mediabibliotheek + gekoppeld aan de beeldvelden. INSERT OR REPLACE INTO media (id, filename, mime_type, size, width, height, alt, storage_key, status, created_at) VALUES (${q(heroId)}, 'over-ons-hero.webp', 'image/webp', 158222, 1280, 714, ${q(heroAlt)}, ${q(heroId + ".webp")}, 'ready', datetime('now')), (${q(storyId)}, 'over-ons-verhaal.webp', 'image/webp', 181398, 738, 983, ${q(storyAlt)}, ${q(storyId + ".webp")}, 'ready', datetime('now')); UPDATE ec_over_ons SET hero_image=${q(JSON.stringify(heroVal))} WHERE slug='main'; UPDATE ec_over_ons SET story_image=${q(JSON.stringify(storyVal))} WHERE slug='main'; `; mkdirSync("migrations", { recursive: true }); writeFileSync("migrations/0006_over_ons_media.sql", sql, "utf8"); console.log("HERO_KEY=" + heroId + ".webp"); console.log("STORY_KEY=" + storyId + ".webp");