pendantator/api/db/migrations/20241006155320_initial_setup/migration.sql

45 lines
1.4 KiB
SQL

-- CreateTable
CREATE TABLE "Account" (
"id" TEXT NOT NULL PRIMARY KEY,
"active" BOOLEAN NOT NULL DEFAULT true,
"PaidUp" BOOLEAN NOT NULL DEFAULT true,
"contactAddressId" TEXT NOT NULL,
"userId" TEXT,
CONSTRAINT "Account_contactAddressId_fkey" FOREIGN KEY ("contactAddressId") REFERENCES "ContactAddress" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
CONSTRAINT "Account_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE SET NULL ON UPDATE CASCADE
);
-- CreateTable
CREATE TABLE "ContactAddress" (
"id" TEXT NOT NULL PRIMARY KEY,
"Name" TEXT NOT NULL,
"Address1" TEXT NOT NULL,
"Address2" TEXT NOT NULL,
"Address3" TEXT NOT NULL,
"Town" TEXT NOT NULL,
"PostalCode" TEXT NOT NULL
);
-- CreateTable
CREATE TABLE "User" (
"id" TEXT NOT NULL PRIMARY KEY,
"userId" TEXT NOT NULL,
"email" TEXT NOT NULL,
"contactAddressId" TEXT NOT NULL,
CONSTRAINT "User_contactAddressId_fkey" FOREIGN KEY ("contactAddressId") REFERENCES "ContactAddress" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
);
-- CreateTable
CREATE TABLE "Role" (
"id" TEXT NOT NULL PRIMARY KEY,
"name" TEXT NOT NULL,
"userId" TEXT,
CONSTRAINT "Role_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE SET NULL ON UPDATE CASCADE
);
-- CreateIndex
CREATE UNIQUE INDEX "User_userId_key" ON "User"("userId");
-- CreateIndex
CREATE UNIQUE INDEX "Role_name_key" ON "Role"("name");