add result

This commit is contained in:
2026-09-03 00:18:51 +07:00
parent 131790dd85
commit 8b8fb33d45
80 changed files with 2569 additions and 2041 deletions
+41
View File
@@ -470,6 +470,16 @@ service EveningDetectiveServer {
};
}
rpc GetGameResults(GetGameResultsReq) returns (GetGameResultsRsp) {
option (google.api.http) = {
get: "/api/games/{gameId}/results"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
tags : "Игры";
summary: "Получить итоговую таблицу игры (после завершения)";
};
}
rpc UpdateGame(UpdateGameReq) returns (UpdateGameRsp) {
option (google.api.http) = {
put : "/api/games/{id}"
@@ -1115,6 +1125,37 @@ message GetGameAnswersRsp {
repeated TeamAnswers teams = 3;
}
message GetGameResultsReq {
int32 gameId = 1;
}
// Вопрос в шапке итоговой таблицы: правильный ответ (поле answer сообщения
// Question) командам/таблице не передаётся — он виден только в панели оценки.
message ResultsQuestion {
string code = 1;
string text = 2;
}
// Строка итоговой таблицы: команда, баллы по вопросам, сумма и место.
message TeamResult {
Team team = 1;
repeated AnswerScore answers = 2;
// Сумма баллов по всем вопросам сценария (неоценённые считаются как 0)
int32 total_score = 3;
// Место в итоговой таблице: команды с одинаковой суммой баллов и
// одинаковым числом ходов занимают одно место (следующее пропускается)
int32 place = 4;
// Количество ходов команды (дублирует team.actions_count для удобства
// таблицы; участвует в тай-брейке при равенстве суммы баллов)
int32 actions_count = 5;
}
message GetGameResultsRsp {
string error = 1;
repeated ResultsQuestion questions = 2;
repeated TeamResult teams = 3;
}
message UpdateGameReq {
int32 id = 1;
string name = 2;