67 lines
3.2 KiB
TypeScript
67 lines
3.2 KiB
TypeScript
import { type MigrateDownArgs, type MigrateUpArgs, sql } from '@payloadcms/db-sqlite'
|
|
|
|
const literal = (value: string) => `'${value.replace(/'/g, "''")}'`
|
|
|
|
const previousDescription =
|
|
'Partner in drei Kategorien: Hauptsponsoren, Medienpartner und weitere Sponsoren. Klicken für Details.'
|
|
const interimDescription =
|
|
'Ein starkes Netzwerk aus Unternehmen und Medien begleitet den Bayerischen Mittelstandspreis. Klicken für Details.'
|
|
const sponsorDescription =
|
|
'Ein starkes Netzwerk aus Unternehmen und Medien begleitet den Bayerischen Mittelstandspreis. Die gestaffelten Bänder machen die Gewichtung auf jeder Bildschirmgröße klar.'
|
|
|
|
const tierCopy = [
|
|
{ tier: 1, previousLabel: 'Hauptsponsoren', label: 'Große Darstellung' },
|
|
{ tier: 2, previousLabel: 'Medienpartner', label: 'Mittlere Darstellung' },
|
|
{ tier: 3, previousLabel: 'Weitere Sponsoren', label: 'Kompakte Darstellung' },
|
|
] as const
|
|
|
|
async function updateTierLabels(
|
|
db: MigrateUpArgs['db'],
|
|
tableName: 'network_tiers' | '_network_tiers_v',
|
|
direction: 'up' | 'down',
|
|
) {
|
|
for (const copy of tierCopy) {
|
|
const from = direction === 'up' ? copy.previousLabel : copy.label
|
|
const to = direction === 'up' ? copy.label : copy.previousLabel
|
|
await db.run(
|
|
sql.raw(
|
|
`UPDATE ${tableName} SET label = ${literal(to)} WHERE tier = ${copy.tier} AND label = ${literal(from)};`,
|
|
),
|
|
)
|
|
}
|
|
}
|
|
|
|
export async function up({ db, payload: _payload, req: _req }: MigrateUpArgs): Promise<void> {
|
|
await db.run(
|
|
sql.raw(
|
|
`UPDATE pages SET netzwerk_partners_description = ${literal(sponsorDescription)} WHERE netzwerk_partners_description IN (${literal(previousDescription)}, ${literal(interimDescription)});`,
|
|
),
|
|
)
|
|
await db.run(
|
|
sql.raw(
|
|
`UPDATE _pages_v SET version_netzwerk_partners_description = ${literal(sponsorDescription)} WHERE version_netzwerk_partners_description IN (${literal(previousDescription)}, ${literal(interimDescription)});`,
|
|
),
|
|
)
|
|
await updateTierLabels(db, 'network_tiers', 'up')
|
|
await updateTierLabels(db, '_network_tiers_v', 'up')
|
|
await db.run(sql.raw(`UPDATE network_tiers SET note = '' WHERE tier = 1 AND label = 'Große Darstellung' AND note = 'Premium';`))
|
|
await db.run(sql.raw(`UPDATE _network_tiers_v SET note = '' WHERE tier = 1 AND label = 'Große Darstellung' AND note = 'Premium';`))
|
|
}
|
|
|
|
export async function down({ db, payload: _payload, req: _req }: MigrateDownArgs): Promise<void> {
|
|
await db.run(
|
|
sql.raw(
|
|
`UPDATE pages SET netzwerk_partners_description = ${literal(previousDescription)} WHERE netzwerk_partners_description = ${literal(sponsorDescription)};`,
|
|
),
|
|
)
|
|
await db.run(
|
|
sql.raw(
|
|
`UPDATE _pages_v SET version_netzwerk_partners_description = ${literal(previousDescription)} WHERE version_netzwerk_partners_description = ${literal(sponsorDescription)};`,
|
|
),
|
|
)
|
|
await updateTierLabels(db, 'network_tiers', 'down')
|
|
await updateTierLabels(db, '_network_tiers_v', 'down')
|
|
await db.run(sql.raw(`UPDATE network_tiers SET note = 'Premium' WHERE tier = 1 AND label = 'Hauptsponsoren' AND note = '';`))
|
|
await db.run(sql.raw(`UPDATE _network_tiers_v SET note = 'Premium' WHERE tier = 1 AND label = 'Hauptsponsoren' AND note = '';`))
|
|
}
|