ai-chatbot/lib/db/migrations/0049_add_model3d_assets.sql
Your Name bfcb777ba4
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
feat: persist 3d assets and add configurable 3d points billing
2026-03-06 12:16:31 +08:00

37 lines
1.4 KiB
SQL

CREATE TABLE IF NOT EXISTS "Model3DAsset" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"userId" uuid NOT NULL,
"projectId" uuid NOT NULL,
"taskId" varchar(128) NOT NULL,
"status" varchar(32) DEFAULT 'queued' NOT NULL,
"mode" varchar(32) DEFAULT 'text' NOT NULL,
"prompt" text DEFAULT '' NOT NULL,
"modelVersion" varchar(64) DEFAULT '' NOT NULL,
"progress" integer,
"modelUrl" text,
"previewImageUrl" text,
"error" text,
"sourceTaskId" varchar(128),
"exportFormat" varchar(32),
"createdAt" timestamp DEFAULT now() NOT NULL,
"updatedAt" timestamp DEFAULT now() NOT NULL
);
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "Model3DAsset" ADD CONSTRAINT "Model3DAsset_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 "Model3DAsset" ADD CONSTRAINT "Model3DAsset_projectId_CanvasProject_id_fk" FOREIGN KEY ("projectId") REFERENCES "public"."CanvasProject"("id") ON DELETE cascade ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
CREATE UNIQUE INDEX IF NOT EXISTS "Model3DAsset_project_task_uidx"
ON "Model3DAsset"("projectId", "taskId");
--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "Model3DAsset_project_updated_idx"
ON "Model3DAsset"("projectId", "updatedAt");