113 lines
7.8 KiB
TypeScript
113 lines
7.8 KiB
TypeScript
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_pages_blocks_fd_video_hero_overlay_color" AS ENUM('none', 'black', 'navy');
|
|
CREATE TYPE "public"."enum_pages_blocks_fd_video_hero_overlay_strength" AS ENUM('light', 'medium', 'heavy');
|
|
CREATE TYPE "public"."enum_pages_blocks_fd_video_hero_text_align" AS ENUM('left', 'center');
|
|
CREATE TYPE "public"."enum_pages_blocks_fd_video_hero_min_height" AS ENUM('screen', 'large', 'medium');
|
|
CREATE TYPE "public"."enum__pages_v_blocks_fd_video_hero_overlay_color" AS ENUM('none', 'black', 'navy');
|
|
CREATE TYPE "public"."enum__pages_v_blocks_fd_video_hero_overlay_strength" AS ENUM('light', 'medium', 'heavy');
|
|
CREATE TYPE "public"."enum__pages_v_blocks_fd_video_hero_text_align" AS ENUM('left', 'center');
|
|
CREATE TYPE "public"."enum__pages_v_blocks_fd_video_hero_min_height" AS ENUM('screen', 'large', 'medium');
|
|
CREATE TABLE "pages_blocks_fd_video_hero" (
|
|
"_order" integer NOT NULL,
|
|
"_parent_id" integer NOT NULL,
|
|
"_path" text NOT NULL,
|
|
"id" varchar PRIMARY KEY NOT NULL,
|
|
"video_mp4_id" integer,
|
|
"video_webm_id" integer,
|
|
"poster_image_id" integer,
|
|
"cta_link" varchar,
|
|
"secondary_cta_link" varchar,
|
|
"overlay_color" "enum_pages_blocks_fd_video_hero_overlay_color" DEFAULT 'none',
|
|
"overlay_strength" "enum_pages_blocks_fd_video_hero_overlay_strength" DEFAULT 'medium',
|
|
"text_align" "enum_pages_blocks_fd_video_hero_text_align" DEFAULT 'left',
|
|
"min_height" "enum_pages_blocks_fd_video_hero_min_height" DEFAULT 'screen',
|
|
"disable_video_on_mobile" boolean DEFAULT false,
|
|
"anchor_id" varchar,
|
|
"block_name" varchar
|
|
);
|
|
|
|
CREATE TABLE "pages_blocks_fd_video_hero_locales" (
|
|
"heading" varchar,
|
|
"body" varchar,
|
|
"cta_text" varchar,
|
|
"secondary_cta_text" varchar,
|
|
"id" serial PRIMARY KEY NOT NULL,
|
|
"_locale" "_locales" NOT NULL,
|
|
"_parent_id" varchar NOT NULL
|
|
);
|
|
|
|
CREATE TABLE "_pages_v_blocks_fd_video_hero" (
|
|
"_order" integer NOT NULL,
|
|
"_parent_id" integer NOT NULL,
|
|
"_path" text NOT NULL,
|
|
"id" serial PRIMARY KEY NOT NULL,
|
|
"video_mp4_id" integer,
|
|
"video_webm_id" integer,
|
|
"poster_image_id" integer,
|
|
"cta_link" varchar,
|
|
"secondary_cta_link" varchar,
|
|
"overlay_color" "enum__pages_v_blocks_fd_video_hero_overlay_color" DEFAULT 'none',
|
|
"overlay_strength" "enum__pages_v_blocks_fd_video_hero_overlay_strength" DEFAULT 'medium',
|
|
"text_align" "enum__pages_v_blocks_fd_video_hero_text_align" DEFAULT 'left',
|
|
"min_height" "enum__pages_v_blocks_fd_video_hero_min_height" DEFAULT 'screen',
|
|
"disable_video_on_mobile" boolean DEFAULT false,
|
|
"anchor_id" varchar,
|
|
"_uuid" varchar,
|
|
"block_name" varchar
|
|
);
|
|
|
|
CREATE TABLE "_pages_v_blocks_fd_video_hero_locales" (
|
|
"heading" varchar,
|
|
"body" varchar,
|
|
"cta_text" varchar,
|
|
"secondary_cta_text" varchar,
|
|
"id" serial PRIMARY KEY NOT NULL,
|
|
"_locale" "_locales" NOT NULL,
|
|
"_parent_id" integer NOT NULL
|
|
);
|
|
|
|
ALTER TABLE "pages_blocks_fd_video_hero" ADD CONSTRAINT "pages_blocks_fd_video_hero_video_mp4_id_media_id_fk" FOREIGN KEY ("video_mp4_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
|
ALTER TABLE "pages_blocks_fd_video_hero" ADD CONSTRAINT "pages_blocks_fd_video_hero_video_webm_id_media_id_fk" FOREIGN KEY ("video_webm_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
|
ALTER TABLE "pages_blocks_fd_video_hero" ADD CONSTRAINT "pages_blocks_fd_video_hero_poster_image_id_media_id_fk" FOREIGN KEY ("poster_image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
|
ALTER TABLE "pages_blocks_fd_video_hero" ADD CONSTRAINT "pages_blocks_fd_video_hero_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action;
|
|
ALTER TABLE "pages_blocks_fd_video_hero_locales" ADD CONSTRAINT "pages_blocks_fd_video_hero_locales_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages_blocks_fd_video_hero"("id") ON DELETE cascade ON UPDATE no action;
|
|
ALTER TABLE "_pages_v_blocks_fd_video_hero" ADD CONSTRAINT "_pages_v_blocks_fd_video_hero_video_mp4_id_media_id_fk" FOREIGN KEY ("video_mp4_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
|
ALTER TABLE "_pages_v_blocks_fd_video_hero" ADD CONSTRAINT "_pages_v_blocks_fd_video_hero_video_webm_id_media_id_fk" FOREIGN KEY ("video_webm_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
|
ALTER TABLE "_pages_v_blocks_fd_video_hero" ADD CONSTRAINT "_pages_v_blocks_fd_video_hero_poster_image_id_media_id_fk" FOREIGN KEY ("poster_image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
|
ALTER TABLE "_pages_v_blocks_fd_video_hero" ADD CONSTRAINT "_pages_v_blocks_fd_video_hero_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."_pages_v"("id") ON DELETE cascade ON UPDATE no action;
|
|
ALTER TABLE "_pages_v_blocks_fd_video_hero_locales" ADD CONSTRAINT "_pages_v_blocks_fd_video_hero_locales_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."_pages_v_blocks_fd_video_hero"("id") ON DELETE cascade ON UPDATE no action;
|
|
CREATE INDEX "pages_blocks_fd_video_hero_order_idx" ON "pages_blocks_fd_video_hero" USING btree ("_order");
|
|
CREATE INDEX "pages_blocks_fd_video_hero_parent_id_idx" ON "pages_blocks_fd_video_hero" USING btree ("_parent_id");
|
|
CREATE INDEX "pages_blocks_fd_video_hero_path_idx" ON "pages_blocks_fd_video_hero" USING btree ("_path");
|
|
CREATE INDEX "pages_blocks_fd_video_hero_video_mp4_idx" ON "pages_blocks_fd_video_hero" USING btree ("video_mp4_id");
|
|
CREATE INDEX "pages_blocks_fd_video_hero_video_webm_idx" ON "pages_blocks_fd_video_hero" USING btree ("video_webm_id");
|
|
CREATE INDEX "pages_blocks_fd_video_hero_poster_image_idx" ON "pages_blocks_fd_video_hero" USING btree ("poster_image_id");
|
|
CREATE UNIQUE INDEX "pages_blocks_fd_video_hero_locales_locale_parent_id_unique" ON "pages_blocks_fd_video_hero_locales" USING btree ("_locale","_parent_id");
|
|
CREATE INDEX "_pages_v_blocks_fd_video_hero_order_idx" ON "_pages_v_blocks_fd_video_hero" USING btree ("_order");
|
|
CREATE INDEX "_pages_v_blocks_fd_video_hero_parent_id_idx" ON "_pages_v_blocks_fd_video_hero" USING btree ("_parent_id");
|
|
CREATE INDEX "_pages_v_blocks_fd_video_hero_path_idx" ON "_pages_v_blocks_fd_video_hero" USING btree ("_path");
|
|
CREATE INDEX "_pages_v_blocks_fd_video_hero_video_mp4_idx" ON "_pages_v_blocks_fd_video_hero" USING btree ("video_mp4_id");
|
|
CREATE INDEX "_pages_v_blocks_fd_video_hero_video_webm_idx" ON "_pages_v_blocks_fd_video_hero" USING btree ("video_webm_id");
|
|
CREATE INDEX "_pages_v_blocks_fd_video_hero_poster_image_idx" ON "_pages_v_blocks_fd_video_hero" USING btree ("poster_image_id");
|
|
CREATE UNIQUE INDEX "_pages_v_blocks_fd_video_hero_locales_locale_parent_id_uniqu" ON "_pages_v_blocks_fd_video_hero_locales" USING btree ("_locale","_parent_id");`)
|
|
}
|
|
|
|
export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {
|
|
await db.execute(sql`
|
|
DROP TABLE "pages_blocks_fd_video_hero" CASCADE;
|
|
DROP TABLE "pages_blocks_fd_video_hero_locales" CASCADE;
|
|
DROP TABLE "_pages_v_blocks_fd_video_hero" CASCADE;
|
|
DROP TABLE "_pages_v_blocks_fd_video_hero_locales" CASCADE;
|
|
DROP TYPE "public"."enum_pages_blocks_fd_video_hero_overlay_color";
|
|
DROP TYPE "public"."enum_pages_blocks_fd_video_hero_overlay_strength";
|
|
DROP TYPE "public"."enum_pages_blocks_fd_video_hero_text_align";
|
|
DROP TYPE "public"."enum_pages_blocks_fd_video_hero_min_height";
|
|
DROP TYPE "public"."enum__pages_v_blocks_fd_video_hero_overlay_color";
|
|
DROP TYPE "public"."enum__pages_v_blocks_fd_video_hero_overlay_strength";
|
|
DROP TYPE "public"."enum__pages_v_blocks_fd_video_hero_text_align";
|
|
DROP TYPE "public"."enum__pages_v_blocks_fd_video_hero_min_height";`)
|
|
}
|