ALTER TABLE "AgentPreset" ADD COLUMN IF NOT EXISTS "slotCount" integer DEFAULT 1 NOT NULL; --> statement-breakpoint ALTER TABLE "AgentPreset" ADD COLUMN IF NOT EXISTS "requiredUploadCount" integer DEFAULT 1 NOT NULL; --> statement-breakpoint CREATE TABLE IF NOT EXISTS "AgentPresetSlot" ( "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, "presetId" uuid NOT NULL, "slotIndex" integer NOT NULL, "title" varchar(128), "promptTemplate" text DEFAULT '' NOT NULL, "defaultParams" jsonb, "requireUpload" boolean DEFAULT true NOT NULL, "uploadLabel" varchar(128), "createdAt" timestamp DEFAULT now() NOT NULL, "updatedAt" timestamp DEFAULT now() NOT NULL ); --> statement-breakpoint DO $$ BEGIN ALTER TABLE "AgentPresetSlot" ADD CONSTRAINT "AgentPresetSlot_presetId_AgentPreset_id_fk" FOREIGN KEY ("presetId") REFERENCES "public"."AgentPreset"("id") ON DELETE cascade ON UPDATE no action; EXCEPTION WHEN duplicate_object THEN null; END $$; --> statement-breakpoint ALTER TABLE "AgentPresetReferenceAsset" ADD COLUMN IF NOT EXISTS "slotId" uuid; --> statement-breakpoint DO $$ BEGIN ALTER TABLE "AgentPresetReferenceAsset" ADD CONSTRAINT "AgentPresetReferenceAsset_slotId_AgentPresetSlot_id_fk" FOREIGN KEY ("slotId") REFERENCES "public"."AgentPresetSlot"("id") ON DELETE cascade ON UPDATE no action; EXCEPTION WHEN duplicate_object THEN null; END $$; --> statement-breakpoint ALTER TABLE "AgentPresetExecutionSnapshot" ADD COLUMN IF NOT EXISTS "slotCount" integer DEFAULT 1 NOT NULL; --> statement-breakpoint ALTER TABLE "AgentPresetExecutionSnapshot" ADD COLUMN IF NOT EXISTS "requiredUploadCount" integer DEFAULT 1 NOT NULL; --> statement-breakpoint ALTER TABLE "AgentPresetExecutionSnapshot" ADD COLUMN IF NOT EXISTS "slots" jsonb DEFAULT '[]'::jsonb NOT NULL; --> statement-breakpoint CREATE INDEX IF NOT EXISTS "AgentPresetSlot_preset_slot_idx" ON "AgentPresetSlot"("presetId", "slotIndex"); --> statement-breakpoint CREATE INDEX IF NOT EXISTS "AgentPresetReferenceAsset_slot_sort_idx" ON "AgentPresetReferenceAsset"("slotId", "sortOrder");