180 lines
7.6 KiB
SQL
180 lines
7.6 KiB
SQL
CREATE TABLE IF NOT EXISTS "AgentPresetCategory" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"name" varchar(64) NOT NULL,
|
|
"slug" varchar(64) NOT NULL,
|
|
"scope" varchar(16) DEFAULT 'public' NOT NULL,
|
|
"createdBy" uuid,
|
|
"sortOrder" integer DEFAULT 0 NOT NULL,
|
|
"isEnabled" boolean DEFAULT true NOT NULL,
|
|
"createdAt" timestamp DEFAULT now() NOT NULL,
|
|
"updatedAt" timestamp DEFAULT now() NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
ALTER TABLE "AgentPresetCategory" ADD CONSTRAINT "AgentPresetCategory_createdBy_User_id_fk" FOREIGN KEY ("createdBy") REFERENCES "public"."User"("id") ON DELETE set null ON UPDATE no action;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
|
|
CREATE TABLE IF NOT EXISTS "AgentPreset" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"ownerUserId" uuid NOT NULL,
|
|
"name" varchar(128) NOT NULL,
|
|
"type" varchar(16) DEFAULT 'image' NOT NULL,
|
|
"visibility" varchar(16) DEFAULT 'private' NOT NULL,
|
|
"categoryId" uuid,
|
|
"promptTemplate" text DEFAULT '' NOT NULL,
|
|
"description" text,
|
|
"defaultModelId" uuid,
|
|
"defaultParams" jsonb,
|
|
"coverAssetId" uuid,
|
|
"status" varchar(16) DEFAULT 'active' NOT NULL,
|
|
"sortOrder" integer DEFAULT 0 NOT NULL,
|
|
"usageCount" integer DEFAULT 0 NOT NULL,
|
|
"lastUsedAt" timestamp,
|
|
"forkedFromPresetId" uuid,
|
|
"createdAt" timestamp DEFAULT now() NOT NULL,
|
|
"updatedAt" timestamp DEFAULT now() NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
ALTER TABLE "AgentPreset" ADD CONSTRAINT "AgentPreset_ownerUserId_User_id_fk" FOREIGN KEY ("ownerUserId") REFERENCES "public"."User"("id") ON DELETE cascade ON UPDATE no action;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
ALTER TABLE "AgentPreset" ADD CONSTRAINT "AgentPreset_categoryId_AgentPresetCategory_id_fk" FOREIGN KEY ("categoryId") REFERENCES "public"."AgentPresetCategory"("id") ON DELETE set null ON UPDATE no action;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
ALTER TABLE "AgentPreset" ADD CONSTRAINT "AgentPreset_defaultModelId_AiModel_id_fk" FOREIGN KEY ("defaultModelId") REFERENCES "public"."AiModel"("id") ON DELETE set null ON UPDATE no action;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
|
|
ALTER TABLE "CanvasProject"
|
|
ADD COLUMN IF NOT EXISTS "workspaceType" varchar(16) DEFAULT 'canvas' NOT NULL;
|
|
--> statement-breakpoint
|
|
|
|
CREATE TABLE IF NOT EXISTS "AgentPresetExecutionSnapshot" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"presetId" uuid NOT NULL,
|
|
"projectId" uuid,
|
|
"chatId" uuid,
|
|
"messageId" uuid,
|
|
"userId" uuid NOT NULL,
|
|
"presetName" varchar(128) NOT NULL,
|
|
"presetType" varchar(16) NOT NULL,
|
|
"visibility" varchar(16) NOT NULL,
|
|
"categoryId" uuid,
|
|
"categoryName" varchar(64),
|
|
"promptTemplate" text DEFAULT '' NOT NULL,
|
|
"defaultModelId" uuid,
|
|
"resolvedModelId" uuid,
|
|
"defaultParams" jsonb,
|
|
"referenceAssetIds" jsonb DEFAULT '[]'::jsonb NOT NULL,
|
|
"referenceImageUrls" jsonb DEFAULT '[]'::jsonb NOT NULL,
|
|
"userInputText" text,
|
|
"requestPayload" jsonb,
|
|
"createdAt" timestamp DEFAULT now() NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
ALTER TABLE "AgentPresetExecutionSnapshot" ADD CONSTRAINT "AgentPresetExecutionSnapshot_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
|
|
DO $$ BEGIN
|
|
ALTER TABLE "AgentPresetExecutionSnapshot" ADD CONSTRAINT "AgentPresetExecutionSnapshot_projectId_CanvasProject_id_fk" FOREIGN KEY ("projectId") REFERENCES "public"."CanvasProject"("id") ON DELETE set null ON UPDATE no action;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
ALTER TABLE "AgentPresetExecutionSnapshot" ADD CONSTRAINT "AgentPresetExecutionSnapshot_chatId_Chat_id_fk" FOREIGN KEY ("chatId") REFERENCES "public"."Chat"("id") ON DELETE set null ON UPDATE no action;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
ALTER TABLE "AgentPresetExecutionSnapshot" ADD CONSTRAINT "AgentPresetExecutionSnapshot_messageId_Message_v2_id_fk" FOREIGN KEY ("messageId") REFERENCES "public"."Message_v2"("id") ON DELETE set null ON UPDATE no action;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
ALTER TABLE "AgentPresetExecutionSnapshot" ADD CONSTRAINT "AgentPresetExecutionSnapshot_userId_User_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."User"("id") ON DELETE cascade ON UPDATE no action;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
ALTER TABLE "AgentPresetExecutionSnapshot" ADD CONSTRAINT "AgentPresetExecutionSnapshot_categoryId_AgentPresetCategory_id_fk" FOREIGN KEY ("categoryId") REFERENCES "public"."AgentPresetCategory"("id") ON DELETE set null ON UPDATE no action;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
ALTER TABLE "AgentPresetExecutionSnapshot" ADD CONSTRAINT "AgentPresetExecutionSnapshot_defaultModelId_AiModel_id_fk" FOREIGN KEY ("defaultModelId") REFERENCES "public"."AiModel"("id") ON DELETE set null ON UPDATE no action;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
ALTER TABLE "AgentPresetExecutionSnapshot" ADD CONSTRAINT "AgentPresetExecutionSnapshot_resolvedModelId_AiModel_id_fk" FOREIGN KEY ("resolvedModelId") REFERENCES "public"."AiModel"("id") ON DELETE set null ON UPDATE no action;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
|
|
CREATE TABLE IF NOT EXISTS "AgentPresetReferenceAsset" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"presetId" uuid NOT NULL,
|
|
"assetId" uuid NOT NULL,
|
|
"sortOrder" integer DEFAULT 0 NOT NULL,
|
|
"createdAt" timestamp DEFAULT now() NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
ALTER TABLE "AgentPresetReferenceAsset" ADD CONSTRAINT "AgentPresetReferenceAsset_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
|
|
DO $$ BEGIN
|
|
ALTER TABLE "AgentPresetReferenceAsset" ADD CONSTRAINT "AgentPresetReferenceAsset_assetId_MediaAsset_id_fk" FOREIGN KEY ("assetId") REFERENCES "public"."MediaAsset"("id") ON DELETE cascade ON UPDATE no action;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
|
|
CREATE INDEX IF NOT EXISTS "AgentPresetCategory_scope_sort_idx"
|
|
ON "AgentPresetCategory"("scope", "sortOrder", "name");
|
|
--> statement-breakpoint
|
|
CREATE INDEX IF NOT EXISTS "AgentPresetCategory_slug_scope_idx"
|
|
ON "AgentPresetCategory"("slug", "scope");
|
|
--> statement-breakpoint
|
|
CREATE INDEX IF NOT EXISTS "AgentPreset_owner_visibility_idx"
|
|
ON "AgentPreset"("ownerUserId", "visibility", "updatedAt");
|
|
--> statement-breakpoint
|
|
CREATE INDEX IF NOT EXISTS "AgentPreset_category_visibility_idx"
|
|
ON "AgentPreset"("categoryId", "visibility", "updatedAt");
|
|
--> statement-breakpoint
|
|
CREATE INDEX IF NOT EXISTS "AgentPreset_type_visibility_idx"
|
|
ON "AgentPreset"("type", "visibility", "updatedAt");
|
|
--> statement-breakpoint
|
|
CREATE INDEX IF NOT EXISTS "AgentPresetExecutionSnapshot_preset_created_idx"
|
|
ON "AgentPresetExecutionSnapshot"("presetId", "createdAt");
|
|
--> statement-breakpoint
|
|
CREATE INDEX IF NOT EXISTS "AgentPresetExecutionSnapshot_user_created_idx"
|
|
ON "AgentPresetExecutionSnapshot"("userId", "createdAt");
|
|
--> statement-breakpoint
|
|
CREATE INDEX IF NOT EXISTS "AgentPresetReferenceAsset_preset_sort_idx"
|
|
ON "AgentPresetReferenceAsset"("presetId", "sortOrder");
|