feat: 完善学生生命周期管理与权限范围并发布 1.4.2

This commit is contained in:
LoveChengke committed 2026-10-23 22:55:21 +08:00
1 parent 6347d1e5aa
commit 24e8dd902b
92 files changed
+6801 -2255

No files matched your search

+30 -2
View File
@@ -121,14 +121,21 @@ model StudentClassTransfer {
/// 操作人(User.id);账号被删后留空,姓名快照保留
operatorId String?
operatorName String @default("")
/// single = 单个调班 / batch = 批量调班 / transfer-out = 转出(离开本校)
mode String @default("single")
/// 生命周期类型;旧 mode 仅在 DTO 中派生兼容
kind String @default("class-change")
batchId String @default("")
academicYear Int?
fromGrade String @default("")
toGrade String @default("")
fromSchool String @default("")
toSchool String @default("")
note String @default("")
createdAt DateTime @default(now())
student Student @relation(fields: [studentId], references: [id], onDelete: Cascade)
@@index([studentId, createdAt])
@@index([batchId])
@@index([createdAt])
}
@@ -157,6 +164,7 @@ model ArchivedYear {
classCount Int @default(0)
studentCount Int @default(0)
transferredCount Int @default(0)
inactiveCount Int @default(0)
homeworkCount Int @default(0)
notificationCount Int @default(0)
archivedAt DateTime @default(now())
@@ -717,12 +725,32 @@ model PromotionRun {
year Int @id
status String
snapshotPath String @default("")
operatorId String?
operatorName String @default("")
detailsJson String @default("{}")
snapshotSha256 String @default("")
error String @default("")
message String @default("")
classCount Int @default(0)
studentCount Int @default(0)
createdAt DateTime @default(now())
finishedAt DateTime?
}
/// 权限变更与人工升级审计;不建账号外键,删除账号后仍保留操作人快照。
model PermissionAudit {
id String @id @default(cuid())
actorId String
actorName String
action String
targetType String
targetId String
beforeJson String @default("{}")
afterJson String @default("{}")
createdAt DateTime @default(now())
@@index([createdAt])
}
/// 课件只在完整接收并计算摘要后入库;存储路径不对客户端暴露。
model Courseware {
id String @id @default(cuid())