55 lines
1.7 KiB
Plaintext
55 lines
1.7 KiB
Plaintext
|
|
model User {
|
||
|
|
id Int @id @default(autoincrement())
|
||
|
|
mobileNumber String @unique @db.Char(11)
|
||
|
|
password String
|
||
|
|
firstName String
|
||
|
|
lastName String
|
||
|
|
roleId Int
|
||
|
|
createdAt DateTime @default(now()) @db.Timestamp(0)
|
||
|
|
deletedAt DateTime? @db.Timestamp(0)
|
||
|
|
updatedAt DateTime @updatedAt @db.Timestamp(0)
|
||
|
|
refreshTokens RefreshToken[]
|
||
|
|
role Role @relation("User_Role", fields: [roleId], references: [id], onUpdate: NoAction)
|
||
|
|
|
||
|
|
@@index([roleId], map: "Users_roleId_fkey")
|
||
|
|
@@map("Users")
|
||
|
|
}
|
||
|
|
|
||
|
|
model Role {
|
||
|
|
id Int @id @default(autoincrement())
|
||
|
|
name String @unique @db.VarChar(100)
|
||
|
|
description String? @db.Text
|
||
|
|
permissions Json?
|
||
|
|
createdAt DateTime @default(now()) @db.Timestamp(0)
|
||
|
|
updatedAt DateTime @updatedAt @db.Timestamp(0)
|
||
|
|
deletedAt DateTime? @db.Timestamp(0)
|
||
|
|
users User[] @relation("User_Role")
|
||
|
|
|
||
|
|
@@map("Roles")
|
||
|
|
}
|
||
|
|
|
||
|
|
model OtpCode {
|
||
|
|
id Int @id @default(autoincrement())
|
||
|
|
mobileNumber String @db.VarChar(20)
|
||
|
|
code String @db.VarChar(10)
|
||
|
|
used Boolean @default(false)
|
||
|
|
expiresAt DateTime @db.Timestamp(0)
|
||
|
|
createdAt DateTime @default(now()) @db.Timestamp(0)
|
||
|
|
|
||
|
|
@@index([mobileNumber])
|
||
|
|
@@map("Otp_Codes")
|
||
|
|
}
|
||
|
|
|
||
|
|
model RefreshToken {
|
||
|
|
id Int @id @default(autoincrement())
|
||
|
|
tokenHash String @db.VarChar(255)
|
||
|
|
userId Int
|
||
|
|
revoked Boolean @default(false)
|
||
|
|
expiresAt DateTime @db.Timestamp(0)
|
||
|
|
createdAt DateTime @default(now()) @db.Timestamp(0)
|
||
|
|
user User @relation(fields: [userId], references: [id])
|
||
|
|
|
||
|
|
@@index([userId])
|
||
|
|
@@map("Refresh_Tokens")
|
||
|
|
}
|