mirror of
https://github.com/hanzo-apps/dataroom.git
synced 2026-10-30 14:47:36 +00:00
78 lines
2.4 KiB
SQL
78 lines
2.4 KiB
SQL
-- CreateEnum
|
|
CREATE TYPE "Role" AS ENUM ('ADMIN', 'MEMBER');
|
|
|
|
-- AlterTable
|
|
ALTER TABLE "Document" ADD COLUMN "teamId" TEXT;
|
|
|
|
-- AlterTable
|
|
ALTER TABLE "Domain" ADD COLUMN "teamId" TEXT;
|
|
|
|
-- AlterTable
|
|
ALTER TABLE "User" ALTER COLUMN "plan" SET DEFAULT 'trial';
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Team" (
|
|
"id" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"plan" TEXT NOT NULL DEFAULT 'free',
|
|
"stripeId" TEXT,
|
|
"subscriptionId" TEXT,
|
|
"startsAt" TIMESTAMP(3),
|
|
"endsAt" TIMESTAMP(3),
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Team_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "UserTeam" (
|
|
"role" "Role" NOT NULL DEFAULT 'MEMBER',
|
|
"userId" TEXT NOT NULL,
|
|
"teamId" TEXT NOT NULL,
|
|
|
|
CONSTRAINT "UserTeam_pkey" PRIMARY KEY ("userId","teamId")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Invitation" (
|
|
"email" TEXT NOT NULL,
|
|
"expires" TIMESTAMP(3) NOT NULL,
|
|
"teamId" TEXT NOT NULL,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"token" TEXT NOT NULL
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Team_stripeId_key" ON "Team"("stripeId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Team_subscriptionId_key" ON "Team"("subscriptionId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "UserTeam_userId_idx" ON "UserTeam"("userId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "UserTeam_teamId_idx" ON "UserTeam"("teamId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Invitation_token_key" ON "Invitation"("token");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Invitation_email_key" ON "Invitation"("email");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "UserTeam" ADD CONSTRAINT "UserTeam_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "UserTeam" ADD CONSTRAINT "UserTeam_teamId_fkey" FOREIGN KEY ("teamId") REFERENCES "Team"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Document" ADD CONSTRAINT "Document_teamId_fkey" FOREIGN KEY ("teamId") REFERENCES "Team"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Domain" ADD CONSTRAINT "Domain_teamId_fkey" FOREIGN KEY ("teamId") REFERENCES "Team"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Invitation" ADD CONSTRAINT "Invitation_teamId_fkey" FOREIGN KEY ("teamId") REFERENCES "Team"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|