Copy overhaul + qr designs

This commit is contained in:
2026-07-27 17:54:59 +02:00
parent 033bc7e29d
commit 70d97aa970
144 changed files with 23107 additions and 1699 deletions

38
sql/2026-07-27_APPLY.sql Normal file
View File

@@ -0,0 +1,38 @@
-- QR Master, Deploy 27.07.2026 - nur die Statements, die ausgefuehrt werden muessen.
-- Alle idempotent, ein zweiter Lauf schadet nicht.
-- Danach zwingend: npx prisma generate
BEGIN;
CREATE INDEX IF NOT EXISTS "QRCode_userId_type_status_idx"
ON "QRCode" ("userId", "type", "status");
ALTER TABLE "User" ADD COLUMN IF NOT EXISTS "limitReachedNudgeSentAt" TIMESTAMP(3);
ALTER TABLE "User" ADD COLUMN IF NOT EXISTS "firstScanNudgeSentAt" TIMESTAMP(3);
CREATE INDEX IF NOT EXISTS "User_firstScanAt_firstScanNudgeSentAt_idx"
ON "User" ("firstScanAt", "firstScanNudgeSentAt");
-- Schuetzt Bestandsnutzer: ohne diese Zeile geht die "erster Scan"-Mail beim
-- ersten Cron-Lauf an jeden Nutzer mit Scan-Historie.
UPDATE "User"
SET "firstScanNudgeSentAt" = now()
WHERE "firstScanAt" IS NOT NULL
AND "firstScanAt" < now() - interval '7 days';
CREATE TABLE IF NOT EXISTS "QRDesignPreset" (
"id" TEXT PRIMARY KEY,
"userId" TEXT NOT NULL REFERENCES "User"("id") ON DELETE CASCADE,
"name" TEXT NOT NULL,
"style" JSONB NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT now(),
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT now()
);
CREATE INDEX IF NOT EXISTS "QRDesignPreset_userId_idx"
ON "QRDesignPreset" ("userId");
CREATE UNIQUE INDEX IF NOT EXISTS "QRDesignPreset_userId_name_key"
ON "QRDesignPreset" ("userId", "name");
COMMIT;