import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres'

/**
 * Safely adds missing Submit Button/CTA ID tracking column (header_config_landing_c_t_a_cta_id)
 * to the shared_layouts table (and its version table if it exists).
 * This migration is completely non-destructive and preserves all existing database records.
 */
export async function up({ db }: MigrateUpArgs): Promise<void> {
  await db.execute(sql`
    ALTER TABLE "shared_layouts" 
      ADD COLUMN IF NOT EXISTS "header_config_landing_c_t_a_cta_id" varchar;

    ALTER TABLE IF EXISTS "_shared_layouts_v" 
      ADD COLUMN IF NOT EXISTS "header_config_landing_c_t_a_cta_id" varchar;
  `)
}

export async function down({ db }: MigrateDownArgs): Promise<void> {
  await db.execute(sql`
    ALTER TABLE "shared_layouts" 
      DROP COLUMN IF EXISTS "header_config_landing_c_t_a_cta_id";

    ALTER TABLE IF EXISTS "_shared_layouts_v" 
      DROP COLUMN IF EXISTS "header_config_landing_c_t_a_cta_id";
  `)
}
