102 lines
4.7 KiB
SQL
102 lines
4.7 KiB
SQL
CREATE TABLE IF NOT EXISTS "ConversationWorkingState" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"userId" uuid NOT NULL,
|
|
"chatId" uuid NOT NULL,
|
|
"projectId" uuid,
|
|
"currentIntent" varchar(64),
|
|
"currentSubIntent" varchar(64),
|
|
"currentFocusAssetIds" jsonb DEFAULT '[]'::jsonb NOT NULL,
|
|
"currentFocusImageUrls" jsonb DEFAULT '[]'::jsonb NOT NULL,
|
|
"selectedAssetIds" jsonb DEFAULT '[]'::jsonb NOT NULL,
|
|
"selectedImageUrls" jsonb DEFAULT '[]'::jsonb NOT NULL,
|
|
"lastUploadedAssetIds" jsonb DEFAULT '[]'::jsonb NOT NULL,
|
|
"lastUploadedImageUrls" jsonb DEFAULT '[]'::jsonb NOT NULL,
|
|
"lastGeneratedAssetIds" jsonb DEFAULT '[]'::jsonb NOT NULL,
|
|
"lastGeneratedImageUrls" jsonb DEFAULT '[]'::jsonb NOT NULL,
|
|
"lastReferencedAssetIds" jsonb DEFAULT '[]'::jsonb NOT NULL,
|
|
"lastReferencedImageUrls" jsonb DEFAULT '[]'::jsonb NOT NULL,
|
|
"lastResolvedTargetAssetIds" jsonb DEFAULT '[]'::jsonb NOT NULL,
|
|
"lastResolvedTargetImageUrls" jsonb DEFAULT '[]'::jsonb NOT NULL,
|
|
"activeCanvasNodeIds" jsonb DEFAULT '[]'::jsonb NOT NULL,
|
|
"lastCanvasSnapshot" jsonb,
|
|
"lastTurnSummary" jsonb,
|
|
"lastMessageId" uuid,
|
|
"turnCount" integer DEFAULT 0 NOT NULL,
|
|
"createdAt" timestamp DEFAULT now() NOT NULL,
|
|
"updatedAt" timestamp DEFAULT now() NOT NULL,
|
|
CONSTRAINT "ConversationWorkingState_chatId_unique" UNIQUE("chatId")
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE IF NOT EXISTS "MessageTargetResolution" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"userId" uuid NOT NULL,
|
|
"chatId" uuid NOT NULL,
|
|
"messageId" uuid,
|
|
"projectId" uuid,
|
|
"rawText" text NOT NULL,
|
|
"uploadedAssetIds" jsonb DEFAULT '[]'::jsonb NOT NULL,
|
|
"uploadedImageUrls" jsonb DEFAULT '[]'::jsonb NOT NULL,
|
|
"selectedAssetIds" jsonb DEFAULT '[]'::jsonb NOT NULL,
|
|
"selectedImageUrls" jsonb DEFAULT '[]'::jsonb NOT NULL,
|
|
"candidateAssetIds" jsonb DEFAULT '[]'::jsonb NOT NULL,
|
|
"candidateImageUrls" jsonb DEFAULT '[]'::jsonb NOT NULL,
|
|
"resolvedAssetIds" jsonb DEFAULT '[]'::jsonb NOT NULL,
|
|
"resolvedImageUrls" jsonb DEFAULT '[]'::jsonb NOT NULL,
|
|
"resolutionMode" varchar(64) NOT NULL,
|
|
"confidence" integer DEFAULT 0 NOT NULL,
|
|
"needsClarification" boolean DEFAULT false NOT NULL,
|
|
"reasoning" jsonb,
|
|
"createdAt" timestamp DEFAULT now() NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
ALTER TABLE "ConversationWorkingState" ADD CONSTRAINT "ConversationWorkingState_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 "ConversationWorkingState" ADD CONSTRAINT "ConversationWorkingState_chatId_Chat_id_fk" FOREIGN KEY ("chatId") REFERENCES "public"."Chat"("id") ON DELETE cascade ON UPDATE no action;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
ALTER TABLE "ConversationWorkingState" ADD CONSTRAINT "ConversationWorkingState_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 "MessageTargetResolution" ADD CONSTRAINT "MessageTargetResolution_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 "MessageTargetResolution" ADD CONSTRAINT "MessageTargetResolution_chatId_Chat_id_fk" FOREIGN KEY ("chatId") REFERENCES "public"."Chat"("id") ON DELETE cascade ON UPDATE no action;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
ALTER TABLE "MessageTargetResolution" ADD CONSTRAINT "MessageTargetResolution_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 "MessageTargetResolution" ADD CONSTRAINT "MessageTargetResolution_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
|
|
CREATE INDEX IF NOT EXISTS "ConversationWorkingState_user_updated_idx"
|
|
ON "ConversationWorkingState"("userId", "updatedAt");
|
|
--> statement-breakpoint
|
|
CREATE INDEX IF NOT EXISTS "MessageTargetResolution_chat_created_idx"
|
|
ON "MessageTargetResolution"("chatId", "createdAt");
|
|
--> statement-breakpoint
|
|
CREATE INDEX IF NOT EXISTS "MessageTargetResolution_message_idx"
|
|
ON "MessageTargetResolution"("messageId");
|