- Erweiterbare Registry aller 15 QR-Typen; nur "Website" ist aktiv, die
uebrigen erscheinen als Platzhalter mit Badge "Bald verfuegbar".
- defineQrType() kapselt Zod-Schema, Kodierung und Redirect-Ziel je Typ,
sodass ein V2-Typ nur aus einem Registry-Eintrag plus Formular besteht.
- Serverseitige QR-Erzeugung (PNG/SVG) mit Farben, Groesse, Fehlerkorrektur
und Rand; Live-Vorschau ueber /api/qr/preview.
- Dynamische Codes: Kurz-URL {BASE_URL}/r/{slug}, 302-Redirect mit
Scan-Zaehler, CRUD unter /api/codes.
- Prisma 7 mit pg-Driver-Adapter und Initial-Migration fuer PostgreSQL.
- Deutsche Oberflaeche mit Tailwind CSS, helles Theme, responsiv.
26 lines
757 B
SQL
26 lines
757 B
SQL
-- CreateTable
|
|
CREATE TABLE "QrCode" (
|
|
"id" TEXT NOT NULL,
|
|
"slug" TEXT NOT NULL,
|
|
"type" TEXT NOT NULL,
|
|
"label" TEXT,
|
|
"data" JSONB NOT NULL,
|
|
"fgColor" TEXT NOT NULL DEFAULT '#000000',
|
|
"bgColor" TEXT NOT NULL DEFAULT '#FFFFFF',
|
|
"size" INTEGER NOT NULL DEFAULT 512,
|
|
"ecLevel" TEXT NOT NULL DEFAULT 'M',
|
|
"margin" INTEGER NOT NULL DEFAULT 4,
|
|
"scans" INTEGER NOT NULL DEFAULT 0,
|
|
"lastScanAt" TIMESTAMP(3),
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "QrCode_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "QrCode_slug_key" ON "QrCode"("slug");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "QrCode_createdAt_idx" ON "QrCode"("createdAt");
|