Add educator email invitations and staff notification preferences

This commit is contained in:
t.indorf
2026-10-08 11:32:38 +02:00
parent 043fed2e46
commit 90b8843cda
15 changed files with 700 additions and 39 deletions
+34 -2
View File
@@ -1,5 +1,5 @@
-- Einmalige additive Änderung gegen Ausgangscommit ec3f4f9.
-- Alternativ zum bestehenden prisma db push, nicht danach erneut ausführen.
-- Einmalige Einführung des vollständigen Personalbereichs inklusive E-Mails ab ec3f4f9.
-- Alternative zu prisma db push, nicht zusätzlich oder mehrfach ausführen.
BEGIN;
-- CreateEnum
@@ -11,6 +11,9 @@ CREATE TYPE "StaffLeaveKind" AS ENUM ('VACATION', 'TIME_OFF', 'SICKNESS');
-- CreateEnum
CREATE TYPE "StaffWeekStatus" AS ENUM ('DRAFT', 'SUBMITTED', 'APPROVED');
-- AlterTable
ALTER TABLE "users" ADD COLUMN "staffDecisionEmails" BOOLEAN NOT NULL DEFAULT true;
-- CreateTable
CREATE TABLE "staff_profiles" (
"id" TEXT NOT NULL,
@@ -26,6 +29,26 @@ CREATE TABLE "staff_profiles" (
CONSTRAINT "staff_profiles_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "staff_emails" (
"id" TEXT NOT NULL,
"profileId" TEXT NOT NULL,
"userId" TEXT NOT NULL,
"toAdmins" BOOLEAN NOT NULL DEFAULT false,
"subject" TEXT NOT NULL,
"message" TEXT NOT NULL,
"path" TEXT NOT NULL,
"inviteToken" TEXT,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"sentAt" TIMESTAMP(3),
"skippedAt" TIMESTAMP(3),
"leaseUntil" TIMESTAMP(3),
"attempts" INTEGER NOT NULL DEFAULT 0,
"failed" BOOLEAN NOT NULL DEFAULT false,
CONSTRAINT "staff_emails_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "staff_work_patterns" (
"id" TEXT NOT NULL,
@@ -173,6 +196,9 @@ CREATE UNIQUE INDEX "staff_profiles_userId_key" ON "staff_profiles"("userId");
-- CreateIndex
CREATE INDEX "staff_profiles_kitaId_idx" ON "staff_profiles"("kitaId");
-- CreateIndex
CREATE INDEX "staff_emails_profileId_sentAt_skippedAt_idx" ON "staff_emails"("profileId", "sentAt", "skippedAt");
-- CreateIndex
CREATE UNIQUE INDEX "staff_work_patterns_profileId_effectiveFrom_key" ON "staff_work_patterns"("profileId", "effectiveFrom");
@@ -215,6 +241,12 @@ ALTER TABLE "staff_profiles" ADD CONSTRAINT "staff_profiles_educatorId_fkey" FOR
-- AddForeignKey
ALTER TABLE "staff_profiles" ADD CONSTRAINT "staff_profiles_userId_fkey" FOREIGN KEY ("userId") REFERENCES "users"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "staff_emails" ADD CONSTRAINT "staff_emails_profileId_fkey" FOREIGN KEY ("profileId") REFERENCES "staff_profiles"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "staff_emails" ADD CONSTRAINT "staff_emails_userId_fkey" FOREIGN KEY ("userId") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "staff_work_patterns" ADD CONSTRAINT "staff_work_patterns_profileId_fkey" FOREIGN KEY ("profileId") REFERENCES "staff_profiles"("id") ON DELETE CASCADE ON UPDATE CASCADE;