generator client {
provider = "prisma-client-js"
previewFeatures = ["filterJson", "fullTextSearch"]
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
enum GlobalRole {
GUEST
CUSTOMER
ADMIN
SUPER_ADMIN
}
model Organization {
id String @id @default(cuid())
slug String @unique
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
avatarUri String?
displayName String?
websiteUrl String?
repositories Repository[] @relation("ManyRepositoriesToOneOrganization")
owner User @relation("ManyOwnedOrganizationsToOneOwnerUser", fields: [ownerId], references: [id])
ownerId String
}
model Repository {
id String @id @default(cuid())
slug String @unique
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
avatarUri String?
displayName String?
keywords String[]
shortDescription String?
websiteUrl String?
organization Organization @relation("ManyRepositoriesToOneOrganization", fields: [organizationId], references: [id])
organizationId String
}
model Session {
id String @id @default(cuid())
sessionId String @unique
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
expiresAt DateTime?
data Json?
detectedUserAgent String @default("")
detectedIPAddress String @default("")
}
model User {
id String @id @default(cuid())
role GlobalRole @default(CUSTOMER)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
username String @unique
email String @unique
hashedPassword String
displayName String?
avatarUri String?
organizations Organization[] @relation("ManyOwnedOrganizationsToOneOwnerUser")
}