feat(shared-proto): ai/core_edu/iam proto v2 扩展

ai.proto: 新增 GenerateReport RPC + GenerateReportRequest/GeneratedReport message

core_edu.proto: 新增 ExtendExam/ForceSubmitExam/ReorderExamQuestions 3 RPC + message

iam.proto: 新增 CreateUser/UpdateUser/DeleteUser 3 RPC + 4 message
This commit is contained in:
SpecialX
2026-07-14 22:57:18 +08:00
parent 7545956202
commit 843b370b3d
3 changed files with 120 additions and 16 deletions

View File

@@ -6,8 +6,8 @@ package next_edu_cloud.core_edu.v1;
// Covers exam management, homework assignment, grade recording,
// attendance tracking, and class queries.
//
// Total: 9 Service / 40 RPC (P3.13 expanded state per downstream 9-module analysis).
// - ExamService: 10 RPC (8 original + SaveExamDraft + RecordExamViolation)
// Total: 9 Service / 43 RPC (P3.13 expanded + P3.14 exam realtime events).
// - ExamService: 13 RPC (8 original + SaveExamDraft + RecordExamViolation + ExtendExam + ForceSubmitExam + ReorderExamQuestions)
// - HomeworkService: 5 RPC
// - GradeService: 7 RPC (6 original + GetReportCard)
// - ClassService: 4 RPC
@@ -36,6 +36,9 @@ service ExamService {
rpc GradeExam(GradeExamRequest) returns (GradeExamResponse);
rpc SaveExamDraft(SaveExamDraftRequest) returns (SaveExamDraftResponse);
rpc RecordExamViolation(RecordExamViolationRequest) returns (RecordExamViolationResponse);
rpc ExtendExam(ExtendExamRequest) returns (ExtendExamResponse);
rpc ForceSubmitExam(ForceSubmitExamRequest) returns (ForceSubmitExamResponse);
rpc ReorderExamQuestions(ReorderExamQuestionsRequest) returns (ReorderExamQuestionsResponse);
}
service HomeworkService {
@@ -493,6 +496,46 @@ message RecordExamViolationResponse {
string violation_id = 1;
}
// ----------------------------------------------------------------------------
// Exam realtime events (P3.14: 考试实时事件,供 push-gateway → student-portal WebSocket 推送)
// ----------------------------------------------------------------------------
message ExtendExamRequest {
string exam_id = 1;
int32 extension_seconds = 2; // 延长秒数
string extended_by = 3; // 操作教师 ID
}
message ExtendExamResponse {
bool success = 1;
int32 new_duration = 2; // 延长后的总时长(秒)
}
message ForceSubmitExamRequest {
string exam_id = 1;
repeated string student_ids = 2; // 强制收卷的学生 ID 列表(空=全部未提交学生)
string forced_by = 3; // 操作教师 ID
}
message ForceSubmitExamResponse {
int32 affected_count = 1; // 强制收卷的学生数
}
message QuestionOrderInput {
string question_id = 1;
int32 order = 2;
}
message ReorderExamQuestionsRequest {
string exam_id = 1;
repeated QuestionOrderInput orders = 2; // 新的题目顺序
string reordered_by = 3;
}
message ReorderExamQuestionsResponse {
bool success = 1;
}
// ----------------------------------------------------------------------------
// Grade domain extensions (P3.13)
// ----------------------------------------------------------------------------