@allbluecn/database 0.5.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/generated/browser.ts +35 -0
- package/generated/client.ts +35 -0
- package/generated/internal/class.ts +74 -4
- package/generated/internal/prismaNamespace.ts +634 -2
- package/generated/internal/prismaNamespaceBrowser.ts +108 -1
- package/generated/models/EmailLog.ts +1345 -0
- package/generated/models/EmailPreference.ts +1257 -0
- package/generated/models/EmailSubscriber.ts +1233 -0
- package/generated/models/EmailVerificationToken.ts +1380 -0
- package/generated/models/InvitationCode.ts +65 -1
- package/generated/models/KnowledgeBase.ts +158 -0
- package/generated/models/KnowledgeDocument.ts +176 -0
- package/generated/models/NotificationPreference.ts +27 -1
- package/generated/models/OAuthProviderConfig.ts +1227 -0
- package/generated/models/User.ts +2405 -493
- package/generated/models/Workspace.ts +380 -0
- package/generated/models/WorkspaceKnowledgeBase.ts +1430 -0
- package/generated/models/WorkspaceQuickDoc.ts +2030 -0
- package/generated/models.ts +7 -0
- package/generated-sqlite/browser.ts +40 -0
- package/generated-sqlite/client.ts +40 -0
- package/generated-sqlite/internal/class.ts +84 -4
- package/generated-sqlite/internal/prismaNamespace.ts +722 -3
- package/generated-sqlite/internal/prismaNamespaceBrowser.ts +121 -2
- package/generated-sqlite/models/EmailLog.ts +1343 -0
- package/generated-sqlite/models/EmailPreference.ts +1255 -0
- package/generated-sqlite/models/EmailSubscriber.ts +1231 -0
- package/generated-sqlite/models/EmailVerificationToken.ts +1377 -0
- package/generated-sqlite/models/InvitationCode.ts +65 -1
- package/generated-sqlite/models/KnowledgeBase.ts +150 -0
- package/generated-sqlite/models/KnowledgeDocument.ts +168 -0
- package/generated-sqlite/models/NotificationPreference.ts +1313 -0
- package/generated-sqlite/models/OAuthProviderConfig.ts +1225 -0
- package/generated-sqlite/models/User.ts +2252 -160
- package/generated-sqlite/models/Workspace.ts +300 -0
- package/generated-sqlite/models/WorkspaceKnowledgeBase.ts +1426 -0
- package/generated-sqlite/models/WorkspaceQuickDoc.ts +2025 -0
- package/generated-sqlite/models.ts +8 -0
- package/migrations/20260909070745_workspace_kb_card/migration.sql +55 -0
- package/migrations/20260909123637_workspace_quick_doc_column_index/migration.sql +2 -0
- package/migrations/20260909123656_workspace_quick_doc_column_backfill/migration.sql +4 -0
- package/migrations/20260909144328_workspace_quick_doc_label/migration.sql +2 -0
- package/migrations/20260909154315_workspace_quick_doc_icon/migration.sql +2 -0
- package/migrations/20260911120000_add_pgvector_tables/migration.sql +28 -0
- package/migrations/20260911171433_email_auth_invitation/migration.sql +80 -0
- package/migrations/20260912032616_email_p4_p8/migration.sql +42 -0
- package/package.json +2 -2
- package/schema.prisma +141 -14
- package/schema.sqlite.prisma +141 -6
package/schema.sqlite.prisma
CHANGED
|
@@ -61,6 +61,9 @@ model User {
|
|
|
61
61
|
invitationUses InvitationUse[]
|
|
62
62
|
loginLogs LoginLog[]
|
|
63
63
|
passwordResetTokens PasswordResetToken[]
|
|
64
|
+
emailVerificationTokens EmailVerificationToken[]
|
|
65
|
+
emailPreference EmailPreference?
|
|
66
|
+
notificationPreference NotificationPreference?
|
|
64
67
|
prds PRD[]
|
|
65
68
|
tags Tag[]
|
|
66
69
|
knowledgeBases KnowledgeBase[]
|
|
@@ -102,6 +105,7 @@ model User {
|
|
|
102
105
|
agents UserAgent[]
|
|
103
106
|
skills UserSkill[]
|
|
104
107
|
subscription Subscription?
|
|
108
|
+
createdQuickDocs WorkspaceQuickDoc[]
|
|
105
109
|
|
|
106
110
|
@@map("users")
|
|
107
111
|
}
|
|
@@ -159,6 +163,8 @@ model Workspace {
|
|
|
159
163
|
ownerId String
|
|
160
164
|
owner User @relation("workspaceOwner", fields: [ownerId], references: [id])
|
|
161
165
|
projects Project[]
|
|
166
|
+
workspaceKbLinks WorkspaceKnowledgeBase[]
|
|
167
|
+
quickDocs WorkspaceQuickDoc[]
|
|
162
168
|
usageRecords UsageRecord[]
|
|
163
169
|
aiUsageLogs AiUsageLog[]
|
|
164
170
|
createdAt DateTime @default(now())
|
|
@@ -359,9 +365,11 @@ model InvitationCode {
|
|
|
359
365
|
usedCount Int @default(0)
|
|
360
366
|
expiresAt DateTime
|
|
361
367
|
createdAt DateTime @default(now())
|
|
362
|
-
|
|
368
|
+
createdById String?
|
|
369
|
+
disabledAt DateTime?
|
|
370
|
+
|
|
363
371
|
uses InvitationUse[]
|
|
364
|
-
|
|
372
|
+
|
|
365
373
|
@@map("invitation_codes")
|
|
366
374
|
}
|
|
367
375
|
|
|
@@ -386,12 +394,83 @@ model PasswordResetToken {
|
|
|
386
394
|
expiresAt DateTime
|
|
387
395
|
usedAt DateTime?
|
|
388
396
|
createdAt DateTime @default(now())
|
|
389
|
-
|
|
397
|
+
|
|
390
398
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
391
|
-
|
|
399
|
+
|
|
392
400
|
@@map("password_reset_tokens")
|
|
393
401
|
}
|
|
394
402
|
|
|
403
|
+
// 邮箱验证令牌
|
|
404
|
+
model EmailVerificationToken {
|
|
405
|
+
id String @id @default(cuid())
|
|
406
|
+
token String @unique
|
|
407
|
+
userId String
|
|
408
|
+
expiresAt DateTime
|
|
409
|
+
usedAt DateTime?
|
|
410
|
+
createdAt DateTime @default(now())
|
|
411
|
+
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
412
|
+
@@map("email_verification_tokens")
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
// 出站邮件日志
|
|
416
|
+
model EmailLog {
|
|
417
|
+
id String @id @default(cuid())
|
|
418
|
+
to String
|
|
419
|
+
templateKey String
|
|
420
|
+
category String
|
|
421
|
+
status String
|
|
422
|
+
provider String
|
|
423
|
+
messageId String?
|
|
424
|
+
dedupeKey String? @unique
|
|
425
|
+
error String?
|
|
426
|
+
userId String?
|
|
427
|
+
createdAt DateTime @default(now())
|
|
428
|
+
sentAt DateTime?
|
|
429
|
+
@@index([to, createdAt])
|
|
430
|
+
@@index([userId, createdAt])
|
|
431
|
+
@@index([status])
|
|
432
|
+
@@map("email_logs")
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
// 用户邮件偏好
|
|
436
|
+
model EmailPreference {
|
|
437
|
+
userId String @id
|
|
438
|
+
unsubscribedAll Boolean @default(false)
|
|
439
|
+
unsubscribedCategories Json @default(dbgenerated("'[]'"))
|
|
440
|
+
suppressed Boolean @default(false)
|
|
441
|
+
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
442
|
+
@@map("email_preferences")
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
// 第三方登录配置(admin 后台维护)
|
|
446
|
+
model OAuthProviderConfig {
|
|
447
|
+
id String @id @default(cuid())
|
|
448
|
+
provider String @unique
|
|
449
|
+
clientId String
|
|
450
|
+
clientSecret String // AES-256-GCM 密文
|
|
451
|
+
enabled Boolean @default(false)
|
|
452
|
+
extra Json?
|
|
453
|
+
createdAt DateTime @default(now())
|
|
454
|
+
updatedAt DateTime @updatedAt
|
|
455
|
+
|
|
456
|
+
@@map("oauth_provider_configs")
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
// 产品更新订阅者(changelog)
|
|
460
|
+
model EmailSubscriber {
|
|
461
|
+
id String @id @default(cuid())
|
|
462
|
+
email String @unique
|
|
463
|
+
locale String @default("zh")
|
|
464
|
+
confirmToken String @unique
|
|
465
|
+
confirmedAt DateTime?
|
|
466
|
+
unsubscribedAt DateTime?
|
|
467
|
+
source String @default("changelog")
|
|
468
|
+
createdAt DateTime @default(now())
|
|
469
|
+
|
|
470
|
+
@@index([confirmedAt, unsubscribedAt])
|
|
471
|
+
@@map("email_subscribers")
|
|
472
|
+
}
|
|
473
|
+
|
|
395
474
|
// (enum 已移除:SQLite 无原生 enum,Role/UserStatus/IconType/MarketplaceAppStatus/ReviewStatus/ShareStatus 改为 String 存 TEXT)
|
|
396
475
|
|
|
397
476
|
// 知识库
|
|
@@ -410,9 +489,10 @@ model KnowledgeBase {
|
|
|
410
489
|
|
|
411
490
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
412
491
|
documents KnowledgeDocument[]
|
|
413
|
-
|
|
492
|
+
projectLinks ProjectKnowledgeBase[]
|
|
493
|
+
workspaceLinks WorkspaceKnowledgeBase[]
|
|
414
494
|
|
|
415
|
-
|
|
495
|
+
@@index([userId])
|
|
416
496
|
@@map("knowledge_bases")
|
|
417
497
|
}
|
|
418
498
|
|
|
@@ -432,6 +512,47 @@ model ProjectKnowledgeBase {
|
|
|
432
512
|
@@map("project_knowledge_bases")
|
|
433
513
|
}
|
|
434
514
|
|
|
515
|
+
// 工作空间关联知识库(join 表;仅允许 visibility=team)
|
|
516
|
+
model WorkspaceKnowledgeBase {
|
|
517
|
+
id String @id @default(cuid())
|
|
518
|
+
workspaceId String
|
|
519
|
+
kbId String
|
|
520
|
+
createdAt DateTime @default(now())
|
|
521
|
+
|
|
522
|
+
workspace Workspace @relation(fields: [workspaceId], references: [id], onDelete: Cascade)
|
|
523
|
+
kb KnowledgeBase @relation(fields: [kbId], references: [id], onDelete: Cascade)
|
|
524
|
+
|
|
525
|
+
@@unique([workspaceId, kbId])
|
|
526
|
+
@@index([workspaceId])
|
|
527
|
+
@@index([kbId])
|
|
528
|
+
@@map("workspace_knowledge_bases")
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
// 工作空间快捷文档(单表双轨:docId 或 externalGroup+externalId 二选一非空,serverFn 层校验)
|
|
532
|
+
model WorkspaceQuickDoc {
|
|
533
|
+
id String @id @default(cuid())
|
|
534
|
+
workspaceId String
|
|
535
|
+
docId String?
|
|
536
|
+
externalGroup String?
|
|
537
|
+
externalId String?
|
|
538
|
+
displayTitle String
|
|
539
|
+
columnIndex Int @default(0)
|
|
540
|
+
sortOrder Int @default(0)
|
|
541
|
+
label String?
|
|
542
|
+
icon String?
|
|
543
|
+
createdBy String
|
|
544
|
+
createdAt DateTime @default(now())
|
|
545
|
+
updatedAt DateTime @updatedAt
|
|
546
|
+
|
|
547
|
+
workspace Workspace @relation(fields: [workspaceId], references: [id], onDelete: Cascade)
|
|
548
|
+
doc KnowledgeDocument? @relation(fields: [docId], references: [id], onDelete: Cascade)
|
|
549
|
+
creator User @relation(fields: [createdBy], references: [id], onDelete: Cascade)
|
|
550
|
+
|
|
551
|
+
@@index([workspaceId])
|
|
552
|
+
@@index([workspaceId, docId])
|
|
553
|
+
@@map("workspace_quick_docs")
|
|
554
|
+
}
|
|
555
|
+
|
|
435
556
|
model KnowledgeDocument {
|
|
436
557
|
id String @id @default(cuid())
|
|
437
558
|
kbId String
|
|
@@ -453,6 +574,7 @@ model KnowledgeDocument {
|
|
|
453
574
|
parent KnowledgeDocument? @relation("DocumentTree", fields: [parentId], references: [id], onDelete: SetNull)
|
|
454
575
|
children KnowledgeDocument[] @relation("DocumentTree")
|
|
455
576
|
creator User @relation(fields: [createdBy], references: [id], onDelete: Cascade)
|
|
577
|
+
workspaceQuickDocs WorkspaceQuickDoc[]
|
|
456
578
|
|
|
457
579
|
@@index([kbId])
|
|
458
580
|
@@index([parentId])
|
|
@@ -1727,3 +1849,16 @@ model IterationAutoSchedule {
|
|
|
1727
1849
|
|
|
1728
1850
|
@@map("iteration_auto_schedules")
|
|
1729
1851
|
}
|
|
1852
|
+
|
|
1853
|
+
// 通知偏好(免打扰时段、分类开关)
|
|
1854
|
+
model NotificationPreference {
|
|
1855
|
+
userId String @id
|
|
1856
|
+
categories Json
|
|
1857
|
+
emailCategories Json @default(dbgenerated("'{}'"))
|
|
1858
|
+
dndEnabled Boolean @default(false)
|
|
1859
|
+
dndStart String @default("22:00")
|
|
1860
|
+
dndEnd String @default("08:00")
|
|
1861
|
+
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
1862
|
+
|
|
1863
|
+
@@map("notification_preferences")
|
|
1864
|
+
}
|