// Datenmodell von ProxDeploy. Namensabbildung zur Vorgabe: siehe CLAUDE.md. // Modelle kommen mit dem Issue dazu, das sie braucht – der Plan in docs/architektur.md // zeigt das Zielbild. generator client { provider = "prisma-client" output = "../src/generated/prisma" } datasource db { provider = "postgresql" } enum Rolle { ADMIN OPERATOR } enum Quelle { WEB CLI API SYSTEM } model Benutzer { id String @id @default(cuid()) benutzername String @unique anzeigename String email String? /// argon2id; leer bei Benutzern, die sich nur per OIDC anmelden. passwortHash String? oidcSubjekt String? @unique rolle Rolle @default(OPERATOR) aktiv Boolean @default(true) /// Persönliche Standardwerte im Assistenten. standards Json? erstelltAm DateTime @default(now()) geaendertAm DateTime @updatedAt protokoll Protokoll[] } /// Audit-Log. Nur anhängen – ein Trigger verweigert UPDATE und DELETE. model Protokoll { id BigInt @id @default(autoincrement()) zeit DateTime @default(now()) benutzerId String? benutzer Benutzer? @relation(fields: [benutzerId], references: [id], onDelete: SetNull) quelle Quelle aktion String ziel String? details Json? ip String? @@index([zeit]) @@index([benutzerId, zeit]) } model Einstellung { schluessel String @id wert Json geaendertAm DateTime @updatedAt }