The database schema is defined in packages/database/prisma/schema.prisma.
Schema Location
packages/database/
├── prisma/
│ └── schema.prisma # Main schema file
│ └── user.prisma # User schema file
│ └── billing.prisma # Billing schema file
User Schema
model User {
id String @id @default(cuid())
name String
email String @unique
emailVerified Boolean @default(false)
image String?
role USER_ROLE @default(user)
banned Boolean @default(false)
bannedReason String?
banExpires Int?
access ACCCOUNT_ACCESS @default(TRIAL)
creditsUsed Int @default(0)
creditsTotal Int @default(20)
password String?
accounts Account[]
sessions Session[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@schema("user_schema")
}
enum USER_ROLE {
user
admin
@@schema("user_schema")
}
enum ACCCOUNT_ACCESS {
TRIAL
PRO
ENTERPRISE
UNLIMITED
@@schema("user_schema")
}
model Account {
id String @id @default(cuid())
userId String
providerId String
accountId String
refreshToken String?
accessToken String?
accessTokenExpiresAt DateTime?
refreshTokenExpiresAt DateTime?
scope String?
idToken String?
password String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
@@schema("user_schema")
}
model Session {
id String @id @default(cuid()) @map("_id")
token String @unique
userId String
expiresAt DateTime
userAgent String?
ipAddress String?
impersonatedBy String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
@@schema("user_schema")
}
model Verification {
id String @id @default(cuid()) @map("_id")
identifier String
value String
expiresAt DateTime
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@schema("user_schema")
}
model jwks {
id String @id @default(cuid()) @map("_id")
publicKey String
privateKey String
createdAt DateTime @default(now())
@@schema("user_schema")
}
model Transaction {
id String @id @default(cuid())
userId String
eventId String
description String
amount Int
currency String
date DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@schema("billing_schema")
}
