amati/prisma/schema.prisma
2024-02-14 09:56:37 +07:00

47 lines
1.3 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 UserPhotoProfiles?
directPermissions Permission[] @relation("PermissionToUser")
roles Role[] @relation("RoleToUser")
}
model UserPhotoProfiles {
id String @id @default(cuid())
userId String @unique
path String
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
}
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")
}