docker-fobi/docker-compose/logintrainer/prisma/schema.prisma
Jesko Anschütz ea52d39e6c logintrainer
2025-11-04 21:35:45 +01:00

42 lines
1.2 KiB
Text

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])
}