118 lines
3.0 KiB
Plaintext
118 lines
3.0 KiB
Plaintext
generator client {
|
|
provider = "prisma-client-js"
|
|
engineType = "binary"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "postgresql"
|
|
url = env("PG_DATABASE_URL")
|
|
}
|
|
|
|
generator nestgraphql {
|
|
provider = "node node_modules/prisma-nestjs-graphql"
|
|
output = "../../src/api/@generated"
|
|
}
|
|
|
|
model User {
|
|
id String @id
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
deletedAt DateTime?
|
|
lastSeen DateTime?
|
|
disabled Boolean @default(false)
|
|
displayName String
|
|
email String @unique
|
|
avatarUrl String?
|
|
locale String
|
|
phoneNumber String?
|
|
passwordHash String?
|
|
emailVerified Boolean @default(false)
|
|
metadata Json?
|
|
WorkspaceMember WorkspaceMember?
|
|
companies Company[]
|
|
RefreshTokens RefreshToken[]
|
|
|
|
@@map("users")
|
|
}
|
|
|
|
model Workspace {
|
|
id String @id
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
deletedAt DateTime?
|
|
domainName String @unique
|
|
displayName String
|
|
WorkspaceMember WorkspaceMember[]
|
|
companies Company[]
|
|
people Person[]
|
|
|
|
@@map("workspaces")
|
|
}
|
|
|
|
model WorkspaceMember {
|
|
id String @id
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
deletedAt DateTime?
|
|
userId String @unique
|
|
user User @relation(fields: [userId], references: [id])
|
|
workspaceId String
|
|
workspace Workspace @relation(fields: [workspaceId], references: [id])
|
|
|
|
@@map("workspace_members")
|
|
}
|
|
|
|
model Company {
|
|
id String @id
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
deletedAt DateTime?
|
|
name String
|
|
domainName String
|
|
address String
|
|
employees Int?
|
|
accountOwnerId String?
|
|
accountOwner User? @relation(fields: [accountOwnerId], references: [id])
|
|
people Person[]
|
|
|
|
/// @TypeGraphQL.omit(input: true)
|
|
workspaceId String
|
|
/// @TypeGraphQL.omit(input: true)
|
|
workspace Workspace @relation(fields: [workspaceId], references: [id])
|
|
|
|
@@map("companies")
|
|
}
|
|
|
|
model Person {
|
|
id String @id
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
deletedAt DateTime?
|
|
firstname String
|
|
lastname String
|
|
email String
|
|
phone String
|
|
city String
|
|
companyId String?
|
|
company Company? @relation(fields: [companyId], references: [id])
|
|
|
|
/// @TypeGraphQL.omit(input: true)
|
|
workspaceId String
|
|
/// @TypeGraphQL.omit(input: true)
|
|
workspace Workspace @relation(fields: [workspaceId], references: [id])
|
|
|
|
@@map("people")
|
|
}
|
|
|
|
model RefreshToken {
|
|
id String @id
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
deletedAt DateTime?
|
|
refreshToken String
|
|
userId String
|
|
user User @relation(fields: [userId], references: [id])
|
|
|
|
@@map("refresh_tokens")
|
|
}
|