mirror of
https://github.com/Since-3/Kuma.git
synced 2026-10-12 21:41:17 +00:00
137 lines
3.8 KiB
SQL
137 lines
3.8 KiB
SQL
-- CreateTable
|
|
CREATE TABLE "User" (
|
|
"id" TEXT NOT NULL,
|
|
"name" TEXT,
|
|
"complaints" TEXT,
|
|
"birthday" TIMESTAMP(3),
|
|
"plz" TEXT,
|
|
"city" TEXT,
|
|
"street" TEXT,
|
|
"houseNumber" TEXT,
|
|
"email" TEXT NOT NULL,
|
|
"tel" TEXT,
|
|
"gender" TEXT,
|
|
"is2FA" BOOLEAN NOT NULL DEFAULT false,
|
|
"isSendingMail" BOOLEAN NOT NULL DEFAULT false,
|
|
"isNewsletter" BOOLEAN NOT NULL DEFAULT false,
|
|
"pbSrc" TEXT,
|
|
"isValid" BOOLEAN NOT NULL DEFAULT false,
|
|
"createdAt" TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3),
|
|
|
|
CONSTRAINT "User_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Employee" (
|
|
"id" TEXT NOT NULL,
|
|
"firstName" TEXT NOT NULL,
|
|
"lastName" TEXT NOT NULL,
|
|
"email" TEXT NOT NULL,
|
|
"is2FA" BOOLEAN NOT NULL DEFAULT false,
|
|
"isSendingMail" BOOLEAN NOT NULL DEFAULT false,
|
|
"pbSrc" TEXT,
|
|
"status" TEXT,
|
|
"affiliation" TEXT,
|
|
"label" TEXT,
|
|
"qualification" TEXT,
|
|
"authorization" JSONB,
|
|
"createdAt" TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3),
|
|
|
|
CONSTRAINT "Employee_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "UserTraining" (
|
|
"userId" TEXT NOT NULL,
|
|
"employeeId" TEXT NOT NULL,
|
|
|
|
CONSTRAINT "UserTraining_pkey" PRIMARY KEY ("userId","employeeId")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Manager" (
|
|
"id" TEXT NOT NULL,
|
|
"firstName" TEXT NOT NULL,
|
|
"lastName" TEXT NOT NULL,
|
|
"tel" TEXT,
|
|
"email" TEXT NOT NULL,
|
|
"is2FA" BOOLEAN NOT NULL DEFAULT false,
|
|
"isSendingMail" BOOLEAN NOT NULL DEFAULT false,
|
|
"pbSrc" TEXT,
|
|
"createdAt" TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3),
|
|
|
|
CONSTRAINT "Manager_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Business" (
|
|
"id" TEXT NOT NULL,
|
|
"managerId" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"address" TEXT NOT NULL,
|
|
"email" TEXT NOT NULL,
|
|
"title" TEXT NOT NULL,
|
|
"ustId" TEXT,
|
|
"banking" TEXT,
|
|
"plan" TEXT,
|
|
"subscription" JSONB,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Business_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Course" (
|
|
"id" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"sport" TEXT NOT NULL,
|
|
"date" TIMESTAMP(3) NOT NULL,
|
|
"time" TEXT NOT NULL,
|
|
"trainers" TEXT[],
|
|
"room" TEXT NOT NULL,
|
|
"description" TEXT NOT NULL,
|
|
"maxParticipants" INTEGER NOT NULL,
|
|
"isStandingOrder" BOOLEAN NOT NULL DEFAULT false,
|
|
"frequency" TEXT,
|
|
"weekdays" TEXT[],
|
|
"status" TEXT NOT NULL DEFAULT 'draft',
|
|
"createdBy" TEXT NOT NULL,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Course_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Room" (
|
|
"id" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"status" TEXT NOT NULL DEFAULT 'draft',
|
|
"createdBy" TEXT NOT NULL,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Room_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "User_email_key" ON "User"("email");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Employee_email_key" ON "Employee"("email");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Manager_email_key" ON "Manager"("email");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "UserTraining" ADD CONSTRAINT "UserTraining_employeeId_fkey" FOREIGN KEY ("employeeId") REFERENCES "Employee"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "UserTraining" ADD CONSTRAINT "UserTraining_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Business" ADD CONSTRAINT "Business_managerId_fkey" FOREIGN KEY ("managerId") REFERENCES "Manager"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|