Drei Tabellen: die Einstellung je Benutzer, angemeldete Push-Geraete und ein Nachweis je verschickter Meldung. Der Nachweis ist das Gedaechtnis gegen Wiederholungen — ohne ihn kaeme dieselbe Sache bei jedem Durchlauf erneut. Kalenderkonten bekommen einen Zaehler fuer Fehlversuche in Folge, damit ein Abgleichfehler erst nach mehreren Versuchen gemeldet wird. VAPID- und SMTP-Werte sind freiwillig: fehlen sie, laeuft der Planer ohne den jeweiligen Weg weiter und sagt es in den Einstellungen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
67 lines
2.5 KiB
SQL
67 lines
2.5 KiB
SQL
-- CreateTable
|
|
CREATE TABLE "benachrichtigungseinstellung" (
|
|
"id" TEXT NOT NULL,
|
|
"benutzerId" TEXT NOT NULL,
|
|
"anlaesse" TEXT NOT NULL DEFAULT 'tagesueberblick,faelligkeit',
|
|
"perPush" BOOLEAN NOT NULL DEFAULT false,
|
|
"perMail" BOOLEAN NOT NULL DEFAULT false,
|
|
"ueberblickUm" INTEGER NOT NULL DEFAULT 420,
|
|
"ruheVon" INTEGER NOT NULL DEFAULT 1200,
|
|
"ruheBis" INTEGER NOT NULL DEFAULT 420,
|
|
"ruheAmWochenende" BOOLEAN NOT NULL DEFAULT false,
|
|
"zeitblockVorlaufMinuten" INTEGER NOT NULL DEFAULT 10,
|
|
"erstelltAm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"aktualisiertAm" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "benachrichtigungseinstellung_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "push_geraet" (
|
|
"id" TEXT NOT NULL,
|
|
"benutzerId" TEXT NOT NULL,
|
|
"endpunkt" TEXT NOT NULL,
|
|
"p256dh" TEXT NOT NULL,
|
|
"auth" TEXT NOT NULL,
|
|
"bezeichnung" TEXT,
|
|
"erstelltAm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"zuletztBenutzt" TIMESTAMP(3),
|
|
"fehlversuche" INTEGER NOT NULL DEFAULT 0,
|
|
|
|
CONSTRAINT "push_geraet_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "meldungsnachweis" (
|
|
"id" TEXT NOT NULL,
|
|
"benutzerId" TEXT NOT NULL,
|
|
"schluessel" TEXT NOT NULL,
|
|
"gesendetAm" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "meldungsnachweis_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "benachrichtigungseinstellung_benutzerId_key" ON "benachrichtigungseinstellung"("benutzerId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "push_geraet_endpunkt_key" ON "push_geraet"("endpunkt");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "push_geraet_benutzerId_idx" ON "push_geraet"("benutzerId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "meldungsnachweis_gesendetAm_idx" ON "meldungsnachweis"("gesendetAm");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "meldungsnachweis_benutzerId_schluessel_key" ON "meldungsnachweis"("benutzerId", "schluessel");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "benachrichtigungseinstellung" ADD CONSTRAINT "benachrichtigungseinstellung_benutzerId_fkey" FOREIGN KEY ("benutzerId") REFERENCES "benutzer"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "push_geraet" ADD CONSTRAINT "push_geraet_benutzerId_fkey" FOREIGN KEY ("benutzerId") REFERENCES "benutzer"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "meldungsnachweis" ADD CONSTRAINT "meldungsnachweis_benutzerId_fkey" FOREIGN KEY ("benutzerId") REFERENCES "benutzer"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|