mirror of
https://github.com/ZeroCatDev/ClassworksKV.git
synced 2026-03-05 13:23:09 +00:00
92 lines
3.0 KiB
Plaintext
92 lines
3.0 KiB
Plaintext
generator client {
|
|
provider = "prisma-client"
|
|
output = "../generated/prisma"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "postgresql"
|
|
relationMode = "prisma"
|
|
}
|
|
|
|
model Account {
|
|
id String @id @db.VarChar(191) @default(cuid())
|
|
provider String @db.VarChar(191)
|
|
providerId String @db.VarChar(191)
|
|
email String? @db.VarChar(191)
|
|
name String? @db.VarChar(191)
|
|
avatarUrl String? @db.VarChar(191)
|
|
providerData Json? @db.Json
|
|
accessToken String?
|
|
createdAt DateTime @default(now()) @db.Timestamptz(6)
|
|
updatedAt DateTime @default(now()) @updatedAt @db.Timestamptz(6)
|
|
refreshToken String?
|
|
refreshTokenExpiry DateTime? @db.Timestamptz(6)
|
|
tokenVersion Int @default(1)
|
|
|
|
devices Device[]
|
|
|
|
@@unique([provider, providerId])
|
|
}
|
|
|
|
model AppInstall {
|
|
id String @id @default(cuid()) @db.VarChar(191)
|
|
deviceId Int
|
|
appId String @db.VarChar(191)
|
|
token String @unique @db.VarChar(191)
|
|
note String? @db.VarChar(191)
|
|
installedAt DateTime @default(now()) @db.Timestamptz(6)
|
|
updatedAt DateTime @default(now()) @updatedAt @db.Timestamptz(6)
|
|
deviceType String? @db.VarChar(191)
|
|
isReadOnly Boolean @default(false)
|
|
|
|
device Device @relation(fields: [deviceId], references: [id], onDelete: Cascade)
|
|
|
|
@@index([deviceId])
|
|
}
|
|
|
|
model AutoAuth {
|
|
id String @id @default(cuid()) @db.VarChar(191)
|
|
deviceId Int
|
|
password String? @db.VarChar(191)
|
|
deviceType String? @db.VarChar(191)
|
|
isReadOnly Boolean @default(false)
|
|
createdAt DateTime @default(now()) @db.Timestamptz(6)
|
|
updatedAt DateTime @default(now()) @updatedAt @db.Timestamptz(6)
|
|
|
|
device Device @relation(fields: [deviceId], references: [id], onDelete: Cascade)
|
|
|
|
@@unique([deviceId, password])
|
|
}
|
|
|
|
model Device {
|
|
id Int @id @default(autoincrement())
|
|
uuid String @unique @db.VarChar(191)
|
|
name String? @db.VarChar(191)
|
|
accountId String? @db.VarChar(191)
|
|
createdAt DateTime @default(now()) @db.Timestamptz(6)
|
|
updatedAt DateTime @default(now()) @updatedAt @db.Timestamptz(6)
|
|
password String? @db.VarChar(191)
|
|
passwordHint String? @db.VarChar(191)
|
|
namespace String? @unique @db.VarChar(191)
|
|
|
|
// 关联关系
|
|
account Account? @relation(fields: [accountId], references: [id], onDelete: SetNull)
|
|
appInstalls AppInstall[]
|
|
kvStore KVStore[] // 设备相关的KV存储
|
|
autoAuths AutoAuth[] // 自动授权配置
|
|
@@index([accountId])
|
|
}
|
|
|
|
model KVStore {
|
|
deviceId Int
|
|
key String @db.VarChar(191)
|
|
value Json @db.Json
|
|
creatorIp String? @default("") @db.VarChar(191)
|
|
createdAt DateTime @default(now()) @db.Timestamptz(6)
|
|
updatedAt DateTime @default(now()) @updatedAt @db.Timestamptz(6)
|
|
|
|
device Device @relation(fields: [deviceId], references: [id], onDelete: Cascade)
|
|
|
|
@@id([deviceId, key])
|
|
}
|