Files
bmp-website-2026/src/scripts/preload-globals-cms.ts
syntaxbullet 7ff405d1a2 Add migration scripts and preload participation awards script
- Created migration index file to manage database migrations.
- Added script to preload participation awards and related blog posts into the CMS.
- Introduced new types and default data for application phases.
- Added award articles data structure for the upcoming awards.
2026-06-30 19:10:53 +02:00

73 lines
2.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import 'dotenv/config'
import config from '@payload-config'
import { getPayload } from 'payload'
import { mediaByFilename } from './mediaByFilename'
import { defaultApplicationPhaseData } from '@/spa/applicationPhase'
import { defaultFooterData, defaultHeaderData } from '@/spa/cmsNavigation'
import { defaultSiteSettings } from '@/spa/siteSettings'
async function main() {
const payload = await getPayload({ config })
const [logo, ewifLogo, partnerLogos, skylineImage] = await Promise.all([
mediaByFilename(payload, 'bmp-logo.png'),
mediaByFilename(payload, 'ewif-logo.png'),
mediaByFilename(payload, 'partner-logos.png'),
mediaByFilename(payload, 'munich-skyline.jpg'),
])
const { logo: _headerLogo, ...headerData } = defaultHeaderData
const { logo: _footerLogo, partnerLogos: _defaultPartnerLogos, ...footerData } = defaultFooterData
const { skylineImageUrl: _skylineImageUrl, ...siteSettingsData } = defaultSiteSettings
await Promise.all([
payload.updateGlobal({
slug: 'header',
context: { disableRevalidate: true },
data: {
...headerData,
logo,
} as never,
}),
payload.updateGlobal({
slug: 'footer',
context: { disableRevalidate: true },
data: {
...footerData,
logo,
partnerLogos: [
{ alt: 'EWIF – Europäisches Wirtschaftsforum', image: ewifLogo },
{
alt: 'Hochschule für angewandtes Management · Gipfeldialog Altaussee',
image: partnerLogos,
},
].filter((item) => item.image),
} as never,
}),
payload.updateGlobal({
slug: 'site-settings',
context: { disableRevalidate: true },
data: {
...siteSettingsData,
skylineImage,
} as never,
}),
payload.updateGlobal({
slug: 'application-phase',
context: { disableRevalidate: true },
data: defaultApplicationPhaseData as never,
}),
])
payload.logger.info('Preloaded global CMS settings.')
await payload.destroy()
process.exit(0)
}
main().catch((error) => {
console.error(error)
process.exit(1)
})