/* Warnings: - You are about to drop the column `teamId` on the `Subscription` table. All the data in the column will be lost. - You are about to drop the column `userId` on the `Subscription` table. All the data in the column will be lost. - You are about to drop the column `customerId` on the `Team` table. All the data in the column will be lost. - You are about to drop the column `ownerUserId` on the `Team` table. All the data in the column will be lost. - You are about to drop the column `url` on the `User` table. All the data in the column will be lost. - You are about to drop the `TeamMember` table. If the table is not empty, all the data it contains will be lost. - You are about to drop the `TeamMemberInvite` table. If the table is not empty, all the data it contains will be lost. - You are about to drop the `TeamTransferVerification` table. If the table is not empty, all the data it contains will be lost. - Made the column `teamId` on table `Document` required. This step will fail if there are existing NULL values in that column. - Added the required column `organisationId` to the `Subscription` table without a default value. This is not possible if the table is not empty. - Added the required column `organisationId` to the `Team` table without a default value. This is not possible if the table is not empty. - Made the column `teamId` on table `Template` required. This step will fail if there are existing NULL values in that column. */ -- CreateEnum CREATE TYPE "OrganisationGroupType" AS ENUM ('INTERNAL_ORGANISATION', 'INTERNAL_TEAM', 'CUSTOM'); -- CreateEnum CREATE TYPE "OrganisationMemberRole" AS ENUM ('ADMIN', 'MANAGER', 'MEMBER'); -- CreateEnum CREATE TYPE "OrganisationMemberInviteStatus" AS ENUM ('ACCEPTED', 'PENDING', 'DECLINED'); -- DropForeignKey ALTER TABLE "Document" DROP CONSTRAINT "Document_teamId_fkey"; -- DropForeignKey ALTER TABLE "Subscription" DROP CONSTRAINT "Subscription_teamId_fkey"; -- DropForeignKey ALTER TABLE "Subscription" DROP CONSTRAINT "Subscription_userId_fkey"; -- DropForeignKey ALTER TABLE "Team" DROP CONSTRAINT "Team_ownerUserId_fkey"; -- DropForeignKey ALTER TABLE "TeamMember" DROP CONSTRAINT "TeamMember_teamId_fkey"; -- DropForeignKey ALTER TABLE "TeamMember" DROP CONSTRAINT "TeamMember_userId_fkey"; -- DropForeignKey ALTER TABLE "TeamMemberInvite" DROP CONSTRAINT "TeamMemberInvite_teamId_fkey"; -- DropForeignKey ALTER TABLE "TeamTransferVerification" DROP CONSTRAINT "TeamTransferVerification_teamId_fkey"; -- DropIndex DROP INDEX "Subscription_teamId_key"; -- DropIndex DROP INDEX "Subscription_userId_idx"; -- DropIndex DROP INDEX "Team_customerId_key"; -- DropIndex DROP INDEX "User_url_key"; -- AlterTable ALTER TABLE "ApiToken" ADD COLUMN "organisationId" TEXT; -- AlterTable ALTER TABLE "Document" ALTER COLUMN "teamId" SET NOT NULL; -- AlterTable ALTER TABLE "Subscription" DROP COLUMN "teamId", DROP COLUMN "userId", ADD COLUMN "organisationId" TEXT NOT NULL; -- AlterTable ALTER TABLE "Team" DROP COLUMN "customerId", DROP COLUMN "ownerUserId", ADD COLUMN "organisationId" TEXT NOT NULL; -- AlterTable ALTER TABLE "Template" ALTER COLUMN "teamId" SET NOT NULL; -- AlterTable ALTER TABLE "User" DROP COLUMN "url"; -- AlterTable ALTER TABLE "Webhook" ADD COLUMN "organisationId" TEXT; -- DropTable DROP TABLE "TeamMember"; -- DropTable DROP TABLE "TeamMemberInvite"; -- DropTable DROP TABLE "TeamTransferVerification"; -- DropEnum DROP TYPE "TeamMemberInviteStatus"; -- CreateTable CREATE TABLE "Organisation" ( "id" TEXT NOT NULL, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, "name" TEXT NOT NULL, "url" TEXT NOT NULL, "avatarImageId" TEXT, "customerId" TEXT, "ownerUserId" INTEGER NOT NULL, CONSTRAINT "Organisation_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "OrganisationMember" ( "id" TEXT NOT NULL, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, "userId" INTEGER NOT NULL, "organisationId" TEXT NOT NULL, CONSTRAINT "OrganisationMember_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "OrganisationMemberInvite" ( "id" TEXT NOT NULL, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "email" TEXT NOT NULL, "token" TEXT NOT NULL, "groupIds" TEXT[], "status" "OrganisationMemberInviteStatus" NOT NULL DEFAULT 'PENDING', "organisationId" TEXT NOT NULL, "organisationRole" "OrganisationMemberRole" NOT NULL, "teamId" INTEGER, "teamRole" "TeamMemberRole", CONSTRAINT "OrganisationMemberInvite_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "OrganisationGroup" ( "id" TEXT NOT NULL, "name" TEXT, "type" "OrganisationGroupType" NOT NULL, "organisationRole" "OrganisationMemberRole" NOT NULL, "organisationId" TEXT NOT NULL, CONSTRAINT "OrganisationGroup_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "OrganisationGroupMember" ( "id" TEXT NOT NULL, "groupId" TEXT NOT NULL, "organisationMemberId" TEXT, CONSTRAINT "OrganisationGroupMember_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "TeamGroup" ( "id" TEXT NOT NULL, "organisationGroupId" TEXT NOT NULL, "teamRole" "TeamMemberRole" NOT NULL, "teamId" INTEGER NOT NULL, CONSTRAINT "TeamGroup_pkey" PRIMARY KEY ("id") ); -- CreateIndex CREATE UNIQUE INDEX "Organisation_url_key" ON "Organisation"("url"); -- CreateIndex CREATE UNIQUE INDEX "Organisation_customerId_key" ON "Organisation"("customerId"); -- CreateIndex CREATE UNIQUE INDEX "OrganisationMember_userId_organisationId_key" ON "OrganisationMember"("userId", "organisationId"); -- CreateIndex CREATE UNIQUE INDEX "OrganisationMemberInvite_token_key" ON "OrganisationMemberInvite"("token"); -- CreateIndex CREATE UNIQUE INDEX "OrganisationGroupMember_organisationMemberId_groupId_key" ON "OrganisationGroupMember"("organisationMemberId", "groupId"); -- CreateIndex CREATE INDEX "Subscription_organisationId_idx" ON "Subscription"("organisationId"); -- CreateIndex CREATE INDEX "Template_userId_idx" ON "Template"("userId"); -- AddForeignKey ALTER TABLE "Webhook" ADD CONSTRAINT "Webhook_organisationId_fkey" FOREIGN KEY ("organisationId") REFERENCES "Organisation"("id") ON DELETE SET NULL ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "ApiToken" ADD CONSTRAINT "ApiToken_organisationId_fkey" FOREIGN KEY ("organisationId") REFERENCES "Organisation"("id") ON DELETE SET NULL ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "Subscription" ADD CONSTRAINT "Subscription_organisationId_fkey" FOREIGN KEY ("organisationId") REFERENCES "Organisation"("id") ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "Document" ADD CONSTRAINT "Document_teamId_fkey" FOREIGN KEY ("teamId") REFERENCES "Team"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "Organisation" ADD CONSTRAINT "Organisation_avatarImageId_fkey" FOREIGN KEY ("avatarImageId") REFERENCES "AvatarImage"("id") ON DELETE SET NULL ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "Organisation" ADD CONSTRAINT "Organisation_ownerUserId_fkey" FOREIGN KEY ("ownerUserId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "OrganisationMember" ADD CONSTRAINT "OrganisationMember_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "OrganisationMember" ADD CONSTRAINT "OrganisationMember_organisationId_fkey" FOREIGN KEY ("organisationId") REFERENCES "Organisation"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "OrganisationMemberInvite" ADD CONSTRAINT "OrganisationMemberInvite_organisationId_fkey" FOREIGN KEY ("organisationId") REFERENCES "Organisation"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "OrganisationMemberInvite" ADD CONSTRAINT "OrganisationMemberInvite_teamId_fkey" FOREIGN KEY ("teamId") REFERENCES "Team"("id") ON DELETE SET NULL ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "OrganisationGroup" ADD CONSTRAINT "OrganisationGroup_organisationId_fkey" FOREIGN KEY ("organisationId") REFERENCES "Organisation"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "OrganisationGroupMember" ADD CONSTRAINT "OrganisationGroupMember_groupId_fkey" FOREIGN KEY ("groupId") REFERENCES "OrganisationGroup"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "OrganisationGroupMember" ADD CONSTRAINT "OrganisationGroupMember_organisationMemberId_fkey" FOREIGN KEY ("organisationMemberId") REFERENCES "OrganisationMember"("id") ON DELETE SET NULL ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "TeamGroup" ADD CONSTRAINT "TeamGroup_organisationGroupId_fkey" FOREIGN KEY ("organisationGroupId") REFERENCES "OrganisationGroup"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "TeamGroup" ADD CONSTRAINT "TeamGroup_teamId_fkey" FOREIGN KEY ("teamId") REFERENCES "Team"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "Team" ADD CONSTRAINT "Team_organisationId_fkey" FOREIGN KEY ("organisationId") REFERENCES "Organisation"("id") ON DELETE CASCADE ON UPDATE CASCADE;