diff --git a/README.md b/README.md index b974caf..48b9caf 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,16 @@ goose -dir ./migrations postgres "user=postgres password=postgres host=localhost make test ``` +## Закрывашка сценария + +Автор (или администратор) сохраняет закрывашку через `PUT /api/scenarios/{id}/conclusion`: + +```json +{"conclusion":{"text":"Разгадка дела","video":"ending_abc.mp4"}} +``` + +Видео сначала загружается через `POST /api/files/upload` (MP4/WebM, до 64 МБ); в `video` передаётся возвращённое имя файла. Текст и видео можно задавать отдельно. `{"conclusion":null}` удаляет закрывашку. Она возвращается в `story.conclusion` полного сценария, но не передаётся в историю игроков, включая MCP. Закрывашка переносится вместе с ZIP-архивом; действуют общие лимиты импорта архива (32 МБ на архив и отдельный файл). + ## Документация и юридические документы - [`docs/TERMS.md`](docs/TERMS.md) — Пользовательское соглашение (оферта); раздаётся сервером по постоянному URL `/api/terms`; @@ -106,4 +116,3 @@ MCP-эндпоинт: `http://localhost:8090/api/mcp`. ВНИМАНИЕ: REST-ga } } ``` - diff --git a/api/main.proto b/api/main.proto index 175e7a8..7f28583 100644 --- a/api/main.proto +++ b/api/main.proto @@ -420,6 +420,18 @@ service EveningDetectiveServer { }; } + // Видео загружается через UploadFile (MP4/WebM). Пустая conclusion удаляет закрывашку. + rpc UpdateScenarioConclusion(UpdateScenarioConclusionReq) returns (UpdateScenarioConclusionRsp) { + option (google.api.http) = { + put: "/api/scenarios/{id}/conclusion" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + tags: "Сценарии"; + summary: "Обновить закрывашку сценария (игрокам не передаётся)"; + }; + } + rpc DownloadScenarioArchive(DownloadScenarioArchiveReq) returns (google.api.HttpBody) { option (google.api.http) = { get: "/api/scenarios/{id}/archive" @@ -837,7 +849,7 @@ message UploadFileReq { message UploadFileRsp { string error = 1; string filename = 2; - // Тип загруженного файла: image | pdf | audio (определяется сервером по + // Тип загруженного файла: image | pdf | audio | video (определяется сервером по // содержимому). Удобен редактору для предзаполнения file_type улики. string file_type = 3 [json_name = "file_type"]; } @@ -892,12 +904,18 @@ message Scenario { } message Story { + Conclusion conclusion = 5; // Только в полном сценарии, игрокам не передаётся. string background = 4; Introduction introduction = 2; repeated Place places = 1; repeated Question questions = 3; } +message Conclusion { + string text = 1; + string video = 2; +} + message Introduction { string text = 1; string audio = 2; @@ -1033,6 +1051,15 @@ message DeleteScenarioPlaceRsp { string error = 1; } +message UpdateScenarioConclusionReq { + int32 id = 1; + Conclusion conclusion = 2; +} + +message UpdateScenarioConclusionRsp { + string error = 1; +} + message UpdateScenarioIntroReq { int32 id = 1; Introduction introduction = 2; diff --git a/bin/evening_detective_server b/bin/evening_detective_server index cdb0d8b..5d3e01a 100755 Binary files a/bin/evening_detective_server and b/bin/evening_detective_server differ diff --git a/cmd/evening_detective_server/main.swagger.json b/cmd/evening_detective_server/main.swagger.json index d18fc9b..63ca105 100644 --- a/cmd/evening_detective_server/main.swagger.json +++ b/cmd/evening_detective_server/main.swagger.json @@ -1005,6 +1005,46 @@ ] } }, + "/api/scenarios/{id}/conclusion": { + "put": { + "summary": "Обновить закрывашку сценария (игрокам не передаётся)", + "operationId": "EveningDetectiveServer_UpdateScenarioConclusion", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/evening_detective_serverUpdateScenarioConclusionRsp" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "type": "integer", + "format": "int32" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/EveningDetectiveServerUpdateScenarioConclusionBody" + } + } + ], + "tags": [ + "Сценарии" + ] + } + }, "/api/scenarios/{id}/draft": { "put": { "summary": "Снять с публикации сценарий", @@ -2204,6 +2244,14 @@ } } }, + "EveningDetectiveServerUpdateScenarioConclusionBody": { + "type": "object", + "properties": { + "conclusion": { + "$ref": "#/definitions/evening_detective_serverConclusion" + } + } + }, "EveningDetectiveServerUpdateScenarioIntroBody": { "type": "object", "properties": { @@ -2415,6 +2463,17 @@ } } }, + "evening_detective_serverConclusion": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "video": { + "type": "string" + } + } + }, "evening_detective_serverDeleteAccountRsp": { "type": "object", "properties": { @@ -3071,6 +3130,10 @@ "evening_detective_serverStory": { "type": "object", "properties": { + "conclusion": { + "$ref": "#/definitions/evening_detective_serverConclusion", + "description": "Только в полном сценарии, игрокам не передаётся." + }, "background": { "type": "string" }, @@ -3204,6 +3267,14 @@ } } }, + "evening_detective_serverUpdateScenarioConclusionRsp": { + "type": "object", + "properties": { + "error": { + "type": "string" + } + } + }, "evening_detective_serverUpdateScenarioIntroRsp": { "type": "object", "properties": { @@ -3267,7 +3338,7 @@ }, "file_type": { "type": "string", - "description": "Тип загруженного файла: image | pdf | audio (определяется сервером по\nсодержимому). Удобен редактору для предзаполнения file_type улики." + "description": "Тип загруженного файла: image | pdf | audio | video (определяется сервером по\nсодержимому). Удобен редактору для предзаполнения file_type улики." } } }, diff --git a/internal/app/server.go b/internal/app/server.go index d19d76c..a2b020d 100644 --- a/internal/app/server.go +++ b/internal/app/server.go @@ -710,6 +710,17 @@ func (s *server) UpdateScenarioIntro(ctx context.Context, req *proto.UpdateScena return &proto.UpdateScenarioIntroRsp{}, nil } +func (s *server) UpdateScenarioConclusion(ctx context.Context, req *proto.UpdateScenarioConclusionReq) (*proto.UpdateScenarioConclusionRsp, error) { + claims := ctx.Value("claims").(*processor_jwt.JWTClaims) + if !roles.HasRole(claims, roles.Author) { + return nil, status.Errorf(codes.PermissionDenied, "permission denied") + } + if err := s.scenarioService.UpdateScenarioConclusion(ctx, int(req.Id), convertConclusion(req.Conclusion), claims.UserID, roles.HasRole(claims, roles.Admin)); err != nil { + return &proto.UpdateScenarioConclusionRsp{Error: err.Error()}, nil + } + return &proto.UpdateScenarioConclusionRsp{}, nil +} + // DownloadScenarioArchive отдаёт ZIP-архив сценария; ошибки — gRPC-статусами. func (s *server) DownloadScenarioArchive(ctx context.Context, req *proto.DownloadScenarioArchiveReq) (*httpbody.HttpBody, error) { claims := ctx.Value("claims").(*processor_jwt.JWTClaims) diff --git a/internal/app/story_mapper.go b/internal/app/story_mapper.go index db7b3d1..d11201c 100644 --- a/internal/app/story_mapper.go +++ b/internal/app/story_mapper.go @@ -49,11 +49,26 @@ func mapStory(o *storytelling.Story) *proto.Story { return &proto.Story{ Background: o.Background, Introduction: mapIntroduction(o.Introduction), + Conclusion: mapConclusion(o.Conclusion), Places: mapPlaces(o.Places), Questions: mapQuestions(o.Questions), } } +func mapConclusion(o *storytelling.Conclusion) *proto.Conclusion { + if o == nil { + return nil + } + return &proto.Conclusion{Text: o.Text, Video: o.Video} +} + +func convertConclusion(o *proto.Conclusion) *storytelling.Conclusion { + if o == nil || (o.Text == "" && o.Video == "") { + return nil + } + return &storytelling.Conclusion{Text: textFormatter.FormatText(o.Text), Video: o.Video} +} + func mapIntroduction(o *storytelling.Introduction) *proto.Introduction { if o == nil { return nil diff --git a/internal/app/story_mapper_test.go b/internal/app/story_mapper_test.go new file mode 100644 index 0000000..7efdba0 --- /dev/null +++ b/internal/app/story_mapper_test.go @@ -0,0 +1,30 @@ +package app + +import ( + "strings" + "testing" + + "evening_detective_server/internal/modules/cleaner" + "evening_detective_server/internal/modules/storytelling" + proto "evening_detective_server/proto" + "google.golang.org/protobuf/encoding/protojson" +) + +func TestConclusionMapping(t *testing.T) { + input := &proto.Conclusion{Text: "Разгадка", Video: "ending.mp4"} + story := &storytelling.Story{Conclusion: convertConclusion(input)} + if got := mapStory(story).Conclusion; got == nil || got.Text != input.Text || got.Video != input.Video { + t.Fatalf("author conclusion: %+v", got) + } + player := storytelling.NewStory(cleaner.NewCleaner()).GetStory(story, nil) + data, err := protojson.Marshal(mapStory(player)) + if err != nil { + t.Fatal(err) + } + if strings.Contains(string(data), "conclusion") || strings.Contains(string(data), input.Text) || strings.Contains(string(data), input.Video) { + t.Fatalf("player response leaks conclusion: %s", data) + } + if convertConclusion(nil) != nil || convertConclusion(&proto.Conclusion{}) != nil { + t.Fatal("empty conclusion must clear it") + } +} diff --git a/internal/modules/file_storage/interface.go b/internal/modules/file_storage/interface.go index 69ce899..26c06a9 100644 --- a/internal/modules/file_storage/interface.go +++ b/internal/modules/file_storage/interface.go @@ -26,7 +26,7 @@ type IFileStorage interface { } // FileType возвращает категорию файла по расширению имени: pdf → "pdf", -// jpg/jpeg/png/gif/webp → "image", mp3/ogg/wav → "audio", иначе "". +// jpg/jpeg/png/gif/webp → "image", mp3/ogg/wav → "audio", mp4/webm → "video", иначе "". // Регистр расширения и query-параметры игнорируются. // Используется для деривации file_type улик (см. storytelling.Application). func FileType(filename string) string { @@ -38,6 +38,8 @@ func FileType(filename string) string { return "image" case ".mp3", ".ogg", ".wav": return "audio" + case ".mp4", ".webm": + return "video" default: return "" } diff --git a/internal/modules/scenario_archive/archive.go b/internal/modules/scenario_archive/archive.go index 18e4829..104c7c0 100644 --- a/internal/modules/scenario_archive/archive.go +++ b/internal/modules/scenario_archive/archive.go @@ -107,6 +107,11 @@ func (a *scenarioArchive) Pack( if err := addRef(story.Background); err != nil { return nil, err } + if story.Conclusion != nil { + if err := addRef(story.Conclusion.Video); err != nil { + return nil, err + } + } if story.Introduction != nil { if err := addRef(story.Introduction.Audio); err != nil { return nil, err @@ -150,6 +155,9 @@ func (a *scenarioArchive) Pack( } story.Background = rewriteRef(story.Background, archivePathOf) + if story.Conclusion != nil { + story.Conclusion.Video = rewriteRef(story.Conclusion.Video, archivePathOf) + } doc := ScenarioJSON{ Version: Version, Name: scenario.Name, diff --git a/internal/modules/storytelling/interface.go b/internal/modules/storytelling/interface.go index ddca36e..60a33a6 100644 --- a/internal/modules/storytelling/interface.go +++ b/internal/modules/storytelling/interface.go @@ -11,6 +11,9 @@ type Story struct { // Введение - то, что игрок получает в начале игры Introduction *Introduction `json:"introduction,omitempty"` + // Закрывашка доступна в редакторе сценария, игрокам не передаётся. + Conclusion *Conclusion `json:"conclusion,omitempty"` + // Список точек Places []*Place `json:"places"` @@ -33,7 +36,13 @@ type Question struct { Answer string `json:"answer"` } -// Введение - текст и аудио, которые игрок получает в начале игры +// Закрывашка - текст и видео для редактора сценария. +type Conclusion struct { + Text string `json:"text"` + Video string `json:"video,omitempty"` +} + +// Введение - текст и аудио, которые игрок получает в начале игры. type Introduction struct { // Текст введения diff --git a/internal/services/file_service/service.go b/internal/services/file_service/service.go index 587e7a4..2b74f85 100644 --- a/internal/services/file_service/service.go +++ b/internal/services/file_service/service.go @@ -17,13 +17,13 @@ import ( var ( ErrEmptyName = errors.New("пустое имя файла") ErrEmptyData = errors.New("пустые данные файла") - ErrInvalidExtension = errors.New("недопустимое расширение файла (разрешены pdf, jpg, jpeg, png, gif, webp, mp3, ogg, wav)") - ErrInvalidContentType = errors.New("содержимое файла не соответствует разрешённым типам (pdf, изображения или аудио)") + ErrInvalidExtension = errors.New("недопустимое расширение файла (разрешены pdf, jpg, jpeg, png, gif, webp, mp3, ogg, wav, mp4, webm)") + ErrInvalidContentType = errors.New("содержимое файла не соответствует разрешённым типам (pdf, изображения, аудио или видео)") ErrFileTooLarge = errors.New("файл слишком большой") ) // allowedExtensions — расширения, разрешённые для загрузки: PDF, изображения -// и аудио (аудио-введение сценария загружается тем же эндпоинтом). +// и аудио/видео (введение и закрывашка загружаются тем же эндпоинтом). var allowedExtensions = map[string]struct{}{ ".pdf": {}, ".jpg": {}, @@ -34,6 +34,8 @@ var allowedExtensions = map[string]struct{}{ ".mp3": {}, ".ogg": {}, ".wav": {}, + ".mp4": {}, + ".webm": {}, } type FileService struct { @@ -55,7 +57,7 @@ func NewFileService( } // UploadFile сохраняет файл в хранилище под уникальным именем и возвращает -// сохранённое имя и категорию файла (image|pdf|audio). +// сохранённое имя и категорию файла (image|pdf|audio|video). // // Порядок проверок: имя/данные → расширение → base → размер → содержимое. // Проверка размера — defense-in-depth: фактический лимит запроса @@ -138,6 +140,8 @@ func contentTypeCategory(sniffed string) string { return "image" case strings.HasPrefix(sniffed, "audio/"): return "audio" + case strings.HasPrefix(sniffed, "video/"): + return "video" case sniffed == "application/ogg": return "audio" default: diff --git a/internal/services/file_service/service_test.go b/internal/services/file_service/service_test.go index cfae99c..3f36c79 100644 --- a/internal/services/file_service/service_test.go +++ b/internal/services/file_service/service_test.go @@ -67,6 +67,8 @@ func TestUploadFileValid(t *testing.T) { wantMime string }{ {"улика.pdf", []byte("%PDF-1.7 content"), "pdf", ".pdf", "application/pdf"}, + {"ending.mp4", []byte("\x00\x00\x00\x18ftypmp42\x00\x00\x00\x00mp42isom"), "video", ".mp4", "video/mp4"}, + {"ending.webm", []byte("\x1a\x45\xdf\xa3\x87\x42\x82\x84webm"), "video", ".webm", "video/webm"}, {"photo.png", []byte("\x89PNG\r\n\x1a\ncontent"), "image", ".png", "image/png"}, {"photo.PNG", []byte("\x89PNG\r\n\x1a\ncontent"), "image", ".png", "image/png"}, {"photo.jpg", []byte("\xff\xd8\xff\xe0jpeg-content"), "image", ".jpg", "image/jpeg"}, @@ -126,6 +128,8 @@ func TestUploadFileValidation(t *testing.T) { {"пустой base (.pdf)", ".pdf", pdf, ErrEmptyName}, {"base из не-латиницы (!!!.pdf)", "!!!.pdf", pdf, ErrEmptyName}, {"html под видом png", "photo.png", []byte("hi"), ErrInvalidContentType}, + {"html под видом mp4", "ending.mp4", []byte("hi"), ErrInvalidContentType}, + {"аудио под видом webm", "ending.webm", []byte("ID3\x04\x00\x00\x00\x00\x00\x00audio"), ErrInvalidContentType}, {"octet-stream", "clue.pdf", []byte{0x00, 0x01, 0x02, 0x03}, ErrInvalidContentType}, {"ложный mp3 sync", "audio.mp3", []byte{0xff, 0xe0, 0x00, 0x00}, ErrInvalidContentType}, {"mismatch pdf+png", "clue.pdf", []byte("\x89PNG\r\n\x1a\ncontent"), ErrInvalidContentType}, diff --git a/internal/services/scenarios_service/scenario_mapper.go b/internal/services/scenarios_service/scenario_mapper.go index fc28fc8..11f62d9 100644 --- a/internal/services/scenarios_service/scenario_mapper.go +++ b/internal/services/scenarios_service/scenario_mapper.go @@ -76,6 +76,9 @@ func mapStory(o string, domain string) (*storytelling.Story, error) { return nil, err } res.Background = prefixDomain(res.Background, domain) + if res.Conclusion != nil { + res.Conclusion.Video = prefixDomain(res.Conclusion.Video, domain) + } for _, place := range res.Places { place.Image = prefixDomain(place.Image, domain) for _, application := range place.Applications { diff --git a/internal/services/scenarios_service/service.go b/internal/services/scenarios_service/service.go index 94b788b..82878f9 100644 --- a/internal/services/scenarios_service/service.go +++ b/internal/services/scenarios_service/service.go @@ -311,6 +311,18 @@ func (s *ScenarioService) UpdateScenarioIntro( return s.updateStory(ctx, id, story) } +func (s *ScenarioService) UpdateScenarioConclusion(ctx context.Context, id int, conclusion *storytelling.Conclusion, actorId int, isAdmin bool) error { + if _, err := s.getScenarioForChange(ctx, id, actorId, isAdmin); err != nil { + return err + } + story, err := s.getStory(ctx, id) + if err != nil { + return err + } + story.Conclusion = conclusion + return s.updateStory(ctx, id, story) +} + // AddScenarioQuestion добавляет вопрос дела в конец списка вопросов сценария. func (s *ScenarioService) AddScenarioQuestion( ctx context.Context, @@ -499,6 +511,12 @@ func (s *ScenarioService) UploadArchive( } } + if scenario.Story.Conclusion != nil { + scenario.Story.Conclusion.Video, err = rewrite(scenario.Story.Conclusion.Video) + if err != nil { + return 0, err + } + } storyJSON, err := normalizeStory(scenario.Story) if err != nil { return 0, err @@ -522,6 +540,9 @@ func (s *ScenarioService) UploadArchive( } func (s *ScenarioService) updateStory(ctx context.Context, id int, story *storytelling.Story) error { + if story.Conclusion != nil { + story.Conclusion.Video = strings.TrimPrefix(story.Conclusion.Video, s.domain) + } story.Background = strings.TrimPrefix(story.Background, s.domain) for _, place := range story.Places { place.Image = strings.TrimPrefix(place.Image, s.domain) @@ -544,6 +565,9 @@ func (s *ScenarioService) updateStory(ctx context.Context, id int, story *storyt // нормализует file_type улик и возвращает JSON истории. // Общая для редактирования и импорта. func normalizeStory(story *storytelling.Story) (string, error) { + if story.Conclusion != nil && story.Conclusion.Video != "" && file_storage.FileType(story.Conclusion.Video) != "video" { + return "", errors.New("Видео закрывашки должно быть в формате MP4 или WebM") + } codes := map[string]struct{}{} for _, place := range story.Places { codes[place.Code] = struct{}{} diff --git a/internal/services/scenarios_service/service_test.go b/internal/services/scenarios_service/service_test.go index ca19b4c..8e18dcd 100644 --- a/internal/services/scenarios_service/service_test.go +++ b/internal/services/scenarios_service/service_test.go @@ -6,6 +6,7 @@ import ( "context" "encoding/json" "errors" + "evening_detective_server/internal/modules/cleaner" "fmt" "strings" "sync" @@ -20,6 +21,77 @@ import ( const testDomain = "http://storage.test/api/files/" +func TestConclusionLifecycle(t *testing.T) { + ctx := context.Background() + repo, storage := newFakeScenariosRepo(), newFakeStorage() + svc := newTestService(repo, storage) + id, _ := repo.AddScenario(ctx, "Дело", 7) + repo.byID[id].Scenario = `{"places":[]}` + conclusion := &storytelling.Conclusion{Text: "Разгадка", Video: testDomain + "ending.mp4"} + if err := svc.UpdateScenarioConclusion(ctx, id, conclusion, 8, false); !errors.Is(err, ErrScenarioNotOwner) { + t.Fatalf("ownership: %v", err) + } + if err := svc.UpdateScenarioConclusion(ctx, id, &storytelling.Conclusion{Video: "photo.png"}, 7, false); err == nil { + t.Fatal("accepted non-video") + } + if err := svc.UpdateScenarioConclusion(ctx, id, conclusion, 7, false); err != nil { + t.Fatal(err) + } + if err := svc.UpdateScenarioIntro(ctx, id, &storytelling.Introduction{Text: "Начало"}, 7, false); err != nil { + t.Fatal(err) + } + full, err := svc.GetFullScenarioByID(ctx, id) + if err != nil { + t.Fatal(err) + } + if full.Story.Conclusion == nil || full.Story.Conclusion.Text != conclusion.Text || full.Story.Conclusion.Video != testDomain+"ending.mp4" || strings.Contains(repo.byID[id].Scenario, testDomain) { + t.Fatalf("conclusion not preserved: %+v", full.Story.Conclusion) + } + for _, codes := range [][]string{nil, {"end"}} { + player := storytelling.NewStory(cleaner.NewCleaner()).GetStory(full.Story, codes) + data, err := json.Marshal(player) + if err != nil { + t.Fatal(err) + } + if player.Conclusion != nil || strings.Contains(string(data), "Разгадка") || strings.Contains(string(data), "ending.mp4") { + t.Fatalf("conclusion leaked to players: %s", data) + } + } + if err := storage.Put(ctx, &file_storage.File{Name: "ending.mp4", Data: []byte("video")}); err != nil { + t.Fatal(err) + } + archive, _, err := svc.DownloadArchive(ctx, id, 7, false) + if err != nil { + t.Fatal(err) + } + imported, err := svc.UploadArchive(ctx, archive, 7) + if err != nil { + t.Fatal(err) + } + copy, err := svc.GetFullScenarioByID(ctx, imported) + if err != nil { + t.Fatal(err) + } + if copy.Story.Conclusion == nil || copy.Story.Conclusion.Text != conclusion.Text { + t.Fatal("lost conclusion on import") + } + name := strings.TrimPrefix(copy.Story.Conclusion.Video, testDomain) + file, err := storage.Get(ctx, name) + if err != nil || name == "ending.mp4" || string(file.Data) != "video" { + t.Fatalf("video import: %q, %v", name, err) + } + if err := svc.UpdateScenarioConclusion(ctx, id, nil, 7, false); err != nil { + t.Fatal(err) + } + full, err = svc.GetFullScenarioByID(ctx, id) + if err != nil { + t.Fatal(err) + } + if full.Story.Conclusion != nil { + t.Fatal("conclusion not removed") + } +} + // fakeStorage — in-memory реализация IFileStorage. type fakeStorage struct { mu sync.Mutex diff --git a/proto/main.pb.go b/proto/main.pb.go index c988480..6cfaccf 100644 --- a/proto/main.pb.go +++ b/proto/main.pb.go @@ -1643,7 +1643,7 @@ type UploadFileRsp struct { state protoimpl.MessageState `protogen:"open.v1"` Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` Filename string `protobuf:"bytes,2,opt,name=filename,proto3" json:"filename,omitempty"` - // Тип загруженного файла: image | pdf | audio (определяется сервером по + // Тип загруженного файла: image | pdf | audio | video (определяется сервером по // содержимому). Удобен редактору для предзаполнения file_type улики. FileType string `protobuf:"bytes,3,opt,name=file_type,proto3" json:"file_type,omitempty"` unknownFields protoimpl.UnknownFields @@ -2231,6 +2231,7 @@ func (x *Scenario) GetPublishedAt() *timestamppb.Timestamp { type Story struct { state protoimpl.MessageState `protogen:"open.v1"` + Conclusion *Conclusion `protobuf:"bytes,5,opt,name=conclusion,proto3" json:"conclusion,omitempty"` // Только в полном сценарии, игрокам не передаётся. Background string `protobuf:"bytes,4,opt,name=background,proto3" json:"background,omitempty"` Introduction *Introduction `protobuf:"bytes,2,opt,name=introduction,proto3" json:"introduction,omitempty"` Places []*Place `protobuf:"bytes,1,rep,name=places,proto3" json:"places,omitempty"` @@ -2269,6 +2270,13 @@ func (*Story) Descriptor() ([]byte, []int) { return file_main_proto_rawDescGZIP(), []int{45} } +func (x *Story) GetConclusion() *Conclusion { + if x != nil { + return x.Conclusion + } + return nil +} + func (x *Story) GetBackground() string { if x != nil { return x.Background @@ -2297,6 +2305,58 @@ func (x *Story) GetQuestions() []*Question { return nil } +type Conclusion struct { + state protoimpl.MessageState `protogen:"open.v1"` + Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"` + Video string `protobuf:"bytes,2,opt,name=video,proto3" json:"video,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Conclusion) Reset() { + *x = Conclusion{} + mi := &file_main_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Conclusion) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Conclusion) ProtoMessage() {} + +func (x *Conclusion) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[46] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Conclusion.ProtoReflect.Descriptor instead. +func (*Conclusion) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{46} +} + +func (x *Conclusion) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +func (x *Conclusion) GetVideo() string { + if x != nil { + return x.Video + } + return "" +} + type Introduction struct { state protoimpl.MessageState `protogen:"open.v1"` Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"` @@ -2307,7 +2367,7 @@ type Introduction struct { func (x *Introduction) Reset() { *x = Introduction{} - mi := &file_main_proto_msgTypes[46] + mi := &file_main_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2319,7 +2379,7 @@ func (x *Introduction) String() string { func (*Introduction) ProtoMessage() {} func (x *Introduction) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[46] + mi := &file_main_proto_msgTypes[47] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2332,7 +2392,7 @@ func (x *Introduction) ProtoReflect() protoreflect.Message { // Deprecated: Use Introduction.ProtoReflect.Descriptor instead. func (*Introduction) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{46} + return file_main_proto_rawDescGZIP(), []int{47} } func (x *Introduction) GetText() string { @@ -2365,7 +2425,7 @@ type Place struct { func (x *Place) Reset() { *x = Place{} - mi := &file_main_proto_msgTypes[47] + mi := &file_main_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2377,7 +2437,7 @@ func (x *Place) String() string { func (*Place) ProtoMessage() {} func (x *Place) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[47] + mi := &file_main_proto_msgTypes[48] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2390,7 +2450,7 @@ func (x *Place) ProtoReflect() protoreflect.Message { // Deprecated: Use Place.ProtoReflect.Descriptor instead. func (*Place) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{47} + return file_main_proto_rawDescGZIP(), []int{48} } func (x *Place) GetCode() string { @@ -2463,7 +2523,7 @@ type Application struct { func (x *Application) Reset() { *x = Application{} - mi := &file_main_proto_msgTypes[48] + mi := &file_main_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2475,7 +2535,7 @@ func (x *Application) String() string { func (*Application) ProtoMessage() {} func (x *Application) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[48] + mi := &file_main_proto_msgTypes[49] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2488,7 +2548,7 @@ func (x *Application) ProtoReflect() protoreflect.Message { // Deprecated: Use Application.ProtoReflect.Descriptor instead. func (*Application) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{48} + return file_main_proto_rawDescGZIP(), []int{49} } func (x *Application) GetName() string { @@ -2523,7 +2583,7 @@ type Door struct { func (x *Door) Reset() { *x = Door{} - mi := &file_main_proto_msgTypes[49] + mi := &file_main_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2535,7 +2595,7 @@ func (x *Door) String() string { func (*Door) ProtoMessage() {} func (x *Door) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[49] + mi := &file_main_proto_msgTypes[50] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2548,7 +2608,7 @@ func (x *Door) ProtoReflect() protoreflect.Message { // Deprecated: Use Door.ProtoReflect.Descriptor instead. func (*Door) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{49} + return file_main_proto_rawDescGZIP(), []int{50} } func (x *Door) GetCode() string { @@ -2581,7 +2641,7 @@ type Key struct { func (x *Key) Reset() { *x = Key{} - mi := &file_main_proto_msgTypes[50] + mi := &file_main_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2593,7 +2653,7 @@ func (x *Key) String() string { func (*Key) ProtoMessage() {} func (x *Key) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[50] + mi := &file_main_proto_msgTypes[51] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2606,7 +2666,7 @@ func (x *Key) ProtoReflect() protoreflect.Message { // Deprecated: Use Key.ProtoReflect.Descriptor instead. func (*Key) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{50} + return file_main_proto_rawDescGZIP(), []int{51} } func (x *Key) GetName() string { @@ -2633,7 +2693,7 @@ type Question struct { func (x *Question) Reset() { *x = Question{} - mi := &file_main_proto_msgTypes[51] + mi := &file_main_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2645,7 +2705,7 @@ func (x *Question) String() string { func (*Question) ProtoMessage() {} func (x *Question) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[51] + mi := &file_main_proto_msgTypes[52] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2658,7 +2718,7 @@ func (x *Question) ProtoReflect() protoreflect.Message { // Deprecated: Use Question.ProtoReflect.Descriptor instead. func (*Question) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{51} + return file_main_proto_rawDescGZIP(), []int{52} } func (x *Question) GetCode() string { @@ -2695,7 +2755,7 @@ type Answer struct { func (x *Answer) Reset() { *x = Answer{} - mi := &file_main_proto_msgTypes[52] + mi := &file_main_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2707,7 +2767,7 @@ func (x *Answer) String() string { func (*Answer) ProtoMessage() {} func (x *Answer) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[52] + mi := &file_main_proto_msgTypes[53] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2720,7 +2780,7 @@ func (x *Answer) ProtoReflect() protoreflect.Message { // Deprecated: Use Answer.ProtoReflect.Descriptor instead. func (*Answer) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{52} + return file_main_proto_rawDescGZIP(), []int{53} } func (x *Answer) GetQuestionCode() string { @@ -2750,7 +2810,7 @@ type AnswerScore struct { func (x *AnswerScore) Reset() { *x = AnswerScore{} - mi := &file_main_proto_msgTypes[53] + mi := &file_main_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2762,7 +2822,7 @@ func (x *AnswerScore) String() string { func (*AnswerScore) ProtoMessage() {} func (x *AnswerScore) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[53] + mi := &file_main_proto_msgTypes[54] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2775,7 +2835,7 @@ func (x *AnswerScore) ProtoReflect() protoreflect.Message { // Deprecated: Use AnswerScore.ProtoReflect.Descriptor instead. func (*AnswerScore) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{53} + return file_main_proto_rawDescGZIP(), []int{54} } func (x *AnswerScore) GetQuestionCode() string { @@ -2810,7 +2870,7 @@ type TeamAnswers struct { func (x *TeamAnswers) Reset() { *x = TeamAnswers{} - mi := &file_main_proto_msgTypes[54] + mi := &file_main_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2822,7 +2882,7 @@ func (x *TeamAnswers) String() string { func (*TeamAnswers) ProtoMessage() {} func (x *TeamAnswers) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[54] + mi := &file_main_proto_msgTypes[55] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2835,7 +2895,7 @@ func (x *TeamAnswers) ProtoReflect() protoreflect.Message { // Deprecated: Use TeamAnswers.ProtoReflect.Descriptor instead. func (*TeamAnswers) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{54} + return file_main_proto_rawDescGZIP(), []int{55} } func (x *TeamAnswers) GetTeam() *Team { @@ -2864,7 +2924,7 @@ type UpdateScenarioReq struct { func (x *UpdateScenarioReq) Reset() { *x = UpdateScenarioReq{} - mi := &file_main_proto_msgTypes[55] + mi := &file_main_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2876,7 +2936,7 @@ func (x *UpdateScenarioReq) String() string { func (*UpdateScenarioReq) ProtoMessage() {} func (x *UpdateScenarioReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[55] + mi := &file_main_proto_msgTypes[56] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2889,7 +2949,7 @@ func (x *UpdateScenarioReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScenarioReq.ProtoReflect.Descriptor instead. func (*UpdateScenarioReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{55} + return file_main_proto_rawDescGZIP(), []int{56} } func (x *UpdateScenarioReq) GetId() int32 { @@ -2929,7 +2989,7 @@ type UpdateScenarioRsp struct { func (x *UpdateScenarioRsp) Reset() { *x = UpdateScenarioRsp{} - mi := &file_main_proto_msgTypes[56] + mi := &file_main_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2941,7 +3001,7 @@ func (x *UpdateScenarioRsp) String() string { func (*UpdateScenarioRsp) ProtoMessage() {} func (x *UpdateScenarioRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[56] + mi := &file_main_proto_msgTypes[57] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2954,7 +3014,7 @@ func (x *UpdateScenarioRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScenarioRsp.ProtoReflect.Descriptor instead. func (*UpdateScenarioRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{56} + return file_main_proto_rawDescGZIP(), []int{57} } func (x *UpdateScenarioRsp) GetError() string { @@ -2973,7 +3033,7 @@ type PublicScenarioReq struct { func (x *PublicScenarioReq) Reset() { *x = PublicScenarioReq{} - mi := &file_main_proto_msgTypes[57] + mi := &file_main_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2985,7 +3045,7 @@ func (x *PublicScenarioReq) String() string { func (*PublicScenarioReq) ProtoMessage() {} func (x *PublicScenarioReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[57] + mi := &file_main_proto_msgTypes[58] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2998,7 +3058,7 @@ func (x *PublicScenarioReq) ProtoReflect() protoreflect.Message { // Deprecated: Use PublicScenarioReq.ProtoReflect.Descriptor instead. func (*PublicScenarioReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{57} + return file_main_proto_rawDescGZIP(), []int{58} } func (x *PublicScenarioReq) GetId() int32 { @@ -3017,7 +3077,7 @@ type PublicScenarioRsp struct { func (x *PublicScenarioRsp) Reset() { *x = PublicScenarioRsp{} - mi := &file_main_proto_msgTypes[58] + mi := &file_main_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3029,7 +3089,7 @@ func (x *PublicScenarioRsp) String() string { func (*PublicScenarioRsp) ProtoMessage() {} func (x *PublicScenarioRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[58] + mi := &file_main_proto_msgTypes[59] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3042,7 +3102,7 @@ func (x *PublicScenarioRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use PublicScenarioRsp.ProtoReflect.Descriptor instead. func (*PublicScenarioRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{58} + return file_main_proto_rawDescGZIP(), []int{59} } func (x *PublicScenarioRsp) GetError() string { @@ -3061,7 +3121,7 @@ type DraftScenarioReq struct { func (x *DraftScenarioReq) Reset() { *x = DraftScenarioReq{} - mi := &file_main_proto_msgTypes[59] + mi := &file_main_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3073,7 +3133,7 @@ func (x *DraftScenarioReq) String() string { func (*DraftScenarioReq) ProtoMessage() {} func (x *DraftScenarioReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[59] + mi := &file_main_proto_msgTypes[60] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3086,7 +3146,7 @@ func (x *DraftScenarioReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DraftScenarioReq.ProtoReflect.Descriptor instead. func (*DraftScenarioReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{59} + return file_main_proto_rawDescGZIP(), []int{60} } func (x *DraftScenarioReq) GetId() int32 { @@ -3105,7 +3165,7 @@ type DraftScenarioRsp struct { func (x *DraftScenarioRsp) Reset() { *x = DraftScenarioRsp{} - mi := &file_main_proto_msgTypes[60] + mi := &file_main_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3117,7 +3177,7 @@ func (x *DraftScenarioRsp) String() string { func (*DraftScenarioRsp) ProtoMessage() {} func (x *DraftScenarioRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[60] + mi := &file_main_proto_msgTypes[61] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3130,7 +3190,7 @@ func (x *DraftScenarioRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use DraftScenarioRsp.ProtoReflect.Descriptor instead. func (*DraftScenarioRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{60} + return file_main_proto_rawDescGZIP(), []int{61} } func (x *DraftScenarioRsp) GetError() string { @@ -3149,7 +3209,7 @@ type DeleteScenarioReq struct { func (x *DeleteScenarioReq) Reset() { *x = DeleteScenarioReq{} - mi := &file_main_proto_msgTypes[61] + mi := &file_main_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3161,7 +3221,7 @@ func (x *DeleteScenarioReq) String() string { func (*DeleteScenarioReq) ProtoMessage() {} func (x *DeleteScenarioReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[61] + mi := &file_main_proto_msgTypes[62] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3174,7 +3234,7 @@ func (x *DeleteScenarioReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteScenarioReq.ProtoReflect.Descriptor instead. func (*DeleteScenarioReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{61} + return file_main_proto_rawDescGZIP(), []int{62} } func (x *DeleteScenarioReq) GetId() int32 { @@ -3193,7 +3253,7 @@ type DeleteScenarioRsp struct { func (x *DeleteScenarioRsp) Reset() { *x = DeleteScenarioRsp{} - mi := &file_main_proto_msgTypes[62] + mi := &file_main_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3205,7 +3265,7 @@ func (x *DeleteScenarioRsp) String() string { func (*DeleteScenarioRsp) ProtoMessage() {} func (x *DeleteScenarioRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[62] + mi := &file_main_proto_msgTypes[63] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3218,7 +3278,7 @@ func (x *DeleteScenarioRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteScenarioRsp.ProtoReflect.Descriptor instead. func (*DeleteScenarioRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{62} + return file_main_proto_rawDescGZIP(), []int{63} } func (x *DeleteScenarioRsp) GetError() string { @@ -3238,7 +3298,7 @@ type AddScenarioPlaceReq struct { func (x *AddScenarioPlaceReq) Reset() { *x = AddScenarioPlaceReq{} - mi := &file_main_proto_msgTypes[63] + mi := &file_main_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3250,7 +3310,7 @@ func (x *AddScenarioPlaceReq) String() string { func (*AddScenarioPlaceReq) ProtoMessage() {} func (x *AddScenarioPlaceReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[63] + mi := &file_main_proto_msgTypes[64] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3263,7 +3323,7 @@ func (x *AddScenarioPlaceReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AddScenarioPlaceReq.ProtoReflect.Descriptor instead. func (*AddScenarioPlaceReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{63} + return file_main_proto_rawDescGZIP(), []int{64} } func (x *AddScenarioPlaceReq) GetId() int32 { @@ -3289,7 +3349,7 @@ type AddScenarioPlaceRsp struct { func (x *AddScenarioPlaceRsp) Reset() { *x = AddScenarioPlaceRsp{} - mi := &file_main_proto_msgTypes[64] + mi := &file_main_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3301,7 +3361,7 @@ func (x *AddScenarioPlaceRsp) String() string { func (*AddScenarioPlaceRsp) ProtoMessage() {} func (x *AddScenarioPlaceRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[64] + mi := &file_main_proto_msgTypes[65] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3314,7 +3374,7 @@ func (x *AddScenarioPlaceRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use AddScenarioPlaceRsp.ProtoReflect.Descriptor instead. func (*AddScenarioPlaceRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{64} + return file_main_proto_rawDescGZIP(), []int{65} } func (x *AddScenarioPlaceRsp) GetError() string { @@ -3335,7 +3395,7 @@ type UpdateScenarioPlaceReq struct { func (x *UpdateScenarioPlaceReq) Reset() { *x = UpdateScenarioPlaceReq{} - mi := &file_main_proto_msgTypes[65] + mi := &file_main_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3347,7 +3407,7 @@ func (x *UpdateScenarioPlaceReq) String() string { func (*UpdateScenarioPlaceReq) ProtoMessage() {} func (x *UpdateScenarioPlaceReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[65] + mi := &file_main_proto_msgTypes[66] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3360,7 +3420,7 @@ func (x *UpdateScenarioPlaceReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScenarioPlaceReq.ProtoReflect.Descriptor instead. func (*UpdateScenarioPlaceReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{65} + return file_main_proto_rawDescGZIP(), []int{66} } func (x *UpdateScenarioPlaceReq) GetId() int32 { @@ -3393,7 +3453,7 @@ type UpdateScenarioPlaceRsp struct { func (x *UpdateScenarioPlaceRsp) Reset() { *x = UpdateScenarioPlaceRsp{} - mi := &file_main_proto_msgTypes[66] + mi := &file_main_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3405,7 +3465,7 @@ func (x *UpdateScenarioPlaceRsp) String() string { func (*UpdateScenarioPlaceRsp) ProtoMessage() {} func (x *UpdateScenarioPlaceRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[66] + mi := &file_main_proto_msgTypes[67] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3418,7 +3478,7 @@ func (x *UpdateScenarioPlaceRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScenarioPlaceRsp.ProtoReflect.Descriptor instead. func (*UpdateScenarioPlaceRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{66} + return file_main_proto_rawDescGZIP(), []int{67} } func (x *UpdateScenarioPlaceRsp) GetError() string { @@ -3438,7 +3498,7 @@ type DeleteScenarioPlaceReq struct { func (x *DeleteScenarioPlaceReq) Reset() { *x = DeleteScenarioPlaceReq{} - mi := &file_main_proto_msgTypes[67] + mi := &file_main_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3450,7 +3510,7 @@ func (x *DeleteScenarioPlaceReq) String() string { func (*DeleteScenarioPlaceReq) ProtoMessage() {} func (x *DeleteScenarioPlaceReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[67] + mi := &file_main_proto_msgTypes[68] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3463,7 +3523,7 @@ func (x *DeleteScenarioPlaceReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteScenarioPlaceReq.ProtoReflect.Descriptor instead. func (*DeleteScenarioPlaceReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{67} + return file_main_proto_rawDescGZIP(), []int{68} } func (x *DeleteScenarioPlaceReq) GetId() int32 { @@ -3489,7 +3549,7 @@ type DeleteScenarioPlaceRsp struct { func (x *DeleteScenarioPlaceRsp) Reset() { *x = DeleteScenarioPlaceRsp{} - mi := &file_main_proto_msgTypes[68] + mi := &file_main_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3501,7 +3561,7 @@ func (x *DeleteScenarioPlaceRsp) String() string { func (*DeleteScenarioPlaceRsp) ProtoMessage() {} func (x *DeleteScenarioPlaceRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[68] + mi := &file_main_proto_msgTypes[69] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3514,7 +3574,7 @@ func (x *DeleteScenarioPlaceRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteScenarioPlaceRsp.ProtoReflect.Descriptor instead. func (*DeleteScenarioPlaceRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{68} + return file_main_proto_rawDescGZIP(), []int{69} } func (x *DeleteScenarioPlaceRsp) GetError() string { @@ -3524,6 +3584,102 @@ func (x *DeleteScenarioPlaceRsp) GetError() string { return "" } +type UpdateScenarioConclusionReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Conclusion *Conclusion `protobuf:"bytes,2,opt,name=conclusion,proto3" json:"conclusion,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UpdateScenarioConclusionReq) Reset() { + *x = UpdateScenarioConclusionReq{} + mi := &file_main_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateScenarioConclusionReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateScenarioConclusionReq) ProtoMessage() {} + +func (x *UpdateScenarioConclusionReq) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[70] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateScenarioConclusionReq.ProtoReflect.Descriptor instead. +func (*UpdateScenarioConclusionReq) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{70} +} + +func (x *UpdateScenarioConclusionReq) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *UpdateScenarioConclusionReq) GetConclusion() *Conclusion { + if x != nil { + return x.Conclusion + } + return nil +} + +type UpdateScenarioConclusionRsp struct { + state protoimpl.MessageState `protogen:"open.v1"` + Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UpdateScenarioConclusionRsp) Reset() { + *x = UpdateScenarioConclusionRsp{} + mi := &file_main_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateScenarioConclusionRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateScenarioConclusionRsp) ProtoMessage() {} + +func (x *UpdateScenarioConclusionRsp) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[71] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateScenarioConclusionRsp.ProtoReflect.Descriptor instead. +func (*UpdateScenarioConclusionRsp) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{71} +} + +func (x *UpdateScenarioConclusionRsp) GetError() string { + if x != nil { + return x.Error + } + return "" +} + type UpdateScenarioIntroReq struct { state protoimpl.MessageState `protogen:"open.v1"` Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` @@ -3534,7 +3690,7 @@ type UpdateScenarioIntroReq struct { func (x *UpdateScenarioIntroReq) Reset() { *x = UpdateScenarioIntroReq{} - mi := &file_main_proto_msgTypes[69] + mi := &file_main_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3546,7 +3702,7 @@ func (x *UpdateScenarioIntroReq) String() string { func (*UpdateScenarioIntroReq) ProtoMessage() {} func (x *UpdateScenarioIntroReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[69] + mi := &file_main_proto_msgTypes[72] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3559,7 +3715,7 @@ func (x *UpdateScenarioIntroReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScenarioIntroReq.ProtoReflect.Descriptor instead. func (*UpdateScenarioIntroReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{69} + return file_main_proto_rawDescGZIP(), []int{72} } func (x *UpdateScenarioIntroReq) GetId() int32 { @@ -3585,7 +3741,7 @@ type UpdateScenarioIntroRsp struct { func (x *UpdateScenarioIntroRsp) Reset() { *x = UpdateScenarioIntroRsp{} - mi := &file_main_proto_msgTypes[70] + mi := &file_main_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3597,7 +3753,7 @@ func (x *UpdateScenarioIntroRsp) String() string { func (*UpdateScenarioIntroRsp) ProtoMessage() {} func (x *UpdateScenarioIntroRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[70] + mi := &file_main_proto_msgTypes[73] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3610,7 +3766,7 @@ func (x *UpdateScenarioIntroRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScenarioIntroRsp.ProtoReflect.Descriptor instead. func (*UpdateScenarioIntroRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{70} + return file_main_proto_rawDescGZIP(), []int{73} } func (x *UpdateScenarioIntroRsp) GetError() string { @@ -3630,7 +3786,7 @@ type AddScenarioQuestionReq struct { func (x *AddScenarioQuestionReq) Reset() { *x = AddScenarioQuestionReq{} - mi := &file_main_proto_msgTypes[71] + mi := &file_main_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3642,7 +3798,7 @@ func (x *AddScenarioQuestionReq) String() string { func (*AddScenarioQuestionReq) ProtoMessage() {} func (x *AddScenarioQuestionReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[71] + mi := &file_main_proto_msgTypes[74] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3655,7 +3811,7 @@ func (x *AddScenarioQuestionReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AddScenarioQuestionReq.ProtoReflect.Descriptor instead. func (*AddScenarioQuestionReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{71} + return file_main_proto_rawDescGZIP(), []int{74} } func (x *AddScenarioQuestionReq) GetId() int32 { @@ -3681,7 +3837,7 @@ type AddScenarioQuestionRsp struct { func (x *AddScenarioQuestionRsp) Reset() { *x = AddScenarioQuestionRsp{} - mi := &file_main_proto_msgTypes[72] + mi := &file_main_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3693,7 +3849,7 @@ func (x *AddScenarioQuestionRsp) String() string { func (*AddScenarioQuestionRsp) ProtoMessage() {} func (x *AddScenarioQuestionRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[72] + mi := &file_main_proto_msgTypes[75] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3706,7 +3862,7 @@ func (x *AddScenarioQuestionRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use AddScenarioQuestionRsp.ProtoReflect.Descriptor instead. func (*AddScenarioQuestionRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{72} + return file_main_proto_rawDescGZIP(), []int{75} } func (x *AddScenarioQuestionRsp) GetError() string { @@ -3727,7 +3883,7 @@ type UpdateScenarioQuestionReq struct { func (x *UpdateScenarioQuestionReq) Reset() { *x = UpdateScenarioQuestionReq{} - mi := &file_main_proto_msgTypes[73] + mi := &file_main_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3739,7 +3895,7 @@ func (x *UpdateScenarioQuestionReq) String() string { func (*UpdateScenarioQuestionReq) ProtoMessage() {} func (x *UpdateScenarioQuestionReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[73] + mi := &file_main_proto_msgTypes[76] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3752,7 +3908,7 @@ func (x *UpdateScenarioQuestionReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScenarioQuestionReq.ProtoReflect.Descriptor instead. func (*UpdateScenarioQuestionReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{73} + return file_main_proto_rawDescGZIP(), []int{76} } func (x *UpdateScenarioQuestionReq) GetId() int32 { @@ -3785,7 +3941,7 @@ type UpdateScenarioQuestionRsp struct { func (x *UpdateScenarioQuestionRsp) Reset() { *x = UpdateScenarioQuestionRsp{} - mi := &file_main_proto_msgTypes[74] + mi := &file_main_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3797,7 +3953,7 @@ func (x *UpdateScenarioQuestionRsp) String() string { func (*UpdateScenarioQuestionRsp) ProtoMessage() {} func (x *UpdateScenarioQuestionRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[74] + mi := &file_main_proto_msgTypes[77] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3810,7 +3966,7 @@ func (x *UpdateScenarioQuestionRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScenarioQuestionRsp.ProtoReflect.Descriptor instead. func (*UpdateScenarioQuestionRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{74} + return file_main_proto_rawDescGZIP(), []int{77} } func (x *UpdateScenarioQuestionRsp) GetError() string { @@ -3830,7 +3986,7 @@ type DeleteScenarioQuestionReq struct { func (x *DeleteScenarioQuestionReq) Reset() { *x = DeleteScenarioQuestionReq{} - mi := &file_main_proto_msgTypes[75] + mi := &file_main_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3842,7 +3998,7 @@ func (x *DeleteScenarioQuestionReq) String() string { func (*DeleteScenarioQuestionReq) ProtoMessage() {} func (x *DeleteScenarioQuestionReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[75] + mi := &file_main_proto_msgTypes[78] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3855,7 +4011,7 @@ func (x *DeleteScenarioQuestionReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteScenarioQuestionReq.ProtoReflect.Descriptor instead. func (*DeleteScenarioQuestionReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{75} + return file_main_proto_rawDescGZIP(), []int{78} } func (x *DeleteScenarioQuestionReq) GetId() int32 { @@ -3881,7 +4037,7 @@ type DeleteScenarioQuestionRsp struct { func (x *DeleteScenarioQuestionRsp) Reset() { *x = DeleteScenarioQuestionRsp{} - mi := &file_main_proto_msgTypes[76] + mi := &file_main_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3893,7 +4049,7 @@ func (x *DeleteScenarioQuestionRsp) String() string { func (*DeleteScenarioQuestionRsp) ProtoMessage() {} func (x *DeleteScenarioQuestionRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[76] + mi := &file_main_proto_msgTypes[79] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3906,7 +4062,7 @@ func (x *DeleteScenarioQuestionRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteScenarioQuestionRsp.ProtoReflect.Descriptor instead. func (*DeleteScenarioQuestionRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{76} + return file_main_proto_rawDescGZIP(), []int{79} } func (x *DeleteScenarioQuestionRsp) GetError() string { @@ -3925,7 +4081,7 @@ type DownloadScenarioArchiveReq struct { func (x *DownloadScenarioArchiveReq) Reset() { *x = DownloadScenarioArchiveReq{} - mi := &file_main_proto_msgTypes[77] + mi := &file_main_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3937,7 +4093,7 @@ func (x *DownloadScenarioArchiveReq) String() string { func (*DownloadScenarioArchiveReq) ProtoMessage() {} func (x *DownloadScenarioArchiveReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[77] + mi := &file_main_proto_msgTypes[80] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3950,7 +4106,7 @@ func (x *DownloadScenarioArchiveReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DownloadScenarioArchiveReq.ProtoReflect.Descriptor instead. func (*DownloadScenarioArchiveReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{77} + return file_main_proto_rawDescGZIP(), []int{80} } func (x *DownloadScenarioArchiveReq) GetId() int32 { @@ -3970,7 +4126,7 @@ type UploadScenarioArchiveRsp struct { func (x *UploadScenarioArchiveRsp) Reset() { *x = UploadScenarioArchiveRsp{} - mi := &file_main_proto_msgTypes[78] + mi := &file_main_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3982,7 +4138,7 @@ func (x *UploadScenarioArchiveRsp) String() string { func (*UploadScenarioArchiveRsp) ProtoMessage() {} func (x *UploadScenarioArchiveRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[78] + mi := &file_main_proto_msgTypes[81] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3995,7 +4151,7 @@ func (x *UploadScenarioArchiveRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use UploadScenarioArchiveRsp.ProtoReflect.Descriptor instead. func (*UploadScenarioArchiveRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{78} + return file_main_proto_rawDescGZIP(), []int{81} } func (x *UploadScenarioArchiveRsp) GetError() string { @@ -4024,7 +4180,7 @@ type AddGameReq struct { func (x *AddGameReq) Reset() { *x = AddGameReq{} - mi := &file_main_proto_msgTypes[79] + mi := &file_main_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4036,7 +4192,7 @@ func (x *AddGameReq) String() string { func (*AddGameReq) ProtoMessage() {} func (x *AddGameReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[79] + mi := &file_main_proto_msgTypes[82] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4049,7 +4205,7 @@ func (x *AddGameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AddGameReq.ProtoReflect.Descriptor instead. func (*AddGameReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{79} + return file_main_proto_rawDescGZIP(), []int{82} } func (x *AddGameReq) GetName() string { @@ -4090,7 +4246,7 @@ type AddGameRsp struct { func (x *AddGameRsp) Reset() { *x = AddGameRsp{} - mi := &file_main_proto_msgTypes[80] + mi := &file_main_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4102,7 +4258,7 @@ func (x *AddGameRsp) String() string { func (*AddGameRsp) ProtoMessage() {} func (x *AddGameRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[80] + mi := &file_main_proto_msgTypes[83] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4115,7 +4271,7 @@ func (x *AddGameRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use AddGameRsp.ProtoReflect.Descriptor instead. func (*AddGameRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{80} + return file_main_proto_rawDescGZIP(), []int{83} } func (x *AddGameRsp) GetError() string { @@ -4140,7 +4296,7 @@ type GetGamesReq struct { func (x *GetGamesReq) Reset() { *x = GetGamesReq{} - mi := &file_main_proto_msgTypes[81] + mi := &file_main_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4152,7 +4308,7 @@ func (x *GetGamesReq) String() string { func (*GetGamesReq) ProtoMessage() {} func (x *GetGamesReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[81] + mi := &file_main_proto_msgTypes[84] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4165,7 +4321,7 @@ func (x *GetGamesReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGamesReq.ProtoReflect.Descriptor instead. func (*GetGamesReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{81} + return file_main_proto_rawDescGZIP(), []int{84} } type GetGamesRsp struct { @@ -4178,7 +4334,7 @@ type GetGamesRsp struct { func (x *GetGamesRsp) Reset() { *x = GetGamesRsp{} - mi := &file_main_proto_msgTypes[82] + mi := &file_main_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4190,7 +4346,7 @@ func (x *GetGamesRsp) String() string { func (*GetGamesRsp) ProtoMessage() {} func (x *GetGamesRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[82] + mi := &file_main_proto_msgTypes[85] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4203,7 +4359,7 @@ func (x *GetGamesRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGamesRsp.ProtoReflect.Descriptor instead. func (*GetGamesRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{82} + return file_main_proto_rawDescGZIP(), []int{85} } func (x *GetGamesRsp) GetError() string { @@ -4237,7 +4393,7 @@ type Game struct { func (x *Game) Reset() { *x = Game{} - mi := &file_main_proto_msgTypes[83] + mi := &file_main_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4249,7 +4405,7 @@ func (x *Game) String() string { func (*Game) ProtoMessage() {} func (x *Game) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[83] + mi := &file_main_proto_msgTypes[86] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4262,7 +4418,7 @@ func (x *Game) ProtoReflect() protoreflect.Message { // Deprecated: Use Game.ProtoReflect.Descriptor instead. func (*Game) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{83} + return file_main_proto_rawDescGZIP(), []int{86} } func (x *Game) GetId() int32 { @@ -4342,7 +4498,7 @@ type Team struct { func (x *Team) Reset() { *x = Team{} - mi := &file_main_proto_msgTypes[84] + mi := &file_main_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4354,7 +4510,7 @@ func (x *Team) String() string { func (*Team) ProtoMessage() {} func (x *Team) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[84] + mi := &file_main_proto_msgTypes[87] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4367,7 +4523,7 @@ func (x *Team) ProtoReflect() protoreflect.Message { // Deprecated: Use Team.ProtoReflect.Descriptor instead. func (*Team) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{84} + return file_main_proto_rawDescGZIP(), []int{87} } func (x *Team) GetId() int32 { @@ -4421,7 +4577,7 @@ type GetGameReq struct { func (x *GetGameReq) Reset() { *x = GetGameReq{} - mi := &file_main_proto_msgTypes[85] + mi := &file_main_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4433,7 +4589,7 @@ func (x *GetGameReq) String() string { func (*GetGameReq) ProtoMessage() {} func (x *GetGameReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[85] + mi := &file_main_proto_msgTypes[88] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4446,7 +4602,7 @@ func (x *GetGameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameReq.ProtoReflect.Descriptor instead. func (*GetGameReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{85} + return file_main_proto_rawDescGZIP(), []int{88} } func (x *GetGameReq) GetId() int32 { @@ -4466,7 +4622,7 @@ type GetGameRsp struct { func (x *GetGameRsp) Reset() { *x = GetGameRsp{} - mi := &file_main_proto_msgTypes[86] + mi := &file_main_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4478,7 +4634,7 @@ func (x *GetGameRsp) String() string { func (*GetGameRsp) ProtoMessage() {} func (x *GetGameRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[86] + mi := &file_main_proto_msgTypes[89] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4491,7 +4647,7 @@ func (x *GetGameRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameRsp.ProtoReflect.Descriptor instead. func (*GetGameRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{86} + return file_main_proto_rawDescGZIP(), []int{89} } func (x *GetGameRsp) GetError() string { @@ -4517,7 +4673,7 @@ type GetGameAnswersReq struct { func (x *GetGameAnswersReq) Reset() { *x = GetGameAnswersReq{} - mi := &file_main_proto_msgTypes[87] + mi := &file_main_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4529,7 +4685,7 @@ func (x *GetGameAnswersReq) String() string { func (*GetGameAnswersReq) ProtoMessage() {} func (x *GetGameAnswersReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[87] + mi := &file_main_proto_msgTypes[90] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4542,7 +4698,7 @@ func (x *GetGameAnswersReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameAnswersReq.ProtoReflect.Descriptor instead. func (*GetGameAnswersReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{87} + return file_main_proto_rawDescGZIP(), []int{90} } func (x *GetGameAnswersReq) GetGameId() int32 { @@ -4563,7 +4719,7 @@ type GetGameAnswersRsp struct { func (x *GetGameAnswersRsp) Reset() { *x = GetGameAnswersRsp{} - mi := &file_main_proto_msgTypes[88] + mi := &file_main_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4575,7 +4731,7 @@ func (x *GetGameAnswersRsp) String() string { func (*GetGameAnswersRsp) ProtoMessage() {} func (x *GetGameAnswersRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[88] + mi := &file_main_proto_msgTypes[91] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4588,7 +4744,7 @@ func (x *GetGameAnswersRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameAnswersRsp.ProtoReflect.Descriptor instead. func (*GetGameAnswersRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{88} + return file_main_proto_rawDescGZIP(), []int{91} } func (x *GetGameAnswersRsp) GetError() string { @@ -4621,7 +4777,7 @@ type GetGameResultsReq struct { func (x *GetGameResultsReq) Reset() { *x = GetGameResultsReq{} - mi := &file_main_proto_msgTypes[89] + mi := &file_main_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4633,7 +4789,7 @@ func (x *GetGameResultsReq) String() string { func (*GetGameResultsReq) ProtoMessage() {} func (x *GetGameResultsReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[89] + mi := &file_main_proto_msgTypes[92] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4646,7 +4802,7 @@ func (x *GetGameResultsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameResultsReq.ProtoReflect.Descriptor instead. func (*GetGameResultsReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{89} + return file_main_proto_rawDescGZIP(), []int{92} } func (x *GetGameResultsReq) GetGameId() int32 { @@ -4668,7 +4824,7 @@ type ResultsQuestion struct { func (x *ResultsQuestion) Reset() { *x = ResultsQuestion{} - mi := &file_main_proto_msgTypes[90] + mi := &file_main_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4680,7 +4836,7 @@ func (x *ResultsQuestion) String() string { func (*ResultsQuestion) ProtoMessage() {} func (x *ResultsQuestion) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[90] + mi := &file_main_proto_msgTypes[93] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4693,7 +4849,7 @@ func (x *ResultsQuestion) ProtoReflect() protoreflect.Message { // Deprecated: Use ResultsQuestion.ProtoReflect.Descriptor instead. func (*ResultsQuestion) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{90} + return file_main_proto_rawDescGZIP(), []int{93} } func (x *ResultsQuestion) GetCode() string { @@ -4729,7 +4885,7 @@ type TeamResult struct { func (x *TeamResult) Reset() { *x = TeamResult{} - mi := &file_main_proto_msgTypes[91] + mi := &file_main_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4741,7 +4897,7 @@ func (x *TeamResult) String() string { func (*TeamResult) ProtoMessage() {} func (x *TeamResult) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[91] + mi := &file_main_proto_msgTypes[94] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4754,7 +4910,7 @@ func (x *TeamResult) ProtoReflect() protoreflect.Message { // Deprecated: Use TeamResult.ProtoReflect.Descriptor instead. func (*TeamResult) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{91} + return file_main_proto_rawDescGZIP(), []int{94} } func (x *TeamResult) GetTeam() *Team { @@ -4803,7 +4959,7 @@ type GetGameResultsRsp struct { func (x *GetGameResultsRsp) Reset() { *x = GetGameResultsRsp{} - mi := &file_main_proto_msgTypes[92] + mi := &file_main_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4815,7 +4971,7 @@ func (x *GetGameResultsRsp) String() string { func (*GetGameResultsRsp) ProtoMessage() {} func (x *GetGameResultsRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[92] + mi := &file_main_proto_msgTypes[95] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4828,7 +4984,7 @@ func (x *GetGameResultsRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameResultsRsp.ProtoReflect.Descriptor instead. func (*GetGameResultsRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{92} + return file_main_proto_rawDescGZIP(), []int{95} } func (x *GetGameResultsRsp) GetError() string { @@ -4865,7 +5021,7 @@ type UpdateGameReq struct { func (x *UpdateGameReq) Reset() { *x = UpdateGameReq{} - mi := &file_main_proto_msgTypes[93] + mi := &file_main_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4877,7 +5033,7 @@ func (x *UpdateGameReq) String() string { func (*UpdateGameReq) ProtoMessage() {} func (x *UpdateGameReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[93] + mi := &file_main_proto_msgTypes[96] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4890,7 +5046,7 @@ func (x *UpdateGameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateGameReq.ProtoReflect.Descriptor instead. func (*UpdateGameReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{93} + return file_main_proto_rawDescGZIP(), []int{96} } func (x *UpdateGameReq) GetId() int32 { @@ -4937,7 +5093,7 @@ type UpdateGameRsp struct { func (x *UpdateGameRsp) Reset() { *x = UpdateGameRsp{} - mi := &file_main_proto_msgTypes[94] + mi := &file_main_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4949,7 +5105,7 @@ func (x *UpdateGameRsp) String() string { func (*UpdateGameRsp) ProtoMessage() {} func (x *UpdateGameRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[94] + mi := &file_main_proto_msgTypes[97] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4962,7 +5118,7 @@ func (x *UpdateGameRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateGameRsp.ProtoReflect.Descriptor instead. func (*UpdateGameRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{94} + return file_main_proto_rawDescGZIP(), []int{97} } func (x *UpdateGameRsp) GetError() string { @@ -4981,7 +5137,7 @@ type StartGameReq struct { func (x *StartGameReq) Reset() { *x = StartGameReq{} - mi := &file_main_proto_msgTypes[95] + mi := &file_main_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4993,7 +5149,7 @@ func (x *StartGameReq) String() string { func (*StartGameReq) ProtoMessage() {} func (x *StartGameReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[95] + mi := &file_main_proto_msgTypes[98] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5006,7 +5162,7 @@ func (x *StartGameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use StartGameReq.ProtoReflect.Descriptor instead. func (*StartGameReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{95} + return file_main_proto_rawDescGZIP(), []int{98} } func (x *StartGameReq) GetId() int32 { @@ -5025,7 +5181,7 @@ type StartGameRsp struct { func (x *StartGameRsp) Reset() { *x = StartGameRsp{} - mi := &file_main_proto_msgTypes[96] + mi := &file_main_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5037,7 +5193,7 @@ func (x *StartGameRsp) String() string { func (*StartGameRsp) ProtoMessage() {} func (x *StartGameRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[96] + mi := &file_main_proto_msgTypes[99] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5050,7 +5206,7 @@ func (x *StartGameRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use StartGameRsp.ProtoReflect.Descriptor instead. func (*StartGameRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{96} + return file_main_proto_rawDescGZIP(), []int{99} } func (x *StartGameRsp) GetError() string { @@ -5069,7 +5225,7 @@ type PauseGameReq struct { func (x *PauseGameReq) Reset() { *x = PauseGameReq{} - mi := &file_main_proto_msgTypes[97] + mi := &file_main_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5081,7 +5237,7 @@ func (x *PauseGameReq) String() string { func (*PauseGameReq) ProtoMessage() {} func (x *PauseGameReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[97] + mi := &file_main_proto_msgTypes[100] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5094,7 +5250,7 @@ func (x *PauseGameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use PauseGameReq.ProtoReflect.Descriptor instead. func (*PauseGameReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{97} + return file_main_proto_rawDescGZIP(), []int{100} } func (x *PauseGameReq) GetId() int32 { @@ -5113,7 +5269,7 @@ type PauseGameRsp struct { func (x *PauseGameRsp) Reset() { *x = PauseGameRsp{} - mi := &file_main_proto_msgTypes[98] + mi := &file_main_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5125,7 +5281,7 @@ func (x *PauseGameRsp) String() string { func (*PauseGameRsp) ProtoMessage() {} func (x *PauseGameRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[98] + mi := &file_main_proto_msgTypes[101] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5138,7 +5294,7 @@ func (x *PauseGameRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use PauseGameRsp.ProtoReflect.Descriptor instead. func (*PauseGameRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{98} + return file_main_proto_rawDescGZIP(), []int{101} } func (x *PauseGameRsp) GetError() string { @@ -5157,7 +5313,7 @@ type PlayGameReq struct { func (x *PlayGameReq) Reset() { *x = PlayGameReq{} - mi := &file_main_proto_msgTypes[99] + mi := &file_main_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5169,7 +5325,7 @@ func (x *PlayGameReq) String() string { func (*PlayGameReq) ProtoMessage() {} func (x *PlayGameReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[99] + mi := &file_main_proto_msgTypes[102] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5182,7 +5338,7 @@ func (x *PlayGameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use PlayGameReq.ProtoReflect.Descriptor instead. func (*PlayGameReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{99} + return file_main_proto_rawDescGZIP(), []int{102} } func (x *PlayGameReq) GetId() int32 { @@ -5201,7 +5357,7 @@ type PlayGameRsp struct { func (x *PlayGameRsp) Reset() { *x = PlayGameRsp{} - mi := &file_main_proto_msgTypes[100] + mi := &file_main_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5213,7 +5369,7 @@ func (x *PlayGameRsp) String() string { func (*PlayGameRsp) ProtoMessage() {} func (x *PlayGameRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[100] + mi := &file_main_proto_msgTypes[103] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5226,7 +5382,7 @@ func (x *PlayGameRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use PlayGameRsp.ProtoReflect.Descriptor instead. func (*PlayGameRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{100} + return file_main_proto_rawDescGZIP(), []int{103} } func (x *PlayGameRsp) GetError() string { @@ -5245,7 +5401,7 @@ type FinishGameReq struct { func (x *FinishGameReq) Reset() { *x = FinishGameReq{} - mi := &file_main_proto_msgTypes[101] + mi := &file_main_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5257,7 +5413,7 @@ func (x *FinishGameReq) String() string { func (*FinishGameReq) ProtoMessage() {} func (x *FinishGameReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[101] + mi := &file_main_proto_msgTypes[104] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5270,7 +5426,7 @@ func (x *FinishGameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use FinishGameReq.ProtoReflect.Descriptor instead. func (*FinishGameReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{101} + return file_main_proto_rawDescGZIP(), []int{104} } func (x *FinishGameReq) GetId() int32 { @@ -5289,7 +5445,7 @@ type FinishGameRsp struct { func (x *FinishGameRsp) Reset() { *x = FinishGameRsp{} - mi := &file_main_proto_msgTypes[102] + mi := &file_main_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5301,7 +5457,7 @@ func (x *FinishGameRsp) String() string { func (*FinishGameRsp) ProtoMessage() {} func (x *FinishGameRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[102] + mi := &file_main_proto_msgTypes[105] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5314,7 +5470,7 @@ func (x *FinishGameRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use FinishGameRsp.ProtoReflect.Descriptor instead. func (*FinishGameRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{102} + return file_main_proto_rawDescGZIP(), []int{105} } func (x *FinishGameRsp) GetError() string { @@ -5333,7 +5489,7 @@ type ResetGameReq struct { func (x *ResetGameReq) Reset() { *x = ResetGameReq{} - mi := &file_main_proto_msgTypes[103] + mi := &file_main_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5345,7 +5501,7 @@ func (x *ResetGameReq) String() string { func (*ResetGameReq) ProtoMessage() {} func (x *ResetGameReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[103] + mi := &file_main_proto_msgTypes[106] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5358,7 +5514,7 @@ func (x *ResetGameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ResetGameReq.ProtoReflect.Descriptor instead. func (*ResetGameReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{103} + return file_main_proto_rawDescGZIP(), []int{106} } func (x *ResetGameReq) GetId() int32 { @@ -5377,7 +5533,7 @@ type ResetGameRsp struct { func (x *ResetGameRsp) Reset() { *x = ResetGameRsp{} - mi := &file_main_proto_msgTypes[104] + mi := &file_main_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5389,7 +5545,7 @@ func (x *ResetGameRsp) String() string { func (*ResetGameRsp) ProtoMessage() {} func (x *ResetGameRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[104] + mi := &file_main_proto_msgTypes[107] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5402,7 +5558,7 @@ func (x *ResetGameRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use ResetGameRsp.ProtoReflect.Descriptor instead. func (*ResetGameRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{104} + return file_main_proto_rawDescGZIP(), []int{107} } func (x *ResetGameRsp) GetError() string { @@ -5421,7 +5577,7 @@ type DeleteGameReq struct { func (x *DeleteGameReq) Reset() { *x = DeleteGameReq{} - mi := &file_main_proto_msgTypes[105] + mi := &file_main_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5433,7 +5589,7 @@ func (x *DeleteGameReq) String() string { func (*DeleteGameReq) ProtoMessage() {} func (x *DeleteGameReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[105] + mi := &file_main_proto_msgTypes[108] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5446,7 +5602,7 @@ func (x *DeleteGameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteGameReq.ProtoReflect.Descriptor instead. func (*DeleteGameReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{105} + return file_main_proto_rawDescGZIP(), []int{108} } func (x *DeleteGameReq) GetId() int32 { @@ -5465,7 +5621,7 @@ type DeleteGameRsp struct { func (x *DeleteGameRsp) Reset() { *x = DeleteGameRsp{} - mi := &file_main_proto_msgTypes[106] + mi := &file_main_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5477,7 +5633,7 @@ func (x *DeleteGameRsp) String() string { func (*DeleteGameRsp) ProtoMessage() {} func (x *DeleteGameRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[106] + mi := &file_main_proto_msgTypes[109] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5490,7 +5646,7 @@ func (x *DeleteGameRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteGameRsp.ProtoReflect.Descriptor instead. func (*DeleteGameRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{106} + return file_main_proto_rawDescGZIP(), []int{109} } func (x *DeleteGameRsp) GetError() string { @@ -5510,7 +5666,7 @@ type AddTeamReq struct { func (x *AddTeamReq) Reset() { *x = AddTeamReq{} - mi := &file_main_proto_msgTypes[107] + mi := &file_main_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5522,7 +5678,7 @@ func (x *AddTeamReq) String() string { func (*AddTeamReq) ProtoMessage() {} func (x *AddTeamReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[107] + mi := &file_main_proto_msgTypes[110] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5535,7 +5691,7 @@ func (x *AddTeamReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AddTeamReq.ProtoReflect.Descriptor instead. func (*AddTeamReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{107} + return file_main_proto_rawDescGZIP(), []int{110} } func (x *AddTeamReq) GetGameId() int32 { @@ -5563,7 +5719,7 @@ type AddTeamRsp struct { func (x *AddTeamRsp) Reset() { *x = AddTeamRsp{} - mi := &file_main_proto_msgTypes[108] + mi := &file_main_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5575,7 +5731,7 @@ func (x *AddTeamRsp) String() string { func (*AddTeamRsp) ProtoMessage() {} func (x *AddTeamRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[108] + mi := &file_main_proto_msgTypes[111] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5588,7 +5744,7 @@ func (x *AddTeamRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use AddTeamRsp.ProtoReflect.Descriptor instead. func (*AddTeamRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{108} + return file_main_proto_rawDescGZIP(), []int{111} } func (x *AddTeamRsp) GetError() string { @@ -5622,7 +5778,7 @@ type UpdateTeamReq struct { func (x *UpdateTeamReq) Reset() { *x = UpdateTeamReq{} - mi := &file_main_proto_msgTypes[109] + mi := &file_main_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5634,7 +5790,7 @@ func (x *UpdateTeamReq) String() string { func (*UpdateTeamReq) ProtoMessage() {} func (x *UpdateTeamReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[109] + mi := &file_main_proto_msgTypes[112] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5647,7 +5803,7 @@ func (x *UpdateTeamReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateTeamReq.ProtoReflect.Descriptor instead. func (*UpdateTeamReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{109} + return file_main_proto_rawDescGZIP(), []int{112} } func (x *UpdateTeamReq) GetId() int32 { @@ -5673,7 +5829,7 @@ type UpdateTeamRsp struct { func (x *UpdateTeamRsp) Reset() { *x = UpdateTeamRsp{} - mi := &file_main_proto_msgTypes[110] + mi := &file_main_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5685,7 +5841,7 @@ func (x *UpdateTeamRsp) String() string { func (*UpdateTeamRsp) ProtoMessage() {} func (x *UpdateTeamRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[110] + mi := &file_main_proto_msgTypes[113] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5698,7 +5854,7 @@ func (x *UpdateTeamRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateTeamRsp.ProtoReflect.Descriptor instead. func (*UpdateTeamRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{110} + return file_main_proto_rawDescGZIP(), []int{113} } func (x *UpdateTeamRsp) GetError() string { @@ -5717,7 +5873,7 @@ type DeleteTeamReq struct { func (x *DeleteTeamReq) Reset() { *x = DeleteTeamReq{} - mi := &file_main_proto_msgTypes[111] + mi := &file_main_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5729,7 +5885,7 @@ func (x *DeleteTeamReq) String() string { func (*DeleteTeamReq) ProtoMessage() {} func (x *DeleteTeamReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[111] + mi := &file_main_proto_msgTypes[114] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5742,7 +5898,7 @@ func (x *DeleteTeamReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteTeamReq.ProtoReflect.Descriptor instead. func (*DeleteTeamReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{111} + return file_main_proto_rawDescGZIP(), []int{114} } func (x *DeleteTeamReq) GetId() int64 { @@ -5761,7 +5917,7 @@ type DeleteTeamRsp struct { func (x *DeleteTeamRsp) Reset() { *x = DeleteTeamRsp{} - mi := &file_main_proto_msgTypes[112] + mi := &file_main_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5773,7 +5929,7 @@ func (x *DeleteTeamRsp) String() string { func (*DeleteTeamRsp) ProtoMessage() {} func (x *DeleteTeamRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[112] + mi := &file_main_proto_msgTypes[115] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5786,7 +5942,7 @@ func (x *DeleteTeamRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteTeamRsp.ProtoReflect.Descriptor instead. func (*DeleteTeamRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{112} + return file_main_proto_rawDescGZIP(), []int{115} } func (x *DeleteTeamRsp) GetError() string { @@ -5806,7 +5962,7 @@ type GiveTeamApplicationsReq struct { func (x *GiveTeamApplicationsReq) Reset() { *x = GiveTeamApplicationsReq{} - mi := &file_main_proto_msgTypes[113] + mi := &file_main_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5818,7 +5974,7 @@ func (x *GiveTeamApplicationsReq) String() string { func (*GiveTeamApplicationsReq) ProtoMessage() {} func (x *GiveTeamApplicationsReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[113] + mi := &file_main_proto_msgTypes[116] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5831,7 +5987,7 @@ func (x *GiveTeamApplicationsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GiveTeamApplicationsReq.ProtoReflect.Descriptor instead. func (*GiveTeamApplicationsReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{113} + return file_main_proto_rawDescGZIP(), []int{116} } func (x *GiveTeamApplicationsReq) GetId() int64 { @@ -5857,7 +6013,7 @@ type GiveTeamApplicationsRsp struct { func (x *GiveTeamApplicationsRsp) Reset() { *x = GiveTeamApplicationsRsp{} - mi := &file_main_proto_msgTypes[114] + mi := &file_main_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5869,7 +6025,7 @@ func (x *GiveTeamApplicationsRsp) String() string { func (*GiveTeamApplicationsRsp) ProtoMessage() {} func (x *GiveTeamApplicationsRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[114] + mi := &file_main_proto_msgTypes[117] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5882,7 +6038,7 @@ func (x *GiveTeamApplicationsRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GiveTeamApplicationsRsp.ProtoReflect.Descriptor instead. func (*GiveTeamApplicationsRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{114} + return file_main_proto_rawDescGZIP(), []int{117} } func (x *GiveTeamApplicationsRsp) GetError() string { @@ -5902,7 +6058,7 @@ type GetTeamStoryReq struct { func (x *GetTeamStoryReq) Reset() { *x = GetTeamStoryReq{} - mi := &file_main_proto_msgTypes[115] + mi := &file_main_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5914,7 +6070,7 @@ func (x *GetTeamStoryReq) String() string { func (*GetTeamStoryReq) ProtoMessage() {} func (x *GetTeamStoryReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[115] + mi := &file_main_proto_msgTypes[118] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5927,7 +6083,7 @@ func (x *GetTeamStoryReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTeamStoryReq.ProtoReflect.Descriptor instead. func (*GetTeamStoryReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{115} + return file_main_proto_rawDescGZIP(), []int{118} } func (x *GetTeamStoryReq) GetId() int64 { @@ -5956,7 +6112,7 @@ type GetTeamStoryRsp struct { func (x *GetTeamStoryRsp) Reset() { *x = GetTeamStoryRsp{} - mi := &file_main_proto_msgTypes[116] + mi := &file_main_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5968,7 +6124,7 @@ func (x *GetTeamStoryRsp) String() string { func (*GetTeamStoryRsp) ProtoMessage() {} func (x *GetTeamStoryRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[116] + mi := &file_main_proto_msgTypes[119] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5981,7 +6137,7 @@ func (x *GetTeamStoryRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTeamStoryRsp.ProtoReflect.Descriptor instead. func (*GetTeamStoryRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{116} + return file_main_proto_rawDescGZIP(), []int{119} } func (x *GetTeamStoryRsp) GetError() string { @@ -6022,7 +6178,7 @@ type TeamAction struct { func (x *TeamAction) Reset() { *x = TeamAction{} - mi := &file_main_proto_msgTypes[117] + mi := &file_main_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6034,7 +6190,7 @@ func (x *TeamAction) String() string { func (*TeamAction) ProtoMessage() {} func (x *TeamAction) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[117] + mi := &file_main_proto_msgTypes[120] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6047,7 +6203,7 @@ func (x *TeamAction) ProtoReflect() protoreflect.Message { // Deprecated: Use TeamAction.ProtoReflect.Descriptor instead. func (*TeamAction) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{117} + return file_main_proto_rawDescGZIP(), []int{120} } func (x *TeamAction) GetCode() string { @@ -6075,7 +6231,7 @@ type AddTeamActionReq struct { func (x *AddTeamActionReq) Reset() { *x = AddTeamActionReq{} - mi := &file_main_proto_msgTypes[118] + mi := &file_main_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6087,7 +6243,7 @@ func (x *AddTeamActionReq) String() string { func (*AddTeamActionReq) ProtoMessage() {} func (x *AddTeamActionReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[118] + mi := &file_main_proto_msgTypes[121] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6100,7 +6256,7 @@ func (x *AddTeamActionReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AddTeamActionReq.ProtoReflect.Descriptor instead. func (*AddTeamActionReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{118} + return file_main_proto_rawDescGZIP(), []int{121} } func (x *AddTeamActionReq) GetId() int64 { @@ -6133,7 +6289,7 @@ type AddTeamActionRsp struct { func (x *AddTeamActionRsp) Reset() { *x = AddTeamActionRsp{} - mi := &file_main_proto_msgTypes[119] + mi := &file_main_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6145,7 +6301,7 @@ func (x *AddTeamActionRsp) String() string { func (*AddTeamActionRsp) ProtoMessage() {} func (x *AddTeamActionRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[119] + mi := &file_main_proto_msgTypes[122] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6158,7 +6314,7 @@ func (x *AddTeamActionRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use AddTeamActionRsp.ProtoReflect.Descriptor instead. func (*AddTeamActionRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{119} + return file_main_proto_rawDescGZIP(), []int{122} } func (x *AddTeamActionRsp) GetError() string { @@ -6177,7 +6333,7 @@ type DeleteLastTeamActionReq struct { func (x *DeleteLastTeamActionReq) Reset() { *x = DeleteLastTeamActionReq{} - mi := &file_main_proto_msgTypes[120] + mi := &file_main_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6189,7 +6345,7 @@ func (x *DeleteLastTeamActionReq) String() string { func (*DeleteLastTeamActionReq) ProtoMessage() {} func (x *DeleteLastTeamActionReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[120] + mi := &file_main_proto_msgTypes[123] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6202,7 +6358,7 @@ func (x *DeleteLastTeamActionReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteLastTeamActionReq.ProtoReflect.Descriptor instead. func (*DeleteLastTeamActionReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{120} + return file_main_proto_rawDescGZIP(), []int{123} } func (x *DeleteLastTeamActionReq) GetId() int64 { @@ -6221,7 +6377,7 @@ type DeleteLastTeamActionRsp struct { func (x *DeleteLastTeamActionRsp) Reset() { *x = DeleteLastTeamActionRsp{} - mi := &file_main_proto_msgTypes[121] + mi := &file_main_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6233,7 +6389,7 @@ func (x *DeleteLastTeamActionRsp) String() string { func (*DeleteLastTeamActionRsp) ProtoMessage() {} func (x *DeleteLastTeamActionRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[121] + mi := &file_main_proto_msgTypes[124] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6246,7 +6402,7 @@ func (x *DeleteLastTeamActionRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteLastTeamActionRsp.ProtoReflect.Descriptor instead. func (*DeleteLastTeamActionRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{121} + return file_main_proto_rawDescGZIP(), []int{124} } func (x *DeleteLastTeamActionRsp) GetError() string { @@ -6266,7 +6422,7 @@ type GetTeamAnswersReq struct { func (x *GetTeamAnswersReq) Reset() { *x = GetTeamAnswersReq{} - mi := &file_main_proto_msgTypes[122] + mi := &file_main_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6278,7 +6434,7 @@ func (x *GetTeamAnswersReq) String() string { func (*GetTeamAnswersReq) ProtoMessage() {} func (x *GetTeamAnswersReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[122] + mi := &file_main_proto_msgTypes[125] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6291,7 +6447,7 @@ func (x *GetTeamAnswersReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTeamAnswersReq.ProtoReflect.Descriptor instead. func (*GetTeamAnswersReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{122} + return file_main_proto_rawDescGZIP(), []int{125} } func (x *GetTeamAnswersReq) GetId() int64 { @@ -6318,7 +6474,7 @@ type GetTeamAnswersRsp struct { func (x *GetTeamAnswersRsp) Reset() { *x = GetTeamAnswersRsp{} - mi := &file_main_proto_msgTypes[123] + mi := &file_main_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6330,7 +6486,7 @@ func (x *GetTeamAnswersRsp) String() string { func (*GetTeamAnswersRsp) ProtoMessage() {} func (x *GetTeamAnswersRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[123] + mi := &file_main_proto_msgTypes[126] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6343,7 +6499,7 @@ func (x *GetTeamAnswersRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTeamAnswersRsp.ProtoReflect.Descriptor instead. func (*GetTeamAnswersRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{123} + return file_main_proto_rawDescGZIP(), []int{126} } func (x *GetTeamAnswersRsp) GetError() string { @@ -6371,7 +6527,7 @@ type SubmitTeamAnswersReq struct { func (x *SubmitTeamAnswersReq) Reset() { *x = SubmitTeamAnswersReq{} - mi := &file_main_proto_msgTypes[124] + mi := &file_main_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6383,7 +6539,7 @@ func (x *SubmitTeamAnswersReq) String() string { func (*SubmitTeamAnswersReq) ProtoMessage() {} func (x *SubmitTeamAnswersReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[124] + mi := &file_main_proto_msgTypes[127] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6396,7 +6552,7 @@ func (x *SubmitTeamAnswersReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SubmitTeamAnswersReq.ProtoReflect.Descriptor instead. func (*SubmitTeamAnswersReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{124} + return file_main_proto_rawDescGZIP(), []int{127} } func (x *SubmitTeamAnswersReq) GetId() int64 { @@ -6429,7 +6585,7 @@ type SubmitTeamAnswersRsp struct { func (x *SubmitTeamAnswersRsp) Reset() { *x = SubmitTeamAnswersRsp{} - mi := &file_main_proto_msgTypes[125] + mi := &file_main_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6441,7 +6597,7 @@ func (x *SubmitTeamAnswersRsp) String() string { func (*SubmitTeamAnswersRsp) ProtoMessage() {} func (x *SubmitTeamAnswersRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[125] + mi := &file_main_proto_msgTypes[128] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6454,7 +6610,7 @@ func (x *SubmitTeamAnswersRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use SubmitTeamAnswersRsp.ProtoReflect.Descriptor instead. func (*SubmitTeamAnswersRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{125} + return file_main_proto_rawDescGZIP(), []int{128} } func (x *SubmitTeamAnswersRsp) GetError() string { @@ -6476,7 +6632,7 @@ type SetTeamAnswerScoreReq struct { func (x *SetTeamAnswerScoreReq) Reset() { *x = SetTeamAnswerScoreReq{} - mi := &file_main_proto_msgTypes[126] + mi := &file_main_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6488,7 +6644,7 @@ func (x *SetTeamAnswerScoreReq) String() string { func (*SetTeamAnswerScoreReq) ProtoMessage() {} func (x *SetTeamAnswerScoreReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[126] + mi := &file_main_proto_msgTypes[129] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6501,7 +6657,7 @@ func (x *SetTeamAnswerScoreReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SetTeamAnswerScoreReq.ProtoReflect.Descriptor instead. func (*SetTeamAnswerScoreReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{126} + return file_main_proto_rawDescGZIP(), []int{129} } func (x *SetTeamAnswerScoreReq) GetId() int64 { @@ -6534,7 +6690,7 @@ type SetTeamAnswerScoreRsp struct { func (x *SetTeamAnswerScoreRsp) Reset() { *x = SetTeamAnswerScoreRsp{} - mi := &file_main_proto_msgTypes[127] + mi := &file_main_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6546,7 +6702,7 @@ func (x *SetTeamAnswerScoreRsp) String() string { func (*SetTeamAnswerScoreRsp) ProtoMessage() {} func (x *SetTeamAnswerScoreRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[127] + mi := &file_main_proto_msgTypes[130] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6559,7 +6715,7 @@ func (x *SetTeamAnswerScoreRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use SetTeamAnswerScoreRsp.ProtoReflect.Descriptor instead. func (*SetTeamAnswerScoreRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{127} + return file_main_proto_rawDescGZIP(), []int{130} } func (x *SetTeamAnswerScoreRsp) GetError() string { @@ -6579,7 +6735,7 @@ type UpdateScenarioBackgroundReq struct { func (x *UpdateScenarioBackgroundReq) Reset() { *x = UpdateScenarioBackgroundReq{} - mi := &file_main_proto_msgTypes[128] + mi := &file_main_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6591,7 +6747,7 @@ func (x *UpdateScenarioBackgroundReq) String() string { func (*UpdateScenarioBackgroundReq) ProtoMessage() {} func (x *UpdateScenarioBackgroundReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[128] + mi := &file_main_proto_msgTypes[131] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6604,7 +6760,7 @@ func (x *UpdateScenarioBackgroundReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScenarioBackgroundReq.ProtoReflect.Descriptor instead. func (*UpdateScenarioBackgroundReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{128} + return file_main_proto_rawDescGZIP(), []int{131} } func (x *UpdateScenarioBackgroundReq) GetId() int32 { @@ -6630,7 +6786,7 @@ type UpdateScenarioBackgroundRsp struct { func (x *UpdateScenarioBackgroundRsp) Reset() { *x = UpdateScenarioBackgroundRsp{} - mi := &file_main_proto_msgTypes[129] + mi := &file_main_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6642,7 +6798,7 @@ func (x *UpdateScenarioBackgroundRsp) String() string { func (*UpdateScenarioBackgroundRsp) ProtoMessage() {} func (x *UpdateScenarioBackgroundRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[129] + mi := &file_main_proto_msgTypes[132] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6655,7 +6811,7 @@ func (x *UpdateScenarioBackgroundRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScenarioBackgroundRsp.ProtoReflect.Descriptor instead. func (*UpdateScenarioBackgroundRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{129} + return file_main_proto_rawDescGZIP(), []int{132} } func (x *UpdateScenarioBackgroundRsp) GetError() string { @@ -6796,14 +6952,21 @@ const file_main_proto_rawDesc = "" + "\fpublished_at\x18\n" + " \x01(\v2\x1a.google.protobuf.TimestampR\vpublishedAtB\x0e\n" + "\f_descriptionB\b\n" + - "\x06_image\"\x80\x02\n" + - "\x05Story\x12\x1e\n" + + "\x06_image\"\xcc\x02\n" + + "\x05Story\x12J\n" + + "\n" + + "conclusion\x18\x05 \x01(\v2*.crabs.evening_detective_server.ConclusionR\n" + + "conclusion\x12\x1e\n" + "\n" + "background\x18\x04 \x01(\tR\n" + "background\x12P\n" + "\fintroduction\x18\x02 \x01(\v2,.crabs.evening_detective_server.IntroductionR\fintroduction\x12=\n" + "\x06places\x18\x01 \x03(\v2%.crabs.evening_detective_server.PlaceR\x06places\x12F\n" + - "\tquestions\x18\x03 \x03(\v2(.crabs.evening_detective_server.QuestionR\tquestions\"8\n" + + "\tquestions\x18\x03 \x03(\v2(.crabs.evening_detective_server.QuestionR\tquestions\"6\n" + + "\n" + + "Conclusion\x12\x12\n" + + "\x04text\x18\x01 \x01(\tR\x04text\x12\x14\n" + + "\x05video\x18\x02 \x01(\tR\x05video\"8\n" + "\fIntroduction\x12\x12\n" + "\x04text\x18\x01 \x01(\tR\x04text\x12\x14\n" + "\x05audio\x18\x02 \x01(\tR\x05audio\"\xb7\x02\n" + @@ -6875,6 +7038,13 @@ const file_main_proto_rawDesc = "" + "\x02id\x18\x01 \x01(\x05R\x02id\x12\x12\n" + "\x04code\x18\x02 \x01(\tR\x04code\".\n" + "\x16DeleteScenarioPlaceRsp\x12\x14\n" + + "\x05error\x18\x01 \x01(\tR\x05error\"y\n" + + "\x1bUpdateScenarioConclusionReq\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x05R\x02id\x12J\n" + + "\n" + + "conclusion\x18\x02 \x01(\v2*.crabs.evening_detective_server.ConclusionR\n" + + "conclusion\"3\n" + + "\x1bUpdateScenarioConclusionRsp\x12\x14\n" + "\x05error\x18\x01 \x01(\tR\x05error\"z\n" + "\x16UpdateScenarioIntroReq\x12\x0e\n" + "\x02id\x18\x01 \x01(\x05R\x02id\x12P\n" + @@ -7070,7 +7240,7 @@ const file_main_proto_rawDesc = "" + "background\x18\x02 \x01(\tR\n" + "background\"3\n" + "\x1bUpdateScenarioBackgroundRsp\x12\x14\n" + - "\x05error\x18\x01 \x01(\tR\x05error2\xbeh\n" + + "\x05error\x18\x01 \x01(\tR\x05error2\xf9j\n" + "\x16EveningDetectiveServer\x12\xa6\x01\n" + "\x04Ping\x12'.crabs.evening_detective_server.PingReq\x1a'.crabs.evening_detective_server.PingRsp\"L\x92A3\x12)Проверить доступностьb\x06\n" + "\x04\n" + @@ -7158,7 +7328,9 @@ const file_main_proto_rawDesc = "" + "\x18UpdateScenarioBackground\x12;.crabs.evening_detective_server.UpdateScenarioBackgroundReq\x1a;.crabs.evening_detective_server.UpdateScenarioBackgroundRsp\"z\x92AN\n" + "\x10Сценарии\x12:Установить или удалить фон дела\x82\xd3\xe4\x93\x02#:\x01*\x1a\x1e/api/scenarios/{id}/background\x12\xfb\x01\n" + "\x13UpdateScenarioIntro\x126.crabs.evening_detective_server.UpdateScenarioIntroReq\x1a6.crabs.evening_detective_server.UpdateScenarioIntroRsp\"t\x92AF\n" + - "\x10Сценарии\x122Обновить введение сценария\x82\xd3\xe4\x93\x02%:\x01*\x1a /api/scenarios/{id}/introduction\x12\x98\x02\n" + + "\x10Сценарии\x122Обновить введение сценария\x82\xd3\xe4\x93\x02%:\x01*\x1a /api/scenarios/{id}/introduction\x12\xb8\x02\n" + + "\x18UpdateScenarioConclusion\x12;.crabs.evening_detective_server.UpdateScenarioConclusionReq\x1a;.crabs.evening_detective_server.UpdateScenarioConclusionRsp\"\xa1\x01\x92Au\n" + + "\x10Сценарии\x12aОбновить закрывашку сценария (игрокам не передаётся)\x82\xd3\xe4\x93\x02#:\x01*\x1a\x1e/api/scenarios/{id}/conclusion\x12\x98\x02\n" + "\x17DownloadScenarioArchive\x12:.crabs.evening_detective_server.DownloadScenarioArchiveReq\x1a\x14.google.api.HttpBody\"\xaa\x01\x92A\x83\x01\n" + "\x10Сценарии\x12oСкачать сценарий архивом (со всеми материалами и картинками)\x82\xd3\xe4\x93\x02\x1d\x12\x1b/api/scenarios/{id}/archive\x12\xd2\x01\n" + "\x15UploadScenarioArchive\x12\x14.google.api.HttpBody\x1a8.crabs.evening_detective_server.UploadScenarioArchiveRsp\"i\x92AE\n" + @@ -7243,7 +7415,7 @@ func file_main_proto_rawDescGZIP() []byte { return file_main_proto_rawDescData } -var file_main_proto_msgTypes = make([]protoimpl.MessageInfo, 130) +var file_main_proto_msgTypes = make([]protoimpl.MessageInfo, 133) var file_main_proto_goTypes = []any{ (*PingReq)(nil), // 0: crabs.evening_detective_server.PingReq (*PingRsp)(nil), // 1: crabs.evening_detective_server.PingRsp @@ -7291,96 +7463,99 @@ var file_main_proto_goTypes = []any{ (*GetScenarioRsp)(nil), // 43: crabs.evening_detective_server.GetScenarioRsp (*Scenario)(nil), // 44: crabs.evening_detective_server.Scenario (*Story)(nil), // 45: crabs.evening_detective_server.Story - (*Introduction)(nil), // 46: crabs.evening_detective_server.Introduction - (*Place)(nil), // 47: crabs.evening_detective_server.Place - (*Application)(nil), // 48: crabs.evening_detective_server.Application - (*Door)(nil), // 49: crabs.evening_detective_server.Door - (*Key)(nil), // 50: crabs.evening_detective_server.Key - (*Question)(nil), // 51: crabs.evening_detective_server.Question - (*Answer)(nil), // 52: crabs.evening_detective_server.Answer - (*AnswerScore)(nil), // 53: crabs.evening_detective_server.AnswerScore - (*TeamAnswers)(nil), // 54: crabs.evening_detective_server.TeamAnswers - (*UpdateScenarioReq)(nil), // 55: crabs.evening_detective_server.UpdateScenarioReq - (*UpdateScenarioRsp)(nil), // 56: crabs.evening_detective_server.UpdateScenarioRsp - (*PublicScenarioReq)(nil), // 57: crabs.evening_detective_server.PublicScenarioReq - (*PublicScenarioRsp)(nil), // 58: crabs.evening_detective_server.PublicScenarioRsp - (*DraftScenarioReq)(nil), // 59: crabs.evening_detective_server.DraftScenarioReq - (*DraftScenarioRsp)(nil), // 60: crabs.evening_detective_server.DraftScenarioRsp - (*DeleteScenarioReq)(nil), // 61: crabs.evening_detective_server.DeleteScenarioReq - (*DeleteScenarioRsp)(nil), // 62: crabs.evening_detective_server.DeleteScenarioRsp - (*AddScenarioPlaceReq)(nil), // 63: crabs.evening_detective_server.AddScenarioPlaceReq - (*AddScenarioPlaceRsp)(nil), // 64: crabs.evening_detective_server.AddScenarioPlaceRsp - (*UpdateScenarioPlaceReq)(nil), // 65: crabs.evening_detective_server.UpdateScenarioPlaceReq - (*UpdateScenarioPlaceRsp)(nil), // 66: crabs.evening_detective_server.UpdateScenarioPlaceRsp - (*DeleteScenarioPlaceReq)(nil), // 67: crabs.evening_detective_server.DeleteScenarioPlaceReq - (*DeleteScenarioPlaceRsp)(nil), // 68: crabs.evening_detective_server.DeleteScenarioPlaceRsp - (*UpdateScenarioIntroReq)(nil), // 69: crabs.evening_detective_server.UpdateScenarioIntroReq - (*UpdateScenarioIntroRsp)(nil), // 70: crabs.evening_detective_server.UpdateScenarioIntroRsp - (*AddScenarioQuestionReq)(nil), // 71: crabs.evening_detective_server.AddScenarioQuestionReq - (*AddScenarioQuestionRsp)(nil), // 72: crabs.evening_detective_server.AddScenarioQuestionRsp - (*UpdateScenarioQuestionReq)(nil), // 73: crabs.evening_detective_server.UpdateScenarioQuestionReq - (*UpdateScenarioQuestionRsp)(nil), // 74: crabs.evening_detective_server.UpdateScenarioQuestionRsp - (*DeleteScenarioQuestionReq)(nil), // 75: crabs.evening_detective_server.DeleteScenarioQuestionReq - (*DeleteScenarioQuestionRsp)(nil), // 76: crabs.evening_detective_server.DeleteScenarioQuestionRsp - (*DownloadScenarioArchiveReq)(nil), // 77: crabs.evening_detective_server.DownloadScenarioArchiveReq - (*UploadScenarioArchiveRsp)(nil), // 78: crabs.evening_detective_server.UploadScenarioArchiveRsp - (*AddGameReq)(nil), // 79: crabs.evening_detective_server.AddGameReq - (*AddGameRsp)(nil), // 80: crabs.evening_detective_server.AddGameRsp - (*GetGamesReq)(nil), // 81: crabs.evening_detective_server.GetGamesReq - (*GetGamesRsp)(nil), // 82: crabs.evening_detective_server.GetGamesRsp - (*Game)(nil), // 83: crabs.evening_detective_server.Game - (*Team)(nil), // 84: crabs.evening_detective_server.Team - (*GetGameReq)(nil), // 85: crabs.evening_detective_server.GetGameReq - (*GetGameRsp)(nil), // 86: crabs.evening_detective_server.GetGameRsp - (*GetGameAnswersReq)(nil), // 87: crabs.evening_detective_server.GetGameAnswersReq - (*GetGameAnswersRsp)(nil), // 88: crabs.evening_detective_server.GetGameAnswersRsp - (*GetGameResultsReq)(nil), // 89: crabs.evening_detective_server.GetGameResultsReq - (*ResultsQuestion)(nil), // 90: crabs.evening_detective_server.ResultsQuestion - (*TeamResult)(nil), // 91: crabs.evening_detective_server.TeamResult - (*GetGameResultsRsp)(nil), // 92: crabs.evening_detective_server.GetGameResultsRsp - (*UpdateGameReq)(nil), // 93: crabs.evening_detective_server.UpdateGameReq - (*UpdateGameRsp)(nil), // 94: crabs.evening_detective_server.UpdateGameRsp - (*StartGameReq)(nil), // 95: crabs.evening_detective_server.StartGameReq - (*StartGameRsp)(nil), // 96: crabs.evening_detective_server.StartGameRsp - (*PauseGameReq)(nil), // 97: crabs.evening_detective_server.PauseGameReq - (*PauseGameRsp)(nil), // 98: crabs.evening_detective_server.PauseGameRsp - (*PlayGameReq)(nil), // 99: crabs.evening_detective_server.PlayGameReq - (*PlayGameRsp)(nil), // 100: crabs.evening_detective_server.PlayGameRsp - (*FinishGameReq)(nil), // 101: crabs.evening_detective_server.FinishGameReq - (*FinishGameRsp)(nil), // 102: crabs.evening_detective_server.FinishGameRsp - (*ResetGameReq)(nil), // 103: crabs.evening_detective_server.ResetGameReq - (*ResetGameRsp)(nil), // 104: crabs.evening_detective_server.ResetGameRsp - (*DeleteGameReq)(nil), // 105: crabs.evening_detective_server.DeleteGameReq - (*DeleteGameRsp)(nil), // 106: crabs.evening_detective_server.DeleteGameRsp - (*AddTeamReq)(nil), // 107: crabs.evening_detective_server.AddTeamReq - (*AddTeamRsp)(nil), // 108: crabs.evening_detective_server.AddTeamRsp - (*UpdateTeamReq)(nil), // 109: crabs.evening_detective_server.UpdateTeamReq - (*UpdateTeamRsp)(nil), // 110: crabs.evening_detective_server.UpdateTeamRsp - (*DeleteTeamReq)(nil), // 111: crabs.evening_detective_server.DeleteTeamReq - (*DeleteTeamRsp)(nil), // 112: crabs.evening_detective_server.DeleteTeamRsp - (*GiveTeamApplicationsReq)(nil), // 113: crabs.evening_detective_server.GiveTeamApplicationsReq - (*GiveTeamApplicationsRsp)(nil), // 114: crabs.evening_detective_server.GiveTeamApplicationsRsp - (*GetTeamStoryReq)(nil), // 115: crabs.evening_detective_server.GetTeamStoryReq - (*GetTeamStoryRsp)(nil), // 116: crabs.evening_detective_server.GetTeamStoryRsp - (*TeamAction)(nil), // 117: crabs.evening_detective_server.TeamAction - (*AddTeamActionReq)(nil), // 118: crabs.evening_detective_server.AddTeamActionReq - (*AddTeamActionRsp)(nil), // 119: crabs.evening_detective_server.AddTeamActionRsp - (*DeleteLastTeamActionReq)(nil), // 120: crabs.evening_detective_server.DeleteLastTeamActionReq - (*DeleteLastTeamActionRsp)(nil), // 121: crabs.evening_detective_server.DeleteLastTeamActionRsp - (*GetTeamAnswersReq)(nil), // 122: crabs.evening_detective_server.GetTeamAnswersReq - (*GetTeamAnswersRsp)(nil), // 123: crabs.evening_detective_server.GetTeamAnswersRsp - (*SubmitTeamAnswersReq)(nil), // 124: crabs.evening_detective_server.SubmitTeamAnswersReq - (*SubmitTeamAnswersRsp)(nil), // 125: crabs.evening_detective_server.SubmitTeamAnswersRsp - (*SetTeamAnswerScoreReq)(nil), // 126: crabs.evening_detective_server.SetTeamAnswerScoreReq - (*SetTeamAnswerScoreRsp)(nil), // 127: crabs.evening_detective_server.SetTeamAnswerScoreRsp - (*UpdateScenarioBackgroundReq)(nil), // 128: crabs.evening_detective_server.UpdateScenarioBackgroundReq - (*UpdateScenarioBackgroundRsp)(nil), // 129: crabs.evening_detective_server.UpdateScenarioBackgroundRsp - (*timestamppb.Timestamp)(nil), // 130: google.protobuf.Timestamp - (*httpbody.HttpBody)(nil), // 131: google.api.HttpBody + (*Conclusion)(nil), // 46: crabs.evening_detective_server.Conclusion + (*Introduction)(nil), // 47: crabs.evening_detective_server.Introduction + (*Place)(nil), // 48: crabs.evening_detective_server.Place + (*Application)(nil), // 49: crabs.evening_detective_server.Application + (*Door)(nil), // 50: crabs.evening_detective_server.Door + (*Key)(nil), // 51: crabs.evening_detective_server.Key + (*Question)(nil), // 52: crabs.evening_detective_server.Question + (*Answer)(nil), // 53: crabs.evening_detective_server.Answer + (*AnswerScore)(nil), // 54: crabs.evening_detective_server.AnswerScore + (*TeamAnswers)(nil), // 55: crabs.evening_detective_server.TeamAnswers + (*UpdateScenarioReq)(nil), // 56: crabs.evening_detective_server.UpdateScenarioReq + (*UpdateScenarioRsp)(nil), // 57: crabs.evening_detective_server.UpdateScenarioRsp + (*PublicScenarioReq)(nil), // 58: crabs.evening_detective_server.PublicScenarioReq + (*PublicScenarioRsp)(nil), // 59: crabs.evening_detective_server.PublicScenarioRsp + (*DraftScenarioReq)(nil), // 60: crabs.evening_detective_server.DraftScenarioReq + (*DraftScenarioRsp)(nil), // 61: crabs.evening_detective_server.DraftScenarioRsp + (*DeleteScenarioReq)(nil), // 62: crabs.evening_detective_server.DeleteScenarioReq + (*DeleteScenarioRsp)(nil), // 63: crabs.evening_detective_server.DeleteScenarioRsp + (*AddScenarioPlaceReq)(nil), // 64: crabs.evening_detective_server.AddScenarioPlaceReq + (*AddScenarioPlaceRsp)(nil), // 65: crabs.evening_detective_server.AddScenarioPlaceRsp + (*UpdateScenarioPlaceReq)(nil), // 66: crabs.evening_detective_server.UpdateScenarioPlaceReq + (*UpdateScenarioPlaceRsp)(nil), // 67: crabs.evening_detective_server.UpdateScenarioPlaceRsp + (*DeleteScenarioPlaceReq)(nil), // 68: crabs.evening_detective_server.DeleteScenarioPlaceReq + (*DeleteScenarioPlaceRsp)(nil), // 69: crabs.evening_detective_server.DeleteScenarioPlaceRsp + (*UpdateScenarioConclusionReq)(nil), // 70: crabs.evening_detective_server.UpdateScenarioConclusionReq + (*UpdateScenarioConclusionRsp)(nil), // 71: crabs.evening_detective_server.UpdateScenarioConclusionRsp + (*UpdateScenarioIntroReq)(nil), // 72: crabs.evening_detective_server.UpdateScenarioIntroReq + (*UpdateScenarioIntroRsp)(nil), // 73: crabs.evening_detective_server.UpdateScenarioIntroRsp + (*AddScenarioQuestionReq)(nil), // 74: crabs.evening_detective_server.AddScenarioQuestionReq + (*AddScenarioQuestionRsp)(nil), // 75: crabs.evening_detective_server.AddScenarioQuestionRsp + (*UpdateScenarioQuestionReq)(nil), // 76: crabs.evening_detective_server.UpdateScenarioQuestionReq + (*UpdateScenarioQuestionRsp)(nil), // 77: crabs.evening_detective_server.UpdateScenarioQuestionRsp + (*DeleteScenarioQuestionReq)(nil), // 78: crabs.evening_detective_server.DeleteScenarioQuestionReq + (*DeleteScenarioQuestionRsp)(nil), // 79: crabs.evening_detective_server.DeleteScenarioQuestionRsp + (*DownloadScenarioArchiveReq)(nil), // 80: crabs.evening_detective_server.DownloadScenarioArchiveReq + (*UploadScenarioArchiveRsp)(nil), // 81: crabs.evening_detective_server.UploadScenarioArchiveRsp + (*AddGameReq)(nil), // 82: crabs.evening_detective_server.AddGameReq + (*AddGameRsp)(nil), // 83: crabs.evening_detective_server.AddGameRsp + (*GetGamesReq)(nil), // 84: crabs.evening_detective_server.GetGamesReq + (*GetGamesRsp)(nil), // 85: crabs.evening_detective_server.GetGamesRsp + (*Game)(nil), // 86: crabs.evening_detective_server.Game + (*Team)(nil), // 87: crabs.evening_detective_server.Team + (*GetGameReq)(nil), // 88: crabs.evening_detective_server.GetGameReq + (*GetGameRsp)(nil), // 89: crabs.evening_detective_server.GetGameRsp + (*GetGameAnswersReq)(nil), // 90: crabs.evening_detective_server.GetGameAnswersReq + (*GetGameAnswersRsp)(nil), // 91: crabs.evening_detective_server.GetGameAnswersRsp + (*GetGameResultsReq)(nil), // 92: crabs.evening_detective_server.GetGameResultsReq + (*ResultsQuestion)(nil), // 93: crabs.evening_detective_server.ResultsQuestion + (*TeamResult)(nil), // 94: crabs.evening_detective_server.TeamResult + (*GetGameResultsRsp)(nil), // 95: crabs.evening_detective_server.GetGameResultsRsp + (*UpdateGameReq)(nil), // 96: crabs.evening_detective_server.UpdateGameReq + (*UpdateGameRsp)(nil), // 97: crabs.evening_detective_server.UpdateGameRsp + (*StartGameReq)(nil), // 98: crabs.evening_detective_server.StartGameReq + (*StartGameRsp)(nil), // 99: crabs.evening_detective_server.StartGameRsp + (*PauseGameReq)(nil), // 100: crabs.evening_detective_server.PauseGameReq + (*PauseGameRsp)(nil), // 101: crabs.evening_detective_server.PauseGameRsp + (*PlayGameReq)(nil), // 102: crabs.evening_detective_server.PlayGameReq + (*PlayGameRsp)(nil), // 103: crabs.evening_detective_server.PlayGameRsp + (*FinishGameReq)(nil), // 104: crabs.evening_detective_server.FinishGameReq + (*FinishGameRsp)(nil), // 105: crabs.evening_detective_server.FinishGameRsp + (*ResetGameReq)(nil), // 106: crabs.evening_detective_server.ResetGameReq + (*ResetGameRsp)(nil), // 107: crabs.evening_detective_server.ResetGameRsp + (*DeleteGameReq)(nil), // 108: crabs.evening_detective_server.DeleteGameReq + (*DeleteGameRsp)(nil), // 109: crabs.evening_detective_server.DeleteGameRsp + (*AddTeamReq)(nil), // 110: crabs.evening_detective_server.AddTeamReq + (*AddTeamRsp)(nil), // 111: crabs.evening_detective_server.AddTeamRsp + (*UpdateTeamReq)(nil), // 112: crabs.evening_detective_server.UpdateTeamReq + (*UpdateTeamRsp)(nil), // 113: crabs.evening_detective_server.UpdateTeamRsp + (*DeleteTeamReq)(nil), // 114: crabs.evening_detective_server.DeleteTeamReq + (*DeleteTeamRsp)(nil), // 115: crabs.evening_detective_server.DeleteTeamRsp + (*GiveTeamApplicationsReq)(nil), // 116: crabs.evening_detective_server.GiveTeamApplicationsReq + (*GiveTeamApplicationsRsp)(nil), // 117: crabs.evening_detective_server.GiveTeamApplicationsRsp + (*GetTeamStoryReq)(nil), // 118: crabs.evening_detective_server.GetTeamStoryReq + (*GetTeamStoryRsp)(nil), // 119: crabs.evening_detective_server.GetTeamStoryRsp + (*TeamAction)(nil), // 120: crabs.evening_detective_server.TeamAction + (*AddTeamActionReq)(nil), // 121: crabs.evening_detective_server.AddTeamActionReq + (*AddTeamActionRsp)(nil), // 122: crabs.evening_detective_server.AddTeamActionRsp + (*DeleteLastTeamActionReq)(nil), // 123: crabs.evening_detective_server.DeleteLastTeamActionReq + (*DeleteLastTeamActionRsp)(nil), // 124: crabs.evening_detective_server.DeleteLastTeamActionRsp + (*GetTeamAnswersReq)(nil), // 125: crabs.evening_detective_server.GetTeamAnswersReq + (*GetTeamAnswersRsp)(nil), // 126: crabs.evening_detective_server.GetTeamAnswersRsp + (*SubmitTeamAnswersReq)(nil), // 127: crabs.evening_detective_server.SubmitTeamAnswersReq + (*SubmitTeamAnswersRsp)(nil), // 128: crabs.evening_detective_server.SubmitTeamAnswersRsp + (*SetTeamAnswerScoreReq)(nil), // 129: crabs.evening_detective_server.SetTeamAnswerScoreReq + (*SetTeamAnswerScoreRsp)(nil), // 130: crabs.evening_detective_server.SetTeamAnswerScoreRsp + (*UpdateScenarioBackgroundReq)(nil), // 131: crabs.evening_detective_server.UpdateScenarioBackgroundReq + (*UpdateScenarioBackgroundRsp)(nil), // 132: crabs.evening_detective_server.UpdateScenarioBackgroundRsp + (*timestamppb.Timestamp)(nil), // 133: google.protobuf.Timestamp + (*httpbody.HttpBody)(nil), // 134: google.api.HttpBody } var file_main_proto_depIdxs = []int32{ 22, // 0: crabs.evening_detective_server.GetUsersRsp.users:type_name -> crabs.evening_detective_server.User - 130, // 1: crabs.evening_detective_server.User.created_at:type_name -> google.protobuf.Timestamp + 133, // 1: crabs.evening_detective_server.User.created_at:type_name -> google.protobuf.Timestamp 22, // 2: crabs.evening_detective_server.GetUserByIdRsp.user:type_name -> crabs.evening_detective_server.User 22, // 3: crabs.evening_detective_server.GetMeRsp.user:type_name -> crabs.evening_detective_server.User 44, // 4: crabs.evening_detective_server.GetMyScenariosRsp.scenarios:type_name -> crabs.evening_detective_server.Scenario @@ -7388,167 +7563,171 @@ var file_main_proto_depIdxs = []int32{ 44, // 6: crabs.evening_detective_server.GetScenarioRsp.scenario:type_name -> crabs.evening_detective_server.Scenario 45, // 7: crabs.evening_detective_server.Scenario.story:type_name -> crabs.evening_detective_server.Story 22, // 8: crabs.evening_detective_server.Scenario.author:type_name -> crabs.evening_detective_server.User - 130, // 9: crabs.evening_detective_server.Scenario.updated_at:type_name -> google.protobuf.Timestamp - 130, // 10: crabs.evening_detective_server.Scenario.created_at:type_name -> google.protobuf.Timestamp - 130, // 11: crabs.evening_detective_server.Scenario.published_at:type_name -> google.protobuf.Timestamp - 46, // 12: crabs.evening_detective_server.Story.introduction:type_name -> crabs.evening_detective_server.Introduction - 47, // 13: crabs.evening_detective_server.Story.places:type_name -> crabs.evening_detective_server.Place - 51, // 14: crabs.evening_detective_server.Story.questions:type_name -> crabs.evening_detective_server.Question - 48, // 15: crabs.evening_detective_server.Place.applications:type_name -> crabs.evening_detective_server.Application - 49, // 16: crabs.evening_detective_server.Place.doors:type_name -> crabs.evening_detective_server.Door - 50, // 17: crabs.evening_detective_server.Place.keys:type_name -> crabs.evening_detective_server.Key - 50, // 18: crabs.evening_detective_server.Door.keys:type_name -> crabs.evening_detective_server.Key - 84, // 19: crabs.evening_detective_server.TeamAnswers.team:type_name -> crabs.evening_detective_server.Team - 53, // 20: crabs.evening_detective_server.TeamAnswers.answers:type_name -> crabs.evening_detective_server.AnswerScore - 47, // 21: crabs.evening_detective_server.AddScenarioPlaceReq.place:type_name -> crabs.evening_detective_server.Place - 47, // 22: crabs.evening_detective_server.UpdateScenarioPlaceReq.place:type_name -> crabs.evening_detective_server.Place - 46, // 23: crabs.evening_detective_server.UpdateScenarioIntroReq.introduction:type_name -> crabs.evening_detective_server.Introduction - 51, // 24: crabs.evening_detective_server.AddScenarioQuestionReq.question:type_name -> crabs.evening_detective_server.Question - 51, // 25: crabs.evening_detective_server.UpdateScenarioQuestionReq.question:type_name -> crabs.evening_detective_server.Question - 130, // 26: crabs.evening_detective_server.AddGameReq.start_at:type_name -> google.protobuf.Timestamp - 83, // 27: crabs.evening_detective_server.GetGamesRsp.games:type_name -> crabs.evening_detective_server.Game - 130, // 28: crabs.evening_detective_server.Game.start_at:type_name -> google.protobuf.Timestamp - 44, // 29: crabs.evening_detective_server.Game.scenario:type_name -> crabs.evening_detective_server.Scenario - 84, // 30: crabs.evening_detective_server.Game.teams:type_name -> crabs.evening_detective_server.Team - 130, // 31: crabs.evening_detective_server.Game.started_at:type_name -> google.protobuf.Timestamp - 130, // 32: crabs.evening_detective_server.Game.ended_at:type_name -> google.protobuf.Timestamp - 48, // 33: crabs.evening_detective_server.Team.applications:type_name -> crabs.evening_detective_server.Application - 83, // 34: crabs.evening_detective_server.GetGameRsp.game:type_name -> crabs.evening_detective_server.Game - 51, // 35: crabs.evening_detective_server.GetGameAnswersRsp.questions:type_name -> crabs.evening_detective_server.Question - 54, // 36: crabs.evening_detective_server.GetGameAnswersRsp.teams:type_name -> crabs.evening_detective_server.TeamAnswers - 84, // 37: crabs.evening_detective_server.TeamResult.team:type_name -> crabs.evening_detective_server.Team - 53, // 38: crabs.evening_detective_server.TeamResult.answers:type_name -> crabs.evening_detective_server.AnswerScore - 90, // 39: crabs.evening_detective_server.GetGameResultsRsp.questions:type_name -> crabs.evening_detective_server.ResultsQuestion - 91, // 40: crabs.evening_detective_server.GetGameResultsRsp.teams:type_name -> crabs.evening_detective_server.TeamResult - 130, // 41: crabs.evening_detective_server.UpdateGameReq.start_at:type_name -> google.protobuf.Timestamp - 45, // 42: crabs.evening_detective_server.GetTeamStoryRsp.story:type_name -> crabs.evening_detective_server.Story - 83, // 43: crabs.evening_detective_server.GetTeamStoryRsp.game:type_name -> crabs.evening_detective_server.Game - 117, // 44: crabs.evening_detective_server.GetTeamStoryRsp.actions:type_name -> crabs.evening_detective_server.TeamAction - 52, // 45: crabs.evening_detective_server.GetTeamAnswersRsp.answers:type_name -> crabs.evening_detective_server.Answer - 52, // 46: crabs.evening_detective_server.SubmitTeamAnswersReq.answers:type_name -> crabs.evening_detective_server.Answer - 0, // 47: crabs.evening_detective_server.EveningDetectiveServer.Ping:input_type -> crabs.evening_detective_server.PingReq - 2, // 48: crabs.evening_detective_server.EveningDetectiveServer.Echo:input_type -> crabs.evening_detective_server.EchoReq - 4, // 49: crabs.evening_detective_server.EveningDetectiveServer.Signup:input_type -> crabs.evening_detective_server.SignupReq - 6, // 50: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:input_type -> crabs.evening_detective_server.RefreshPasswordReq - 8, // 51: crabs.evening_detective_server.EveningDetectiveServer.Login:input_type -> crabs.evening_detective_server.LoginReq - 10, // 52: crabs.evening_detective_server.EveningDetectiveServer.Refresh:input_type -> crabs.evening_detective_server.RefreshReq - 12, // 53: crabs.evening_detective_server.EveningDetectiveServer.DeleteAccount:input_type -> crabs.evening_detective_server.DeleteAccountReq - 14, // 54: crabs.evening_detective_server.EveningDetectiveServer.GetTerms:input_type -> crabs.evening_detective_server.GetTermsReq - 16, // 55: crabs.evening_detective_server.EveningDetectiveServer.GetPrivacy:input_type -> crabs.evening_detective_server.GetPrivacyReq - 18, // 56: crabs.evening_detective_server.EveningDetectiveServer.GetConsent:input_type -> crabs.evening_detective_server.GetConsentReq - 20, // 57: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:input_type -> crabs.evening_detective_server.GetUsersReq - 23, // 58: crabs.evening_detective_server.EveningDetectiveServer.GetUserById:input_type -> crabs.evening_detective_server.GetUserByIdReq - 25, // 59: crabs.evening_detective_server.EveningDetectiveServer.GetMe:input_type -> crabs.evening_detective_server.GetMeReq - 27, // 60: crabs.evening_detective_server.EveningDetectiveServer.AddUserRole:input_type -> crabs.evening_detective_server.AddUserRoleReq - 29, // 61: crabs.evening_detective_server.EveningDetectiveServer.DeleteUserRole:input_type -> crabs.evening_detective_server.DeleteUserRoleReq - 31, // 62: crabs.evening_detective_server.EveningDetectiveServer.GetPermissions:input_type -> crabs.evening_detective_server.GetPermissionsReq - 33, // 63: crabs.evening_detective_server.EveningDetectiveServer.UploadFile:input_type -> crabs.evening_detective_server.UploadFileReq - 35, // 64: crabs.evening_detective_server.EveningDetectiveServer.DownloadFile:input_type -> crabs.evening_detective_server.DownloadFileReq - 36, // 65: crabs.evening_detective_server.EveningDetectiveServer.AddScenario:input_type -> crabs.evening_detective_server.AddScenarioReq - 38, // 66: crabs.evening_detective_server.EveningDetectiveServer.GetMyScenarios:input_type -> crabs.evening_detective_server.GetMyScenariosReq - 40, // 67: crabs.evening_detective_server.EveningDetectiveServer.GetScenariosCatalog:input_type -> crabs.evening_detective_server.GetScenariosCatalogReq - 42, // 68: crabs.evening_detective_server.EveningDetectiveServer.GetFullScenario:input_type -> crabs.evening_detective_server.GetScenarioReq - 42, // 69: crabs.evening_detective_server.EveningDetectiveServer.GetScenario:input_type -> crabs.evening_detective_server.GetScenarioReq - 55, // 70: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenario:input_type -> crabs.evening_detective_server.UpdateScenarioReq - 57, // 71: crabs.evening_detective_server.EveningDetectiveServer.PublicScenario:input_type -> crabs.evening_detective_server.PublicScenarioReq - 59, // 72: crabs.evening_detective_server.EveningDetectiveServer.DraftScenario:input_type -> crabs.evening_detective_server.DraftScenarioReq - 61, // 73: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenario:input_type -> crabs.evening_detective_server.DeleteScenarioReq - 63, // 74: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioPlace:input_type -> crabs.evening_detective_server.AddScenarioPlaceReq - 65, // 75: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioPlace:input_type -> crabs.evening_detective_server.UpdateScenarioPlaceReq - 67, // 76: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioPlace:input_type -> crabs.evening_detective_server.DeleteScenarioPlaceReq - 71, // 77: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioQuestion:input_type -> crabs.evening_detective_server.AddScenarioQuestionReq - 73, // 78: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioQuestion:input_type -> crabs.evening_detective_server.UpdateScenarioQuestionReq - 75, // 79: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioQuestion:input_type -> crabs.evening_detective_server.DeleteScenarioQuestionReq - 128, // 80: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioBackground:input_type -> crabs.evening_detective_server.UpdateScenarioBackgroundReq - 69, // 81: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioIntro:input_type -> crabs.evening_detective_server.UpdateScenarioIntroReq - 77, // 82: crabs.evening_detective_server.EveningDetectiveServer.DownloadScenarioArchive:input_type -> crabs.evening_detective_server.DownloadScenarioArchiveReq - 131, // 83: crabs.evening_detective_server.EveningDetectiveServer.UploadScenarioArchive:input_type -> google.api.HttpBody - 79, // 84: crabs.evening_detective_server.EveningDetectiveServer.AddGame:input_type -> crabs.evening_detective_server.AddGameReq - 81, // 85: crabs.evening_detective_server.EveningDetectiveServer.GetGames:input_type -> crabs.evening_detective_server.GetGamesReq - 85, // 86: crabs.evening_detective_server.EveningDetectiveServer.GetGame:input_type -> crabs.evening_detective_server.GetGameReq - 87, // 87: crabs.evening_detective_server.EveningDetectiveServer.GetGameAnswers:input_type -> crabs.evening_detective_server.GetGameAnswersReq - 89, // 88: crabs.evening_detective_server.EveningDetectiveServer.GetGameResults:input_type -> crabs.evening_detective_server.GetGameResultsReq - 93, // 89: crabs.evening_detective_server.EveningDetectiveServer.UpdateGame:input_type -> crabs.evening_detective_server.UpdateGameReq - 95, // 90: crabs.evening_detective_server.EveningDetectiveServer.StartGame:input_type -> crabs.evening_detective_server.StartGameReq - 97, // 91: crabs.evening_detective_server.EveningDetectiveServer.PauseGame:input_type -> crabs.evening_detective_server.PauseGameReq - 99, // 92: crabs.evening_detective_server.EveningDetectiveServer.PlayGame:input_type -> crabs.evening_detective_server.PlayGameReq - 101, // 93: crabs.evening_detective_server.EveningDetectiveServer.FinishGame:input_type -> crabs.evening_detective_server.FinishGameReq - 103, // 94: crabs.evening_detective_server.EveningDetectiveServer.ResetGame:input_type -> crabs.evening_detective_server.ResetGameReq - 105, // 95: crabs.evening_detective_server.EveningDetectiveServer.DeleteGame:input_type -> crabs.evening_detective_server.DeleteGameReq - 107, // 96: crabs.evening_detective_server.EveningDetectiveServer.AddTeam:input_type -> crabs.evening_detective_server.AddTeamReq - 109, // 97: crabs.evening_detective_server.EveningDetectiveServer.UpdateTeam:input_type -> crabs.evening_detective_server.UpdateTeamReq - 111, // 98: crabs.evening_detective_server.EveningDetectiveServer.DeleteTeam:input_type -> crabs.evening_detective_server.DeleteTeamReq - 113, // 99: crabs.evening_detective_server.EveningDetectiveServer.GiveTeamApplications:input_type -> crabs.evening_detective_server.GiveTeamApplicationsReq - 115, // 100: crabs.evening_detective_server.EveningDetectiveServer.GetTeamStory:input_type -> crabs.evening_detective_server.GetTeamStoryReq - 118, // 101: crabs.evening_detective_server.EveningDetectiveServer.AddTeamAction:input_type -> crabs.evening_detective_server.AddTeamActionReq - 120, // 102: crabs.evening_detective_server.EveningDetectiveServer.DeleteLastTeamAction:input_type -> crabs.evening_detective_server.DeleteLastTeamActionReq - 122, // 103: crabs.evening_detective_server.EveningDetectiveServer.GetTeamAnswers:input_type -> crabs.evening_detective_server.GetTeamAnswersReq - 124, // 104: crabs.evening_detective_server.EveningDetectiveServer.SubmitTeamAnswers:input_type -> crabs.evening_detective_server.SubmitTeamAnswersReq - 126, // 105: crabs.evening_detective_server.EveningDetectiveServer.SetTeamAnswerScore:input_type -> crabs.evening_detective_server.SetTeamAnswerScoreReq - 1, // 106: crabs.evening_detective_server.EveningDetectiveServer.Ping:output_type -> crabs.evening_detective_server.PingRsp - 3, // 107: crabs.evening_detective_server.EveningDetectiveServer.Echo:output_type -> crabs.evening_detective_server.EchoRsp - 5, // 108: crabs.evening_detective_server.EveningDetectiveServer.Signup:output_type -> crabs.evening_detective_server.SignupRsp - 7, // 109: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:output_type -> crabs.evening_detective_server.RefreshPasswordRsp - 9, // 110: crabs.evening_detective_server.EveningDetectiveServer.Login:output_type -> crabs.evening_detective_server.LoginRsp - 11, // 111: crabs.evening_detective_server.EveningDetectiveServer.Refresh:output_type -> crabs.evening_detective_server.RefreshRsp - 13, // 112: crabs.evening_detective_server.EveningDetectiveServer.DeleteAccount:output_type -> crabs.evening_detective_server.DeleteAccountRsp - 15, // 113: crabs.evening_detective_server.EveningDetectiveServer.GetTerms:output_type -> crabs.evening_detective_server.GetTermsRsp - 17, // 114: crabs.evening_detective_server.EveningDetectiveServer.GetPrivacy:output_type -> crabs.evening_detective_server.GetPrivacyRsp - 19, // 115: crabs.evening_detective_server.EveningDetectiveServer.GetConsent:output_type -> crabs.evening_detective_server.GetConsentRsp - 21, // 116: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:output_type -> crabs.evening_detective_server.GetUsersRsp - 24, // 117: crabs.evening_detective_server.EveningDetectiveServer.GetUserById:output_type -> crabs.evening_detective_server.GetUserByIdRsp - 26, // 118: crabs.evening_detective_server.EveningDetectiveServer.GetMe:output_type -> crabs.evening_detective_server.GetMeRsp - 28, // 119: crabs.evening_detective_server.EveningDetectiveServer.AddUserRole:output_type -> crabs.evening_detective_server.AddUserRoleRsp - 30, // 120: crabs.evening_detective_server.EveningDetectiveServer.DeleteUserRole:output_type -> crabs.evening_detective_server.DeleteUserRoleRsp - 32, // 121: crabs.evening_detective_server.EveningDetectiveServer.GetPermissions:output_type -> crabs.evening_detective_server.GetPermissionsRsp - 34, // 122: crabs.evening_detective_server.EveningDetectiveServer.UploadFile:output_type -> crabs.evening_detective_server.UploadFileRsp - 131, // 123: crabs.evening_detective_server.EveningDetectiveServer.DownloadFile:output_type -> google.api.HttpBody - 37, // 124: crabs.evening_detective_server.EveningDetectiveServer.AddScenario:output_type -> crabs.evening_detective_server.AddScenarioRsp - 39, // 125: crabs.evening_detective_server.EveningDetectiveServer.GetMyScenarios:output_type -> crabs.evening_detective_server.GetMyScenariosRsp - 41, // 126: crabs.evening_detective_server.EveningDetectiveServer.GetScenariosCatalog:output_type -> crabs.evening_detective_server.GetScenariosCatalogRsp - 43, // 127: crabs.evening_detective_server.EveningDetectiveServer.GetFullScenario:output_type -> crabs.evening_detective_server.GetScenarioRsp - 43, // 128: crabs.evening_detective_server.EveningDetectiveServer.GetScenario:output_type -> crabs.evening_detective_server.GetScenarioRsp - 56, // 129: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenario:output_type -> crabs.evening_detective_server.UpdateScenarioRsp - 58, // 130: crabs.evening_detective_server.EveningDetectiveServer.PublicScenario:output_type -> crabs.evening_detective_server.PublicScenarioRsp - 60, // 131: crabs.evening_detective_server.EveningDetectiveServer.DraftScenario:output_type -> crabs.evening_detective_server.DraftScenarioRsp - 62, // 132: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenario:output_type -> crabs.evening_detective_server.DeleteScenarioRsp - 64, // 133: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioPlace:output_type -> crabs.evening_detective_server.AddScenarioPlaceRsp - 66, // 134: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioPlace:output_type -> crabs.evening_detective_server.UpdateScenarioPlaceRsp - 68, // 135: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioPlace:output_type -> crabs.evening_detective_server.DeleteScenarioPlaceRsp - 72, // 136: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioQuestion:output_type -> crabs.evening_detective_server.AddScenarioQuestionRsp - 74, // 137: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioQuestion:output_type -> crabs.evening_detective_server.UpdateScenarioQuestionRsp - 76, // 138: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioQuestion:output_type -> crabs.evening_detective_server.DeleteScenarioQuestionRsp - 129, // 139: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioBackground:output_type -> crabs.evening_detective_server.UpdateScenarioBackgroundRsp - 70, // 140: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioIntro:output_type -> crabs.evening_detective_server.UpdateScenarioIntroRsp - 131, // 141: crabs.evening_detective_server.EveningDetectiveServer.DownloadScenarioArchive:output_type -> google.api.HttpBody - 78, // 142: crabs.evening_detective_server.EveningDetectiveServer.UploadScenarioArchive:output_type -> crabs.evening_detective_server.UploadScenarioArchiveRsp - 80, // 143: crabs.evening_detective_server.EveningDetectiveServer.AddGame:output_type -> crabs.evening_detective_server.AddGameRsp - 82, // 144: crabs.evening_detective_server.EveningDetectiveServer.GetGames:output_type -> crabs.evening_detective_server.GetGamesRsp - 86, // 145: crabs.evening_detective_server.EveningDetectiveServer.GetGame:output_type -> crabs.evening_detective_server.GetGameRsp - 88, // 146: crabs.evening_detective_server.EveningDetectiveServer.GetGameAnswers:output_type -> crabs.evening_detective_server.GetGameAnswersRsp - 92, // 147: crabs.evening_detective_server.EveningDetectiveServer.GetGameResults:output_type -> crabs.evening_detective_server.GetGameResultsRsp - 94, // 148: crabs.evening_detective_server.EveningDetectiveServer.UpdateGame:output_type -> crabs.evening_detective_server.UpdateGameRsp - 96, // 149: crabs.evening_detective_server.EveningDetectiveServer.StartGame:output_type -> crabs.evening_detective_server.StartGameRsp - 98, // 150: crabs.evening_detective_server.EveningDetectiveServer.PauseGame:output_type -> crabs.evening_detective_server.PauseGameRsp - 100, // 151: crabs.evening_detective_server.EveningDetectiveServer.PlayGame:output_type -> crabs.evening_detective_server.PlayGameRsp - 102, // 152: crabs.evening_detective_server.EveningDetectiveServer.FinishGame:output_type -> crabs.evening_detective_server.FinishGameRsp - 104, // 153: crabs.evening_detective_server.EveningDetectiveServer.ResetGame:output_type -> crabs.evening_detective_server.ResetGameRsp - 106, // 154: crabs.evening_detective_server.EveningDetectiveServer.DeleteGame:output_type -> crabs.evening_detective_server.DeleteGameRsp - 108, // 155: crabs.evening_detective_server.EveningDetectiveServer.AddTeam:output_type -> crabs.evening_detective_server.AddTeamRsp - 110, // 156: crabs.evening_detective_server.EveningDetectiveServer.UpdateTeam:output_type -> crabs.evening_detective_server.UpdateTeamRsp - 112, // 157: crabs.evening_detective_server.EveningDetectiveServer.DeleteTeam:output_type -> crabs.evening_detective_server.DeleteTeamRsp - 114, // 158: crabs.evening_detective_server.EveningDetectiveServer.GiveTeamApplications:output_type -> crabs.evening_detective_server.GiveTeamApplicationsRsp - 116, // 159: crabs.evening_detective_server.EveningDetectiveServer.GetTeamStory:output_type -> crabs.evening_detective_server.GetTeamStoryRsp - 119, // 160: crabs.evening_detective_server.EveningDetectiveServer.AddTeamAction:output_type -> crabs.evening_detective_server.AddTeamActionRsp - 121, // 161: crabs.evening_detective_server.EveningDetectiveServer.DeleteLastTeamAction:output_type -> crabs.evening_detective_server.DeleteLastTeamActionRsp - 123, // 162: crabs.evening_detective_server.EveningDetectiveServer.GetTeamAnswers:output_type -> crabs.evening_detective_server.GetTeamAnswersRsp - 125, // 163: crabs.evening_detective_server.EveningDetectiveServer.SubmitTeamAnswers:output_type -> crabs.evening_detective_server.SubmitTeamAnswersRsp - 127, // 164: crabs.evening_detective_server.EveningDetectiveServer.SetTeamAnswerScore:output_type -> crabs.evening_detective_server.SetTeamAnswerScoreRsp - 106, // [106:165] is the sub-list for method output_type - 47, // [47:106] is the sub-list for method input_type - 47, // [47:47] is the sub-list for extension type_name - 47, // [47:47] is the sub-list for extension extendee - 0, // [0:47] is the sub-list for field type_name + 133, // 9: crabs.evening_detective_server.Scenario.updated_at:type_name -> google.protobuf.Timestamp + 133, // 10: crabs.evening_detective_server.Scenario.created_at:type_name -> google.protobuf.Timestamp + 133, // 11: crabs.evening_detective_server.Scenario.published_at:type_name -> google.protobuf.Timestamp + 46, // 12: crabs.evening_detective_server.Story.conclusion:type_name -> crabs.evening_detective_server.Conclusion + 47, // 13: crabs.evening_detective_server.Story.introduction:type_name -> crabs.evening_detective_server.Introduction + 48, // 14: crabs.evening_detective_server.Story.places:type_name -> crabs.evening_detective_server.Place + 52, // 15: crabs.evening_detective_server.Story.questions:type_name -> crabs.evening_detective_server.Question + 49, // 16: crabs.evening_detective_server.Place.applications:type_name -> crabs.evening_detective_server.Application + 50, // 17: crabs.evening_detective_server.Place.doors:type_name -> crabs.evening_detective_server.Door + 51, // 18: crabs.evening_detective_server.Place.keys:type_name -> crabs.evening_detective_server.Key + 51, // 19: crabs.evening_detective_server.Door.keys:type_name -> crabs.evening_detective_server.Key + 87, // 20: crabs.evening_detective_server.TeamAnswers.team:type_name -> crabs.evening_detective_server.Team + 54, // 21: crabs.evening_detective_server.TeamAnswers.answers:type_name -> crabs.evening_detective_server.AnswerScore + 48, // 22: crabs.evening_detective_server.AddScenarioPlaceReq.place:type_name -> crabs.evening_detective_server.Place + 48, // 23: crabs.evening_detective_server.UpdateScenarioPlaceReq.place:type_name -> crabs.evening_detective_server.Place + 46, // 24: crabs.evening_detective_server.UpdateScenarioConclusionReq.conclusion:type_name -> crabs.evening_detective_server.Conclusion + 47, // 25: crabs.evening_detective_server.UpdateScenarioIntroReq.introduction:type_name -> crabs.evening_detective_server.Introduction + 52, // 26: crabs.evening_detective_server.AddScenarioQuestionReq.question:type_name -> crabs.evening_detective_server.Question + 52, // 27: crabs.evening_detective_server.UpdateScenarioQuestionReq.question:type_name -> crabs.evening_detective_server.Question + 133, // 28: crabs.evening_detective_server.AddGameReq.start_at:type_name -> google.protobuf.Timestamp + 86, // 29: crabs.evening_detective_server.GetGamesRsp.games:type_name -> crabs.evening_detective_server.Game + 133, // 30: crabs.evening_detective_server.Game.start_at:type_name -> google.protobuf.Timestamp + 44, // 31: crabs.evening_detective_server.Game.scenario:type_name -> crabs.evening_detective_server.Scenario + 87, // 32: crabs.evening_detective_server.Game.teams:type_name -> crabs.evening_detective_server.Team + 133, // 33: crabs.evening_detective_server.Game.started_at:type_name -> google.protobuf.Timestamp + 133, // 34: crabs.evening_detective_server.Game.ended_at:type_name -> google.protobuf.Timestamp + 49, // 35: crabs.evening_detective_server.Team.applications:type_name -> crabs.evening_detective_server.Application + 86, // 36: crabs.evening_detective_server.GetGameRsp.game:type_name -> crabs.evening_detective_server.Game + 52, // 37: crabs.evening_detective_server.GetGameAnswersRsp.questions:type_name -> crabs.evening_detective_server.Question + 55, // 38: crabs.evening_detective_server.GetGameAnswersRsp.teams:type_name -> crabs.evening_detective_server.TeamAnswers + 87, // 39: crabs.evening_detective_server.TeamResult.team:type_name -> crabs.evening_detective_server.Team + 54, // 40: crabs.evening_detective_server.TeamResult.answers:type_name -> crabs.evening_detective_server.AnswerScore + 93, // 41: crabs.evening_detective_server.GetGameResultsRsp.questions:type_name -> crabs.evening_detective_server.ResultsQuestion + 94, // 42: crabs.evening_detective_server.GetGameResultsRsp.teams:type_name -> crabs.evening_detective_server.TeamResult + 133, // 43: crabs.evening_detective_server.UpdateGameReq.start_at:type_name -> google.protobuf.Timestamp + 45, // 44: crabs.evening_detective_server.GetTeamStoryRsp.story:type_name -> crabs.evening_detective_server.Story + 86, // 45: crabs.evening_detective_server.GetTeamStoryRsp.game:type_name -> crabs.evening_detective_server.Game + 120, // 46: crabs.evening_detective_server.GetTeamStoryRsp.actions:type_name -> crabs.evening_detective_server.TeamAction + 53, // 47: crabs.evening_detective_server.GetTeamAnswersRsp.answers:type_name -> crabs.evening_detective_server.Answer + 53, // 48: crabs.evening_detective_server.SubmitTeamAnswersReq.answers:type_name -> crabs.evening_detective_server.Answer + 0, // 49: crabs.evening_detective_server.EveningDetectiveServer.Ping:input_type -> crabs.evening_detective_server.PingReq + 2, // 50: crabs.evening_detective_server.EveningDetectiveServer.Echo:input_type -> crabs.evening_detective_server.EchoReq + 4, // 51: crabs.evening_detective_server.EveningDetectiveServer.Signup:input_type -> crabs.evening_detective_server.SignupReq + 6, // 52: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:input_type -> crabs.evening_detective_server.RefreshPasswordReq + 8, // 53: crabs.evening_detective_server.EveningDetectiveServer.Login:input_type -> crabs.evening_detective_server.LoginReq + 10, // 54: crabs.evening_detective_server.EveningDetectiveServer.Refresh:input_type -> crabs.evening_detective_server.RefreshReq + 12, // 55: crabs.evening_detective_server.EveningDetectiveServer.DeleteAccount:input_type -> crabs.evening_detective_server.DeleteAccountReq + 14, // 56: crabs.evening_detective_server.EveningDetectiveServer.GetTerms:input_type -> crabs.evening_detective_server.GetTermsReq + 16, // 57: crabs.evening_detective_server.EveningDetectiveServer.GetPrivacy:input_type -> crabs.evening_detective_server.GetPrivacyReq + 18, // 58: crabs.evening_detective_server.EveningDetectiveServer.GetConsent:input_type -> crabs.evening_detective_server.GetConsentReq + 20, // 59: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:input_type -> crabs.evening_detective_server.GetUsersReq + 23, // 60: crabs.evening_detective_server.EveningDetectiveServer.GetUserById:input_type -> crabs.evening_detective_server.GetUserByIdReq + 25, // 61: crabs.evening_detective_server.EveningDetectiveServer.GetMe:input_type -> crabs.evening_detective_server.GetMeReq + 27, // 62: crabs.evening_detective_server.EveningDetectiveServer.AddUserRole:input_type -> crabs.evening_detective_server.AddUserRoleReq + 29, // 63: crabs.evening_detective_server.EveningDetectiveServer.DeleteUserRole:input_type -> crabs.evening_detective_server.DeleteUserRoleReq + 31, // 64: crabs.evening_detective_server.EveningDetectiveServer.GetPermissions:input_type -> crabs.evening_detective_server.GetPermissionsReq + 33, // 65: crabs.evening_detective_server.EveningDetectiveServer.UploadFile:input_type -> crabs.evening_detective_server.UploadFileReq + 35, // 66: crabs.evening_detective_server.EveningDetectiveServer.DownloadFile:input_type -> crabs.evening_detective_server.DownloadFileReq + 36, // 67: crabs.evening_detective_server.EveningDetectiveServer.AddScenario:input_type -> crabs.evening_detective_server.AddScenarioReq + 38, // 68: crabs.evening_detective_server.EveningDetectiveServer.GetMyScenarios:input_type -> crabs.evening_detective_server.GetMyScenariosReq + 40, // 69: crabs.evening_detective_server.EveningDetectiveServer.GetScenariosCatalog:input_type -> crabs.evening_detective_server.GetScenariosCatalogReq + 42, // 70: crabs.evening_detective_server.EveningDetectiveServer.GetFullScenario:input_type -> crabs.evening_detective_server.GetScenarioReq + 42, // 71: crabs.evening_detective_server.EveningDetectiveServer.GetScenario:input_type -> crabs.evening_detective_server.GetScenarioReq + 56, // 72: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenario:input_type -> crabs.evening_detective_server.UpdateScenarioReq + 58, // 73: crabs.evening_detective_server.EveningDetectiveServer.PublicScenario:input_type -> crabs.evening_detective_server.PublicScenarioReq + 60, // 74: crabs.evening_detective_server.EveningDetectiveServer.DraftScenario:input_type -> crabs.evening_detective_server.DraftScenarioReq + 62, // 75: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenario:input_type -> crabs.evening_detective_server.DeleteScenarioReq + 64, // 76: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioPlace:input_type -> crabs.evening_detective_server.AddScenarioPlaceReq + 66, // 77: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioPlace:input_type -> crabs.evening_detective_server.UpdateScenarioPlaceReq + 68, // 78: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioPlace:input_type -> crabs.evening_detective_server.DeleteScenarioPlaceReq + 74, // 79: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioQuestion:input_type -> crabs.evening_detective_server.AddScenarioQuestionReq + 76, // 80: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioQuestion:input_type -> crabs.evening_detective_server.UpdateScenarioQuestionReq + 78, // 81: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioQuestion:input_type -> crabs.evening_detective_server.DeleteScenarioQuestionReq + 131, // 82: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioBackground:input_type -> crabs.evening_detective_server.UpdateScenarioBackgroundReq + 72, // 83: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioIntro:input_type -> crabs.evening_detective_server.UpdateScenarioIntroReq + 70, // 84: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioConclusion:input_type -> crabs.evening_detective_server.UpdateScenarioConclusionReq + 80, // 85: crabs.evening_detective_server.EveningDetectiveServer.DownloadScenarioArchive:input_type -> crabs.evening_detective_server.DownloadScenarioArchiveReq + 134, // 86: crabs.evening_detective_server.EveningDetectiveServer.UploadScenarioArchive:input_type -> google.api.HttpBody + 82, // 87: crabs.evening_detective_server.EveningDetectiveServer.AddGame:input_type -> crabs.evening_detective_server.AddGameReq + 84, // 88: crabs.evening_detective_server.EveningDetectiveServer.GetGames:input_type -> crabs.evening_detective_server.GetGamesReq + 88, // 89: crabs.evening_detective_server.EveningDetectiveServer.GetGame:input_type -> crabs.evening_detective_server.GetGameReq + 90, // 90: crabs.evening_detective_server.EveningDetectiveServer.GetGameAnswers:input_type -> crabs.evening_detective_server.GetGameAnswersReq + 92, // 91: crabs.evening_detective_server.EveningDetectiveServer.GetGameResults:input_type -> crabs.evening_detective_server.GetGameResultsReq + 96, // 92: crabs.evening_detective_server.EveningDetectiveServer.UpdateGame:input_type -> crabs.evening_detective_server.UpdateGameReq + 98, // 93: crabs.evening_detective_server.EveningDetectiveServer.StartGame:input_type -> crabs.evening_detective_server.StartGameReq + 100, // 94: crabs.evening_detective_server.EveningDetectiveServer.PauseGame:input_type -> crabs.evening_detective_server.PauseGameReq + 102, // 95: crabs.evening_detective_server.EveningDetectiveServer.PlayGame:input_type -> crabs.evening_detective_server.PlayGameReq + 104, // 96: crabs.evening_detective_server.EveningDetectiveServer.FinishGame:input_type -> crabs.evening_detective_server.FinishGameReq + 106, // 97: crabs.evening_detective_server.EveningDetectiveServer.ResetGame:input_type -> crabs.evening_detective_server.ResetGameReq + 108, // 98: crabs.evening_detective_server.EveningDetectiveServer.DeleteGame:input_type -> crabs.evening_detective_server.DeleteGameReq + 110, // 99: crabs.evening_detective_server.EveningDetectiveServer.AddTeam:input_type -> crabs.evening_detective_server.AddTeamReq + 112, // 100: crabs.evening_detective_server.EveningDetectiveServer.UpdateTeam:input_type -> crabs.evening_detective_server.UpdateTeamReq + 114, // 101: crabs.evening_detective_server.EveningDetectiveServer.DeleteTeam:input_type -> crabs.evening_detective_server.DeleteTeamReq + 116, // 102: crabs.evening_detective_server.EveningDetectiveServer.GiveTeamApplications:input_type -> crabs.evening_detective_server.GiveTeamApplicationsReq + 118, // 103: crabs.evening_detective_server.EveningDetectiveServer.GetTeamStory:input_type -> crabs.evening_detective_server.GetTeamStoryReq + 121, // 104: crabs.evening_detective_server.EveningDetectiveServer.AddTeamAction:input_type -> crabs.evening_detective_server.AddTeamActionReq + 123, // 105: crabs.evening_detective_server.EveningDetectiveServer.DeleteLastTeamAction:input_type -> crabs.evening_detective_server.DeleteLastTeamActionReq + 125, // 106: crabs.evening_detective_server.EveningDetectiveServer.GetTeamAnswers:input_type -> crabs.evening_detective_server.GetTeamAnswersReq + 127, // 107: crabs.evening_detective_server.EveningDetectiveServer.SubmitTeamAnswers:input_type -> crabs.evening_detective_server.SubmitTeamAnswersReq + 129, // 108: crabs.evening_detective_server.EveningDetectiveServer.SetTeamAnswerScore:input_type -> crabs.evening_detective_server.SetTeamAnswerScoreReq + 1, // 109: crabs.evening_detective_server.EveningDetectiveServer.Ping:output_type -> crabs.evening_detective_server.PingRsp + 3, // 110: crabs.evening_detective_server.EveningDetectiveServer.Echo:output_type -> crabs.evening_detective_server.EchoRsp + 5, // 111: crabs.evening_detective_server.EveningDetectiveServer.Signup:output_type -> crabs.evening_detective_server.SignupRsp + 7, // 112: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:output_type -> crabs.evening_detective_server.RefreshPasswordRsp + 9, // 113: crabs.evening_detective_server.EveningDetectiveServer.Login:output_type -> crabs.evening_detective_server.LoginRsp + 11, // 114: crabs.evening_detective_server.EveningDetectiveServer.Refresh:output_type -> crabs.evening_detective_server.RefreshRsp + 13, // 115: crabs.evening_detective_server.EveningDetectiveServer.DeleteAccount:output_type -> crabs.evening_detective_server.DeleteAccountRsp + 15, // 116: crabs.evening_detective_server.EveningDetectiveServer.GetTerms:output_type -> crabs.evening_detective_server.GetTermsRsp + 17, // 117: crabs.evening_detective_server.EveningDetectiveServer.GetPrivacy:output_type -> crabs.evening_detective_server.GetPrivacyRsp + 19, // 118: crabs.evening_detective_server.EveningDetectiveServer.GetConsent:output_type -> crabs.evening_detective_server.GetConsentRsp + 21, // 119: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:output_type -> crabs.evening_detective_server.GetUsersRsp + 24, // 120: crabs.evening_detective_server.EveningDetectiveServer.GetUserById:output_type -> crabs.evening_detective_server.GetUserByIdRsp + 26, // 121: crabs.evening_detective_server.EveningDetectiveServer.GetMe:output_type -> crabs.evening_detective_server.GetMeRsp + 28, // 122: crabs.evening_detective_server.EveningDetectiveServer.AddUserRole:output_type -> crabs.evening_detective_server.AddUserRoleRsp + 30, // 123: crabs.evening_detective_server.EveningDetectiveServer.DeleteUserRole:output_type -> crabs.evening_detective_server.DeleteUserRoleRsp + 32, // 124: crabs.evening_detective_server.EveningDetectiveServer.GetPermissions:output_type -> crabs.evening_detective_server.GetPermissionsRsp + 34, // 125: crabs.evening_detective_server.EveningDetectiveServer.UploadFile:output_type -> crabs.evening_detective_server.UploadFileRsp + 134, // 126: crabs.evening_detective_server.EveningDetectiveServer.DownloadFile:output_type -> google.api.HttpBody + 37, // 127: crabs.evening_detective_server.EveningDetectiveServer.AddScenario:output_type -> crabs.evening_detective_server.AddScenarioRsp + 39, // 128: crabs.evening_detective_server.EveningDetectiveServer.GetMyScenarios:output_type -> crabs.evening_detective_server.GetMyScenariosRsp + 41, // 129: crabs.evening_detective_server.EveningDetectiveServer.GetScenariosCatalog:output_type -> crabs.evening_detective_server.GetScenariosCatalogRsp + 43, // 130: crabs.evening_detective_server.EveningDetectiveServer.GetFullScenario:output_type -> crabs.evening_detective_server.GetScenarioRsp + 43, // 131: crabs.evening_detective_server.EveningDetectiveServer.GetScenario:output_type -> crabs.evening_detective_server.GetScenarioRsp + 57, // 132: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenario:output_type -> crabs.evening_detective_server.UpdateScenarioRsp + 59, // 133: crabs.evening_detective_server.EveningDetectiveServer.PublicScenario:output_type -> crabs.evening_detective_server.PublicScenarioRsp + 61, // 134: crabs.evening_detective_server.EveningDetectiveServer.DraftScenario:output_type -> crabs.evening_detective_server.DraftScenarioRsp + 63, // 135: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenario:output_type -> crabs.evening_detective_server.DeleteScenarioRsp + 65, // 136: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioPlace:output_type -> crabs.evening_detective_server.AddScenarioPlaceRsp + 67, // 137: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioPlace:output_type -> crabs.evening_detective_server.UpdateScenarioPlaceRsp + 69, // 138: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioPlace:output_type -> crabs.evening_detective_server.DeleteScenarioPlaceRsp + 75, // 139: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioQuestion:output_type -> crabs.evening_detective_server.AddScenarioQuestionRsp + 77, // 140: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioQuestion:output_type -> crabs.evening_detective_server.UpdateScenarioQuestionRsp + 79, // 141: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioQuestion:output_type -> crabs.evening_detective_server.DeleteScenarioQuestionRsp + 132, // 142: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioBackground:output_type -> crabs.evening_detective_server.UpdateScenarioBackgroundRsp + 73, // 143: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioIntro:output_type -> crabs.evening_detective_server.UpdateScenarioIntroRsp + 71, // 144: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioConclusion:output_type -> crabs.evening_detective_server.UpdateScenarioConclusionRsp + 134, // 145: crabs.evening_detective_server.EveningDetectiveServer.DownloadScenarioArchive:output_type -> google.api.HttpBody + 81, // 146: crabs.evening_detective_server.EveningDetectiveServer.UploadScenarioArchive:output_type -> crabs.evening_detective_server.UploadScenarioArchiveRsp + 83, // 147: crabs.evening_detective_server.EveningDetectiveServer.AddGame:output_type -> crabs.evening_detective_server.AddGameRsp + 85, // 148: crabs.evening_detective_server.EveningDetectiveServer.GetGames:output_type -> crabs.evening_detective_server.GetGamesRsp + 89, // 149: crabs.evening_detective_server.EveningDetectiveServer.GetGame:output_type -> crabs.evening_detective_server.GetGameRsp + 91, // 150: crabs.evening_detective_server.EveningDetectiveServer.GetGameAnswers:output_type -> crabs.evening_detective_server.GetGameAnswersRsp + 95, // 151: crabs.evening_detective_server.EveningDetectiveServer.GetGameResults:output_type -> crabs.evening_detective_server.GetGameResultsRsp + 97, // 152: crabs.evening_detective_server.EveningDetectiveServer.UpdateGame:output_type -> crabs.evening_detective_server.UpdateGameRsp + 99, // 153: crabs.evening_detective_server.EveningDetectiveServer.StartGame:output_type -> crabs.evening_detective_server.StartGameRsp + 101, // 154: crabs.evening_detective_server.EveningDetectiveServer.PauseGame:output_type -> crabs.evening_detective_server.PauseGameRsp + 103, // 155: crabs.evening_detective_server.EveningDetectiveServer.PlayGame:output_type -> crabs.evening_detective_server.PlayGameRsp + 105, // 156: crabs.evening_detective_server.EveningDetectiveServer.FinishGame:output_type -> crabs.evening_detective_server.FinishGameRsp + 107, // 157: crabs.evening_detective_server.EveningDetectiveServer.ResetGame:output_type -> crabs.evening_detective_server.ResetGameRsp + 109, // 158: crabs.evening_detective_server.EveningDetectiveServer.DeleteGame:output_type -> crabs.evening_detective_server.DeleteGameRsp + 111, // 159: crabs.evening_detective_server.EveningDetectiveServer.AddTeam:output_type -> crabs.evening_detective_server.AddTeamRsp + 113, // 160: crabs.evening_detective_server.EveningDetectiveServer.UpdateTeam:output_type -> crabs.evening_detective_server.UpdateTeamRsp + 115, // 161: crabs.evening_detective_server.EveningDetectiveServer.DeleteTeam:output_type -> crabs.evening_detective_server.DeleteTeamRsp + 117, // 162: crabs.evening_detective_server.EveningDetectiveServer.GiveTeamApplications:output_type -> crabs.evening_detective_server.GiveTeamApplicationsRsp + 119, // 163: crabs.evening_detective_server.EveningDetectiveServer.GetTeamStory:output_type -> crabs.evening_detective_server.GetTeamStoryRsp + 122, // 164: crabs.evening_detective_server.EveningDetectiveServer.AddTeamAction:output_type -> crabs.evening_detective_server.AddTeamActionRsp + 124, // 165: crabs.evening_detective_server.EveningDetectiveServer.DeleteLastTeamAction:output_type -> crabs.evening_detective_server.DeleteLastTeamActionRsp + 126, // 166: crabs.evening_detective_server.EveningDetectiveServer.GetTeamAnswers:output_type -> crabs.evening_detective_server.GetTeamAnswersRsp + 128, // 167: crabs.evening_detective_server.EveningDetectiveServer.SubmitTeamAnswers:output_type -> crabs.evening_detective_server.SubmitTeamAnswersRsp + 130, // 168: crabs.evening_detective_server.EveningDetectiveServer.SetTeamAnswerScore:output_type -> crabs.evening_detective_server.SetTeamAnswerScoreRsp + 109, // [109:169] is the sub-list for method output_type + 49, // [49:109] is the sub-list for method input_type + 49, // [49:49] is the sub-list for extension type_name + 49, // [49:49] is the sub-list for extension extendee + 0, // [0:49] is the sub-list for field type_name } func init() { file_main_proto_init() } @@ -7557,16 +7736,16 @@ func file_main_proto_init() { return } file_main_proto_msgTypes[44].OneofWrappers = []any{} - file_main_proto_msgTypes[53].OneofWrappers = []any{} - file_main_proto_msgTypes[83].OneofWrappers = []any{} - file_main_proto_msgTypes[126].OneofWrappers = []any{} + file_main_proto_msgTypes[54].OneofWrappers = []any{} + file_main_proto_msgTypes[86].OneofWrappers = []any{} + file_main_proto_msgTypes[129].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_main_proto_rawDesc), len(file_main_proto_rawDesc)), NumEnums: 0, - NumMessages: 130, + NumMessages: 133, NumExtensions: 0, NumServices: 1, }, diff --git a/proto/main.pb.gw.go b/proto/main.pb.gw.go index f94295b..58abf0d 100644 --- a/proto/main.pb.gw.go +++ b/proto/main.pb.gw.go @@ -1275,6 +1275,51 @@ func local_request_EveningDetectiveServer_UpdateScenarioIntro_0(ctx context.Cont return msg, metadata, err } +func request_EveningDetectiveServer_UpdateScenarioConclusion_0(ctx context.Context, marshaler runtime.Marshaler, client EveningDetectiveServerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq UpdateScenarioConclusionReq + metadata runtime.ServerMetadata + err error + ) + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } + val, ok := pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + protoReq.Id, err = runtime.Int32(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + msg, err := client.UpdateScenarioConclusion(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err +} + +func local_request_EveningDetectiveServer_UpdateScenarioConclusion_0(ctx context.Context, marshaler runtime.Marshaler, server EveningDetectiveServerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq UpdateScenarioConclusionReq + metadata runtime.ServerMetadata + err error + ) + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + val, ok := pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + protoReq.Id, err = runtime.Int32(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + msg, err := server.UpdateScenarioConclusion(ctx, &protoReq) + return msg, metadata, err +} + func request_EveningDetectiveServer_DownloadScenarioArchive_0(ctx context.Context, marshaler runtime.Marshaler, client EveningDetectiveServerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var ( protoReq DownloadScenarioArchiveReq @@ -2973,6 +3018,26 @@ func RegisterEveningDetectiveServerHandlerServer(ctx context.Context, mux *runti } forward_EveningDetectiveServer_UpdateScenarioIntro_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) + mux.Handle(http.MethodPut, pattern_EveningDetectiveServer_UpdateScenarioConclusion_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/crabs.evening_detective_server.EveningDetectiveServer/UpdateScenarioConclusion", runtime.WithHTTPPathPattern("/api/scenarios/{id}/conclusion")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EveningDetectiveServer_UpdateScenarioConclusion_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + forward_EveningDetectiveServer_UpdateScenarioConclusion_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) mux.Handle(http.MethodGet, pattern_EveningDetectiveServer_DownloadScenarioArchive_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -4088,6 +4153,23 @@ func RegisterEveningDetectiveServerHandlerClient(ctx context.Context, mux *runti } forward_EveningDetectiveServer_UpdateScenarioIntro_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) + mux.Handle(http.MethodPut, pattern_EveningDetectiveServer_UpdateScenarioConclusion_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/crabs.evening_detective_server.EveningDetectiveServer/UpdateScenarioConclusion", runtime.WithHTTPPathPattern("/api/scenarios/{id}/conclusion")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EveningDetectiveServer_UpdateScenarioConclusion_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + forward_EveningDetectiveServer_UpdateScenarioConclusion_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) mux.Handle(http.MethodGet, pattern_EveningDetectiveServer_DownloadScenarioArchive_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -4535,6 +4617,7 @@ var ( pattern_EveningDetectiveServer_DeleteScenarioQuestion_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "scenarios", "id", "questions", "code"}, "")) pattern_EveningDetectiveServer_UpdateScenarioBackground_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"api", "scenarios", "id", "background"}, "")) pattern_EveningDetectiveServer_UpdateScenarioIntro_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"api", "scenarios", "id", "introduction"}, "")) + pattern_EveningDetectiveServer_UpdateScenarioConclusion_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"api", "scenarios", "id", "conclusion"}, "")) pattern_EveningDetectiveServer_DownloadScenarioArchive_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"api", "scenarios", "id", "archive"}, "")) pattern_EveningDetectiveServer_UploadScenarioArchive_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "scenarios", "archive"}, "")) pattern_EveningDetectiveServer_AddGame_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"api", "games"}, "")) @@ -4597,6 +4680,7 @@ var ( forward_EveningDetectiveServer_DeleteScenarioQuestion_0 = runtime.ForwardResponseMessage forward_EveningDetectiveServer_UpdateScenarioBackground_0 = runtime.ForwardResponseMessage forward_EveningDetectiveServer_UpdateScenarioIntro_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_UpdateScenarioConclusion_0 = runtime.ForwardResponseMessage forward_EveningDetectiveServer_DownloadScenarioArchive_0 = runtime.ForwardResponseMessage forward_EveningDetectiveServer_UploadScenarioArchive_0 = runtime.ForwardResponseMessage forward_EveningDetectiveServer_AddGame_0 = runtime.ForwardResponseMessage diff --git a/proto/main_grpc.pb.go b/proto/main_grpc.pb.go index b65a962..0faa22c 100644 --- a/proto/main_grpc.pb.go +++ b/proto/main_grpc.pb.go @@ -55,6 +55,7 @@ const ( EveningDetectiveServer_DeleteScenarioQuestion_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/DeleteScenarioQuestion" EveningDetectiveServer_UpdateScenarioBackground_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/UpdateScenarioBackground" EveningDetectiveServer_UpdateScenarioIntro_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/UpdateScenarioIntro" + EveningDetectiveServer_UpdateScenarioConclusion_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/UpdateScenarioConclusion" EveningDetectiveServer_DownloadScenarioArchive_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/DownloadScenarioArchive" EveningDetectiveServer_UploadScenarioArchive_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/UploadScenarioArchive" EveningDetectiveServer_AddGame_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/AddGame" @@ -121,6 +122,8 @@ type EveningDetectiveServerClient interface { // Загрузить файл через UploadFile, затем передать его имя; пустое имя удаляет фон дела. UpdateScenarioBackground(ctx context.Context, in *UpdateScenarioBackgroundReq, opts ...grpc.CallOption) (*UpdateScenarioBackgroundRsp, error) UpdateScenarioIntro(ctx context.Context, in *UpdateScenarioIntroReq, opts ...grpc.CallOption) (*UpdateScenarioIntroRsp, error) + // Видео загружается через UploadFile (MP4/WebM). Пустая conclusion удаляет закрывашку. + UpdateScenarioConclusion(ctx context.Context, in *UpdateScenarioConclusionReq, opts ...grpc.CallOption) (*UpdateScenarioConclusionRsp, error) DownloadScenarioArchive(ctx context.Context, in *DownloadScenarioArchiveReq, opts ...grpc.CallOption) (*httpbody.HttpBody, error) UploadScenarioArchive(ctx context.Context, in *httpbody.HttpBody, opts ...grpc.CallOption) (*UploadScenarioArchiveRsp, error) AddGame(ctx context.Context, in *AddGameReq, opts ...grpc.CallOption) (*AddGameRsp, error) @@ -505,6 +508,16 @@ func (c *eveningDetectiveServerClient) UpdateScenarioIntro(ctx context.Context, return out, nil } +func (c *eveningDetectiveServerClient) UpdateScenarioConclusion(ctx context.Context, in *UpdateScenarioConclusionReq, opts ...grpc.CallOption) (*UpdateScenarioConclusionRsp, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(UpdateScenarioConclusionRsp) + err := c.cc.Invoke(ctx, EveningDetectiveServer_UpdateScenarioConclusion_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *eveningDetectiveServerClient) DownloadScenarioArchive(ctx context.Context, in *DownloadScenarioArchiveReq, opts ...grpc.CallOption) (*httpbody.HttpBody, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(httpbody.HttpBody) @@ -785,6 +798,8 @@ type EveningDetectiveServerServer interface { // Загрузить файл через UploadFile, затем передать его имя; пустое имя удаляет фон дела. UpdateScenarioBackground(context.Context, *UpdateScenarioBackgroundReq) (*UpdateScenarioBackgroundRsp, error) UpdateScenarioIntro(context.Context, *UpdateScenarioIntroReq) (*UpdateScenarioIntroRsp, error) + // Видео загружается через UploadFile (MP4/WebM). Пустая conclusion удаляет закрывашку. + UpdateScenarioConclusion(context.Context, *UpdateScenarioConclusionReq) (*UpdateScenarioConclusionRsp, error) DownloadScenarioArchive(context.Context, *DownloadScenarioArchiveReq) (*httpbody.HttpBody, error) UploadScenarioArchive(context.Context, *httpbody.HttpBody) (*UploadScenarioArchiveRsp, error) AddGame(context.Context, *AddGameReq) (*AddGameRsp, error) @@ -924,6 +939,9 @@ func (UnimplementedEveningDetectiveServerServer) UpdateScenarioBackground(contex func (UnimplementedEveningDetectiveServerServer) UpdateScenarioIntro(context.Context, *UpdateScenarioIntroReq) (*UpdateScenarioIntroRsp, error) { return nil, status.Error(codes.Unimplemented, "method UpdateScenarioIntro not implemented") } +func (UnimplementedEveningDetectiveServerServer) UpdateScenarioConclusion(context.Context, *UpdateScenarioConclusionReq) (*UpdateScenarioConclusionRsp, error) { + return nil, status.Error(codes.Unimplemented, "method UpdateScenarioConclusion not implemented") +} func (UnimplementedEveningDetectiveServerServer) DownloadScenarioArchive(context.Context, *DownloadScenarioArchiveReq) (*httpbody.HttpBody, error) { return nil, status.Error(codes.Unimplemented, "method DownloadScenarioArchive not implemented") } @@ -1648,6 +1666,24 @@ func _EveningDetectiveServer_UpdateScenarioIntro_Handler(srv interface{}, ctx co return interceptor(ctx, in, info, handler) } +func _EveningDetectiveServer_UpdateScenarioConclusion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateScenarioConclusionReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EveningDetectiveServerServer).UpdateScenarioConclusion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EveningDetectiveServer_UpdateScenarioConclusion_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EveningDetectiveServerServer).UpdateScenarioConclusion(ctx, req.(*UpdateScenarioConclusionReq)) + } + return interceptor(ctx, in, info, handler) +} + func _EveningDetectiveServer_DownloadScenarioArchive_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(DownloadScenarioArchiveReq) if err := dec(in); err != nil { @@ -2227,6 +2263,10 @@ var EveningDetectiveServer_ServiceDesc = grpc.ServiceDesc{ MethodName: "UpdateScenarioIntro", Handler: _EveningDetectiveServer_UpdateScenarioIntro_Handler, }, + { + MethodName: "UpdateScenarioConclusion", + Handler: _EveningDetectiveServer_UpdateScenarioConclusion_Handler, + }, { MethodName: "DownloadScenarioArchive", Handler: _EveningDetectiveServer_DownloadScenarioArchive_Handler,