This commit is contained in:
2026-10-03 02:38:11 +07:00
parent 38bad7fd00
commit 4737dce924
19 changed files with 184 additions and 573 deletions
+56 -130
View File
@@ -47,7 +47,7 @@ service EveningDetectiveServer {
security : {};
tags : "Подтверждение участия";
summary : "Получить состояние участия";
description: "Возвращает команду, игру и текущее решение по персональному токену из письма. Авторизация JWT не требуется. Чтение не меняет статус участия. Токен передаётся в теле запроса. Недействительная ссылка и ошибки обработки возвращаются в поле error при HTTP 200.";
description: "Возвращает команду, игру и текущее решение по персональному токену из письма. Авторизация JWT не требуется. Чтение не меняет статус участия. Токен передаётся в теле запроса. Недействительная ссылка и ошибки обработки возвращаются стандартным gRPC status error.";
};
}
rpc AnswerParticipation(AnswerParticipationReq) returns (ParticipationRsp) {
@@ -56,7 +56,7 @@ service EveningDetectiveServer {
security : {};
tags : "Подтверждение участия";
summary : "Подтвердить или отменить участие";
description: "Принимает окончательный ответ капитана: confirmed или cancelled. Авторизация JWT не требуется; доступ определяется персональным токеном. Первый ответ сохраняется, повтор того же ответа успешен, противоположный ответ отклоняется. Новый ответ принимается только до планового начала игры и пока игра имеет статус draft. Ошибки ссылки, значения answer, закрытого приёма или изменения решения возвращаются в поле error при HTTP 200; при уже принятом решении возвращается его текущее состояние.";
description: "Принимает окончательный ответ капитана: confirmed или cancelled. Авторизация JWT не требуется; доступ определяется персональным токеном. Первый ответ сохраняется, повтор того же ответа успешен, противоположный ответ отклоняется. Новый ответ принимается только до планового начала игры и пока игра имеет статус draft. Ошибки ссылки, значения answer, закрытого приёма или изменения решения возвращаются стандартным gRPC status error; при уже принятом решении возвращается его текущее состояние.";
};
}
rpc Ping(PingReq) returns (PingRsp) {
@@ -1003,7 +1003,6 @@ message SignupReq {
}
message SignupRsp {
string error = 1;
}
message RefreshPasswordReq {
@@ -1011,7 +1010,6 @@ message RefreshPasswordReq {
}
message RefreshPasswordRsp {
string error = 1;
}
message LoginReq {
@@ -1020,9 +1018,8 @@ message LoginReq {
}
message LoginRsp {
string error = 1;
string accessToken = 2;
string refreshToken = 3;
string accessToken = 1;
string refreshToken = 2;
}
message RefreshReq {
@@ -1030,9 +1027,8 @@ message RefreshReq {
}
message RefreshRsp {
string error = 1;
string accessToken = 2;
string refreshToken = 3;
string accessToken = 1;
string refreshToken = 2;
}
// Пароль подтверждает, что удаляет аккаунт его владелец, а не обладатель
@@ -1042,7 +1038,6 @@ message RefreshRsp {
message DeleteAccountReq {}
message DeleteAccountRsp {
string error = 1;
}
// Документы раздаются по постоянным URL, на которые ссылается сервис при
@@ -1050,29 +1045,25 @@ message DeleteAccountRsp {
message GetTermsReq {}
message GetTermsRsp {
string error = 1;
string text = 2;
string text = 1;
}
message GetPrivacyReq {}
message GetPrivacyRsp {
string error = 1;
string text = 2;
string text = 1;
}
message GetConsentReq {}
message GetConsentRsp {
string error = 1;
string text = 2;
string text = 1;
}
message GetUsersReq {}
message GetUsersRsp {
string error = 1;
repeated User users = 2;
repeated User users = 1;
}
message User {
@@ -1089,15 +1080,13 @@ message GetUserByIDReq {
}
message GetUserByIDRsp {
string error = 1;
User user = 2;
User user = 1;
}
message GetMeReq {}
message GetMeRsp {
string error = 1;
User user = 2;
User user = 1;
}
message ChangeUserPasswordReq {
@@ -1113,7 +1102,6 @@ message AddUserRoleReq {
}
message AddUserRoleRsp {
string error = 1;
}
message DeleteUserRoleReq {
@@ -1122,14 +1110,12 @@ message DeleteUserRoleReq {
}
message DeleteUserRoleRsp {
string error = 1;
}
message GetPermissionsReq {}
message GetPermissionsRsp {
string error = 1;
repeated string permissions = 2;
repeated string permissions = 1;
}
message UploadFileReq {
@@ -1138,11 +1124,10 @@ message UploadFileReq {
}
message UploadFileRsp {
string error = 1;
string filename = 2;
string filename = 1;
// Тип загруженного файла: image | pdf | audio | video (определяется сервером по
// содержимому). Удобен редактору для предзаполнения file_type улики.
string file_type = 3 [json_name = "file_type"];
string file_type = 2 [json_name = "file_type"];
}
message DownloadFileReq {
@@ -1154,22 +1139,19 @@ message AddScenarioReq {
}
message AddScenarioRsp {
string error = 1;
int32 ID = 2;
int32 ID = 1;
}
message GetMyScenariosReq {}
message GetMyScenariosRsp {
string error = 1;
repeated Scenario scenarios = 2;
repeated Scenario scenarios = 1;
}
message GetScenariosCatalogReq {}
message GetScenariosCatalogRsp {
string error = 1;
repeated Scenario scenarios = 2;
repeated Scenario scenarios = 1;
}
message GetScenarioReq {
@@ -1177,8 +1159,7 @@ message GetScenarioReq {
}
message GetScenarioRsp {
string error = 1;
Scenario scenario = 2;
Scenario scenario = 1;
}
message Scenario {
@@ -1289,7 +1270,6 @@ message UpdateScenarioReq {
}
message UpdateScenarioRsp {
string error = 1;
}
message PublicScenarioReq {
@@ -1297,7 +1277,6 @@ message PublicScenarioReq {
}
message PublicScenarioRsp {
string error = 1;
}
message DraftScenarioReq {
@@ -1305,7 +1284,6 @@ message DraftScenarioReq {
}
message DraftScenarioRsp {
string error = 1;
}
message DeleteScenarioReq {
@@ -1313,7 +1291,6 @@ message DeleteScenarioReq {
}
message DeleteScenarioRsp {
string error = 1;
}
message AddScenarioPlaceReq {
@@ -1322,7 +1299,6 @@ message AddScenarioPlaceReq {
}
message AddScenarioPlaceRsp {
string error = 1;
}
message UpdateScenarioPlaceReq {
@@ -1332,7 +1308,6 @@ message UpdateScenarioPlaceReq {
}
message UpdateScenarioPlaceRsp {
string error = 1;
}
message DeleteScenarioPlaceReq {
@@ -1341,7 +1316,6 @@ message DeleteScenarioPlaceReq {
}
message DeleteScenarioPlaceRsp {
string error = 1;
}
message UpdateScenarioConclusionReq {
@@ -1350,7 +1324,6 @@ message UpdateScenarioConclusionReq {
}
message UpdateScenarioConclusionRsp {
string error = 1;
}
message UpdateScenarioIntroReq {
@@ -1359,7 +1332,6 @@ message UpdateScenarioIntroReq {
}
message UpdateScenarioIntroRsp {
string error = 1;
}
message AddScenarioQuestionReq {
@@ -1368,7 +1340,6 @@ message AddScenarioQuestionReq {
}
message AddScenarioQuestionRsp {
string error = 1;
}
message UpdateScenarioQuestionReq {
@@ -1378,7 +1349,6 @@ message UpdateScenarioQuestionReq {
}
message UpdateScenarioQuestionRsp {
string error = 1;
}
message DeleteScenarioQuestionReq {
@@ -1387,7 +1357,6 @@ message DeleteScenarioQuestionReq {
}
message DeleteScenarioQuestionRsp {
string error = 1;
}
message DownloadScenarioArchiveReq {
@@ -1395,8 +1364,7 @@ message DownloadScenarioArchiveReq {
}
message UploadScenarioArchiveRsp {
string error = 1;
int32 ID = 2;
int32 ID = 1;
}
message AddGameReq {
@@ -1409,15 +1377,13 @@ message AddGameReq {
}
message AddGameRsp {
string error = 1;
int32 ID = 2;
int32 ID = 1;
}
message GetGamesReq {}
message GetGamesRsp {
string error = 1;
repeated Game games = 2;
repeated Game games = 1;
}
message Game {
@@ -1493,9 +1459,8 @@ message ScreenState {
message CreateScreenSessionReq {}
message CreateScreenSessionRsp {
string error = 1;
string screenID = 2;
string access_token = 3;
string screenID = 1;
string access_token = 2;
}
message GetScreenStateReq {
@@ -1504,8 +1469,7 @@ message GetScreenStateReq {
}
message GetScreenStateRsp {
string error = 1;
ScreenState state = 2;
ScreenState state = 1;
}
message GetGameScreensReq {
@@ -1513,8 +1477,7 @@ message GetGameScreensReq {
}
message GetGameScreensRsp {
string error = 1;
repeated ScreenState screens = 2;
repeated ScreenState screens = 1;
}
message BindScreenReq {
@@ -1524,8 +1487,7 @@ message BindScreenReq {
}
message BindScreenRsp {
string error = 1;
ScreenState state = 2;
ScreenState state = 1;
}
message UnbindScreenReq {
@@ -1533,7 +1495,6 @@ message UnbindScreenReq {
}
message UnbindScreenRsp {
string error = 1;
}
message SetScreenSoundReq {
@@ -1542,7 +1503,6 @@ message SetScreenSoundReq {
}
message SetScreenSoundRsp {
string error = 1;
}
message MapItem {
@@ -1561,8 +1521,7 @@ message GetGameMapReq {
}
message GetGameMapRsp {
string error = 1;
repeated MapItem items = 2;
repeated MapItem items = 1;
}
message UpdateGameMapItemReq {
@@ -1574,7 +1533,7 @@ message UpdateGameMapItemReq {
bool hidden = 6;
}
message UpdateGameMapItemRsp { string error = 1; }
message UpdateGameMapItemRsp {}
message SetScreenModeReq {
int32 gameID = 1;
@@ -1582,7 +1541,6 @@ message SetScreenModeReq {
}
message SetScreenModeRsp {
string error = 1;
}
message SetScreenTimerReq {
@@ -1592,7 +1550,6 @@ message SetScreenTimerReq {
}
message SetScreenTimerRsp {
string error = 1;
}
message SendScreenCommandReq {
@@ -1603,7 +1560,6 @@ message SendScreenCommandReq {
}
message SendScreenCommandRsp {
string error = 1;
}
message GetScreenResultsReq {
@@ -1612,9 +1568,8 @@ message GetScreenResultsReq {
}
message GetScreenResultsRsp {
string error = 1;
repeated ResultsQuestion questions = 2;
repeated TeamResult teams = 3;
repeated ResultsQuestion questions = 1;
repeated TeamResult teams = 2;
}
message GetParticipationReq {
@@ -1630,21 +1585,19 @@ message AnswerParticipationReq {
}
message ParticipationRsp {
// Пустая строка при успехе; иначе сообщение об ошибке для пользователя.
string error = 1;
// Название команды. Данные доступны только по действительному токену.
string team_name = 2;
string team_name = 1;
// Название игры.
string game_name = 3;
string game_name = 2;
// Плановое начало игры, UTC (RFC 3339 в JSON).
google.protobuf.Timestamp start_at = 4;
google.protobuf.Timestamp start_at = 3;
// Заявленное число участников команды.
int32 participants_count = 5;
int32 participants_count = 4;
// pending — ожидает ответа, confirmed — подтверждено, cancelled — отменено.
string status = 6;
string status = 5;
// Новые ответы закрыты: наступило плановое начало или игра вышла из draft.
// Изменение уже принятого решения запрещено независимо от этого поля.
bool closed = 7;
bool closed = 6;
}
message Team {
@@ -1671,8 +1624,7 @@ message GetGameReq {
}
message GetGameRsp {
string error = 1;
Game game = 2;
Game game = 1;
}
message GetGameAnswersReq {
@@ -1680,9 +1632,8 @@ message GetGameAnswersReq {
}
message GetGameAnswersRsp {
string error = 1;
repeated Question questions = 2;
repeated TeamAnswers teams = 3;
repeated Question questions = 1;
repeated TeamAnswers teams = 2;
}
message GetGameResultsReq {
@@ -1711,9 +1662,8 @@ message TeamResult {
}
message GetGameResultsRsp {
string error = 1;
repeated ResultsQuestion questions = 2;
repeated TeamResult teams = 3;
repeated ResultsQuestion questions = 1;
repeated TeamResult teams = 2;
}
message GameReview {
@@ -1737,8 +1687,7 @@ message CreateGameReviewReq {
}
message CreateGameReviewRsp {
string error = 1;
GameReview review = 2;
GameReview review = 1;
}
message GetGameReviewsReq {
@@ -1752,10 +1701,9 @@ message GetScenarioReviewsReq {
message GetReviewsForModerationReq {}
message GetGameReviewsRsp {
string error = 1;
double average_rating = 2;
int32 reviews_count = 3;
repeated GameReview reviews = 4;
double average_rating = 1;
int32 reviews_count = 2;
repeated GameReview reviews = 3;
}
message ModerateGameReviewReq {
@@ -1764,8 +1712,7 @@ message ModerateGameReviewReq {
}
message ModerateGameReviewRsp {
string error = 1;
GameReview review = 2;
GameReview review = 1;
}
message UpdateGameReq {
@@ -1779,7 +1726,6 @@ message UpdateGameReq {
}
message UpdateGameRsp {
string error = 1;
}
message StartGameReq {
@@ -1787,7 +1733,6 @@ message StartGameReq {
}
message StartGameRsp {
string error = 1;
}
message PauseGameReq {
@@ -1795,7 +1740,6 @@ message PauseGameReq {
}
message PauseGameRsp {
string error = 1;
}
message PlayGameReq {
@@ -1803,7 +1747,6 @@ message PlayGameReq {
}
message PlayGameRsp {
string error = 1;
}
message FinishGameReq {
@@ -1811,7 +1754,6 @@ message FinishGameReq {
}
message FinishGameRsp {
string error = 1;
}
message ResetGameReq {
@@ -1819,7 +1761,6 @@ message ResetGameReq {
}
message ResetGameRsp {
string error = 1;
}
message DeleteGameReq {
@@ -1827,7 +1768,6 @@ message DeleteGameReq {
}
message DeleteGameRsp {
string error = 1;
}
message AddTeamReq {
@@ -1837,9 +1777,8 @@ message AddTeamReq {
}
message AddTeamRsp {
string error = 1;
int32 ID = 2;
string password = 3;
int32 ID = 1;
string password = 2;
}
message UpdateTeamReq {
@@ -1848,7 +1787,6 @@ message UpdateTeamReq {
}
message UpdateTeamRsp {
string error = 1;
}
message DeleteTeamReq {
@@ -1856,7 +1794,6 @@ message DeleteTeamReq {
}
message DeleteTeamRsp {
string error = 1;
}
message GiveTeamApplicationsReq {
@@ -1865,7 +1802,6 @@ message GiveTeamApplicationsReq {
}
message GiveTeamApplicationsRsp {
string error = 1;
}
message GetTeamStoryReq {
@@ -1874,10 +1810,9 @@ message GetTeamStoryReq {
}
message GetTeamStoryRsp {
string error = 1;
Story story = 2;
Game game = 3;
repeated TeamAction actions = 4;
Story story = 1;
Game game = 2;
repeated TeamAction actions = 3;
}
message TeamAction {
@@ -1892,7 +1827,6 @@ message AddTeamActionReq {
}
message AddTeamActionRsp {
string error = 1;
}
message DeleteLastTeamActionReq {
@@ -1900,7 +1834,6 @@ message DeleteLastTeamActionReq {
}
message DeleteLastTeamActionRsp {
string error = 1;
}
message GetTeamAnswersReq {
@@ -1909,8 +1842,7 @@ message GetTeamAnswersReq {
}
message GetTeamAnswersRsp {
string error = 1;
repeated Answer answers = 2;
repeated Answer answers = 1;
}
message SubmitTeamAnswersReq {
@@ -1920,7 +1852,6 @@ message SubmitTeamAnswersReq {
}
message SubmitTeamAnswersRsp {
string error = 1;
}
message SetTeamAnswerScoreReq {
@@ -1931,7 +1862,6 @@ message SetTeamAnswerScoreReq {
}
message SetTeamAnswerScoreRsp {
string error = 1;
}
message UpdateScenarioBackgroundReq {
@@ -1940,7 +1870,6 @@ message UpdateScenarioBackgroundReq {
}
message UpdateScenarioBackgroundRsp {
string error = 1;
}
message IssueGameTicketsReq {
@@ -1949,8 +1878,7 @@ message IssueGameTicketsReq {
}
message IssueGameTicketsRsp {
string error = 1;
repeated Ticket tickets = 2;
repeated Ticket tickets = 1;
}
message Ticket {
@@ -1963,8 +1891,7 @@ message GetTicketReq {
}
message GetTicketRsp {
string error = 1;
TicketPage ticket = 2;
TicketPage ticket = 1;
}
message AcceptTicketReq {
@@ -1972,8 +1899,7 @@ message AcceptTicketReq {
}
message AcceptTicketRsp {
string error = 1;
TicketPage ticket = 2;
TicketPage ticket = 1;
}
message TicketPage {