130 lines
3.8 KiB
SQL
130 lines
3.8 KiB
SQL
-- CreateEnum
|
|
CREATE TYPE "TeamMemberRole" AS ENUM ('OWNER', 'VIEWER', 'EDITOR');
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Team" (
|
|
"id" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
|
|
CONSTRAINT "Team_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "TeamMember" (
|
|
"id" TEXT NOT NULL,
|
|
"role" "TeamMemberRole" NOT NULL,
|
|
"userUid" TEXT NOT NULL,
|
|
"teamID" TEXT NOT NULL,
|
|
|
|
CONSTRAINT "TeamMember_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "TeamInvitation" (
|
|
"id" TEXT NOT NULL,
|
|
"teamID" TEXT NOT NULL,
|
|
"creatorUid" TEXT NOT NULL,
|
|
"inviteeEmail" TEXT NOT NULL,
|
|
"inviteeRole" "TeamMemberRole" NOT NULL,
|
|
|
|
CONSTRAINT "TeamInvitation_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "TeamCollection" (
|
|
"id" TEXT NOT NULL,
|
|
"parentID" TEXT,
|
|
"teamID" TEXT NOT NULL,
|
|
"title" TEXT NOT NULL,
|
|
|
|
CONSTRAINT "TeamCollection_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "TeamRequest" (
|
|
"id" TEXT NOT NULL,
|
|
"collectionID" TEXT NOT NULL,
|
|
"teamID" TEXT NOT NULL,
|
|
"title" TEXT NOT NULL,
|
|
"request" JSONB NOT NULL,
|
|
|
|
CONSTRAINT "TeamRequest_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Shortcode" (
|
|
"id" TEXT NOT NULL,
|
|
"request" JSONB NOT NULL,
|
|
"creatorUid" TEXT,
|
|
"createdOn" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "Shortcode_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "TeamEnvironment" (
|
|
"id" TEXT NOT NULL,
|
|
"teamID" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"variables" JSONB NOT NULL,
|
|
|
|
CONSTRAINT "TeamEnvironment_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "User" (
|
|
"uid" TEXT NOT NULL,
|
|
"displayName" TEXT,
|
|
"email" TEXT,
|
|
"photoURL" TEXT,
|
|
|
|
CONSTRAINT "User_pkey" PRIMARY KEY ("uid")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "UserEnvironment" (
|
|
"id" TEXT NOT NULL,
|
|
"userUid" TEXT NOT NULL,
|
|
"name" TEXT,
|
|
"variables" JSONB NOT NULL,
|
|
"isGlobal" BOOLEAN NOT NULL,
|
|
|
|
CONSTRAINT "UserEnvironment_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "TeamMember_teamID_userUid_key" ON "TeamMember"("teamID", "userUid");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "TeamInvitation_teamID_idx" ON "TeamInvitation"("teamID");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "TeamInvitation_teamID_inviteeEmail_key" ON "TeamInvitation"("teamID", "inviteeEmail");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Shortcode_id_creatorUid_key" ON "Shortcode"("id", "creatorUid");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "TeamMember" ADD CONSTRAINT "TeamMember_teamID_fkey" FOREIGN KEY ("teamID") REFERENCES "Team"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "TeamInvitation" ADD CONSTRAINT "TeamInvitation_teamID_fkey" FOREIGN KEY ("teamID") REFERENCES "Team"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "TeamCollection" ADD CONSTRAINT "TeamCollection_parentID_fkey" FOREIGN KEY ("parentID") REFERENCES "TeamCollection"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "TeamCollection" ADD CONSTRAINT "TeamCollection_teamID_fkey" FOREIGN KEY ("teamID") REFERENCES "Team"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "TeamRequest" ADD CONSTRAINT "TeamRequest_collectionID_fkey" FOREIGN KEY ("collectionID") REFERENCES "TeamCollection"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "TeamRequest" ADD CONSTRAINT "TeamRequest_teamID_fkey" FOREIGN KEY ("teamID") REFERENCES "Team"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "TeamEnvironment" ADD CONSTRAINT "TeamEnvironment_teamID_fkey" FOREIGN KEY ("teamID") REFERENCES "Team"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "UserEnvironment" ADD CONSTRAINT "UserEnvironment_userUid_fkey" FOREIGN KEY ("userUid") REFERENCES "User"("uid") ON DELETE CASCADE ON UPDATE CASCADE;
|