// QR-Code-Generator — Datenmodell // Doku: https://pris.ly/d/prisma-schema generator client { provider = "prisma-client" output = "../src/generated/prisma" } datasource db { provider = "postgresql" } /// Freigabe eines QR-Typs durch die Verwaltung. /// /// Es gibt nur Zeilen für Typen, die bewusst umgeschaltet wurden — fehlt ein /// Eintrag, gilt der Typ als freigegeben. So bleibt eine frische Installation /// ohne Vorbelegung nutzbar, und neue Typen aus späteren Versionen sind /// automatisch sichtbar. model QrTypeSetting { /// Kennung aus der Typ-Registry, z. B. "website". type String @id enabled Boolean updatedAt DateTime @updatedAt } /// Ein dynamischer QR-Code. Der QR-Code kodiert `{BASE_URL}/r/{slug}` und /// leitet beim Aufruf auf das Ziel weiter, das aus `data` aufgelöst wird. /// /// `type` + `data` sind bewusst generisch gehalten: V1 kennt nur den Typ /// "website" (`data = { url: "https://…" }`), V2-Typen (vCard, WLAN, …) /// legen ihr eigenes Payload-Format in `data` ab, ohne Schemaänderung. model QrCode { id String @id @default(cuid()) slug String @unique type String label String? data Json fgColor String @default("#000000") bgColor String @default("#FFFFFF") size Int @default(512) ecLevel String @default("M") margin Int @default(4) scans Int @default(0) lastScanAt DateTime? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt @@index([createdAt]) }