37 lines
1.4 KiB
SQL
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");
|