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") }