CREATE TABLE "guides"."stygian_boss" ( "schedule_id" integer NOT NULL, "level" integer NOT NULL, "position" integer NOT NULL, "config_id" integer NOT NULL, "name" text NOT NULL, "hp" numeric(18, 2) NOT NULL, "description" text NOT NULL, "mechanics" jsonb DEFAULT '[]'::jsonb NOT NULL, "image_key" text NOT NULL, CONSTRAINT "stygian_boss_schedule_id_level_position_pk" PRIMARY KEY("schedule_id","level","position") ); --> statement-breakpoint CREATE TABLE "guides"."stygian_recommendation_group" ( "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, "schedule_id" integer NOT NULL, "level" integer NOT NULL, "boss_position" integer NOT NULL, "kind" varchar(16) NOT NULL, "sort_order" integer DEFAULT 0 NOT NULL ); --> statement-breakpoint CREATE TABLE "guides"."stygian_recommendation_item" ( "group_id" uuid NOT NULL, "position" integer NOT NULL, "kind" varchar(24) NOT NULL, "catalog_key" varchar(64), "character_key" varchar(64), "constellation_level" integer, "element" varchar(24), CONSTRAINT "stygian_recommendation_item_group_id_position_pk" PRIMARY KEY("group_id","position") ); --> statement-breakpoint CREATE TABLE "guides"."stygian_schedule" ( "schedule_id" integer PRIMARY KEY NOT NULL, "challenge_name" varchar(32) NOT NULL, "schedule_start_time" timestamp with time zone NOT NULL, "schedule_end_time" timestamp with time zone NOT NULL, "version" integer DEFAULT 1 NOT NULL, "is_active" boolean DEFAULT false NOT NULL, "activated_at" timestamp with time zone, "created_at" timestamp with time zone DEFAULT now() NOT NULL, "updated_at" timestamp with time zone DEFAULT now() NOT NULL ); --> statement-breakpoint ALTER TABLE "guides"."stygian_boss" ADD CONSTRAINT "stygian_boss_schedule_id_stygian_schedule_schedule_id_fk" FOREIGN KEY ("schedule_id") REFERENCES "guides"."stygian_schedule"("schedule_id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint ALTER TABLE "guides"."stygian_recommendation_group" ADD CONSTRAINT "stygian_recommendation_group_schedule_id_stygian_schedule_schedule_id_fk" FOREIGN KEY ("schedule_id") REFERENCES "guides"."stygian_schedule"("schedule_id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint ALTER TABLE "guides"."stygian_recommendation_item" ADD CONSTRAINT "stygian_recommendation_item_group_id_stygian_recommendation_group_id_fk" FOREIGN KEY ("group_id") REFERENCES "guides"."stygian_recommendation_group"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint CREATE INDEX "stygian_boss_schedule_idx" ON "guides"."stygian_boss" USING btree ("schedule_id","level");--> statement-breakpoint CREATE INDEX "stygian_recommendation_group_order_idx" ON "guides"."stygian_recommendation_group" USING btree ("schedule_id","level","boss_position","kind","sort_order");--> statement-breakpoint CREATE INDEX "stygian_schedule_active_idx" ON "guides"."stygian_schedule" USING btree ("is_active");