import { getPayload } from 'payload' import configPromise from '../src/payload.config' import type { Page } from '../src/payload-types' type PageHeaderBlock = Extract[0], { blockType: 'pageHeader' }> type ContactInfoBlock = Extract[0], { blockType: 'contactInfo' }> const plHeader: PageHeaderBlock = { blockType: 'pageHeader', title: 'Kontakt', subtitle: 'Masz pytania dotyczące rozliczenia podatkowego w Niemczech? Skontaktuj się ze mną — chętnie pomogę.', } const deHeader: PageHeaderBlock = { blockType: 'pageHeader', title: 'Kontakt', subtitle: 'Haben Sie Fragen zu Ihrer Steuererklärung in Deutschland? Kontaktieren Sie mich — ich helfe Ihnen gerne.', } const plContact: ContactInfoBlock = { blockType: 'contactInfo', address: 'DO POTWIERDZENIA PRZEZ KLIENTA', phone: '+49 123 456 789', email: 'kontakt@example.com', hours: 'Pon-Pt: 9:00 - 17:00\nPo wcześniejszym umówieniu', } const deContact: ContactInfoBlock = { blockType: 'contactInfo', address: 'DO POTWIERDZENIA PRZEZ KLIENTA', phone: '+49 123 456 789', email: 'kontakt@example.com', hours: 'Mo-Fr: 9:00 - 17:00\nNach vorheriger Terminvereinbarung', } async function run() { console.log('Rozpoczynam odzyskiwanie strony Kontakt (ID 5)...') const payload = await getPayload({ config: configPromise }) for (const locale of ['pl', 'de'] as const) { try { const page = await payload.findByID({ collection: 'pages', id: 5, locale: locale }) const hasPageHeader = page.layout?.some(block => block.blockType === 'pageHeader') const hasContactInfo = page.layout?.some(block => block.blockType === 'contactInfo') if (hasPageHeader && hasContactInfo) { console.log(`[${locale}] Strona Kontakt posiada już bloki pageHeader i contactInfo. Pomijam.`) continue; } console.log(`[${locale}] Przywracam utracone bloki...`) // Jeśli strona miała jakieś bloki, zachowaj je (z wyjątkiem ewentualnych starych/uszkodzonych wersji tych dwóch) let newLayout = (page.layout ? page.layout.filter(b => b.blockType !== 'pageHeader' && b.blockType !== 'contactInfo') : []) as NonNullable; // Dodaj nagłówek i info kontaktowe na górę newLayout.unshift( (locale === 'de' ? deHeader : plHeader) as unknown as NonNullable[0], (locale === 'de' ? deContact : plContact) as unknown as NonNullable[0] ); await payload.update({ collection: 'pages', id: 5, locale: locale, data: { layout: newLayout } }) console.log(`[${locale}] Zaktualizowano pomyślnie.`) } catch (error) { console.error(`[${locale}] Błąd podczas aktualizacji:`, error) } } console.log('Zakończono.') process.exit(0) } run()