69 lines
1.9 KiB
Plaintext
69 lines
1.9 KiB
Plaintext
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
|
|
} |