-- CreateEnum CREATE TYPE "PipelineProgressableType" AS ENUM ('Person', 'Company'); -- CreateTable CREATE TABLE "pipelines" ( "id" TEXT NOT NULL, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, "deletedAt" TIMESTAMP(3), "name" TEXT NOT NULL, "icon" TEXT NOT NULL, "workspaceId" TEXT NOT NULL, CONSTRAINT "pipelines_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "pipeline_stages" ( "id" TEXT NOT NULL, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, "deletedAt" TIMESTAMP(3), "name" TEXT NOT NULL, "type" TEXT NOT NULL, "color" TEXT NOT NULL, "pipelineId" TEXT NOT NULL, "workspaceId" TEXT NOT NULL, CONSTRAINT "pipeline_stages_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "pipeline_progresses" ( "id" TEXT NOT NULL, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, "deletedAt" TIMESTAMP(3), "pipelineId" TEXT NOT NULL, "pipelineStageId" TEXT NOT NULL, "associableType" "PipelineProgressableType" NOT NULL, "associableId" TEXT NOT NULL, CONSTRAINT "pipeline_progresses_pkey" PRIMARY KEY ("id") ); -- AddForeignKey ALTER TABLE "pipelines" ADD CONSTRAINT "pipelines_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "pipeline_stages" ADD CONSTRAINT "pipeline_stages_pipelineId_fkey" FOREIGN KEY ("pipelineId") REFERENCES "pipelines"("id") ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "pipeline_stages" ADD CONSTRAINT "pipeline_stages_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "pipeline_progresses" ADD CONSTRAINT "pipeline_progresses_pipelineId_fkey" FOREIGN KEY ("pipelineId") REFERENCES "pipelines"("id") ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "pipeline_progresses" ADD CONSTRAINT "pipeline_progresses_pipelineStageId_fkey" FOREIGN KEY ("pipelineStageId") REFERENCES "pipeline_stages"("id") ON DELETE RESTRICT ON UPDATE CASCADE;