generator client { provider = "prisma-client-js" } datasource db { provider = "mysql" url = env("DATABASE_URL") } model User { id String @id @default(cuid()) name String? email String? @unique emailVerified DateTime? passwordHash String? photoProfile String? directPermissions Permission[] @relation("PermissionToUser") roles Role[] @relation("RoleToUser") linkRequests Office365LinkRequest[] } model Role { id String @id @default(cuid()) code String @unique name String description String @default("") isActive Boolean @default(false) permissions Permission[] @relation("PermissionToRole") users User[] @relation("RoleToUser") } model Permission { id String @id @default(cuid()) code String @unique name String description String @default("") isActive Boolean @default(false) roles Role[] @relation("PermissionToRole") directUsers User[] @relation("PermissionToUser") } enum Office365LinkRequestStatus { WAITING ACCEPTED CANCELLED REJECTED } model Office365LinkRequest { id String @id @default(cuid()) creator User @relation(fields: [createdBy], references: [id]) status Office365LinkRequestStatus @default(WAITING) requestedAt DateTime @default(now()) acceptedAt DateTime? cancelledAt DateTime? rejectedAt DateTime? createdBy String links Office365ReferralLink[] } model Office365ReferralLink { id String @id @default(cuid()) request Office365LinkRequest @relation(fields: [requestId], references: [id]) email String activePeriod String numberOfUsers Int link String? requestId String }