import { getPayload } from 'payload' import configPromise from '../src/payload.config' import fs from 'fs' import path from 'path' async function run() { const payload = await getPayload({ config: configPromise }) const snapshotRaw = fs.readFileSync(path.join(process.cwd(), 'scripts', 'content-snapshot.json'), 'utf8') const snapshot = JSON.parse(snapshotRaw) for (const pageSnap of snapshot.pages) { for (const locale of ['pl', 'de']) { const pageData = pageSnap[locale] if (!pageData) continue // Fetch current page from DB const pagesInDb = await payload.find({ collection: 'pages', locale: locale as 'pl' | 'de', where: { slug: { equals: pageData.slug } } }) if (pagesInDb.docs.length > 0) { const dbPage = pagesInDb.docs[0] let layoutChanged = false const newLayout = dbPage.layout?.map((dbBlock: any) => { if (dbBlock.blockType === 'servicesDetailed') { const snapBlock = pageData.layout.find((b: any) => b.blockType === 'servicesDetailed') if (snapBlock && snapBlock.services) { dbBlock.services = snapBlock.services.map((s:any) => { return { title: s.title, description: s.description, icon: s.icon } }) layoutChanged = true } } return dbBlock }) if (layoutChanged) { await payload.update({ collection: 'pages', id: dbPage.id, locale: locale as 'pl' | 'de', data: { layout: newLayout } }) console.log(`Restored servicesDetailed for ${pageData.slug} (${locale})`) } } } } process.exit(0) } run()