275 lines
6.1 KiB
Protocol Buffer
275 lines
6.1 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package next_edu_cloud.content.v1;
|
|
|
|
import "google/protobuf/struct.proto";
|
|
|
|
service TextbookService {
|
|
rpc CreateTextbook(CreateTextbookRequest) returns (Textbook);
|
|
rpc GetTextbook(GetTextbookRequest) returns (Textbook);
|
|
rpc ListTextbooks(ListTextbooksRequest) returns (ListTextbooksResponse);
|
|
rpc UpdateTextbook(UpdateTextbookRequest) returns (Textbook);
|
|
rpc DeleteTextbook(DeleteTextbookRequest) returns (Empty);
|
|
}
|
|
|
|
service ChapterService {
|
|
rpc CreateChapter(CreateChapterRequest) returns (Chapter);
|
|
rpc GetChapter(GetChapterRequest) returns (Chapter);
|
|
rpc ListChapters(ListChaptersRequest) returns (ListChaptersResponse);
|
|
rpc UpdateChapter(UpdateChapterRequest) returns (Chapter);
|
|
rpc DeleteChapter(DeleteChapterRequest) returns (Empty);
|
|
}
|
|
|
|
service KnowledgeGraphService {
|
|
rpc GetPrerequisites(GetPrerequisitesRequest) returns (KnowledgePointsResponse);
|
|
rpc GetLearningPath(GetLearningPathRequest) returns (LearningPath);
|
|
rpc AddPrerequisite(AddPrerequisiteRequest) returns (Empty);
|
|
rpc RemovePrerequisite(RemovePrerequisiteRequest) returns (Empty);
|
|
}
|
|
|
|
service QuestionService {
|
|
rpc CreateQuestion(CreateQuestionRequest) returns (Question);
|
|
rpc BatchCreateQuestions(BatchCreateQuestionsRequest) returns (BatchCreateQuestionsResponse);
|
|
rpc GetQuestion(GetQuestionRequest) returns (Question);
|
|
rpc ListQuestions(ListQuestionsRequest) returns (ListQuestionsResponse);
|
|
rpc UpdateQuestion(UpdateQuestionRequest) returns (Question);
|
|
rpc DeleteQuestion(DeleteQuestionRequest) returns (Empty);
|
|
rpc PublishQuestion(PublishQuestionRequest) returns (Empty);
|
|
rpc SearchQuestions(SearchQuestionsRequest) returns (SearchQuestionsResponse);
|
|
}
|
|
|
|
message Empty {}
|
|
|
|
message Textbook {
|
|
string id = 1;
|
|
string title = 2;
|
|
string subject_id = 3;
|
|
string grade_id = 4;
|
|
string version = 5;
|
|
string status = 6;
|
|
string tenant_id = 7;
|
|
google.protobuf.Struct metadata = 8;
|
|
int64 created_at = 9;
|
|
int64 updated_at = 10;
|
|
}
|
|
|
|
message Chapter {
|
|
string id = 1;
|
|
string textbook_id = 2;
|
|
string title = 3;
|
|
int32 order = 4;
|
|
string parent_id = 5;
|
|
string status = 6;
|
|
int64 created_at = 7;
|
|
int64 updated_at = 8;
|
|
}
|
|
|
|
message KnowledgePoint {
|
|
string id = 1;
|
|
string chapter_id = 2;
|
|
string title = 3;
|
|
string description = 4;
|
|
int32 difficulty = 5;
|
|
google.protobuf.Struct metadata = 6;
|
|
int64 created_at = 7;
|
|
int64 updated_at = 8;
|
|
}
|
|
|
|
message Question {
|
|
string id = 1;
|
|
string knowledge_point_id = 2;
|
|
string type = 3;
|
|
string content = 4;
|
|
google.protobuf.Struct options = 5;
|
|
string answer = 6;
|
|
string explanation = 7;
|
|
int32 difficulty = 8;
|
|
string status = 9;
|
|
string source = 10;
|
|
string created_by = 11;
|
|
google.protobuf.Struct metadata = 12;
|
|
int64 created_at = 13;
|
|
int64 updated_at = 14;
|
|
}
|
|
|
|
// TextbookService request/response messages
|
|
|
|
message CreateTextbookRequest {
|
|
string title = 1;
|
|
string subject_id = 2;
|
|
string grade_id = 3;
|
|
string version = 4;
|
|
google.protobuf.Struct metadata = 5;
|
|
}
|
|
|
|
message GetTextbookRequest {
|
|
string id = 1;
|
|
}
|
|
|
|
message ListTextbooksRequest {
|
|
string subject_id = 1;
|
|
string grade_id = 2;
|
|
string page_token = 3;
|
|
int32 page_size = 4;
|
|
}
|
|
|
|
message ListTextbooksResponse {
|
|
repeated Textbook textbooks = 1;
|
|
string next_page_token = 2;
|
|
}
|
|
|
|
message UpdateTextbookRequest {
|
|
string id = 1;
|
|
optional string title = 2;
|
|
optional string status = 3;
|
|
google.protobuf.Struct metadata = 4;
|
|
}
|
|
|
|
message DeleteTextbookRequest {
|
|
string id = 1;
|
|
}
|
|
|
|
// ChapterService request/response messages
|
|
|
|
message CreateChapterRequest {
|
|
string textbook_id = 1;
|
|
string title = 2;
|
|
int32 order = 3;
|
|
string parent_id = 4;
|
|
}
|
|
|
|
message GetChapterRequest {
|
|
string id = 1;
|
|
}
|
|
|
|
message ListChaptersRequest {
|
|
string textbook_id = 1;
|
|
string parent_id = 2;
|
|
}
|
|
|
|
message ListChaptersResponse {
|
|
repeated Chapter chapters = 1;
|
|
}
|
|
|
|
message UpdateChapterRequest {
|
|
string id = 1;
|
|
optional string title = 2;
|
|
optional int32 order = 3;
|
|
optional string status = 4;
|
|
}
|
|
|
|
message DeleteChapterRequest {
|
|
string id = 1;
|
|
}
|
|
|
|
// KnowledgeGraphService request/response messages
|
|
|
|
message GetPrerequisitesRequest {
|
|
string knowledge_point_id = 1;
|
|
int32 depth = 2;
|
|
}
|
|
|
|
message KnowledgePointsResponse {
|
|
repeated KnowledgePoint points = 1;
|
|
}
|
|
|
|
message GetLearningPathRequest {
|
|
string student_id = 1;
|
|
string subject_id = 2;
|
|
}
|
|
|
|
message LearningPath {
|
|
repeated KnowledgePoint points = 1;
|
|
repeated string recommended_order = 2;
|
|
}
|
|
|
|
message AddPrerequisiteRequest {
|
|
string kp_id = 1;
|
|
string prerequisite_id = 2;
|
|
}
|
|
|
|
message RemovePrerequisiteRequest {
|
|
string kp_id = 1;
|
|
string prerequisite_id = 2;
|
|
}
|
|
|
|
// QuestionService request/response messages
|
|
|
|
message CreateQuestionRequest {
|
|
string knowledge_point_id = 1;
|
|
string type = 2;
|
|
string content = 3;
|
|
google.protobuf.Struct options = 4;
|
|
string answer = 5;
|
|
string explanation = 6;
|
|
int32 difficulty = 7;
|
|
string source = 8;
|
|
string created_by = 9;
|
|
google.protobuf.Struct metadata = 10;
|
|
}
|
|
|
|
message BatchCreateQuestionsRequest {
|
|
repeated CreateQuestionRequest questions = 1;
|
|
}
|
|
|
|
message BatchCreateQuestionsResponse {
|
|
repeated string ids = 1;
|
|
repeated BatchCreateFailure failed = 2;
|
|
}
|
|
|
|
message BatchCreateFailure {
|
|
int32 index = 1;
|
|
string error = 2;
|
|
}
|
|
|
|
message GetQuestionRequest {
|
|
string id = 1;
|
|
}
|
|
|
|
message ListQuestionsRequest {
|
|
string knowledge_point_id = 1;
|
|
string type = 2;
|
|
int32 difficulty = 3;
|
|
string status = 4;
|
|
string page_token = 5;
|
|
int32 page_size = 6;
|
|
}
|
|
|
|
message ListQuestionsResponse {
|
|
repeated Question questions = 1;
|
|
string next_page_token = 2;
|
|
}
|
|
|
|
message UpdateQuestionRequest {
|
|
string id = 1;
|
|
optional string content = 2;
|
|
optional string answer = 3;
|
|
optional string status = 4;
|
|
google.protobuf.Struct options = 5;
|
|
optional string explanation = 6;
|
|
optional int32 difficulty = 7;
|
|
}
|
|
|
|
message DeleteQuestionRequest {
|
|
string id = 1;
|
|
}
|
|
|
|
message PublishQuestionRequest {
|
|
string id = 1;
|
|
}
|
|
|
|
message SearchQuestionsRequest {
|
|
string q = 1;
|
|
string type = 2;
|
|
int32 difficulty = 3;
|
|
string knowledge_point_id = 4;
|
|
string page_token = 5;
|
|
int32 page_size = 6;
|
|
}
|
|
|
|
message SearchQuestionsResponse {
|
|
repeated Question questions = 1;
|
|
int32 total = 2;
|
|
string next_page_token = 3;
|
|
}
|