generator client { provider = "prisma-client" output = "../src/generated/prisma" } datasource db { provider = "postgresql" } model User { id String @id @default(uuid()) name String email String emailVerified Boolean @default(false) image String? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt sessions Session[] accounts Account[] role String? banned Boolean? @default(false) banReason String? banExpires DateTime? members Member[] invitations Invitation[] @@unique([email]) @@map("user") } model Session { id String @id @default(uuid()) expiresAt DateTime token String createdAt DateTime @default(now()) updatedAt DateTime @updatedAt ipAddress String? userAgent String? userId String user User @relation(fields: [userId], references: [id], onDelete: Cascade) impersonatedBy String? activeOrganizationId String? @@unique([token]) @@index([userId]) @@map("session") } model Account { id String @id @default(uuid()) accountId String providerId String userId String user User @relation(fields: [userId], references: [id], onDelete: Cascade) accessToken String? refreshToken String? idToken String? accessTokenExpiresAt DateTime? refreshTokenExpiresAt DateTime? scope String? password String? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt @@index([userId]) @@map("account") } model Verification { id String @id @default(uuid()) identifier String value String expiresAt DateTime createdAt DateTime @default(now()) updatedAt DateTime @updatedAt @@index([identifier]) @@map("verification") } model Organization { id String @id @default(uuid()) name String slug String logo String? createdAt DateTime metadata String? members Member[] invitations Invitation[] color String? @default("#000000") @@unique([slug]) @@map("organization") } model Member { id String @id @default(uuid()) organizationId String organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade) userId String user User @relation(fields: [userId], references: [id], onDelete: Cascade) role String @default("member") createdAt DateTime @@index([organizationId]) @@index([userId]) @@map("member") } model Invitation { id String @id @default(uuid()) organizationId String organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade) email String role String? status String @default("pending") expiresAt DateTime createdAt DateTime @default(now()) inviterId String user User @relation(fields: [inviterId], references: [id], onDelete: Cascade) @@index([organizationId]) @@index([email]) @@map("invitation") } model Setting { id String @id @default(uuid()) key String @unique value String description String relation String @default("admin") createdAt DateTime @default(now()) updatedAt DateTime @updatedAt @@map("setting") }