115 lines
3.7 KiB
TypeScript
115 lines
3.7 KiB
TypeScript
import { getPayload } from 'payload'
|
|
import configPromise from '../src/payload.config'
|
|
|
|
async function run() {
|
|
const payload = await getPayload({ config: configPromise })
|
|
|
|
const addressDE = "Vom Kunden zu bestätigen";
|
|
const hoursDE = "Mo-Fr: 9:00 - 17:00\nNach vorheriger Terminvereinbarung";
|
|
|
|
// 1. Kontakt Page (ID: 5, slug: 'kontakt')
|
|
console.log('Fetching Kontakt DE...');
|
|
const kontaktDE = await payload.find({ collection: 'pages', locale: 'de', where: { slug: { equals: 'kontakt' } } });
|
|
if (kontaktDE.docs.length > 0) {
|
|
const doc = kontaktDE.docs[0];
|
|
let changed = false;
|
|
const newLayout = doc.layout?.map((block: any) => {
|
|
if (block.blockType === 'pageHeader') {
|
|
if (block.subtitle === 'Masz pytania dotyczące rozliczenia podatkowego w N' || block.subtitle === 'Masz pytania dotyczące rozliczenia podatkowego w Niemczech? Skontaktuj się z nami — chętnie pomożemy.') {
|
|
block.subtitle = 'Haben Sie Fragen zu Ihrer Steuererklärung in Deutschland? Kontaktieren Sie uns — wir helfen Ihnen gerne.';
|
|
changed = true;
|
|
}
|
|
}
|
|
if (block.blockType === 'contactSection') {
|
|
if (block.address === 'DO POTWIERDZENIA PRZEZ KLIENTA') {
|
|
block.address = addressDE;
|
|
changed = true;
|
|
}
|
|
if (block.hours === 'Pon-Pt: 9:00 - 17:00\nPo wcześniejszym umówieniu') {
|
|
block.hours = hoursDE;
|
|
changed = true;
|
|
}
|
|
}
|
|
if (changed) delete block.id;
|
|
return block;
|
|
});
|
|
|
|
if (changed) {
|
|
await payload.update({
|
|
collection: 'pages',
|
|
id: doc.id,
|
|
locale: 'de',
|
|
data: { layout: newLayout }
|
|
});
|
|
console.log('Updated Kontakt DE');
|
|
}
|
|
}
|
|
|
|
// 2. Jak się umówić Page (slug: 'jak-sie-umowic')
|
|
console.log('Fetching Jak się umówić DE...');
|
|
const jsuDE = await payload.find({ collection: 'pages', locale: 'de', where: { slug: { equals: 'terminvereinbarung' } } });
|
|
if (jsuDE.docs.length === 0) {
|
|
const jsuDE_plSlug = await payload.find({ collection: 'pages', locale: 'de', where: { slug: { equals: 'jak-sie-umowic' } } });
|
|
if (jsuDE_plSlug.docs.length > 0) {
|
|
jsuDE.docs = jsuDE_plSlug.docs;
|
|
}
|
|
}
|
|
|
|
if (jsuDE.docs.length > 0) {
|
|
const doc = jsuDE.docs[0];
|
|
let changed = false;
|
|
const newLayout = doc.layout?.map((block: any) => {
|
|
if (block.blockType === 'contactSection') {
|
|
if (block.address === 'DO POTWIERDZENIA PRZEZ KLIENTA') {
|
|
block.address = addressDE;
|
|
changed = true;
|
|
}
|
|
if (block.hours === 'Pon-Pt: 9:00 - 17:00\nPo wcześniejszym umówieniu') {
|
|
block.hours = hoursDE;
|
|
changed = true;
|
|
}
|
|
}
|
|
if (changed) delete block.id;
|
|
return block;
|
|
});
|
|
|
|
if (changed) {
|
|
await payload.update({
|
|
collection: 'pages',
|
|
id: doc.id,
|
|
locale: 'de',
|
|
data: { layout: newLayout }
|
|
});
|
|
console.log('Updated Jak się umówić DE');
|
|
}
|
|
}
|
|
|
|
// 3. Company Global
|
|
console.log('Fetching Company DE...');
|
|
const companyDE = await payload.findGlobal({ slug: 'company', locale: 'de' });
|
|
if (companyDE) {
|
|
let changed = false;
|
|
const updateData: any = {};
|
|
if (companyDE.address === 'DO POTWIERDZENIA PRZEZ KLIENTA') {
|
|
updateData.address = addressDE;
|
|
changed = true;
|
|
}
|
|
if (companyDE.hours === 'Pon-Pt: 9:00 - 17:00\nPo wcześniejszym umówieniu') {
|
|
updateData.hours = hoursDE;
|
|
changed = true;
|
|
}
|
|
if (changed) {
|
|
await payload.updateGlobal({
|
|
slug: 'company',
|
|
locale: 'de',
|
|
data: updateData
|
|
});
|
|
console.log('Updated Company DE');
|
|
}
|
|
}
|
|
|
|
console.log('Migration complete');
|
|
process.exit(0);
|
|
}
|
|
run()
|