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

export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> {
  await db.execute(sql`
   CREATE TABLE "contactpage" (
  	"id" serial PRIMARY KEY NOT NULL,
  	"updated_at" timestamp(3) with time zone,
  	"created_at" timestamp(3) with time zone
  );
  
  CREATE TABLE "contactpage_locales" (
  	"seo_title" varchar NOT NULL,
  	"seo_description" varchar,
  	"h1" varchar NOT NULL,
  	"lead" varchar,
  	"form_title" varchar,
  	"form_lead" varchar,
  	"ways_title" varchar,
  	"reassure_title" varchar,
  	"reassure_text" varchar,
  	"id" serial PRIMARY KEY NOT NULL,
  	"_locale" "_locales" NOT NULL,
  	"_parent_id" integer NOT NULL
  );
  
  ALTER TABLE "contactpage_locales" ADD CONSTRAINT "contactpage_locales_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."contactpage"("id") ON DELETE cascade ON UPDATE no action;
  CREATE UNIQUE INDEX "contactpage_locales_locale_parent_id_unique" ON "contactpage_locales" USING btree ("_locale","_parent_id");`)
}

export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {
  await db.execute(sql`
   DROP TABLE "contactpage" CASCADE;
  DROP TABLE "contactpage_locales" CASCADE;`)
}
