/** * Wave 1 — verfijning Over ons (klantfeedback): * - "Waarden" van een aparte collectie -> een INLINE repeater-veld op `over_ons` * (rijen toevoegen/verwijderen/verslepen binnen de pagina; WP-Bakery-achtig). * - Kern-inhoudvelden verplicht maken zodat "(optional)" daar verdwijnt. * - De losse `waarden`-collectie opruimen. */ import { ulid } from "ulidx"; import { writeFileSync, mkdirSync } from "node:fs"; const waarden = [ { title: "Eerlijke prijs vooraf", text: "Je krijgt een duidelijke offerte op papier. Geen verrassingen achteraf, geen kleine lettertjes.", icon: '' }, { title: "Echt vakwerk", text: "We kennen ons vak en de materialen. Elke gevel, elk dak en elke schoorsteen krijgt de juiste aanpak.", icon: '' }, { title: "Netjes opgeleverd", text: "We dekken alles goed af, ruimen op en lopen het werk samen met je na. Je huis blijft schoon achter.", icon: '' }, { title: "Lokaal en betrokken", text: "We werken in Helvoirt en omgeving. Korte lijnen, snel even langs en altijd persoonlijk aanspreekbaar.", icon: '' }, ]; const subFields = [ { slug: "title", type: "string", label: "Titel", required: true }, { slug: "text", type: "text", label: "Tekst" }, { slug: "icon", type: "text", label: "Icoon (SVG-inhoud, geavanceerd)" }, ]; const q = (s) => "'" + String(s).replace(/'/g, "''") + "'"; const coll = "(SELECT id FROM _emdash_collections WHERE slug='over_ons')"; const sql = `-- Auto-gegenereerd — Over ons: waarden -> inline repeater + minder "(optional)". -- 1. Repeater-kolom + velddefinitie (rijen toevoegen/verwijderen/verslepen). ALTER TABLE ec_over_ons ADD COLUMN waarden JSON; UPDATE _emdash_fields SET sort_order=8 WHERE collection_id=${coll} AND slug='meta_title'; UPDATE _emdash_fields SET sort_order=9 WHERE collection_id=${coll} AND slug='meta_description'; INSERT INTO _emdash_fields (id, collection_id, slug, label, type, column_type, required, sort_order, searchable, translatable, validation) VALUES (${q(ulid())}, ${coll}, 'waarden', 'Waarden (rijen: voeg toe / verwijder / versleep)', 'repeater', 'JSON', 0, 7, 0, 1, ${q(JSON.stringify({ subFields, minItems: 0, maxItems: 8 }))}); UPDATE ec_over_ons SET waarden=${q(JSON.stringify(waarden))} WHERE slug='main'; -- 2. Kern-inhoudvelden verplicht -> "(optional)" verdwijnt daar (SEO blijft optioneel). UPDATE _emdash_fields SET required=1 WHERE collection_id=${coll} AND slug IN ('hero_lead','story_title','story_body','values_title'); -- 3. Losse 'waarden'-collectie opruimen (vervangen door het repeater-veld hierboven). DROP TABLE IF EXISTS ec_waarden; DELETE FROM _emdash_fields WHERE collection_id=(SELECT id FROM _emdash_collections WHERE slug='waarden'); DELETE FROM _emdash_collections WHERE slug='waarden'; `; mkdirSync("migrations", { recursive: true }); writeFileSync("migrations/0003_over_ons_repeater.sql", sql, "utf8"); console.log("geschreven: migrations/0003_over_ons_repeater.sql");