-- CreateEnum CREATE TYPE "WorkspaceRole" AS ENUM ('ADMIN', 'MEMBER', 'GUEST'); -- AlterEnum ALTER TYPE "CollaborationType" ADD VALUE 'FULL_ACCESS'; -- AlterEnum ALTER TYPE "Plan" ADD VALUE 'TEAM'; -- AlterTable ALTER TABLE "Credentials" ADD COLUMN "workspaceId" TEXT, ALTER COLUMN "ownerId" DROP NOT NULL; -- AlterTable ALTER TABLE "CustomDomain" ADD COLUMN "workspaceId" TEXT, ALTER COLUMN "ownerId" DROP NOT NULL; -- AlterTable ALTER TABLE "DashboardFolder" ADD COLUMN "workspaceId" TEXT, ALTER COLUMN "ownerId" DROP NOT NULL; -- AlterTable ALTER TABLE "Typebot" ADD COLUMN "workspaceId" TEXT, ALTER COLUMN "ownerId" DROP NOT NULL; -- AlterTable ALTER TABLE "User" ALTER COLUMN "plan" DROP NOT NULL; -- CreateTable CREATE TABLE "Workspace" ( "id" TEXT NOT NULL, "name" TEXT NOT NULL, "icon" TEXT, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "plan" "Plan" NOT NULL DEFAULT E'FREE', "stripeId" TEXT, CONSTRAINT "Workspace_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "MemberInWorkspace" ( "userId" TEXT NOT NULL, "workspaceId" TEXT NOT NULL, "role" "WorkspaceRole" NOT NULL ); -- CreateTable CREATE TABLE "WorkspaceInvitation" ( "id" TEXT NOT NULL, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "email" TEXT NOT NULL, "workspaceId" TEXT NOT NULL, "type" "WorkspaceRole" NOT NULL, CONSTRAINT "WorkspaceInvitation_pkey" PRIMARY KEY ("id") ); -- CreateIndex CREATE UNIQUE INDEX "Workspace_stripeId_key" ON "Workspace"("stripeId"); -- CreateIndex CREATE UNIQUE INDEX "MemberInWorkspace_userId_workspaceId_key" ON "MemberInWorkspace"("userId", "workspaceId"); -- AddForeignKey ALTER TABLE "MemberInWorkspace" ADD CONSTRAINT "MemberInWorkspace_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "MemberInWorkspace" ADD CONSTRAINT "MemberInWorkspace_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "Workspace"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "WorkspaceInvitation" ADD CONSTRAINT "WorkspaceInvitation_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "Workspace"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "CustomDomain" ADD CONSTRAINT "CustomDomain_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "Workspace"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "Credentials" ADD CONSTRAINT "Credentials_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "Workspace"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "DashboardFolder" ADD CONSTRAINT "DashboardFolder_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "Workspace"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "Typebot" ADD CONSTRAINT "Typebot_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "Workspace"("id") ON DELETE CASCADE ON UPDATE CASCADE;