Files
twenty_crm/server/src/database/schema.prisma
Sammy Teillet fecf45f3bc Sammy/t 245 implement resolvers matching hasura (#139)
* chore: remove old resolvers

* refactor: move generated file in code base

* feature: use only necessary code in graphql

* feature: implement query companies

* feature: implement companies and relations

* feature: implement all companies resolvers

* feature: implement all people resolver

* feature: add use resolvers

* feature: implement resolvers for workspace and users
2023-05-25 17:10:00 +02:00

111 lines
2.8 KiB
Plaintext

generator client {
provider = "prisma-client-js"
}
generator typegraphql {
provider = "typegraphql-prisma"
output = "../api/graphql"
}
datasource db {
provider = "postgresql"
url = env("SERVER_DATABASE_URL")
}
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[]
workspaceId String
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])
workspaceId String
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")
}