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

export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> {
  await db.execute(sql`
   CREATE TYPE "public"."enum_settings_social_network" AS ENUM('facebook', 'instagram', 'linkedin', 'youtube', 'tiktok', 'telegram', 'twitter', 'whatsapp');
  CREATE TABLE "settings_social" (
  	"_order" integer NOT NULL,
  	"_parent_id" integer NOT NULL,
  	"id" varchar PRIMARY KEY NOT NULL,
  	"network" "enum_settings_social_network" NOT NULL,
  	"url" varchar NOT NULL
  );
  
  ALTER TABLE "settings_locales" ADD COLUMN "footer_contact_heading" varchar;
  ALTER TABLE "settings_locales" ADD COLUMN "footer_social_heading" varchar;
  ALTER TABLE "settings_social" ADD CONSTRAINT "settings_social_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."settings"("id") ON DELETE cascade ON UPDATE no action;
  CREATE INDEX "settings_social_order_idx" ON "settings_social" USING btree ("_order");
  CREATE INDEX "settings_social_parent_id_idx" ON "settings_social" USING btree ("_parent_id");`)
}

export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {
  await db.execute(sql`
   DROP TABLE "settings_social" CASCADE;
  ALTER TABLE "settings_locales" DROP COLUMN "footer_contact_heading";
  ALTER TABLE "settings_locales" DROP COLUMN "footer_social_heading";
  DROP TYPE "public"."enum_settings_social_network";`)
}
