model AuditLog { id Int @id @default(autoincrement()) userId String createdUserId String? reportId Int? // Generalized action type to cover penalties and user history events action AuditLogAction? reason String? until DateTime? suspended Boolean @default(false) timestamp DateTime @default(now()) // relations: User User @relation(fields: [userId], references: [id], onDelete: Cascade) CreatedUser User? @relation("CreatedPenalties", fields: [createdUserId], references: [id]) Report Report? @relation(fields: [reportId], references: [id]) } enum AuditLogAction { // Penalty actions KICK TIME_BAN PERMISSIONS_REVOCED BAN // User history events USER_DELETED USER_PROFILE_UPDATED }