import { sql } from '@payloadcms/db-postgres' import type { Payload } from 'payload' type DrizzleAdapter = { drizzle: { execute: (query: unknown) => Promise } } async function exec(payload: Payload, query: unknown) { const adapter = payload.db as DrizzleAdapter await adapter.drizzle.execute(query) } export async function ensureServicesSchema(payload: Payload) { await exec(payload, sql`ALTER TABLE services_locales ADD COLUMN IF NOT EXISTS group_title character varying`) await exec( payload, sql` DO $$ BEGIN IF EXISTS ( SELECT 1 FROM information_schema.columns WHERE table_schema = 'public' AND table_name = 'services' AND column_name = 'group_title' ) THEN UPDATE services_locales AS sl SET group_title = s.group_title FROM services AS s WHERE sl._parent_id = s.id AND sl._locale = 'ru' AND (sl.group_title IS NULL OR sl.group_title = '') AND s.group_title IS NOT NULL; END IF; END $$ `, ) }