mirror of
https://github.com/documenso/documenso.git
synced 2025-11-12 07:43:16 +10:00
149 lines
4.6 KiB
SQL
149 lines
4.6 KiB
SQL
-- CreateEnum
|
|
CREATE TYPE "IdentityProvider" AS ENUM ('DOCUMENSO', 'GOOGLE');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "DocumentStatus" AS ENUM ('DRAFT', 'PENDING', 'COMPLETED');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "ReadStatus" AS ENUM ('NOT_OPENED', 'OPENED');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "SendStatus" AS ENUM ('NOT_SENT', 'SENT');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "SigningStatus" AS ENUM ('NOT_SIGNED', 'SIGNED');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "FieldType" AS ENUM ('SIGNATURE', 'FREE_SIGNATURE', 'DATE', 'TEXT');
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "User" (
|
|
"id" SERIAL NOT NULL,
|
|
"name" TEXT,
|
|
"email" TEXT NOT NULL,
|
|
"emailVerified" TIMESTAMP(3),
|
|
"password" TEXT,
|
|
"source" TEXT,
|
|
"identityProvider" "IdentityProvider" NOT NULL DEFAULT 'DOCUMENSO',
|
|
|
|
CONSTRAINT "User_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Account" (
|
|
"id" TEXT NOT NULL,
|
|
"userId" INTEGER NOT NULL,
|
|
"type" TEXT NOT NULL,
|
|
"provider" TEXT NOT NULL,
|
|
"providerAccountId" TEXT NOT NULL,
|
|
"refresh_token" TEXT,
|
|
"access_token" TEXT,
|
|
"expires_at" INTEGER,
|
|
"token_type" TEXT,
|
|
"scope" TEXT,
|
|
"id_token" TEXT,
|
|
"session_state" TEXT,
|
|
|
|
CONSTRAINT "Account_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Session" (
|
|
"id" TEXT NOT NULL,
|
|
"sessionToken" TEXT NOT NULL,
|
|
"userId" INTEGER NOT NULL,
|
|
"expires" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Session_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Document" (
|
|
"id" SERIAL NOT NULL,
|
|
"created" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"userId" INTEGER NOT NULL,
|
|
"title" TEXT NOT NULL,
|
|
"status" "DocumentStatus" NOT NULL DEFAULT 'DRAFT',
|
|
"document" TEXT NOT NULL,
|
|
|
|
CONSTRAINT "Document_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Recipient" (
|
|
"id" SERIAL NOT NULL,
|
|
"documentId" INTEGER NOT NULL,
|
|
"email" VARCHAR(255) NOT NULL,
|
|
"name" VARCHAR(255) NOT NULL DEFAULT '',
|
|
"token" TEXT NOT NULL,
|
|
"expired" TIMESTAMP(3),
|
|
"readStatus" "ReadStatus" NOT NULL DEFAULT 'NOT_OPENED',
|
|
"signingStatus" "SigningStatus" NOT NULL DEFAULT 'NOT_SIGNED',
|
|
"sendStatus" "SendStatus" NOT NULL DEFAULT 'NOT_SENT',
|
|
|
|
CONSTRAINT "Recipient_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Field" (
|
|
"id" SERIAL NOT NULL,
|
|
"documentId" INTEGER NOT NULL,
|
|
"recipientId" INTEGER,
|
|
"type" "FieldType" NOT NULL,
|
|
"page" INTEGER NOT NULL,
|
|
"positionX" INTEGER NOT NULL DEFAULT 0,
|
|
"positionY" INTEGER NOT NULL DEFAULT 0,
|
|
"customText" TEXT NOT NULL,
|
|
"inserted" BOOLEAN NOT NULL,
|
|
|
|
CONSTRAINT "Field_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Signature" (
|
|
"id" SERIAL NOT NULL,
|
|
"created" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"recipientId" INTEGER NOT NULL,
|
|
"fieldId" INTEGER NOT NULL,
|
|
"signatureImageAsBase64" TEXT,
|
|
"typedSignature" TEXT,
|
|
|
|
CONSTRAINT "Signature_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "User_email_key" ON "User"("email");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Account_provider_providerAccountId_key" ON "Account"("provider", "providerAccountId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Session_sessionToken_key" ON "Session"("sessionToken");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Signature_fieldId_key" ON "Signature"("fieldId");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Account" ADD CONSTRAINT "Account_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Session" ADD CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Document" ADD CONSTRAINT "Document_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Recipient" ADD CONSTRAINT "Recipient_documentId_fkey" FOREIGN KEY ("documentId") REFERENCES "Document"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Field" ADD CONSTRAINT "Field_documentId_fkey" FOREIGN KEY ("documentId") REFERENCES "Document"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Field" ADD CONSTRAINT "Field_recipientId_fkey" FOREIGN KEY ("recipientId") REFERENCES "Recipient"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Signature" ADD CONSTRAINT "Signature_recipientId_fkey" FOREIGN KEY ("recipientId") REFERENCES "Recipient"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Signature" ADD CONSTRAINT "Signature_fieldId_fkey" FOREIGN KEY ("fieldId") REFERENCES "Field"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|