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:
@@ -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)
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user