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

/**
 * Adds primary_c_t_a_label and primary_c_t_a_href columns to the HeroOfferV1
 * block tables (live documents + version history).
 *
 * These columns correspond to the `primaryCTA` group field added to
 * src/blocks/HeroOfferV1/config.ts which was missing from the DB schema.
 */
export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> {
  await db.execute(sql`
    -- Live documents table
    ALTER TABLE "pages_blocks_hero_offer_v1"
      ADD COLUMN IF NOT EXISTS "primary_c_t_a_label" varchar,
      ADD COLUMN IF NOT EXISTS "primary_c_t_a_href"  varchar;

    -- Version history table
    ALTER TABLE "_pages_v_blocks_hero_offer_v1"
      ADD COLUMN IF NOT EXISTS "primary_c_t_a_label" varchar,
      ADD COLUMN IF NOT EXISTS "primary_c_t_a_href"  varchar;
  `)
}

export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {
  await db.execute(sql`
    ALTER TABLE "pages_blocks_hero_offer_v1"
      DROP COLUMN IF EXISTS "primary_c_t_a_label",
      DROP COLUMN IF EXISTS "primary_c_t_a_href";

    ALTER TABLE "_pages_v_blocks_hero_offer_v1"
      DROP COLUMN IF EXISTS "primary_c_t_a_label",
      DROP COLUMN IF EXISTS "primary_c_t_a_href";
  `)
}
