ChatGPT-Next-Web/prisma/schema.prisma
2024-10-02 23:43:30 +08:00

155 lines
6.4 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema
// datasource db {
// provider = "postgresql"
// url = env("POSTGRES_PRISMA_URL") // uses connection pooling
// // directUrl = env("POSTGRES_URL_NON_POOLING") // uses a direct connection
// }
datasource db {
provider = "mysql"
url = env("DATABASE_URL") // uses connection pooling
// directUrl = env("POSTGRES_URL_NON_POOLING") // uses a direct connection
}
generator client {
provider = "prisma-client-js"
binaryTargets = ["native", "linux-musl-openssl-3.0.x", "linux-musl-arm64-openssl-3.0.x"]
}
model User {
id String @id @default(cuid())
name String?
// if you are using Github OAuth, you can get rid of the username attribute (that is for Twitter OAuth)
username String? @unique
gh_username String? @unique
email String? @unique
emailVerified DateTime?
image String?
password String?
// 默认每人每天限额20k但数据库存储0
everyLimitToken Int? @default(0)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
allowToLogin Boolean @default(false)
isAdmin Boolean? @default(false)
accounts Account[]
sessions Session[]
logs LogEntry[]
}
model Account {
id String @id @default(cuid())
userId String
type String
provider String
providerAccountId String
refresh_token String?
refresh_token_expires_in Int?
access_token String? @db.VarChar(512)
expires_at Int?
token_type String?
scope String?
id_token String? @db.Text
session_state String?
oauth_token_secret String?
oauth_token String?
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
@@unique([provider, providerAccountId])
@@index([userId])
}
model Session {
id String @id @default(cuid())
sessionToken String @unique
userId String
expires DateTime
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
@@index([userId])
}
model LogEntry {
id Int @id @default(autoincrement())
ip String? @db.VarChar(50) // IPV6 long 39
path String? @db.Text
model String? @db.VarChar(50)
userName String? @db.VarChar(50)
userID String?
createdAt DateTime @default(now())
// logEntry String? @db.Text
logToken Int? @default(0)
user User? @relation(fields: [userID], references: [id], onDelete: SetNull)
}
model VerificationToken {
identifier String
token String @unique
expires DateTime
@@unique([identifier, token])
}
// model Post {
// id String @id @default(cuid())
// title String? @db.Text
// description String? @db.Text
// content String? @db.Text
// slug String @default(cuid())
// image String? @default("https://public.blob.vercel-storage.com/eEZHAoPTOBSYGBE3/hxfcV5V-eInX3jbVUhjAt1suB7zB88uGd1j20b.png") @db.Text
// imageBlurhash String? @default("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAhCAYAAACbffiEAAAACXBIWXMAABYlAAAWJQFJUiTwAAABfUlEQVR4nN3XyZLDIAwE0Pz/v3q3r55JDlSBplsIEI49h76k4opexCK/juP4eXjOT149f2Tf9ySPgcjCc7kdpBTgDPKByKK2bTPFEdMO0RDrusJ0wLRBGCIuelmWJAjkgPGDSIQEMBDCfA2CEPM80+Qwl0JkNxBimiaYGOTUlXYI60YoehzHJDEm7kxjV3whOQTD3AaCuhGKHoYhyb+CBMwjIAFz647kTqyapdV4enGINuDJMSScPmijSwjCaHeLcT77C7EC0C1ugaCTi2HYfAZANgj6Z9A8xY5eiYghDMNQBJNCWhASot0jGsSCUiHWZcSGQjaWWCDaGMOWnsCcn2QhVkRuxqqNxMSdUSElCDbp1hbNOsa6Ugxh7xXauF4DyM1m5BLtCylBXgaxvPXVwEoOBjeIFVODtW74oj1yBQah3E8tyz3SkpolKS9Geo9YMD1QJR1Go4oJkgO1pgbNZq0AOUPChyjvh7vlXaQa+X1UXwKxgHokB2XPxbX+AnijwIU4ahazAAAAAElFTkSuQmCC") @db.Text
// createdAt DateTime @default(now())
// updatedAt DateTime @updatedAt
// published Boolean @default(false)
// site Site? @relation(fields: [siteId], references: [id], onDelete: Cascade, onUpdate: Cascade)
// siteId String?
// user User? @relation(fields: [userId], references: [id], onDelete: Cascade, onUpdate: Cascade)
// userId String?
//
// @@unique([slug, siteId])
// @@index([siteId])
// @@index([userId])
// }
// model Site {
// id String @id @default(cuid())
// name String?
// description String? @db.Text
// logo String? @default("https://public.blob.vercel-storage.com/eEZHAoPTOBSYGBE3/JRajRyC-PhBHEinQkupt02jqfKacBVHLWJq7Iy.png") @db.Text
// font String @default("font-cal")
// image String? @default("https://public.blob.vercel-storage.com/eEZHAoPTOBSYGBE3/hxfcV5V-eInX3jbVUhjAt1suB7zB88uGd1j20b.png") @db.Text
// imageBlurhash String? @default("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAhCAYAAACbffiEAAAACXBIWXMAABYlAAAWJQFJUiTwAAABfUlEQVR4nN3XyZLDIAwE0Pz/v3q3r55JDlSBplsIEI49h76k4opexCK/juP4eXjOT149f2Tf9ySPgcjCc7kdpBTgDPKByKK2bTPFEdMO0RDrusJ0wLRBGCIuelmWJAjkgPGDSIQEMBDCfA2CEPM80+Qwl0JkNxBimiaYGOTUlXYI60YoehzHJDEm7kxjV3whOQTD3AaCuhGKHoYhyb+CBMwjIAFz647kTqyapdV4enGINuDJMSScPmijSwjCaHeLcT77C7EC0C1ugaCTi2HYfAZANgj6Z9A8xY5eiYghDMNQBJNCWhASot0jGsSCUiHWZcSGQjaWWCDaGMOWnsCcn2QhVkRuxqqNxMSdUSElCDbp1hbNOsa6Ugxh7xXauF4DyM1m5BLtCylBXgaxvPXVwEoOBjeIFVODtW74oj1yBQah3E8tyz3SkpolKS9Geo9YMD1QJR1Go4oJkgO1pgbNZq0AOUPChyjvh7vlXaQa+X1UXwKxgHokB2XPxbX+AnijwIU4ahazAAAAAElFTkSuQmCC") @db.Text
// subdomain String? @unique
// customDomain String? @unique
// message404 String? @default("Blimey! You've found a page that doesn't exist.") @db.Text
// createdAt DateTime @default(now())
// updatedAt DateTime @updatedAt
// user User? @relation(fields: [userId], references: [id], onDelete: Cascade, onUpdate: Cascade)
// userId String?
// posts Post[]
//
// @@index([userId])
// }
// model Example {
// id Int @id @default(autoincrement())
// name String?
// description String? @db.Text
// domainCount Int?
// url String?
// image String? @db.Text
// imageBlurhash String? @db.Text
// }
model Setting {
key String @id
value String
type String
createdAt DateTime @default(now()) @map("created_at")
updatedAt DateTime @default(now()) @updatedAt @map("updated_at")
@@map("settings")
}