generator client { provider = "prisma-client-js" } datasource db { provider = "postgresql" } enum Role { ADMIN PARTNER_USER } enum DocumentType { NDA MSA } model Organization { id String @id @default(uuid()) name String status String @default("ACTIVE") createdAt DateTime @default(now()) updatedAt DateTime @updatedAt users User[] } model User { id String @id @default(uuid()) email String @unique passwordHash String role Role @default(PARTNER_USER) mfaEnabled Boolean @default(true) mfaSecret String? inviteToken String? @unique inviteTokenExp DateTime? organizationId String? onboardingStatus String @default("PENDING_ONBOARDING") organization Organization? @relation(fields: [organizationId], references: [id]) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt acceptances LegalAcceptance[] auditLogs AuditLog[] } model Asset { id String @id @default(uuid()) title String type String size Int url String version Int @default(1) uploadedBy String createdAt DateTime @default(now()) updatedAt DateTime @updatedAt } model Folder { id String @id @default(uuid()) name String parentId String? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt } model LegalDocument { id String @id @default(uuid()) type DocumentType version String content String @db.Text isActive Boolean @default(false) createdAt DateTime @default(now()) acceptances LegalAcceptance[] } model LegalAcceptance { id String @id @default(uuid()) docId String userId String ipAddress String signatureHash String? documentUrl String? acceptedAt DateTime @default(now()) document LegalDocument @relation(fields: [docId], references: [id]) user User @relation(fields: [userId], references: [id]) } model AuditLog { id String @id @default(uuid()) actorId String action String resource String metadata Json? createdAt DateTime @default(now()) actor User @relation(fields: [actorId], references: [id]) }