@allbluecn/database 0.4.18 → 0.5.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 +8 -3
- package/generated/client.ts +10 -5
- package/generated/commonInputTypes.ts +2 -2
- package/generated/internal/class.ts +15 -5
- package/generated/internal/prismaNamespace.ts +95 -4
- package/generated/internal/prismaNamespaceBrowser.ts +18 -2
- package/generated/models/Account.ts +2 -2
- package/generated/models/AgentConversation.ts +2 -2
- package/generated/models/AgentMessage.ts +2 -2
- package/generated/models/AiProvider.ts +2 -2
- package/generated/models/AiProviderConfig.ts +2 -2
- package/generated/models/AiUsageLog.ts +2 -2
- package/generated/models/AnyHubApp.ts +2 -2
- package/generated/models/AnyHubMarketApp.ts +2 -2
- package/generated/models/AnyHubPermission.ts +2 -2
- package/generated/models/AnyHubRecommendation.ts +2 -2
- package/generated/models/AnyHubRecommender.ts +2 -2
- package/generated/models/Artboard.ts +2 -2
- package/generated/models/ArtboardExport.ts +2 -2
- package/generated/models/ArticleFavorite.ts +2 -2
- package/generated/models/AuditLog.ts +2 -2
- package/generated/models/Block.ts +2 -2
- package/generated/models/BlockComponent.ts +2 -2
- package/generated/models/BlockInstance.ts +2 -2
- package/generated/models/BookmarkCategory.ts +2 -2
- package/generated/models/ChatInterrupt.ts +2 -2
- package/generated/models/ChatMessage.ts +2 -2
- package/generated/models/ChatRun.ts +2 -2
- package/generated/models/ChatThread.ts +2 -6
- package/generated/models/Comment.ts +2 -2
- package/generated/models/CommentIgnore.ts +2 -2
- package/generated/models/CommentReaction.ts +2 -2
- package/generated/models/ComplianceExport.ts +2 -2
- package/generated/models/Component.ts +2 -2
- package/generated/models/ComponentInstance.ts +2 -2
- package/generated/models/ComponentTag.ts +2 -2
- package/generated/models/CustomRole.ts +2 -2
- package/generated/models/DesignProject.ts +2 -2
- package/generated/models/DeveloperLog.ts +2 -2
- package/generated/models/DictionaryTerm.ts +2 -2
- package/generated/models/GenerationRun.ts +2 -2
- package/generated/models/IndustryCompliance.ts +2 -2
- package/generated/models/InvitationCode.ts +2 -2
- package/generated/models/InvitationUse.ts +2 -2
- package/generated/models/Invoice.ts +2 -2
- package/generated/models/Iteration.ts +2 -2
- package/generated/models/IterationAutoSchedule.ts +2 -2
- package/generated/models/KnowledgeBase.ts +278 -3
- package/generated/models/KnowledgeDocument.ts +2 -2
- package/generated/models/KnowledgeShareRecord.ts +2 -2
- package/generated/models/Label.ts +2 -2
- package/generated/models/LegalRegulation.ts +2 -2
- package/generated/models/LicenseActivation.ts +2 -2
- package/generated/models/LicenseKey.ts +2 -2
- package/generated/models/LoginLog.ts +2 -2
- package/generated/models/MonitoringErrorReport.ts +2 -2
- package/generated/models/MonitoringHealthSnapshot.ts +2 -2
- package/generated/models/MonitoringMetricsSnapshot.ts +2 -2
- package/generated/models/MonitoringRequestLog.ts +2 -2
- package/generated/models/Notification.ts +2 -2
- package/generated/models/NotificationPreference.ts +2 -2
- package/generated/models/PRD.ts +2 -2
- package/generated/models/PRDPage.ts +2 -2
- package/generated/models/PRDTag.ts +2 -2
- package/generated/models/PRDVersion.ts +2 -2
- package/generated/models/PageVersion.ts +2 -2
- package/generated/models/PasswordResetToken.ts +2 -2
- package/generated/models/Plan.ts +2 -2
- package/generated/models/Project.ts +2 -2
- package/generated/models/ProjectActivity.ts +2 -2
- package/generated/models/ProjectKnowledgeBase.ts +2 -2
- package/generated/models/ProjectMember.ts +2 -2
- package/generated/models/ProviderEvent.ts +2 -2
- package/generated/models/Reference.ts +2 -2
- package/generated/models/Review.ts +2 -2
- package/generated/models/ReviewComment.ts +2 -2
- package/generated/models/RoleAssignment.ts +2 -2
- package/generated/models/SequenceCounter.ts +2 -2
- package/generated/models/Share.ts +2 -2
- package/generated/models/ShareVersion.ts +2 -2
- package/generated/models/SsoMapping.ts +2 -2
- package/generated/models/SsoProvider.ts +2 -2
- package/generated/models/Story.ts +2 -2
- package/generated/models/StoryActivity.ts +2 -2
- package/generated/models/StoryAttachment.ts +2 -2
- package/generated/models/StoryComment.ts +2 -2
- package/generated/models/StoryDependency.ts +2 -2
- package/generated/models/StoryDocLink.ts +2 -2
- package/generated/models/StoryExternalLink.ts +2 -2
- package/generated/models/StoryFilterView.ts +2 -2
- package/generated/models/StoryLabel.ts +2 -2
- package/generated/models/StoryLink.ts +2 -2
- package/generated/models/StoryPrdLink.ts +2 -2
- package/generated/models/StoryReaction.ts +2 -2
- package/generated/models/Subscription.ts +2 -2
- package/generated/models/SystemSetting.ts +2 -2
- package/generated/models/Tag.ts +2 -2
- package/generated/models/TeamInvitation.ts +2 -2
- package/generated/models/TeamJoinRequest.ts +2 -2
- package/generated/models/TeamMembership.ts +2 -2
- package/generated/models/Template.ts +2 -2
- package/generated/models/TemplateBlock.ts +2 -2
- package/generated/models/ThirdPartyDependency.ts +2 -2
- package/generated/models/UsageRecord.ts +2 -2
- package/generated/models/User.ts +628 -2
- package/generated/models/UserAgent.ts +2 -2
- package/generated/models/UserSkill.ts +2 -2
- package/generated/models/WebsiteBookmark.ts +2 -2
- package/generated/models/Workspace.ts +416 -3
- package/generated/models/WorkspaceMember.ts +1512 -0
- package/generated/models.ts +105 -104
- package/generated-sqlite/browser.ts +3 -3
- package/generated-sqlite/client.ts +5 -5
- package/generated-sqlite/commonInputTypes.ts +2 -2
- package/generated-sqlite/internal/class.ts +5 -5
- package/generated-sqlite/internal/prismaNamespace.ts +5 -3
- package/generated-sqlite/internal/prismaNamespaceBrowser.ts +4 -2
- package/generated-sqlite/models/AgentConversation.ts +2 -2
- package/generated-sqlite/models/AgentMessage.ts +2 -2
- package/generated-sqlite/models/AiProvider.ts +2 -2
- package/generated-sqlite/models/AiProviderConfig.ts +2 -2
- package/generated-sqlite/models/AiUsageLog.ts +2 -2
- package/generated-sqlite/models/AnyHubApp.ts +2 -2
- package/generated-sqlite/models/AnyHubMarketApp.ts +2 -2
- package/generated-sqlite/models/AnyHubPermission.ts +2 -2
- package/generated-sqlite/models/AnyHubRecommendation.ts +2 -2
- package/generated-sqlite/models/AnyHubRecommender.ts +2 -2
- package/generated-sqlite/models/Artboard.ts +2 -2
- package/generated-sqlite/models/ArtboardExport.ts +2 -2
- package/generated-sqlite/models/ArticleFavorite.ts +2 -2
- package/generated-sqlite/models/AuditLog.ts +2 -2
- package/generated-sqlite/models/Block.ts +2 -2
- package/generated-sqlite/models/BlockComponent.ts +2 -2
- package/generated-sqlite/models/BlockInstance.ts +2 -2
- package/generated-sqlite/models/BookmarkCategory.ts +2 -2
- package/generated-sqlite/models/ChatInterrupt.ts +2 -2
- package/generated-sqlite/models/ChatMessage.ts +2 -2
- package/generated-sqlite/models/ChatRun.ts +2 -2
- package/generated-sqlite/models/ChatThread.ts +2 -6
- package/generated-sqlite/models/Comment.ts +2 -2
- package/generated-sqlite/models/CommentIgnore.ts +2 -2
- package/generated-sqlite/models/ComplianceExport.ts +2 -2
- package/generated-sqlite/models/Component.ts +2 -2
- package/generated-sqlite/models/ComponentInstance.ts +2 -2
- package/generated-sqlite/models/ComponentTag.ts +2 -2
- package/generated-sqlite/models/CustomRole.ts +2 -2
- package/generated-sqlite/models/DesignProject.ts +2 -2
- package/generated-sqlite/models/DeveloperLog.ts +2 -2
- package/generated-sqlite/models/DictionaryTerm.ts +2 -2
- package/generated-sqlite/models/GenerationRun.ts +2 -2
- package/generated-sqlite/models/IndustryCompliance.ts +2 -2
- package/generated-sqlite/models/InvitationCode.ts +2 -2
- package/generated-sqlite/models/InvitationUse.ts +2 -2
- package/generated-sqlite/models/Invoice.ts +2 -2
- package/generated-sqlite/models/Iteration.ts +2 -2
- package/generated-sqlite/models/IterationAutoSchedule.ts +2 -2
- package/generated-sqlite/models/KnowledgeBase.ts +46 -3
- package/generated-sqlite/models/KnowledgeDocument.ts +2 -2
- package/generated-sqlite/models/KnowledgeShareRecord.ts +2 -2
- package/generated-sqlite/models/LegalRegulation.ts +2 -2
- package/generated-sqlite/models/LicenseActivation.ts +2 -2
- package/generated-sqlite/models/LicenseKey.ts +2 -2
- package/generated-sqlite/models/LoginLog.ts +2 -2
- package/generated-sqlite/models/PRD.ts +2 -2
- package/generated-sqlite/models/PRDPage.ts +2 -2
- package/generated-sqlite/models/PRDTag.ts +2 -2
- package/generated-sqlite/models/PRDVersion.ts +2 -2
- package/generated-sqlite/models/PageVersion.ts +2 -2
- package/generated-sqlite/models/PasswordResetToken.ts +2 -2
- package/generated-sqlite/models/Plan.ts +2 -2
- package/generated-sqlite/models/Project.ts +2 -2
- package/generated-sqlite/models/ProjectActivity.ts +2 -2
- package/generated-sqlite/models/ProjectKnowledgeBase.ts +2 -2
- package/generated-sqlite/models/ProjectMember.ts +2 -2
- package/generated-sqlite/models/ProviderEvent.ts +2 -2
- package/generated-sqlite/models/Reference.ts +2 -2
- package/generated-sqlite/models/Review.ts +2 -2
- package/generated-sqlite/models/ReviewComment.ts +2 -2
- package/generated-sqlite/models/RoleAssignment.ts +2 -2
- package/generated-sqlite/models/Share.ts +2 -2
- package/generated-sqlite/models/ShareVersion.ts +2 -2
- package/generated-sqlite/models/SsoMapping.ts +2 -2
- package/generated-sqlite/models/SsoProvider.ts +2 -2
- package/generated-sqlite/models/Story.ts +2 -2
- package/generated-sqlite/models/Subscription.ts +2 -2
- package/generated-sqlite/models/SystemSetting.ts +2 -2
- package/generated-sqlite/models/Tag.ts +2 -2
- package/generated-sqlite/models/TeamInvitation.ts +2 -2
- package/generated-sqlite/models/TeamJoinRequest.ts +2 -2
- package/generated-sqlite/models/TeamMembership.ts +2 -2
- package/generated-sqlite/models/Template.ts +2 -2
- package/generated-sqlite/models/TemplateBlock.ts +2 -2
- package/generated-sqlite/models/ThirdPartyDependency.ts +2 -2
- package/generated-sqlite/models/UsageRecord.ts +2 -2
- package/generated-sqlite/models/User.ts +2 -2
- package/generated-sqlite/models/UserAgent.ts +2 -2
- package/generated-sqlite/models/UserSkill.ts +2 -2
- package/generated-sqlite/models/WebsiteBookmark.ts +2 -2
- package/generated-sqlite/models/Workspace.ts +54 -3
- package/generated-sqlite/models.ts +83 -83
- package/migrations/20260907093612_add_workspace_pinned_to_sidebar/migration.sql +2 -0
- package/migrations/20260907100000_add_knowledge_pinned_to_sidebar/migration.sql +2 -0
- package/migrations/20260907110000_add_workspace_members/migration.sql +34 -0
- package/migrations/20260907120000_knowledgebase_workspace_id/migration.sql +8 -0
- package/package.json +2 -2
- package/schema.prisma +241 -213
- package/schema.sqlite.prisma +16 -14
package/schema.prisma
CHANGED
|
@@ -57,7 +57,7 @@ model User {
|
|
|
57
57
|
/// 用户默认 workspace ID(B3 精确化:多 workspace 用户权益判定确定性)
|
|
58
58
|
defaultWorkspaceId String?
|
|
59
59
|
|
|
60
|
-
invitationUses
|
|
60
|
+
invitationUses InvitationUse[]
|
|
61
61
|
loginLogs LoginLog[]
|
|
62
62
|
passwordResetTokens PasswordResetToken[]
|
|
63
63
|
prds PRD[]
|
|
@@ -73,46 +73,47 @@ model User {
|
|
|
73
73
|
articleFavorites ArticleFavorite[]
|
|
74
74
|
anyhubApps AnyHubApp[]
|
|
75
75
|
anyhubMarketApps AnyHubMarketApp[]
|
|
76
|
-
reviewedAnyhubRecommendations AnyHubRecommendation[]
|
|
76
|
+
reviewedAnyhubRecommendations AnyHubRecommendation[] @relation("reviewedAnyhubRecommendations")
|
|
77
77
|
anyhubRecommenders AnyHubRecommender[]
|
|
78
78
|
prdVersions PRDVersion[]
|
|
79
79
|
reviewComments ReviewComment[]
|
|
80
80
|
comments Comment[]
|
|
81
81
|
commentIgnores CommentIgnore[]
|
|
82
|
-
reviews Review[]
|
|
82
|
+
reviews Review[] @relation("reviewer")
|
|
83
83
|
designProjects DesignProject[]
|
|
84
|
-
storiesCreated Story[]
|
|
85
|
-
storiesAssigned Story[]
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
labelsCreated Label[]
|
|
89
|
-
storyActivities StoryActivity[]
|
|
90
|
-
storyComments StoryComment[]
|
|
91
|
-
storyReactions StoryReaction[]
|
|
92
|
-
commentReactions CommentReaction[]
|
|
84
|
+
storiesCreated Story[] @relation("storyCreator")
|
|
85
|
+
storiesAssigned Story[] @relation("storyAssignee")
|
|
86
|
+
storiesEdited Story[] @relation("storyEditor")
|
|
87
|
+
iterationsCreated Iteration[] @relation("iterationCreator")
|
|
88
|
+
labelsCreated Label[] @relation("labelCreator")
|
|
89
|
+
storyActivities StoryActivity[] @relation("storyActivityUser")
|
|
90
|
+
storyComments StoryComment[] @relation("storyCommentUser")
|
|
91
|
+
storyReactions StoryReaction[] @relation("storyReactionUser")
|
|
92
|
+
commentReactions CommentReaction[] @relation("commentReactionUser")
|
|
93
93
|
storyFilterViews StoryFilterView[]
|
|
94
94
|
chatThreads ChatThread[]
|
|
95
95
|
aiProviderConfigs AiProviderConfig[]
|
|
96
96
|
agentConversations AgentConversation[]
|
|
97
|
-
ownedProjects Project[]
|
|
98
|
-
projectMemberships
|
|
99
|
-
projectActivities
|
|
100
|
-
ownedWorkspaces
|
|
101
|
-
workspaceMemberships
|
|
102
|
-
teamJoined
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
97
|
+
ownedProjects Project[] @relation("projectOwner")
|
|
98
|
+
projectMemberships ProjectMember[]
|
|
99
|
+
projectActivities ProjectActivity[]
|
|
100
|
+
ownedWorkspaces Workspace[] @relation("workspaceOwner")
|
|
101
|
+
workspaceMemberships TeamMembership[] @relation("teamOwner")
|
|
102
|
+
teamJoined TeamMembership? @relation("teamMember")
|
|
103
|
+
workspaceMembers WorkspaceMember[]
|
|
104
|
+
sentInvitations TeamInvitation[] @relation("invitationOwner")
|
|
105
|
+
ownedJoinRequests TeamJoinRequest[] @relation("joinRequestOwner")
|
|
106
|
+
applicantJoinRequests TeamJoinRequest[] @relation("joinRequestApplicant")
|
|
107
|
+
aiUsageLogs AiUsageLog[]
|
|
108
|
+
agents UserAgent[]
|
|
109
|
+
skills UserSkill[]
|
|
110
|
+
notifications Notification[]
|
|
111
|
+
notificationPreference NotificationPreference?
|
|
112
|
+
|
|
113
|
+
issuedLicenses LicenseKey[] @relation("LicenseIssuer")
|
|
114
|
+
ssoMappings SsoMapping[]
|
|
115
|
+
roleAssignments RoleAssignment[]
|
|
116
|
+
subscription Subscription?
|
|
116
117
|
|
|
117
118
|
@@map("users")
|
|
118
119
|
}
|
|
@@ -141,24 +142,24 @@ model Account {
|
|
|
141
142
|
|
|
142
143
|
// 项目
|
|
143
144
|
model Project {
|
|
144
|
-
id
|
|
145
|
-
displayId
|
|
146
|
-
name
|
|
147
|
-
description
|
|
148
|
-
icon
|
|
149
|
-
timezone
|
|
150
|
-
ownerId
|
|
151
|
-
owner
|
|
152
|
-
workspaceId
|
|
153
|
-
workspace
|
|
154
|
-
members
|
|
155
|
-
activities
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
updatedAt
|
|
145
|
+
id String @id @default(cuid())
|
|
146
|
+
displayId String? // 用户层项目ID,全大写字母数字,1-10位
|
|
147
|
+
name String
|
|
148
|
+
description String?
|
|
149
|
+
icon String @default("folder")
|
|
150
|
+
timezone String? // 项目时区,null = 跟随用户全局时区
|
|
151
|
+
ownerId String
|
|
152
|
+
owner User @relation("projectOwner", fields: [ownerId], references: [id])
|
|
153
|
+
workspaceId String?
|
|
154
|
+
workspace Workspace? @relation(fields: [workspaceId], references: [id], onDelete: SetNull)
|
|
155
|
+
members ProjectMember[]
|
|
156
|
+
activities ProjectActivity[]
|
|
157
|
+
stories Story[]
|
|
158
|
+
iterations Iteration[]
|
|
159
|
+
iterationAutoSchedule IterationAutoSchedule?
|
|
160
|
+
knowledgeBases ProjectKnowledgeBase[]
|
|
161
|
+
createdAt DateTime @default(now())
|
|
162
|
+
updatedAt DateTime @updatedAt
|
|
162
163
|
|
|
163
164
|
@@unique([ownerId, displayId])
|
|
164
165
|
@@index([ownerId])
|
|
@@ -184,35 +185,56 @@ model ProjectMember {
|
|
|
184
185
|
|
|
185
186
|
// 工作空间(项目的上一级容器)
|
|
186
187
|
model Workspace {
|
|
187
|
-
id
|
|
188
|
-
name
|
|
189
|
-
icon
|
|
190
|
-
description
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
188
|
+
id String @id @default(cuid())
|
|
189
|
+
name String
|
|
190
|
+
icon String @default("folder")
|
|
191
|
+
description String?
|
|
192
|
+
pinnedToSidebar Boolean @default(false)
|
|
193
|
+
ownerId String
|
|
194
|
+
owner User @relation("workspaceOwner", fields: [ownerId], references: [id])
|
|
195
|
+
projects Project[]
|
|
196
|
+
members WorkspaceMember[]
|
|
197
|
+
knowledgeBases KnowledgeBase[]
|
|
194
198
|
usageRecords UsageRecord[]
|
|
195
199
|
aiUsageLogs AiUsageLog[]
|
|
196
|
-
createdAt
|
|
197
|
-
updatedAt
|
|
200
|
+
createdAt DateTime @default(now())
|
|
201
|
+
updatedAt DateTime @updatedAt
|
|
198
202
|
|
|
199
|
-
ssoProviders
|
|
200
|
-
customRoles
|
|
201
|
-
auditLogs
|
|
203
|
+
ssoProviders SsoProvider[]
|
|
204
|
+
customRoles CustomRole[]
|
|
205
|
+
auditLogs AuditLog[]
|
|
202
206
|
|
|
203
207
|
@@index([ownerId])
|
|
204
208
|
@@map("workspaces")
|
|
205
209
|
}
|
|
206
210
|
|
|
211
|
+
// 工作空间成员
|
|
212
|
+
model WorkspaceMember {
|
|
213
|
+
id String @id @default(cuid())
|
|
214
|
+
workspaceId String
|
|
215
|
+
workspace Workspace @relation(fields: [workspaceId], references: [id], onDelete: Cascade)
|
|
216
|
+
userId String
|
|
217
|
+
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
218
|
+
role String @default("member")
|
|
219
|
+
status String @default("active")
|
|
220
|
+
joinedAt DateTime @default(now())
|
|
221
|
+
|
|
222
|
+
@@unique([workspaceId, userId])
|
|
223
|
+
@@index([workspaceId])
|
|
224
|
+
@@index([userId])
|
|
225
|
+
@@map("workspace_members")
|
|
226
|
+
}
|
|
227
|
+
|
|
207
228
|
// 团队隶属关系
|
|
208
229
|
model TeamMembership {
|
|
209
|
-
id
|
|
210
|
-
ownerId
|
|
211
|
-
owner
|
|
212
|
-
memberId
|
|
213
|
-
member
|
|
214
|
-
seatType
|
|
215
|
-
joinedAt
|
|
230
|
+
id String @id @default(cuid())
|
|
231
|
+
ownerId String
|
|
232
|
+
owner User @relation("teamOwner", fields: [ownerId], references: [id], onDelete: Cascade)
|
|
233
|
+
memberId String
|
|
234
|
+
member User @relation("teamMember", fields: [memberId], references: [id], onDelete: Cascade)
|
|
235
|
+
seatType String @default("member")
|
|
236
|
+
joinedAt DateTime @default(now())
|
|
237
|
+
|
|
216
238
|
@@unique([memberId])
|
|
217
239
|
@@index([ownerId])
|
|
218
240
|
@@map("team_memberships")
|
|
@@ -220,20 +242,21 @@ model TeamMembership {
|
|
|
220
242
|
|
|
221
243
|
// 团队邀请
|
|
222
244
|
model TeamInvitation {
|
|
223
|
-
id String
|
|
245
|
+
id String @id @default(cuid())
|
|
224
246
|
ownerId String
|
|
225
|
-
owner User
|
|
247
|
+
owner User @relation("invitationOwner", fields: [ownerId], references: [id], onDelete: Cascade)
|
|
226
248
|
email String?
|
|
227
|
-
seatType String
|
|
228
|
-
token String
|
|
229
|
-
channel String
|
|
230
|
-
status String
|
|
249
|
+
seatType String @default("member")
|
|
250
|
+
token String @unique
|
|
251
|
+
channel String @default("email")
|
|
252
|
+
status String @default("pending")
|
|
231
253
|
expiresAt DateTime
|
|
232
|
-
createdAt DateTime
|
|
254
|
+
createdAt DateTime @default(now())
|
|
233
255
|
acceptedBy String?
|
|
234
256
|
applicantEmail String?
|
|
235
257
|
message String?
|
|
236
258
|
joinRequests TeamJoinRequest[]
|
|
259
|
+
|
|
237
260
|
@@unique([ownerId, email])
|
|
238
261
|
@@index([ownerId])
|
|
239
262
|
@@index([email])
|
|
@@ -254,6 +277,7 @@ model TeamJoinRequest {
|
|
|
254
277
|
seatType String @default("member")
|
|
255
278
|
createdAt DateTime @default(now())
|
|
256
279
|
processedAt DateTime?
|
|
280
|
+
|
|
257
281
|
@@unique([invitationId, email])
|
|
258
282
|
@@index([ownerId, status])
|
|
259
283
|
@@map("team_join_requests")
|
|
@@ -285,13 +309,13 @@ model ChatThread {
|
|
|
285
309
|
createdAt DateTime @default(now())
|
|
286
310
|
updatedAt DateTime @updatedAt
|
|
287
311
|
|
|
288
|
-
user
|
|
289
|
-
messages
|
|
290
|
-
runs
|
|
291
|
-
interrupts
|
|
312
|
+
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
313
|
+
messages ChatMessage[]
|
|
314
|
+
runs ChatRun[]
|
|
315
|
+
interrupts ChatInterrupt[]
|
|
292
316
|
generations GenerationRun[]
|
|
293
|
-
agentId
|
|
294
|
-
agent
|
|
317
|
+
agentId String?
|
|
318
|
+
agent UserAgent? @relation(fields: [agentId], references: [id])
|
|
295
319
|
|
|
296
320
|
@@index([userId, updatedAt])
|
|
297
321
|
@@map("chat_threads")
|
|
@@ -299,14 +323,14 @@ model ChatThread {
|
|
|
299
323
|
|
|
300
324
|
// 对话消息(TanStack AI messages store)
|
|
301
325
|
model ChatMessage {
|
|
302
|
-
id
|
|
303
|
-
threadId
|
|
304
|
-
role
|
|
305
|
-
content
|
|
306
|
-
parts
|
|
307
|
-
thinking
|
|
308
|
-
citations
|
|
309
|
-
createdAt
|
|
326
|
+
id String @id @default(cuid())
|
|
327
|
+
threadId String
|
|
328
|
+
role String // "user" | "assistant" | "tool"
|
|
329
|
+
content String @db.Text
|
|
330
|
+
parts Json?
|
|
331
|
+
thinking String? @db.Text
|
|
332
|
+
citations Json?
|
|
333
|
+
createdAt DateTime @default(now())
|
|
310
334
|
|
|
311
335
|
thread ChatThread @relation(fields: [threadId], references: [id], onDelete: Cascade)
|
|
312
336
|
|
|
@@ -316,15 +340,15 @@ model ChatMessage {
|
|
|
316
340
|
|
|
317
341
|
// 运行记录(TanStack AI runs store)
|
|
318
342
|
model ChatRun {
|
|
319
|
-
id String
|
|
343
|
+
id String @id @default(cuid())
|
|
320
344
|
threadId String
|
|
321
345
|
userId String
|
|
322
346
|
status String // running | completed | failed | aborted | interrupted
|
|
323
|
-
startedAt DateTime
|
|
347
|
+
startedAt DateTime @default(now())
|
|
324
348
|
finishedAt DateTime?
|
|
325
349
|
detachedSince DateTime?
|
|
326
350
|
usage Json?
|
|
327
|
-
error String?
|
|
351
|
+
error String? @db.Text
|
|
328
352
|
|
|
329
353
|
thread ChatThread @relation(fields: [threadId], references: [id], onDelete: Cascade)
|
|
330
354
|
interrupts ChatInterrupt[]
|
|
@@ -336,7 +360,7 @@ model ChatRun {
|
|
|
336
360
|
|
|
337
361
|
// 中断记录(TanStack AI interrupts store)
|
|
338
362
|
model ChatInterrupt {
|
|
339
|
-
id String
|
|
363
|
+
id String @id @default(cuid())
|
|
340
364
|
runId String
|
|
341
365
|
threadId String
|
|
342
366
|
userId String
|
|
@@ -345,10 +369,10 @@ model ChatInterrupt {
|
|
|
345
369
|
state String // pending | resolved | cancelled
|
|
346
370
|
payload Json?
|
|
347
371
|
resolution Json?
|
|
348
|
-
createdAt DateTime
|
|
372
|
+
createdAt DateTime @default(now())
|
|
349
373
|
resolvedAt DateTime?
|
|
350
374
|
|
|
351
|
-
run
|
|
375
|
+
run ChatRun @relation(fields: [runId], references: [id], onDelete: Cascade)
|
|
352
376
|
thread ChatThread @relation(fields: [threadId], references: [id], onDelete: Cascade)
|
|
353
377
|
|
|
354
378
|
@@index([runId])
|
|
@@ -358,7 +382,7 @@ model ChatInterrupt {
|
|
|
358
382
|
|
|
359
383
|
// 媒体生成记录(占位,本轮建表不接入业务)
|
|
360
384
|
model GenerationRun {
|
|
361
|
-
id String
|
|
385
|
+
id String @id @default(cuid())
|
|
362
386
|
threadId String
|
|
363
387
|
userId String
|
|
364
388
|
kind String // image | video | speech | transcription
|
|
@@ -366,8 +390,8 @@ model GenerationRun {
|
|
|
366
390
|
input Json?
|
|
367
391
|
result Json?
|
|
368
392
|
artifactId String?
|
|
369
|
-
error String?
|
|
370
|
-
startedAt DateTime
|
|
393
|
+
error String? @db.Text
|
|
394
|
+
startedAt DateTime @default(now())
|
|
371
395
|
finishedAt DateTime?
|
|
372
396
|
|
|
373
397
|
thread ChatThread @relation(fields: [threadId], references: [id], onDelete: Cascade)
|
|
@@ -472,23 +496,27 @@ enum ShareStatus {
|
|
|
472
496
|
|
|
473
497
|
// 知识库
|
|
474
498
|
model KnowledgeBase {
|
|
475
|
-
id
|
|
476
|
-
name
|
|
477
|
-
description
|
|
478
|
-
icon
|
|
479
|
-
tags
|
|
480
|
-
visibility
|
|
481
|
-
userId
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
499
|
+
id String @id @default(cuid())
|
|
500
|
+
name String
|
|
501
|
+
description String? @db.Text
|
|
502
|
+
icon String @default("notebook")
|
|
503
|
+
tags Json @default("[]")
|
|
504
|
+
visibility String @default("private")
|
|
505
|
+
userId String
|
|
506
|
+
workspaceId String?
|
|
507
|
+
pinnedToSidebar Boolean @default(false)
|
|
508
|
+
isDeleted Boolean @default(false)
|
|
509
|
+
createdAt DateTime @default(now())
|
|
510
|
+
updatedAt DateTime @updatedAt
|
|
485
511
|
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
512
|
+
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
513
|
+
workspace Workspace? @relation(fields: [workspaceId], references: [id], onDelete: SetNull)
|
|
514
|
+
documents KnowledgeDocument[]
|
|
515
|
+
projectLinks ProjectKnowledgeBase[]
|
|
489
516
|
|
|
490
|
-
|
|
491
|
-
|
|
517
|
+
@@index([userId])
|
|
518
|
+
@@index([workspaceId])
|
|
519
|
+
@@map("knowledge_bases")
|
|
492
520
|
}
|
|
493
521
|
|
|
494
522
|
model KnowledgeDocument {
|
|
@@ -1384,10 +1412,10 @@ model ArticleFavorite {
|
|
|
1384
1412
|
model Story {
|
|
1385
1413
|
id String @id @default(cuid())
|
|
1386
1414
|
sequenceId Int
|
|
1387
|
-
boardOrder Int
|
|
1415
|
+
boardOrder Int @default(0)
|
|
1388
1416
|
identifier String
|
|
1389
1417
|
projectId String
|
|
1390
|
-
project Project
|
|
1418
|
+
project Project @relation(fields: [projectId], references: [id], onDelete: Restrict)
|
|
1391
1419
|
name String
|
|
1392
1420
|
description String? @db.Text
|
|
1393
1421
|
state String @default("backlog")
|
|
@@ -1410,14 +1438,14 @@ model Story {
|
|
|
1410
1438
|
updatedAt DateTime @updatedAt
|
|
1411
1439
|
|
|
1412
1440
|
parentId String?
|
|
1413
|
-
parent Story?
|
|
1414
|
-
children Story[]
|
|
1415
|
-
dependenciesAsSource StoryDependency[]
|
|
1416
|
-
dependenciesAsTarget StoryDependency[]
|
|
1441
|
+
parent Story? @relation("StoryHierarchy", fields: [parentId], references: [id], onDelete: SetNull)
|
|
1442
|
+
children Story[] @relation("StoryHierarchy")
|
|
1443
|
+
dependenciesAsSource StoryDependency[] @relation("DependencySource")
|
|
1444
|
+
dependenciesAsTarget StoryDependency[] @relation("DependencyTarget")
|
|
1417
1445
|
links StoryLink[]
|
|
1418
1446
|
attachments StoryAttachment[]
|
|
1419
|
-
linkedPrds StoryPrdLink[]
|
|
1420
|
-
linkedDocs StoryDocLink[]
|
|
1447
|
+
linkedPrds StoryPrdLink[] @relation("StoryPrdLinks")
|
|
1448
|
+
linkedDocs StoryDocLink[] @relation("StoryDocLinks")
|
|
1421
1449
|
linkedExternalDocs StoryExternalLink[] @relation("StoryExternalLinks")
|
|
1422
1450
|
iterationId String?
|
|
1423
1451
|
iteration Iteration? @relation(fields: [iterationId], references: [id], onDelete: SetNull)
|
|
@@ -1578,7 +1606,7 @@ model StoryLink {
|
|
|
1578
1606
|
}
|
|
1579
1607
|
|
|
1580
1608
|
model StoryAttachment {
|
|
1581
|
-
id String
|
|
1609
|
+
id String @id @default(cuid())
|
|
1582
1610
|
storyId String
|
|
1583
1611
|
fileName String
|
|
1584
1612
|
fileSize BigInt
|
|
@@ -1586,7 +1614,7 @@ model StoryAttachment {
|
|
|
1586
1614
|
description String?
|
|
1587
1615
|
storageUrl String
|
|
1588
1616
|
bytes Bytes?
|
|
1589
|
-
fileHash String?
|
|
1617
|
+
fileHash String? @db.Text
|
|
1590
1618
|
createdAt DateTime @default(now())
|
|
1591
1619
|
|
|
1592
1620
|
story Story @relation(fields: [storyId], references: [id], onDelete: Cascade)
|
|
@@ -1701,16 +1729,16 @@ model MonitoringErrorReport {
|
|
|
1701
1729
|
}
|
|
1702
1730
|
|
|
1703
1731
|
model MonitoringMetricsSnapshot {
|
|
1704
|
-
id
|
|
1705
|
-
recordedAt
|
|
1706
|
-
metricName
|
|
1707
|
-
count
|
|
1708
|
-
avg
|
|
1709
|
-
p50
|
|
1710
|
-
p95
|
|
1711
|
-
p99
|
|
1712
|
-
min
|
|
1713
|
-
max
|
|
1732
|
+
id String @id @default(cuid())
|
|
1733
|
+
recordedAt DateTime @default(now())
|
|
1734
|
+
metricName String @db.VarChar(256)
|
|
1735
|
+
count Int
|
|
1736
|
+
avg Float
|
|
1737
|
+
p50 Float
|
|
1738
|
+
p95 Float
|
|
1739
|
+
p99 Float
|
|
1740
|
+
min Float
|
|
1741
|
+
max Float
|
|
1714
1742
|
|
|
1715
1743
|
@@index([metricName, recordedAt], map: "idx_metrics_name_ts")
|
|
1716
1744
|
@@map("monitoring_metrics_snapshots")
|
|
@@ -1774,30 +1802,30 @@ model Plan {
|
|
|
1774
1802
|
|
|
1775
1803
|
/// 订阅记录(User 级,一人一订阅)
|
|
1776
1804
|
model Subscription {
|
|
1777
|
-
id
|
|
1778
|
-
userId
|
|
1779
|
-
user
|
|
1780
|
-
planId
|
|
1781
|
-
plan
|
|
1782
|
-
status
|
|
1805
|
+
id String @id @default(cuid())
|
|
1806
|
+
userId String @unique
|
|
1807
|
+
user User @relation(fields: [userId], references: [id])
|
|
1808
|
+
planId String
|
|
1809
|
+
plan Plan @relation(fields: [planId], references: [id])
|
|
1810
|
+
status SubscriptionStatus @default(ACTIVE)
|
|
1783
1811
|
|
|
1784
1812
|
/// 席位加购数量(账号级)。实际上限 = plan.maxSeats + addonSeats。
|
|
1785
1813
|
addonSeats Int @default(0)
|
|
1786
1814
|
|
|
1787
|
-
provider
|
|
1788
|
-
providerCustomerId
|
|
1789
|
-
providerSubscriptionId
|
|
1790
|
-
providerPriceId
|
|
1815
|
+
provider String @default("creem")
|
|
1816
|
+
providerCustomerId String?
|
|
1817
|
+
providerSubscriptionId String? @unique
|
|
1818
|
+
providerPriceId String?
|
|
1791
1819
|
providerSeatSubscriptionId String?
|
|
1792
1820
|
|
|
1793
|
-
currentPeriodStart
|
|
1794
|
-
currentPeriodEnd
|
|
1795
|
-
cancelAtPeriodEnd
|
|
1796
|
-
canceledAt
|
|
1797
|
-
trialEndsAt
|
|
1821
|
+
currentPeriodStart DateTime?
|
|
1822
|
+
currentPeriodEnd DateTime?
|
|
1823
|
+
cancelAtPeriodEnd Boolean @default(false)
|
|
1824
|
+
canceledAt DateTime?
|
|
1825
|
+
trialEndsAt DateTime?
|
|
1798
1826
|
|
|
1799
|
-
createdAt
|
|
1800
|
-
updatedAt
|
|
1827
|
+
createdAt DateTime @default(now())
|
|
1828
|
+
updatedAt DateTime @updatedAt
|
|
1801
1829
|
|
|
1802
1830
|
/// 关联发票(子项目 3 新增)
|
|
1803
1831
|
invoices Invoice[]
|
|
@@ -1824,8 +1852,8 @@ model UsageRecord {
|
|
|
1824
1852
|
count Int @default(0)
|
|
1825
1853
|
resetAt DateTime
|
|
1826
1854
|
|
|
1827
|
-
createdAt
|
|
1828
|
-
updatedAt
|
|
1855
|
+
createdAt DateTime @default(now())
|
|
1856
|
+
updatedAt DateTime @updatedAt
|
|
1829
1857
|
|
|
1830
1858
|
@@unique([workspaceId, metric, period])
|
|
1831
1859
|
@@index([workspaceId, metric])
|
|
@@ -1840,22 +1868,22 @@ enum UsageMetric {
|
|
|
1840
1868
|
|
|
1841
1869
|
/// AI 用量明细(按次扣减 + 成本审计)
|
|
1842
1870
|
model AiUsageLog {
|
|
1843
|
-
id String
|
|
1871
|
+
id String @id @default(cuid())
|
|
1844
1872
|
workspaceId String
|
|
1845
1873
|
workspace Workspace @relation(fields: [workspaceId], references: [id])
|
|
1846
1874
|
userId String
|
|
1847
|
-
user User
|
|
1848
|
-
source String
|
|
1875
|
+
user User @relation(fields: [userId], references: [id])
|
|
1876
|
+
source String @default("byok")
|
|
1849
1877
|
provider String
|
|
1850
1878
|
model String
|
|
1851
|
-
inputTokens Int
|
|
1852
|
-
outputTokens Int
|
|
1853
|
-
costUsd Decimal?
|
|
1854
|
-
success Boolean
|
|
1879
|
+
inputTokens Int @default(0)
|
|
1880
|
+
outputTokens Int @default(0)
|
|
1881
|
+
costUsd Decimal? @db.Decimal(10, 6)
|
|
1882
|
+
success Boolean @default(true)
|
|
1855
1883
|
errorMessage String?
|
|
1856
1884
|
durationMs Int?
|
|
1857
1885
|
|
|
1858
|
-
createdAt
|
|
1886
|
+
createdAt DateTime @default(now())
|
|
1859
1887
|
|
|
1860
1888
|
@@index([workspaceId, createdAt])
|
|
1861
1889
|
@@index([userId, createdAt])
|
|
@@ -1868,22 +1896,22 @@ model AiUsageLog {
|
|
|
1868
1896
|
|
|
1869
1897
|
/// 账单记录(Webhook 同步)
|
|
1870
1898
|
model Invoice {
|
|
1871
|
-
id
|
|
1872
|
-
subscriptionId
|
|
1873
|
-
subscription
|
|
1874
|
-
providerInvoiceId
|
|
1875
|
-
providerEventId
|
|
1876
|
-
amountDue
|
|
1877
|
-
amountPaid
|
|
1878
|
-
currency
|
|
1879
|
-
status
|
|
1880
|
-
pdfUrl
|
|
1881
|
-
hostedInvoiceUrl
|
|
1882
|
-
periodStart
|
|
1883
|
-
periodEnd
|
|
1884
|
-
paidAt
|
|
1885
|
-
|
|
1886
|
-
createdAt
|
|
1899
|
+
id String @id @default(cuid())
|
|
1900
|
+
subscriptionId String
|
|
1901
|
+
subscription Subscription @relation(fields: [subscriptionId], references: [id])
|
|
1902
|
+
providerInvoiceId String @unique
|
|
1903
|
+
providerEventId String?
|
|
1904
|
+
amountDue Int
|
|
1905
|
+
amountPaid Int
|
|
1906
|
+
currency String @default("usd")
|
|
1907
|
+
status String
|
|
1908
|
+
pdfUrl String?
|
|
1909
|
+
hostedInvoiceUrl String?
|
|
1910
|
+
periodStart DateTime
|
|
1911
|
+
periodEnd DateTime
|
|
1912
|
+
paidAt DateTime?
|
|
1913
|
+
|
|
1914
|
+
createdAt DateTime @default(now())
|
|
1887
1915
|
|
|
1888
1916
|
@@index([subscriptionId, createdAt])
|
|
1889
1917
|
@@map("invoices")
|
|
@@ -1891,15 +1919,15 @@ model Invoice {
|
|
|
1891
1919
|
|
|
1892
1920
|
/// Provider Webhook 事件幂等记录
|
|
1893
1921
|
model ProviderEvent {
|
|
1894
|
-
id String
|
|
1895
|
-
providerEventId String
|
|
1922
|
+
id String @id @default(cuid())
|
|
1923
|
+
providerEventId String @unique
|
|
1896
1924
|
type String
|
|
1897
|
-
status String
|
|
1925
|
+
status String @default("processing")
|
|
1898
1926
|
payload Json?
|
|
1899
1927
|
errorMessage String?
|
|
1900
1928
|
processedAt DateTime? @db.Timestamptz
|
|
1901
1929
|
|
|
1902
|
-
createdAt
|
|
1930
|
+
createdAt DateTime @default(now()) @db.Timestamptz
|
|
1903
1931
|
|
|
1904
1932
|
@@index([type, createdAt])
|
|
1905
1933
|
@@map("provider_events")
|
|
@@ -1954,7 +1982,7 @@ model AuditLog {
|
|
|
1954
1982
|
metadata Json
|
|
1955
1983
|
ip String?
|
|
1956
1984
|
userAgent String?
|
|
1957
|
-
createdAt DateTime
|
|
1985
|
+
createdAt DateTime @default(now())
|
|
1958
1986
|
|
|
1959
1987
|
@@index([workspaceId, createdAt])
|
|
1960
1988
|
@@index([userId, createdAt])
|
|
@@ -1964,17 +1992,17 @@ model AuditLog {
|
|
|
1964
1992
|
|
|
1965
1993
|
// SSO Provider 配置
|
|
1966
1994
|
model SsoProvider {
|
|
1967
|
-
id
|
|
1968
|
-
workspaceId
|
|
1969
|
-
workspace
|
|
1970
|
-
type
|
|
1971
|
-
name
|
|
1972
|
-
config
|
|
1973
|
-
domain
|
|
1974
|
-
enabled
|
|
1975
|
-
createdAt
|
|
1976
|
-
updatedAt
|
|
1977
|
-
mappings
|
|
1995
|
+
id String @id @default(cuid())
|
|
1996
|
+
workspaceId String
|
|
1997
|
+
workspace Workspace @relation(fields: [workspaceId], references: [id])
|
|
1998
|
+
type String
|
|
1999
|
+
name String
|
|
2000
|
+
config Json
|
|
2001
|
+
domain String?
|
|
2002
|
+
enabled Boolean @default(true)
|
|
2003
|
+
createdAt DateTime @default(now())
|
|
2004
|
+
updatedAt DateTime @updatedAt
|
|
2005
|
+
mappings SsoMapping[]
|
|
1978
2006
|
|
|
1979
2007
|
@@unique([workspaceId, type, domain])
|
|
1980
2008
|
@@map("sso_providers")
|
|
@@ -1996,14 +2024,14 @@ model SsoMapping {
|
|
|
1996
2024
|
|
|
1997
2025
|
// 自定义角色
|
|
1998
2026
|
model CustomRole {
|
|
1999
|
-
id String
|
|
2027
|
+
id String @id @default(cuid())
|
|
2000
2028
|
workspaceId String
|
|
2001
|
-
workspace Workspace
|
|
2029
|
+
workspace Workspace @relation(fields: [workspaceId], references: [id])
|
|
2002
2030
|
name String
|
|
2003
2031
|
permissions Json
|
|
2004
|
-
isSystem Boolean
|
|
2005
|
-
createdAt DateTime
|
|
2006
|
-
updatedAt DateTime
|
|
2032
|
+
isSystem Boolean @default(false)
|
|
2033
|
+
createdAt DateTime @default(now())
|
|
2034
|
+
updatedAt DateTime @updatedAt
|
|
2007
2035
|
assignments RoleAssignment[]
|
|
2008
2036
|
|
|
2009
2037
|
@@unique([workspaceId, name])
|
|
@@ -2011,12 +2039,12 @@ model CustomRole {
|
|
|
2011
2039
|
}
|
|
2012
2040
|
|
|
2013
2041
|
model RoleAssignment {
|
|
2014
|
-
id String
|
|
2042
|
+
id String @id @default(cuid())
|
|
2015
2043
|
roleId String
|
|
2016
2044
|
role CustomRole @relation(fields: [roleId], references: [id])
|
|
2017
2045
|
userId String
|
|
2018
|
-
user User
|
|
2019
|
-
createdAt DateTime
|
|
2046
|
+
user User @relation(fields: [userId], references: [id])
|
|
2047
|
+
createdAt DateTime @default(now())
|
|
2020
2048
|
|
|
2021
2049
|
@@unique([roleId, userId])
|
|
2022
2050
|
@@map("role_assignments")
|
|
@@ -2085,8 +2113,8 @@ model UserSkill {
|
|
|
2085
2113
|
// 开发者日志(Changelog 条目,agent 自动生成 + admin 手动管理)
|
|
2086
2114
|
model DeveloperLog {
|
|
2087
2115
|
id String @id @default(cuid())
|
|
2088
|
-
date String
|
|
2089
|
-
year String
|
|
2116
|
+
date String // "Aug 23, 2026"
|
|
2117
|
+
year String // "2026"
|
|
2090
2118
|
title String
|
|
2091
2119
|
desc String @db.Text
|
|
2092
2120
|
tags Json @default("[]") // ["feat", "design"]
|
|
@@ -2124,9 +2152,9 @@ model NotificationPreference {
|
|
|
2124
2152
|
dndEnabled Boolean @default(false)
|
|
2125
2153
|
dndStart String @default("22:00")
|
|
2126
2154
|
dndEnd String @default("08:00")
|
|
2127
|
-
|
|
2155
|
+
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
2128
2156
|
|
|
2129
|
-
|
|
2157
|
+
@@map("notification_preferences")
|
|
2130
2158
|
}
|
|
2131
2159
|
|
|
2132
2160
|
// 迭代(时间盒冲刺,状态由日期动态推导,不存状态字段)
|
|
@@ -2153,16 +2181,16 @@ model Iteration {
|
|
|
2153
2181
|
|
|
2154
2182
|
// 迭代自动排期配置(一项目一行)
|
|
2155
2183
|
model IterationAutoSchedule {
|
|
2156
|
-
projectId String
|
|
2157
|
-
project Project
|
|
2158
|
-
enabled Boolean
|
|
2159
|
-
title String
|
|
2160
|
-
durationDays Int
|
|
2161
|
-
cooldownDays Int
|
|
2184
|
+
projectId String @id
|
|
2185
|
+
project Project @relation(fields: [projectId], references: [id], onDelete: Cascade)
|
|
2186
|
+
enabled Boolean @default(false)
|
|
2187
|
+
title String @default("迭代")
|
|
2188
|
+
durationDays Int @default(14)
|
|
2189
|
+
cooldownDays Int @default(0)
|
|
2162
2190
|
startsOn DateTime
|
|
2163
|
-
futureCount Int
|
|
2164
|
-
autoRollover Boolean
|
|
2165
|
-
lastSeq Int
|
|
2191
|
+
futureCount Int @default(2)
|
|
2192
|
+
autoRollover Boolean @default(false)
|
|
2193
|
+
lastSeq Int @default(0)
|
|
2166
2194
|
|
|
2167
2195
|
@@map("iteration_auto_schedules")
|
|
2168
2196
|
}
|