feat: 百度网盘相关功能开发&代码整理

This commit is contained in:
mazxd
2025-05-14 21:46:38 +08:00
parent 0894d9ccdf
commit 3ae21ac4c2
12 changed files with 329 additions and 112 deletions
+56 -3
View File
@@ -3,6 +3,7 @@
generator client {
provider = "prisma-client-js"
output = "./generated/client"
}
datasource db {
@@ -10,55 +11,107 @@ datasource db {
url = env("DATABASE_URL")
}
/// 网盘类型枚举
enum DriveType {
/// 百度网盘
BAIDU
/// 阿里云盘
ALIYUN
/// 其他网盘类型可以在这里添加
}
/// 网盘账号信息表
model Account {
/// 账号ID
id Int @id @default(autoincrement())
driveType String @unique
/// 网盘类型
driveType DriveType
/// 账号标识符(如:用户名、邮箱等)
accountIdentifier String
/// 账号凭证(密码)
credentials String @db.Text
/// 账号状态(active: 活跃, inactive: 未激活, blocked: 被封禁)
status String @default("active")
/// 最后检查时间
lastChecked DateTime?
/// 创建时间
createdAt DateTime @default(now())
/// 更新时间
updatedAt DateTime @updatedAt
/// 转码记录关联
transcodeRecords TranscodeRecord[]
/// 活动日志关联
activityLogs ActivityLog[]
}
/// 转码记录表
model TranscodeRecord {
/// 记录ID
id Int @id @default(autoincrement())
/// 项目ID
itemId String
/// 源文件链接
sourceLink String @db.Text
driveType String
/// 网盘类型
driveType DriveType
/// 管理的账号ID
managedAccountId Int
/// 转码状态(pending: 等待中, processing: 处理中, completed: 完成, failed: 失败)
status String @default("pending")
/// 临时分享链接
tempLink String? @db.Text
/// 转存后的文件ID
transferredFileId String?
/// 转存开始时间
transferStartTime DateTime @default(now())
/// 转存结束时间
transferEndTime DateTime?
/// 错误代码
errorCode String?
/// 错误信息
errorMessage String? @db.Text
/// 清理状态(pending: 待清理, completed: 已清理, failed: 清理失败)
cleanupStatus String @default("pending")
/// 创建时间
createdAt DateTime @default(now())
/// 更新时间
updatedAt DateTime @updatedAt
/// 关联的账号
account Account @relation(fields: [managedAccountId], references: [id])
@@index([itemId])
@@index([cleanupStatus])
}
/// 活动日志表
model ActivityLog {
/// 日志ID
id BigInt @id @default(autoincrement())
/// 时间戳
timestamp DateTime @default(now())
/// 操作类型
operationType String
/// 客户端IP
clientIp String?
/// 关键词
keyword String?
/// 项目ID
itemId String?
driveType String?
/// 网盘类型
driveType DriveType?
/// 管理的账号ID
managedAccountId Int?
/// 生成的链接
generatedLink String? @db.Text
/// 错误代码
errorCode String?
/// 错误信息
errorMessage String? @db.Text
/// 操作持续时间(毫秒)
durationMs Int?
/// 详细信息
details String? @db.Text
/// 关联的账号
account Account? @relation(fields: [managedAccountId], references: [id])
@@index([itemId])