@allbluecn/database 0.4.18 → 0.6.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.
Files changed (216) hide show
  1. package/generated/browser.ts +18 -3
  2. package/generated/client.ts +20 -5
  3. package/generated/commonInputTypes.ts +2 -2
  4. package/generated/internal/class.ts +35 -5
  5. package/generated/internal/prismaNamespace.ts +276 -4
  6. package/generated/internal/prismaNamespaceBrowser.ts +49 -2
  7. package/generated/models/Account.ts +2 -2
  8. package/generated/models/AgentConversation.ts +2 -2
  9. package/generated/models/AgentMessage.ts +2 -2
  10. package/generated/models/AiProvider.ts +2 -2
  11. package/generated/models/AiProviderConfig.ts +2 -2
  12. package/generated/models/AiUsageLog.ts +2 -2
  13. package/generated/models/AnyHubApp.ts +2 -2
  14. package/generated/models/AnyHubMarketApp.ts +2 -2
  15. package/generated/models/AnyHubPermission.ts +2 -2
  16. package/generated/models/AnyHubRecommendation.ts +2 -2
  17. package/generated/models/AnyHubRecommender.ts +2 -2
  18. package/generated/models/Artboard.ts +2 -2
  19. package/generated/models/ArtboardExport.ts +2 -2
  20. package/generated/models/ArticleFavorite.ts +2 -2
  21. package/generated/models/AuditLog.ts +2 -2
  22. package/generated/models/Block.ts +2 -2
  23. package/generated/models/BlockComponent.ts +2 -2
  24. package/generated/models/BlockInstance.ts +2 -2
  25. package/generated/models/BookmarkCategory.ts +2 -2
  26. package/generated/models/ChatInterrupt.ts +2 -2
  27. package/generated/models/ChatMessage.ts +2 -2
  28. package/generated/models/ChatRun.ts +2 -2
  29. package/generated/models/ChatThread.ts +2 -6
  30. package/generated/models/Comment.ts +2 -2
  31. package/generated/models/CommentIgnore.ts +2 -2
  32. package/generated/models/CommentReaction.ts +2 -2
  33. package/generated/models/ComplianceExport.ts +2 -2
  34. package/generated/models/Component.ts +2 -2
  35. package/generated/models/ComponentInstance.ts +2 -2
  36. package/generated/models/ComponentTag.ts +2 -2
  37. package/generated/models/CustomRole.ts +2 -2
  38. package/generated/models/DesignProject.ts +2 -2
  39. package/generated/models/DeveloperLog.ts +2 -2
  40. package/generated/models/DictionaryTerm.ts +2 -2
  41. package/generated/models/GenerationRun.ts +2 -2
  42. package/generated/models/IndustryCompliance.ts +2 -2
  43. package/generated/models/InvitationCode.ts +2 -2
  44. package/generated/models/InvitationUse.ts +2 -2
  45. package/generated/models/Invoice.ts +2 -2
  46. package/generated/models/Iteration.ts +2 -2
  47. package/generated/models/IterationAutoSchedule.ts +2 -2
  48. package/generated/models/KnowledgeBase.ts +436 -3
  49. package/generated/models/KnowledgeDocument.ts +178 -2
  50. package/generated/models/KnowledgeShareRecord.ts +2 -2
  51. package/generated/models/Label.ts +2 -2
  52. package/generated/models/LegalRegulation.ts +2 -2
  53. package/generated/models/LicenseActivation.ts +2 -2
  54. package/generated/models/LicenseKey.ts +2 -2
  55. package/generated/models/LoginLog.ts +2 -2
  56. package/generated/models/MonitoringErrorReport.ts +2 -2
  57. package/generated/models/MonitoringHealthSnapshot.ts +2 -2
  58. package/generated/models/MonitoringMetricsSnapshot.ts +2 -2
  59. package/generated/models/MonitoringRequestLog.ts +2 -2
  60. package/generated/models/Notification.ts +2 -2
  61. package/generated/models/NotificationPreference.ts +2 -2
  62. package/generated/models/PRD.ts +2 -2
  63. package/generated/models/PRDPage.ts +2 -2
  64. package/generated/models/PRDTag.ts +2 -2
  65. package/generated/models/PRDVersion.ts +2 -2
  66. package/generated/models/PageVersion.ts +2 -2
  67. package/generated/models/PasswordResetToken.ts +2 -2
  68. package/generated/models/Plan.ts +2 -2
  69. package/generated/models/Project.ts +2 -2
  70. package/generated/models/ProjectActivity.ts +2 -2
  71. package/generated/models/ProjectKnowledgeBase.ts +2 -2
  72. package/generated/models/ProjectMember.ts +2 -2
  73. package/generated/models/ProviderEvent.ts +2 -2
  74. package/generated/models/Reference.ts +2 -2
  75. package/generated/models/Review.ts +2 -2
  76. package/generated/models/ReviewComment.ts +2 -2
  77. package/generated/models/RoleAssignment.ts +2 -2
  78. package/generated/models/SequenceCounter.ts +2 -2
  79. package/generated/models/Share.ts +2 -2
  80. package/generated/models/ShareVersion.ts +2 -2
  81. package/generated/models/SsoMapping.ts +2 -2
  82. package/generated/models/SsoProvider.ts +2 -2
  83. package/generated/models/Story.ts +2 -2
  84. package/generated/models/StoryActivity.ts +2 -2
  85. package/generated/models/StoryAttachment.ts +2 -2
  86. package/generated/models/StoryComment.ts +2 -2
  87. package/generated/models/StoryDependency.ts +2 -2
  88. package/generated/models/StoryDocLink.ts +2 -2
  89. package/generated/models/StoryExternalLink.ts +2 -2
  90. package/generated/models/StoryFilterView.ts +2 -2
  91. package/generated/models/StoryLabel.ts +2 -2
  92. package/generated/models/StoryLink.ts +2 -2
  93. package/generated/models/StoryPrdLink.ts +2 -2
  94. package/generated/models/StoryReaction.ts +2 -2
  95. package/generated/models/Subscription.ts +2 -2
  96. package/generated/models/SystemSetting.ts +2 -2
  97. package/generated/models/Tag.ts +2 -2
  98. package/generated/models/TeamInvitation.ts +2 -2
  99. package/generated/models/TeamJoinRequest.ts +2 -2
  100. package/generated/models/TeamMembership.ts +2 -2
  101. package/generated/models/Template.ts +2 -2
  102. package/generated/models/TemplateBlock.ts +2 -2
  103. package/generated/models/ThirdPartyDependency.ts +2 -2
  104. package/generated/models/UsageRecord.ts +2 -2
  105. package/generated/models/User.ts +1585 -325
  106. package/generated/models/UserAgent.ts +2 -2
  107. package/generated/models/UserSkill.ts +2 -2
  108. package/generated/models/WebsiteBookmark.ts +2 -2
  109. package/generated/models/Workspace.ts +796 -3
  110. package/generated/models/WorkspaceKnowledgeBase.ts +1430 -0
  111. package/generated/models/WorkspaceMember.ts +1512 -0
  112. package/generated/models/WorkspaceQuickDoc.ts +2030 -0
  113. package/generated/models.ts +107 -104
  114. package/generated-sqlite/browser.ts +13 -3
  115. package/generated-sqlite/client.ts +15 -5
  116. package/generated-sqlite/commonInputTypes.ts +2 -2
  117. package/generated-sqlite/internal/class.ts +25 -5
  118. package/generated-sqlite/internal/prismaNamespace.ts +187 -4
  119. package/generated-sqlite/internal/prismaNamespaceBrowser.ts +35 -2
  120. package/generated-sqlite/models/AgentConversation.ts +2 -2
  121. package/generated-sqlite/models/AgentMessage.ts +2 -2
  122. package/generated-sqlite/models/AiProvider.ts +2 -2
  123. package/generated-sqlite/models/AiProviderConfig.ts +2 -2
  124. package/generated-sqlite/models/AiUsageLog.ts +2 -2
  125. package/generated-sqlite/models/AnyHubApp.ts +2 -2
  126. package/generated-sqlite/models/AnyHubMarketApp.ts +2 -2
  127. package/generated-sqlite/models/AnyHubPermission.ts +2 -2
  128. package/generated-sqlite/models/AnyHubRecommendation.ts +2 -2
  129. package/generated-sqlite/models/AnyHubRecommender.ts +2 -2
  130. package/generated-sqlite/models/Artboard.ts +2 -2
  131. package/generated-sqlite/models/ArtboardExport.ts +2 -2
  132. package/generated-sqlite/models/ArticleFavorite.ts +2 -2
  133. package/generated-sqlite/models/AuditLog.ts +2 -2
  134. package/generated-sqlite/models/Block.ts +2 -2
  135. package/generated-sqlite/models/BlockComponent.ts +2 -2
  136. package/generated-sqlite/models/BlockInstance.ts +2 -2
  137. package/generated-sqlite/models/BookmarkCategory.ts +2 -2
  138. package/generated-sqlite/models/ChatInterrupt.ts +2 -2
  139. package/generated-sqlite/models/ChatMessage.ts +2 -2
  140. package/generated-sqlite/models/ChatRun.ts +2 -2
  141. package/generated-sqlite/models/ChatThread.ts +2 -6
  142. package/generated-sqlite/models/Comment.ts +2 -2
  143. package/generated-sqlite/models/CommentIgnore.ts +2 -2
  144. package/generated-sqlite/models/ComplianceExport.ts +2 -2
  145. package/generated-sqlite/models/Component.ts +2 -2
  146. package/generated-sqlite/models/ComponentInstance.ts +2 -2
  147. package/generated-sqlite/models/ComponentTag.ts +2 -2
  148. package/generated-sqlite/models/CustomRole.ts +2 -2
  149. package/generated-sqlite/models/DesignProject.ts +2 -2
  150. package/generated-sqlite/models/DeveloperLog.ts +2 -2
  151. package/generated-sqlite/models/DictionaryTerm.ts +2 -2
  152. package/generated-sqlite/models/GenerationRun.ts +2 -2
  153. package/generated-sqlite/models/IndustryCompliance.ts +2 -2
  154. package/generated-sqlite/models/InvitationCode.ts +2 -2
  155. package/generated-sqlite/models/InvitationUse.ts +2 -2
  156. package/generated-sqlite/models/Invoice.ts +2 -2
  157. package/generated-sqlite/models/Iteration.ts +2 -2
  158. package/generated-sqlite/models/IterationAutoSchedule.ts +2 -2
  159. package/generated-sqlite/models/KnowledgeBase.ts +196 -3
  160. package/generated-sqlite/models/KnowledgeDocument.ts +170 -2
  161. package/generated-sqlite/models/KnowledgeShareRecord.ts +2 -2
  162. package/generated-sqlite/models/LegalRegulation.ts +2 -2
  163. package/generated-sqlite/models/LicenseActivation.ts +2 -2
  164. package/generated-sqlite/models/LicenseKey.ts +2 -2
  165. package/generated-sqlite/models/LoginLog.ts +2 -2
  166. package/generated-sqlite/models/PRD.ts +2 -2
  167. package/generated-sqlite/models/PRDPage.ts +2 -2
  168. package/generated-sqlite/models/PRDTag.ts +2 -2
  169. package/generated-sqlite/models/PRDVersion.ts +2 -2
  170. package/generated-sqlite/models/PageVersion.ts +2 -2
  171. package/generated-sqlite/models/PasswordResetToken.ts +2 -2
  172. package/generated-sqlite/models/Plan.ts +2 -2
  173. package/generated-sqlite/models/Project.ts +2 -2
  174. package/generated-sqlite/models/ProjectActivity.ts +2 -2
  175. package/generated-sqlite/models/ProjectKnowledgeBase.ts +2 -2
  176. package/generated-sqlite/models/ProjectMember.ts +2 -2
  177. package/generated-sqlite/models/ProviderEvent.ts +2 -2
  178. package/generated-sqlite/models/Reference.ts +2 -2
  179. package/generated-sqlite/models/Review.ts +2 -2
  180. package/generated-sqlite/models/ReviewComment.ts +2 -2
  181. package/generated-sqlite/models/RoleAssignment.ts +2 -2
  182. package/generated-sqlite/models/Share.ts +2 -2
  183. package/generated-sqlite/models/ShareVersion.ts +2 -2
  184. package/generated-sqlite/models/SsoMapping.ts +2 -2
  185. package/generated-sqlite/models/SsoProvider.ts +2 -2
  186. package/generated-sqlite/models/Story.ts +2 -2
  187. package/generated-sqlite/models/Subscription.ts +2 -2
  188. package/generated-sqlite/models/SystemSetting.ts +2 -2
  189. package/generated-sqlite/models/Tag.ts +2 -2
  190. package/generated-sqlite/models/TeamInvitation.ts +2 -2
  191. package/generated-sqlite/models/TeamJoinRequest.ts +2 -2
  192. package/generated-sqlite/models/TeamMembership.ts +2 -2
  193. package/generated-sqlite/models/Template.ts +2 -2
  194. package/generated-sqlite/models/TemplateBlock.ts +2 -2
  195. package/generated-sqlite/models/ThirdPartyDependency.ts +2 -2
  196. package/generated-sqlite/models/UsageRecord.ts +2 -2
  197. package/generated-sqlite/models/User.ts +520 -2
  198. package/generated-sqlite/models/UserAgent.ts +2 -2
  199. package/generated-sqlite/models/UserSkill.ts +2 -2
  200. package/generated-sqlite/models/WebsiteBookmark.ts +2 -2
  201. package/generated-sqlite/models/Workspace.ts +354 -3
  202. package/generated-sqlite/models/WorkspaceKnowledgeBase.ts +1426 -0
  203. package/generated-sqlite/models/WorkspaceQuickDoc.ts +2025 -0
  204. package/generated-sqlite/models.ts +85 -83
  205. package/migrations/20260907093612_add_workspace_pinned_to_sidebar/migration.sql +2 -0
  206. package/migrations/20260907100000_add_knowledge_pinned_to_sidebar/migration.sql +2 -0
  207. package/migrations/20260907110000_add_workspace_members/migration.sql +34 -0
  208. package/migrations/20260907120000_knowledgebase_workspace_id/migration.sql +8 -0
  209. package/migrations/20260909070745_workspace_kb_card/migration.sql +55 -0
  210. package/migrations/20260909123637_workspace_quick_doc_column_index/migration.sql +2 -0
  211. package/migrations/20260909123656_workspace_quick_doc_column_backfill/migration.sql +4 -0
  212. package/migrations/20260909144328_workspace_quick_doc_label/migration.sql +2 -0
  213. package/migrations/20260909154315_workspace_quick_doc_icon/migration.sql +2 -0
  214. package/package.json +2 -2
  215. package/schema.prisma +288 -214
  216. package/schema.sqlite.prisma +62 -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 InvitationUse[]
60
+ invitationUses InvitationUse[]
61
61
  loginLogs LoginLog[]
62
62
  passwordResetTokens PasswordResetToken[]
63
63
  prds PRD[]
@@ -73,46 +73,48 @@ model User {
73
73
  articleFavorites ArticleFavorite[]
74
74
  anyhubApps AnyHubApp[]
75
75
  anyhubMarketApps AnyHubMarketApp[]
76
- reviewedAnyhubRecommendations AnyHubRecommendation[] @relation("reviewedAnyhubRecommendations")
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[] @relation("reviewer")
82
+ reviews Review[] @relation("reviewer")
83
83
  designProjects DesignProject[]
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")
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[] @relation("projectOwner")
98
- projectMemberships ProjectMember[]
99
- projectActivities ProjectActivity[]
100
- ownedWorkspaces Workspace[] @relation("workspaceOwner")
101
- workspaceMemberships TeamMembership[] @relation("teamOwner")
102
- teamJoined TeamMembership? @relation("teamMember")
103
- sentInvitations TeamInvitation[] @relation("invitationOwner")
104
- ownedJoinRequests TeamJoinRequest[] @relation("joinRequestOwner")
105
- applicantJoinRequests TeamJoinRequest[] @relation("joinRequestApplicant")
106
- aiUsageLogs AiUsageLog[]
107
- agents UserAgent[]
108
- skills UserSkill[]
109
- notifications Notification[]
110
- notificationPreference NotificationPreference?
111
-
112
- issuedLicenses LicenseKey[] @relation("LicenseIssuer")
113
- ssoMappings SsoMapping[]
114
- roleAssignments RoleAssignment[]
115
- subscription Subscription?
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?
117
+ createdQuickDocs WorkspaceQuickDoc[]
116
118
 
117
119
  @@map("users")
118
120
  }
@@ -141,24 +143,24 @@ model Account {
141
143
 
142
144
  // 项目
143
145
  model Project {
144
- id String @id @default(cuid())
145
- displayId String? // 用户层项目ID,全大写字母数字,1-10位
146
- name String
147
- description String?
148
- icon String @default("folder")
149
- timezone String? // 项目时区,null = 跟随用户全局时区
150
- ownerId String
151
- owner User @relation("projectOwner", fields: [ownerId], references: [id])
152
- workspaceId String?
153
- workspace Workspace? @relation(fields: [workspaceId], references: [id], onDelete: SetNull)
154
- members ProjectMember[]
155
- activities ProjectActivity[]
156
- stories Story[]
157
- iterations Iteration[]
158
- iterationAutoSchedule IterationAutoSchedule?
159
- knowledgeBases ProjectKnowledgeBase[]
160
- createdAt DateTime @default(now())
161
- updatedAt DateTime @updatedAt
146
+ id String @id @default(cuid())
147
+ displayId String? // 用户层项目ID,全大写字母数字,1-10位
148
+ name String
149
+ description String?
150
+ icon String @default("folder")
151
+ timezone String? // 项目时区,null = 跟随用户全局时区
152
+ ownerId String
153
+ owner User @relation("projectOwner", fields: [ownerId], references: [id])
154
+ workspaceId String?
155
+ workspace Workspace? @relation(fields: [workspaceId], references: [id], onDelete: SetNull)
156
+ members ProjectMember[]
157
+ activities ProjectActivity[]
158
+ stories Story[]
159
+ iterations Iteration[]
160
+ iterationAutoSchedule IterationAutoSchedule?
161
+ knowledgeBases ProjectKnowledgeBase[]
162
+ createdAt DateTime @default(now())
163
+ updatedAt DateTime @updatedAt
162
164
 
163
165
  @@unique([ownerId, displayId])
164
166
  @@index([ownerId])
@@ -184,35 +186,58 @@ model ProjectMember {
184
186
 
185
187
  // 工作空间(项目的上一级容器)
186
188
  model Workspace {
187
- id String @id @default(cuid())
188
- name String
189
- icon String @default("folder")
190
- description String?
191
- ownerId String
192
- owner User @relation("workspaceOwner", fields: [ownerId], references: [id])
193
- projects Project[]
194
- usageRecords UsageRecord[]
189
+ id String @id @default(cuid())
190
+ name String
191
+ icon String @default("folder")
192
+ description String?
193
+ pinnedToSidebar Boolean @default(false)
194
+ ownerId String
195
+ owner User @relation("workspaceOwner", fields: [ownerId], references: [id])
196
+ projects Project[]
197
+ members WorkspaceMember[]
198
+ knowledgeBases KnowledgeBase[]
199
+ workspaceKbLinks WorkspaceKnowledgeBase[]
200
+ quickDocs WorkspaceQuickDoc[]
201
+ usageRecords UsageRecord[]
195
202
  aiUsageLogs AiUsageLog[]
196
- createdAt DateTime @default(now())
197
- updatedAt DateTime @updatedAt
203
+ createdAt DateTime @default(now())
204
+ updatedAt DateTime @updatedAt
198
205
 
199
- ssoProviders SsoProvider[]
200
- customRoles CustomRole[]
201
- auditLogs AuditLog[]
206
+ ssoProviders SsoProvider[]
207
+ customRoles CustomRole[]
208
+ auditLogs AuditLog[]
202
209
 
203
210
  @@index([ownerId])
204
211
  @@map("workspaces")
205
212
  }
206
213
 
214
+ // 工作空间成员
215
+ model WorkspaceMember {
216
+ id String @id @default(cuid())
217
+ workspaceId String
218
+ workspace Workspace @relation(fields: [workspaceId], references: [id], onDelete: Cascade)
219
+ userId String
220
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
221
+ role String @default("member")
222
+ status String @default("active")
223
+ joinedAt DateTime @default(now())
224
+
225
+ @@unique([workspaceId, userId])
226
+ @@index([workspaceId])
227
+ @@index([userId])
228
+ @@map("workspace_members")
229
+ }
230
+
207
231
  // 团队隶属关系
208
232
  model TeamMembership {
209
- id String @id @default(cuid())
210
- ownerId String
211
- owner User @relation("teamOwner", fields: [ownerId], references: [id], onDelete: Cascade)
212
- memberId String
213
- member User @relation("teamMember", fields: [memberId], references: [id], onDelete: Cascade)
214
- seatType String @default("member")
215
- joinedAt DateTime @default(now())
233
+ id String @id @default(cuid())
234
+ ownerId String
235
+ owner User @relation("teamOwner", fields: [ownerId], references: [id], onDelete: Cascade)
236
+ memberId String
237
+ member User @relation("teamMember", fields: [memberId], references: [id], onDelete: Cascade)
238
+ seatType String @default("member")
239
+ joinedAt DateTime @default(now())
240
+
216
241
  @@unique([memberId])
217
242
  @@index([ownerId])
218
243
  @@map("team_memberships")
@@ -220,20 +245,21 @@ model TeamMembership {
220
245
 
221
246
  // 团队邀请
222
247
  model TeamInvitation {
223
- id String @id @default(cuid())
248
+ id String @id @default(cuid())
224
249
  ownerId String
225
- owner User @relation("invitationOwner", fields: [ownerId], references: [id], onDelete: Cascade)
250
+ owner User @relation("invitationOwner", fields: [ownerId], references: [id], onDelete: Cascade)
226
251
  email String?
227
- seatType String @default("member")
228
- token String @unique
229
- channel String @default("email")
230
- status String @default("pending")
252
+ seatType String @default("member")
253
+ token String @unique
254
+ channel String @default("email")
255
+ status String @default("pending")
231
256
  expiresAt DateTime
232
- createdAt DateTime @default(now())
257
+ createdAt DateTime @default(now())
233
258
  acceptedBy String?
234
259
  applicantEmail String?
235
260
  message String?
236
261
  joinRequests TeamJoinRequest[]
262
+
237
263
  @@unique([ownerId, email])
238
264
  @@index([ownerId])
239
265
  @@index([email])
@@ -254,6 +280,7 @@ model TeamJoinRequest {
254
280
  seatType String @default("member")
255
281
  createdAt DateTime @default(now())
256
282
  processedAt DateTime?
283
+
257
284
  @@unique([invitationId, email])
258
285
  @@index([ownerId, status])
259
286
  @@map("team_join_requests")
@@ -285,13 +312,13 @@ model ChatThread {
285
312
  createdAt DateTime @default(now())
286
313
  updatedAt DateTime @updatedAt
287
314
 
288
- user User @relation(fields: [userId], references: [id], onDelete: Cascade)
289
- messages ChatMessage[]
290
- runs ChatRun[]
291
- interrupts ChatInterrupt[]
315
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
316
+ messages ChatMessage[]
317
+ runs ChatRun[]
318
+ interrupts ChatInterrupt[]
292
319
  generations GenerationRun[]
293
- agentId String?
294
- agent UserAgent? @relation(fields: [agentId], references: [id])
320
+ agentId String?
321
+ agent UserAgent? @relation(fields: [agentId], references: [id])
295
322
 
296
323
  @@index([userId, updatedAt])
297
324
  @@map("chat_threads")
@@ -299,14 +326,14 @@ model ChatThread {
299
326
 
300
327
  // 对话消息(TanStack AI messages store)
301
328
  model ChatMessage {
302
- id String @id @default(cuid())
303
- threadId String
304
- role String // "user" | "assistant" | "tool"
305
- content String @db.Text
306
- parts Json?
307
- thinking String? @db.Text
308
- citations Json?
309
- createdAt DateTime @default(now())
329
+ id String @id @default(cuid())
330
+ threadId String
331
+ role String // "user" | "assistant" | "tool"
332
+ content String @db.Text
333
+ parts Json?
334
+ thinking String? @db.Text
335
+ citations Json?
336
+ createdAt DateTime @default(now())
310
337
 
311
338
  thread ChatThread @relation(fields: [threadId], references: [id], onDelete: Cascade)
312
339
 
@@ -316,15 +343,15 @@ model ChatMessage {
316
343
 
317
344
  // 运行记录(TanStack AI runs store)
318
345
  model ChatRun {
319
- id String @id @default(cuid())
346
+ id String @id @default(cuid())
320
347
  threadId String
321
348
  userId String
322
349
  status String // running | completed | failed | aborted | interrupted
323
- startedAt DateTime @default(now())
350
+ startedAt DateTime @default(now())
324
351
  finishedAt DateTime?
325
352
  detachedSince DateTime?
326
353
  usage Json?
327
- error String? @db.Text
354
+ error String? @db.Text
328
355
 
329
356
  thread ChatThread @relation(fields: [threadId], references: [id], onDelete: Cascade)
330
357
  interrupts ChatInterrupt[]
@@ -336,7 +363,7 @@ model ChatRun {
336
363
 
337
364
  // 中断记录(TanStack AI interrupts store)
338
365
  model ChatInterrupt {
339
- id String @id @default(cuid())
366
+ id String @id @default(cuid())
340
367
  runId String
341
368
  threadId String
342
369
  userId String
@@ -345,10 +372,10 @@ model ChatInterrupt {
345
372
  state String // pending | resolved | cancelled
346
373
  payload Json?
347
374
  resolution Json?
348
- createdAt DateTime @default(now())
375
+ createdAt DateTime @default(now())
349
376
  resolvedAt DateTime?
350
377
 
351
- run ChatRun @relation(fields: [runId], references: [id], onDelete: Cascade)
378
+ run ChatRun @relation(fields: [runId], references: [id], onDelete: Cascade)
352
379
  thread ChatThread @relation(fields: [threadId], references: [id], onDelete: Cascade)
353
380
 
354
381
  @@index([runId])
@@ -358,7 +385,7 @@ model ChatInterrupt {
358
385
 
359
386
  // 媒体生成记录(占位,本轮建表不接入业务)
360
387
  model GenerationRun {
361
- id String @id @default(cuid())
388
+ id String @id @default(cuid())
362
389
  threadId String
363
390
  userId String
364
391
  kind String // image | video | speech | transcription
@@ -366,8 +393,8 @@ model GenerationRun {
366
393
  input Json?
367
394
  result Json?
368
395
  artifactId String?
369
- error String? @db.Text
370
- startedAt DateTime @default(now())
396
+ error String? @db.Text
397
+ startedAt DateTime @default(now())
371
398
  finishedAt DateTime?
372
399
 
373
400
  thread ChatThread @relation(fields: [threadId], references: [id], onDelete: Cascade)
@@ -472,23 +499,28 @@ enum ShareStatus {
472
499
 
473
500
  // 知识库
474
501
  model KnowledgeBase {
475
- id String @id @default(cuid())
476
- name String
477
- description String? @db.Text
478
- icon String @default("notebook")
479
- tags Json @default("[]")
480
- visibility String @default("private")
481
- userId String
482
- isDeleted Boolean @default(false)
483
- createdAt DateTime @default(now())
484
- updatedAt DateTime @updatedAt
502
+ id String @id @default(cuid())
503
+ name String
504
+ description String? @db.Text
505
+ icon String @default("notebook")
506
+ tags Json @default("[]")
507
+ visibility String @default("private")
508
+ userId String
509
+ workspaceId String?
510
+ pinnedToSidebar Boolean @default(false)
511
+ isDeleted Boolean @default(false)
512
+ createdAt DateTime @default(now())
513
+ updatedAt DateTime @updatedAt
485
514
 
486
- user User @relation(fields: [userId], references: [id], onDelete: Cascade)
487
- documents KnowledgeDocument[]
488
- projectLinks ProjectKnowledgeBase[]
515
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
516
+ workspace Workspace? @relation(fields: [workspaceId], references: [id], onDelete: SetNull)
517
+ documents KnowledgeDocument[]
518
+ projectLinks ProjectKnowledgeBase[]
519
+ workspaceLinks WorkspaceKnowledgeBase[]
489
520
 
490
- @@index([userId])
491
- @@map("knowledge_bases")
521
+ @@index([userId])
522
+ @@index([workspaceId])
523
+ @@map("knowledge_bases")
492
524
  }
493
525
 
494
526
  model KnowledgeDocument {
@@ -513,6 +545,7 @@ model KnowledgeDocument {
513
545
  children KnowledgeDocument[] @relation("DocumentTree")
514
546
  creator User @relation(fields: [createdBy], references: [id], onDelete: Cascade)
515
547
  linkedStories StoryDocLink[] @relation("DocStoryLinks")
548
+ workspaceQuickDocs WorkspaceQuickDoc[]
516
549
 
517
550
  @@index([kbId])
518
551
  @@index([parentId])
@@ -1384,10 +1417,10 @@ model ArticleFavorite {
1384
1417
  model Story {
1385
1418
  id String @id @default(cuid())
1386
1419
  sequenceId Int
1387
- boardOrder Int @default(0)
1420
+ boardOrder Int @default(0)
1388
1421
  identifier String
1389
1422
  projectId String
1390
- project Project @relation(fields: [projectId], references: [id], onDelete: Restrict)
1423
+ project Project @relation(fields: [projectId], references: [id], onDelete: Restrict)
1391
1424
  name String
1392
1425
  description String? @db.Text
1393
1426
  state String @default("backlog")
@@ -1410,14 +1443,14 @@ model Story {
1410
1443
  updatedAt DateTime @updatedAt
1411
1444
 
1412
1445
  parentId String?
1413
- parent Story? @relation("StoryHierarchy", fields: [parentId], references: [id], onDelete: SetNull)
1414
- children Story[] @relation("StoryHierarchy")
1415
- dependenciesAsSource StoryDependency[] @relation("DependencySource")
1416
- dependenciesAsTarget StoryDependency[] @relation("DependencyTarget")
1446
+ parent Story? @relation("StoryHierarchy", fields: [parentId], references: [id], onDelete: SetNull)
1447
+ children Story[] @relation("StoryHierarchy")
1448
+ dependenciesAsSource StoryDependency[] @relation("DependencySource")
1449
+ dependenciesAsTarget StoryDependency[] @relation("DependencyTarget")
1417
1450
  links StoryLink[]
1418
1451
  attachments StoryAttachment[]
1419
- linkedPrds StoryPrdLink[] @relation("StoryPrdLinks")
1420
- linkedDocs StoryDocLink[] @relation("StoryDocLinks")
1452
+ linkedPrds StoryPrdLink[] @relation("StoryPrdLinks")
1453
+ linkedDocs StoryDocLink[] @relation("StoryDocLinks")
1421
1454
  linkedExternalDocs StoryExternalLink[] @relation("StoryExternalLinks")
1422
1455
  iterationId String?
1423
1456
  iteration Iteration? @relation(fields: [iterationId], references: [id], onDelete: SetNull)
@@ -1562,6 +1595,47 @@ model ProjectKnowledgeBase {
1562
1595
  @@map("project_knowledge_bases")
1563
1596
  }
1564
1597
 
1598
+ // 工作空间关联知识库(join 表;仅允许 visibility=team)
1599
+ model WorkspaceKnowledgeBase {
1600
+ id String @id @default(cuid())
1601
+ workspaceId String
1602
+ kbId String
1603
+ createdAt DateTime @default(now())
1604
+
1605
+ workspace Workspace @relation(fields: [workspaceId], references: [id], onDelete: Cascade)
1606
+ kb KnowledgeBase @relation(fields: [kbId], references: [id], onDelete: Cascade)
1607
+
1608
+ @@unique([workspaceId, kbId])
1609
+ @@index([workspaceId])
1610
+ @@index([kbId])
1611
+ @@map("workspace_knowledge_bases")
1612
+ }
1613
+
1614
+ // 工作空间快捷文档(单表双轨:docId 或 externalGroup+externalId 二选一非空,serverFn 层校验)
1615
+ model WorkspaceQuickDoc {
1616
+ id String @id @default(cuid())
1617
+ workspaceId String
1618
+ docId String?
1619
+ externalGroup String?
1620
+ externalId String?
1621
+ displayTitle String
1622
+ columnIndex Int @default(0)
1623
+ sortOrder Int @default(0)
1624
+ label String?
1625
+ icon String?
1626
+ createdBy String
1627
+ createdAt DateTime @default(now())
1628
+ updatedAt DateTime @updatedAt
1629
+
1630
+ workspace Workspace @relation(fields: [workspaceId], references: [id], onDelete: Cascade)
1631
+ doc KnowledgeDocument? @relation(fields: [docId], references: [id], onDelete: Cascade)
1632
+ creator User @relation(fields: [createdBy], references: [id], onDelete: Cascade)
1633
+
1634
+ @@index([workspaceId])
1635
+ @@index([workspaceId, docId])
1636
+ @@map("workspace_quick_docs")
1637
+ }
1638
+
1565
1639
  model StoryLink {
1566
1640
  id String @id @default(cuid())
1567
1641
  storyId String
@@ -1578,7 +1652,7 @@ model StoryLink {
1578
1652
  }
1579
1653
 
1580
1654
  model StoryAttachment {
1581
- id String @id @default(cuid())
1655
+ id String @id @default(cuid())
1582
1656
  storyId String
1583
1657
  fileName String
1584
1658
  fileSize BigInt
@@ -1586,7 +1660,7 @@ model StoryAttachment {
1586
1660
  description String?
1587
1661
  storageUrl String
1588
1662
  bytes Bytes?
1589
- fileHash String? @db.Text
1663
+ fileHash String? @db.Text
1590
1664
  createdAt DateTime @default(now())
1591
1665
 
1592
1666
  story Story @relation(fields: [storyId], references: [id], onDelete: Cascade)
@@ -1701,16 +1775,16 @@ model MonitoringErrorReport {
1701
1775
  }
1702
1776
 
1703
1777
  model MonitoringMetricsSnapshot {
1704
- id String @id @default(cuid())
1705
- recordedAt DateTime @default(now())
1706
- metricName String @db.VarChar(256)
1707
- count Int
1708
- avg Float
1709
- p50 Float
1710
- p95 Float
1711
- p99 Float
1712
- min Float
1713
- max Float
1778
+ id String @id @default(cuid())
1779
+ recordedAt DateTime @default(now())
1780
+ metricName String @db.VarChar(256)
1781
+ count Int
1782
+ avg Float
1783
+ p50 Float
1784
+ p95 Float
1785
+ p99 Float
1786
+ min Float
1787
+ max Float
1714
1788
 
1715
1789
  @@index([metricName, recordedAt], map: "idx_metrics_name_ts")
1716
1790
  @@map("monitoring_metrics_snapshots")
@@ -1774,30 +1848,30 @@ model Plan {
1774
1848
 
1775
1849
  /// 订阅记录(User 级,一人一订阅)
1776
1850
  model Subscription {
1777
- id String @id @default(cuid())
1778
- userId String @unique
1779
- user User @relation(fields: [userId], references: [id])
1780
- planId String
1781
- plan Plan @relation(fields: [planId], references: [id])
1782
- status SubscriptionStatus @default(ACTIVE)
1851
+ id String @id @default(cuid())
1852
+ userId String @unique
1853
+ user User @relation(fields: [userId], references: [id])
1854
+ planId String
1855
+ plan Plan @relation(fields: [planId], references: [id])
1856
+ status SubscriptionStatus @default(ACTIVE)
1783
1857
 
1784
1858
  /// 席位加购数量(账号级)。实际上限 = plan.maxSeats + addonSeats。
1785
1859
  addonSeats Int @default(0)
1786
1860
 
1787
- provider String @default("creem")
1788
- providerCustomerId String?
1789
- providerSubscriptionId String? @unique
1790
- providerPriceId String?
1861
+ provider String @default("creem")
1862
+ providerCustomerId String?
1863
+ providerSubscriptionId String? @unique
1864
+ providerPriceId String?
1791
1865
  providerSeatSubscriptionId String?
1792
1866
 
1793
- currentPeriodStart DateTime?
1794
- currentPeriodEnd DateTime?
1795
- cancelAtPeriodEnd Boolean @default(false)
1796
- canceledAt DateTime?
1797
- trialEndsAt DateTime?
1867
+ currentPeriodStart DateTime?
1868
+ currentPeriodEnd DateTime?
1869
+ cancelAtPeriodEnd Boolean @default(false)
1870
+ canceledAt DateTime?
1871
+ trialEndsAt DateTime?
1798
1872
 
1799
- createdAt DateTime @default(now())
1800
- updatedAt DateTime @updatedAt
1873
+ createdAt DateTime @default(now())
1874
+ updatedAt DateTime @updatedAt
1801
1875
 
1802
1876
  /// 关联发票(子项目 3 新增)
1803
1877
  invoices Invoice[]
@@ -1824,8 +1898,8 @@ model UsageRecord {
1824
1898
  count Int @default(0)
1825
1899
  resetAt DateTime
1826
1900
 
1827
- createdAt DateTime @default(now())
1828
- updatedAt DateTime @updatedAt
1901
+ createdAt DateTime @default(now())
1902
+ updatedAt DateTime @updatedAt
1829
1903
 
1830
1904
  @@unique([workspaceId, metric, period])
1831
1905
  @@index([workspaceId, metric])
@@ -1840,22 +1914,22 @@ enum UsageMetric {
1840
1914
 
1841
1915
  /// AI 用量明细(按次扣减 + 成本审计)
1842
1916
  model AiUsageLog {
1843
- id String @id @default(cuid())
1917
+ id String @id @default(cuid())
1844
1918
  workspaceId String
1845
1919
  workspace Workspace @relation(fields: [workspaceId], references: [id])
1846
1920
  userId String
1847
- user User @relation(fields: [userId], references: [id])
1848
- source String @default("byok")
1921
+ user User @relation(fields: [userId], references: [id])
1922
+ source String @default("byok")
1849
1923
  provider String
1850
1924
  model String
1851
- inputTokens Int @default(0)
1852
- outputTokens Int @default(0)
1853
- costUsd Decimal? @db.Decimal(10, 6)
1854
- success Boolean @default(true)
1925
+ inputTokens Int @default(0)
1926
+ outputTokens Int @default(0)
1927
+ costUsd Decimal? @db.Decimal(10, 6)
1928
+ success Boolean @default(true)
1855
1929
  errorMessage String?
1856
1930
  durationMs Int?
1857
1931
 
1858
- createdAt DateTime @default(now())
1932
+ createdAt DateTime @default(now())
1859
1933
 
1860
1934
  @@index([workspaceId, createdAt])
1861
1935
  @@index([userId, createdAt])
@@ -1868,22 +1942,22 @@ model AiUsageLog {
1868
1942
 
1869
1943
  /// 账单记录(Webhook 同步)
1870
1944
  model Invoice {
1871
- id String @id @default(cuid())
1872
- subscriptionId String
1873
- subscription Subscription @relation(fields: [subscriptionId], references: [id])
1874
- providerInvoiceId String @unique
1875
- providerEventId String?
1876
- amountDue Int
1877
- amountPaid Int
1878
- currency String @default("usd")
1879
- status String
1880
- pdfUrl String?
1881
- hostedInvoiceUrl String?
1882
- periodStart DateTime
1883
- periodEnd DateTime
1884
- paidAt DateTime?
1885
-
1886
- createdAt DateTime @default(now())
1945
+ id String @id @default(cuid())
1946
+ subscriptionId String
1947
+ subscription Subscription @relation(fields: [subscriptionId], references: [id])
1948
+ providerInvoiceId String @unique
1949
+ providerEventId String?
1950
+ amountDue Int
1951
+ amountPaid Int
1952
+ currency String @default("usd")
1953
+ status String
1954
+ pdfUrl String?
1955
+ hostedInvoiceUrl String?
1956
+ periodStart DateTime
1957
+ periodEnd DateTime
1958
+ paidAt DateTime?
1959
+
1960
+ createdAt DateTime @default(now())
1887
1961
 
1888
1962
  @@index([subscriptionId, createdAt])
1889
1963
  @@map("invoices")
@@ -1891,15 +1965,15 @@ model Invoice {
1891
1965
 
1892
1966
  /// Provider Webhook 事件幂等记录
1893
1967
  model ProviderEvent {
1894
- id String @id @default(cuid())
1895
- providerEventId String @unique
1968
+ id String @id @default(cuid())
1969
+ providerEventId String @unique
1896
1970
  type String
1897
- status String @default("processing")
1971
+ status String @default("processing")
1898
1972
  payload Json?
1899
1973
  errorMessage String?
1900
1974
  processedAt DateTime? @db.Timestamptz
1901
1975
 
1902
- createdAt DateTime @default(now()) @db.Timestamptz
1976
+ createdAt DateTime @default(now()) @db.Timestamptz
1903
1977
 
1904
1978
  @@index([type, createdAt])
1905
1979
  @@map("provider_events")
@@ -1954,7 +2028,7 @@ model AuditLog {
1954
2028
  metadata Json
1955
2029
  ip String?
1956
2030
  userAgent String?
1957
- createdAt DateTime @default(now())
2031
+ createdAt DateTime @default(now())
1958
2032
 
1959
2033
  @@index([workspaceId, createdAt])
1960
2034
  @@index([userId, createdAt])
@@ -1964,17 +2038,17 @@ model AuditLog {
1964
2038
 
1965
2039
  // SSO Provider 配置
1966
2040
  model SsoProvider {
1967
- id String @id @default(cuid())
1968
- workspaceId String
1969
- workspace Workspace @relation(fields: [workspaceId], references: [id])
1970
- type String
1971
- name String
1972
- config Json
1973
- domain String?
1974
- enabled Boolean @default(true)
1975
- createdAt DateTime @default(now())
1976
- updatedAt DateTime @updatedAt
1977
- mappings SsoMapping[]
2041
+ id String @id @default(cuid())
2042
+ workspaceId String
2043
+ workspace Workspace @relation(fields: [workspaceId], references: [id])
2044
+ type String
2045
+ name String
2046
+ config Json
2047
+ domain String?
2048
+ enabled Boolean @default(true)
2049
+ createdAt DateTime @default(now())
2050
+ updatedAt DateTime @updatedAt
2051
+ mappings SsoMapping[]
1978
2052
 
1979
2053
  @@unique([workspaceId, type, domain])
1980
2054
  @@map("sso_providers")
@@ -1996,14 +2070,14 @@ model SsoMapping {
1996
2070
 
1997
2071
  // 自定义角色
1998
2072
  model CustomRole {
1999
- id String @id @default(cuid())
2073
+ id String @id @default(cuid())
2000
2074
  workspaceId String
2001
- workspace Workspace @relation(fields: [workspaceId], references: [id])
2075
+ workspace Workspace @relation(fields: [workspaceId], references: [id])
2002
2076
  name String
2003
2077
  permissions Json
2004
- isSystem Boolean @default(false)
2005
- createdAt DateTime @default(now())
2006
- updatedAt DateTime @updatedAt
2078
+ isSystem Boolean @default(false)
2079
+ createdAt DateTime @default(now())
2080
+ updatedAt DateTime @updatedAt
2007
2081
  assignments RoleAssignment[]
2008
2082
 
2009
2083
  @@unique([workspaceId, name])
@@ -2011,12 +2085,12 @@ model CustomRole {
2011
2085
  }
2012
2086
 
2013
2087
  model RoleAssignment {
2014
- id String @id @default(cuid())
2088
+ id String @id @default(cuid())
2015
2089
  roleId String
2016
2090
  role CustomRole @relation(fields: [roleId], references: [id])
2017
2091
  userId String
2018
- user User @relation(fields: [userId], references: [id])
2019
- createdAt DateTime @default(now())
2092
+ user User @relation(fields: [userId], references: [id])
2093
+ createdAt DateTime @default(now())
2020
2094
 
2021
2095
  @@unique([roleId, userId])
2022
2096
  @@map("role_assignments")
@@ -2085,8 +2159,8 @@ model UserSkill {
2085
2159
  // 开发者日志(Changelog 条目,agent 自动生成 + admin 手动管理)
2086
2160
  model DeveloperLog {
2087
2161
  id String @id @default(cuid())
2088
- date String // "Aug 23, 2026"
2089
- year String // "2026"
2162
+ date String // "Aug 23, 2026"
2163
+ year String // "2026"
2090
2164
  title String
2091
2165
  desc String @db.Text
2092
2166
  tags Json @default("[]") // ["feat", "design"]
@@ -2124,9 +2198,9 @@ model NotificationPreference {
2124
2198
  dndEnabled Boolean @default(false)
2125
2199
  dndStart String @default("22:00")
2126
2200
  dndEnd String @default("08:00")
2127
- user User @relation(fields: [userId], references: [id], onDelete: Cascade)
2201
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
2128
2202
 
2129
- @@map("notification_preferences")
2203
+ @@map("notification_preferences")
2130
2204
  }
2131
2205
 
2132
2206
  // 迭代(时间盒冲刺,状态由日期动态推导,不存状态字段)
@@ -2153,16 +2227,16 @@ model Iteration {
2153
2227
 
2154
2228
  // 迭代自动排期配置(一项目一行)
2155
2229
  model IterationAutoSchedule {
2156
- projectId String @id
2157
- project Project @relation(fields: [projectId], references: [id], onDelete: Cascade)
2158
- enabled Boolean @default(false)
2159
- title String @default("迭代")
2160
- durationDays Int @default(14)
2161
- cooldownDays Int @default(0)
2230
+ projectId String @id
2231
+ project Project @relation(fields: [projectId], references: [id], onDelete: Cascade)
2232
+ enabled Boolean @default(false)
2233
+ title String @default("迭代")
2234
+ durationDays Int @default(14)
2235
+ cooldownDays Int @default(0)
2162
2236
  startsOn DateTime
2163
- futureCount Int @default(2)
2164
- autoRollover Boolean @default(false)
2165
- lastSeq Int @default(0)
2237
+ futureCount Int @default(2)
2238
+ autoRollover Boolean @default(false)
2239
+ lastSeq Int @default(0)
2166
2240
 
2167
2241
  @@map("iteration_auto_schedules")
2168
2242
  }