generator client { provider = "prisma-client-js" } datasource db { provider = "sqlite" url = env("DATABASE_URL") } model User { id Int @id @default(autoincrement()) username String @unique password String // bcrypt hash createdAt DateTime @default(now()) attempts LoginAttempt[] } model LoginAttempt { id Int @id @default(autoincrement()) userId Int? user User? @relation(fields: [userId], references: [id], onDelete: SetNull) username String success Boolean // nur bei Fehlversuch befüllt: enteredPassword String? className String? // gemessene Zeit vom ersten Tastendruck bis zum erfolgreichen Login (Millisekunden) loginDurationMs Int? // Länge des verwendeten Passworts bei erfolgreichem Login (nur wenn Statistik aktiviert) passwordLength Int? passwordPolicyViolation Boolean @default(false) passwordHasUpper Boolean @default(false) passwordHasLower Boolean @default(false) passwordHasDigit Boolean @default(false) passwordHasSpecial Boolean @default(false) createdAt DateTime @default(now()) @@index([createdAt]) @@index([username]) @@index([className]) }