Copy overhaul + qr designs
This commit is contained in:
38
sql/2026-07-27_APPLY.sql
Normal file
38
sql/2026-07-27_APPLY.sql
Normal 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;
|
||||
Reference in New Issue
Block a user