diff --git a/api/main.proto b/api/main.proto index 4ea1a14..861b0c3 100644 --- a/api/main.proto +++ b/api/main.proto @@ -921,6 +921,10 @@ service EveningDetectiveServer { }; } + rpc GetScreenTeams(GetScreenTeamsReq) returns (GetScreenTeamsRsp) { + option (google.api.http) = { post: "/api/screens/teams" body: "*" }; + } + rpc GetScreenResults(GetScreenResultsReq) returns (GetScreenResultsRsp) { option (google.api.http) = { post: "/api/screens/results" body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { @@ -1783,6 +1787,14 @@ enum ScreenMode { SCREEN_MODE_RESULTS = 6; SCREEN_MODE_TIMER = 7; SCREEN_MODE_TEXT = 8; + SCREEN_MODE_QR = 9; + SCREEN_MODE_TEAMS = 10; +} + +enum ScreenTimerType { + SCREEN_TIMER_TYPE_BREAK = 0; + SCREEN_TIMER_TYPE_BEFORE_GAME = 1; + SCREEN_TIMER_TYPE_UNTIL_END = 2; } enum ScreenTimerState { @@ -1830,6 +1842,8 @@ message ScreenState { ScreenTimerState timer_state = 19; string text = 20; MusicState music = 21; + string qr_url = 22; + ScreenTimerType timer_type = 23; } message CreateScreenSessionReq {} @@ -1966,15 +1980,18 @@ message UpdateGameMapItemRsp {} message SetScreenModeReq { int32 gameID = 1; ScreenMode mode = 2; + string qr_url = 3; + string text = 4; } message SetScreenModeRsp { } message SetScreenTimerReq { - int32 gameID = 1; - int64 duration_seconds = 2; - string label = 3; + int32 gameID = 1; + int64 duration_seconds = 2; + string label = 3; + ScreenTimerType timer_type = 4; } message SetScreenTimerRsp { @@ -1991,10 +2008,12 @@ message SendScreenCommandRsp { } message ScreenPlanStep { - ScreenMode mode = 1; - string text = 2; - string timer_label = 3; - int64 timer_duration_seconds = 4; + ScreenMode mode = 1; + string text = 2; + string timer_label = 3; + int64 timer_duration_seconds = 4; + string qr_url = 5; + ScreenTimerType timer_type = 6; } message ScreenPlan { @@ -2029,6 +2048,20 @@ message SetScreenPlanStepRsp { ScreenPlan plan = 1; } +message ScreenTeam { + string ID = 1; + string name = 2; +} + +message GetScreenTeamsReq { + string screenID = 1; + string access_token = 2; +} + +message GetScreenTeamsRsp { + repeated ScreenTeam teams = 1; +} + message GetScreenResultsReq { string screenID = 1; string accessToken = 2; diff --git a/cmd/evening_detective_server/main.go b/cmd/evening_detective_server/main.go index b4d6415..a9a31a8 100644 --- a/cmd/evening_detective_server/main.go +++ b/cmd/evening_detective_server/main.go @@ -276,6 +276,7 @@ func main() { "/crabs.evening_detective_server.EveningDetectiveServer/GetScreenState": true, "/crabs.evening_detective_server.EveningDetectiveServer/AdvanceScreenMusic": true, "/crabs.evening_detective_server.EveningDetectiveServer/GetScreenResults": true, + "/crabs.evening_detective_server.EveningDetectiveServer/GetScreenTeams": true, "/crabs.evening_detective_server.EveningDetectiveServer/CreateGameReview": true, "/crabs.evening_detective_server.EveningDetectiveServer/GetGameReviews": true, }, diff --git a/cmd/evening_detective_server/main.swagger.json b/cmd/evening_detective_server/main.swagger.json index 924bb5b..2bea019 100644 --- a/cmd/evening_detective_server/main.swagger.json +++ b/cmd/evening_detective_server/main.swagger.json @@ -3055,6 +3055,38 @@ ] } }, + "/api/screens/teams": { + "post": { + "operationId": "EveningDetectiveServer_GetScreenTeams", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/evening_detective_serverGetScreenTeamsRsp" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/evening_detective_serverGetScreenTeamsReq" + } + } + ], + "tags": [ + "EveningDetectiveServer" + ] + } + }, "/api/screens/{screenID}/bind": { "post": { "summary": "Привязать экран к игре", @@ -4387,6 +4419,12 @@ "properties": { "mode": { "$ref": "#/definitions/evening_detective_serverScreenMode" + }, + "qrUrl": { + "type": "string" + }, + "text": { + "type": "string" } } }, @@ -4416,6 +4454,9 @@ }, "label": { "type": "string" + }, + "timerType": { + "$ref": "#/definitions/evening_detective_serverScreenTimerType" } } }, @@ -5551,6 +5592,29 @@ } } }, + "evening_detective_serverGetScreenTeamsReq": { + "type": "object", + "properties": { + "screenID": { + "type": "string" + }, + "accessToken": { + "type": "string" + } + } + }, + "evening_detective_serverGetScreenTeamsRsp": { + "type": "object", + "properties": { + "teams": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/evening_detective_serverScreenTeam" + } + } + } + }, "evening_detective_serverGetTaskAssigneesRsp": { "type": "object", "properties": { @@ -6064,7 +6128,9 @@ "SCREEN_MODE_CONCLUSION", "SCREEN_MODE_RESULTS", "SCREEN_MODE_TIMER", - "SCREEN_MODE_TEXT" + "SCREEN_MODE_TEXT", + "SCREEN_MODE_QR", + "SCREEN_MODE_TEAMS" ], "default": "SCREEN_MODE_UNSPECIFIED" }, @@ -6099,6 +6165,12 @@ "timerDurationSeconds": { "type": "string", "format": "int64" + }, + "qrUrl": { + "type": "string" + }, + "timerType": { + "$ref": "#/definitions/evening_detective_serverScreenTimerType" } } }, @@ -6173,6 +6245,23 @@ }, "music": { "$ref": "#/definitions/evening_detective_serverMusicState" + }, + "qrUrl": { + "type": "string" + }, + "timerType": { + "$ref": "#/definitions/evening_detective_serverScreenTimerType" + } + } + }, + "evening_detective_serverScreenTeam": { + "type": "object", + "properties": { + "ID": { + "type": "string" + }, + "name": { + "type": "string" } } }, @@ -6187,6 +6276,15 @@ ], "default": "SCREEN_TIMER_STATE_UNSPECIFIED" }, + "evening_detective_serverScreenTimerType": { + "type": "string", + "enum": [ + "SCREEN_TIMER_TYPE_BREAK", + "SCREEN_TIMER_TYPE_BEFORE_GAME", + "SCREEN_TIMER_TYPE_UNTIL_END" + ], + "default": "SCREEN_TIMER_TYPE_BREAK" + }, "evening_detective_serverSendScreenCommandRsp": { "type": "object" }, diff --git a/internal/app/screen_plan_mapper.go b/internal/app/screen_plan_mapper.go index 03b61b6..d9dffab 100644 --- a/internal/app/screen_plan_mapper.go +++ b/internal/app/screen_plan_mapper.go @@ -14,6 +14,8 @@ func mapScreenPlanSteps(steps []*proto.ScreenPlanStep) []screen_plan_service.Ste } mapped = append(mapped, screen_plan_service.Step{ Mode: int32(step.Mode), + QRURL: step.QrUrl, + TimerType: int32(step.TimerType), Text: step.Text, TimerLabel: step.TimerLabel, TimerDurationSeconds: step.TimerDurationSeconds, @@ -30,6 +32,8 @@ func mapScreenPlan(plan *screen_plan_service.Plan) *proto.ScreenPlan { for _, step := range plan.Steps { steps = append(steps, &proto.ScreenPlanStep{ Mode: proto.ScreenMode(step.Mode), + QrUrl: step.QRURL, + TimerType: proto.ScreenTimerType(step.TimerType), Text: step.Text, TimerLabel: step.TimerLabel, TimerDurationSeconds: step.TimerDurationSeconds, diff --git a/internal/app/screens.go b/internal/app/screens.go index 8e5f18d..0054cf4 100644 --- a/internal/app/screens.go +++ b/internal/app/screens.go @@ -222,6 +222,8 @@ func screenState(session *screen_service.ScreenSession) *proto.ScreenState { TimerRemainingSeconds: timerRemaining, TimerState: timerState, Text: session.Text, + QrUrl: session.QRURL, + TimerType: proto.ScreenTimerType(session.TimerType), } if time.Since(session.LastSeen) <= 5*time.Second { state.Status = "connected" @@ -277,6 +279,15 @@ func (s *server) SetScreenMode(ctx context.Context, req *proto.SetScreenModeReq) if _, err := s.gameService.GetGame(ctx, int(req.GameID)); err != nil { return nil, status.Error(codes.NotFound, "игра не найдена") } + if req.Mode == proto.ScreenMode_SCREEN_MODE_QR { + if !screen_service.ValidQR(req.QrUrl, req.Text) { + return nil, status.Error(codes.InvalidArgument, "Укажите ссылку HTTP/HTTPS до 2048 байт и текст до 10000 байт") + } + if err := s.screenService.SetQR(ctx, int(req.GameID), req.QrUrl, req.Text); err != nil { + return nil, status.Error(codes.Internal, "не удалось изменить QR-код") + } + return &proto.SetScreenModeRsp{}, nil + } if err := s.screenService.SetMode(ctx, int(req.GameID), int32(req.Mode)); err != nil { return nil, status.Error(codes.Internal, "не удалось изменить режим экранов") } @@ -287,12 +298,12 @@ func (s *server) SetScreenTimer(ctx context.Context, req *proto.SetScreenTimerRe if !canManageScreens(ctx) { return nil, status.Error(codes.PermissionDenied, "permission denied") } - if req == nil || req.GameID <= 0 || req.DurationSeconds <= 0 || req.DurationSeconds > 24*60*60 { + if req == nil || req.GameID <= 0 || req.DurationSeconds <= 0 || req.DurationSeconds > 24*60*60 || !screen_service.ValidTimerType(int32(req.TimerType)) { return nil, status.Error(codes.InvalidArgument, "некорректные параметры таймера") } label := strings.TrimSpace(req.Label) if label == "" { - label = "Перерыв" + label = screen_service.TimerLabel(int32(req.TimerType)) } if len(label) > 200 { return nil, status.Error(codes.InvalidArgument, "слишком длинная надпись таймера") @@ -300,7 +311,7 @@ func (s *server) SetScreenTimer(ctx context.Context, req *proto.SetScreenTimerRe if _, err := s.gameService.GetGame(ctx, int(req.GameID)); err != nil { return nil, status.Error(codes.NotFound, "игра не найдена") } - if err := s.screenService.SetTimer(ctx, int(req.GameID), req.DurationSeconds, label); err != nil { + if err := s.screenService.SetTimer(ctx, int(req.GameID), req.DurationSeconds, label, int32(req.TimerType)); err != nil { return nil, status.Error(codes.Internal, "не удалось настроить таймер экранов") } return &proto.SetScreenTimerRsp{}, nil @@ -366,3 +377,29 @@ func (s *server) GetScreenResults(ctx context.Context, req *proto.GetScreenResul } return &proto.GetScreenResultsRsp{Questions: mapResultsQuestions(results.Questions), Teams: mapTeamResults(results.Teams)}, nil } + +func (s *server) GetScreenTeams(ctx context.Context, req *proto.GetScreenTeamsReq) (*proto.GetScreenTeamsRsp, error) { + if req == nil || req.ScreenID == "" || req.AccessToken == "" { + return nil, status.Error(codes.InvalidArgument, "некорректные данные экрана") + } + id, err := strconv.Atoi(req.ScreenID) + if err != nil || id <= 0 { + return nil, status.Error(codes.InvalidArgument, "некорректный идентификатор экрана") + } + session, err := s.screenService.Get(ctx, id, hashScreenToken(req.AccessToken)) + if errors.Is(err, screen_service.ErrScreenNotFound) { + return nil, status.Error(codes.Unauthenticated, "недействительная сессия экрана") + } + if err != nil || session.GameID == nil { + return nil, status.Error(codes.FailedPrecondition, "экран не привязан к игре") + } + teams, err := s.teamService.GetScreenTeams(ctx, *session.GameID) + if err != nil { + return nil, status.Error(codes.Internal, "не удалось получить команды") + } + result := make([]*proto.ScreenTeam, 0, len(teams)) + for _, team := range teams { + result = append(result, &proto.ScreenTeam{ID: team.ID, Name: team.Name}) + } + return &proto.GetScreenTeamsRsp{Teams: result}, nil +} diff --git a/internal/app/screens_test.go b/internal/app/screens_test.go index 2a4d011..b9ba8c8 100644 --- a/internal/app/screens_test.go +++ b/internal/app/screens_test.go @@ -26,3 +26,22 @@ func TestSetScreenModeRejectsRemovedModes(t *testing.T) { } } } + +func TestScreenTeamsRejectsInvalidAccess(t *testing.T) { + tests := []struct { + name string + req *proto.GetScreenTeamsReq + }{ + {"missing", nil}, + {"missing token", &proto.GetScreenTeamsReq{ScreenID: "1"}}, + {"bad ID", &proto.GetScreenTeamsReq{ScreenID: "bad", AccessToken: "token"}}, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + _, err := (&server{}).GetScreenTeams(context.Background(), tt.req) + if status.Code(err) != codes.InvalidArgument { + t.Fatalf("unexpected error: %v", err) + } + }) + } +} diff --git a/internal/repos/game_screen_plans_repo/repo.go b/internal/repos/game_screen_plans_repo/repo.go index 90f619d..9bdf409 100644 --- a/internal/repos/game_screen_plans_repo/repo.go +++ b/internal/repos/game_screen_plans_repo/repo.go @@ -14,6 +14,8 @@ var ErrPlanNotFound = errors.New("план экранов не найден") // Step is a stored screen plan step. type Step struct { + QRURL string `json:"qrUrl,omitempty"` + TimerType int32 `json:"timerType,omitempty"` Mode int32 `json:"mode"` Text string `json:"text,omitempty"` TimerLabel string `json:"timerLabel,omitempty"` diff --git a/internal/repos/playlists_repo/order_test.go b/internal/repos/playlists_repo/order_test.go index 5737c1d..d6d3ed7 100644 --- a/internal/repos/playlists_repo/order_test.go +++ b/internal/repos/playlists_repo/order_test.go @@ -8,6 +8,8 @@ import ( "sync" "testing" "time" + + "evening_detective_server/internal/services/screen_service" ) func TestReorderPreservesPlaybackAndRejectsChangedMembership(t *testing.T) { @@ -135,7 +137,7 @@ func TestBindInitializesAudioWithoutChangingTransport(t *testing.T) { if isNewBinding { t.Fatal("repeat binding would reset transport") } - requireNoError(t, f.screens.InitializeScreen(ctx, second, f.gameID, 1, "", "Pause", 600)) + requireNoError(t, f.screens.InitializeScreen(ctx, second, f.gameID, 1, "", "Pause", 600, "", 0)) original, err := f.screens.Get(ctx, first, "first") requireNoError(t, err) joined, err := f.screens.Get(ctx, second, "second") @@ -245,3 +247,62 @@ func TestConcurrentBindingsAssignSoundOnce(t *testing.T) { }) } } + +func TestNewScreenStatePersistsAndCopiesToJoiningScreen(t *testing.T) { + tests := []struct { + name string + mode int32 + link, label string + timerType int32 + }{ + {name: "QR", mode: 9, link: "https://example.org/join"}, + {name: "timer", mode: 7, label: "Обсуждение", timerType: 2}, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + f := newPlaylistFixture(t) + ctx := context.Background() + first, err := f.screens.Create(ctx, "first-hash") + requireNoError(t, err) + requireNoError(t, f.screens.Bind(ctx, first, f.gameID, "first-hash")) + if tt.mode == 9 { + service := screen_service.NewScreenService(f.screens) + requireNoError(t, service.InitializeScreen(ctx, first, f.gameID, 9, "Присоединяйтесь", "", 0, tt.link, 0)) + initialized, err := f.screens.Get(ctx, first, "first-hash") + requireNoError(t, err) + if initialized.TimerDurationSeconds != 600 { + t.Fatal("non-timer plan initialized an invalid timer") + } + requireNoError(t, f.screens.SetQR(ctx, f.gameID, tt.link, "Присоединяйтесь")) + } else { + requireNoError(t, f.screens.SetTimer(ctx, f.gameID, 60, tt.label, tt.timerType)) + } + second, err := f.screens.Create(ctx, "second-hash") + requireNoError(t, err) + requireNoError(t, f.screens.Bind(ctx, second, f.gameID, "second-hash")) + requireNoError(t, f.screens.InitializeScreen(ctx, second, f.gameID, 1, "", "Перерыв", 600, "", 0)) + copied, err := f.screens.Get(ctx, second, "second-hash") + requireNoError(t, err) + if copied.Mode != tt.mode || copied.QRURL != tt.link || copied.TimerType != tt.timerType { + t.Fatalf("joining screen lost state: %+v", copied) + } + if tt.mode == 9 && copied.Text != "Присоединяйтесь" { + t.Fatal("lost QR caption") + } + if tt.mode == 7 && (copied.TimerLabel != tt.label || copied.TimerDurationSeconds != 60) { + t.Fatal("lost timer settings") + } + all, err := f.screens.ListByGame(ctx, f.gameID) + requireNoError(t, err) + if len(all) != 2 || all[1].QRURL != copied.QRURL || all[1].TimerType != copied.TimerType { + t.Fatal("state list lost new fields") + } + requireNoError(t, f.screens.Unbind(ctx, second)) + detached, err := f.screens.Get(ctx, second, "second-hash") + requireNoError(t, err) + if detached.QRURL != "" || detached.TimerType != 0 { + t.Fatal("unbind retained another game's settings") + } + }) + } +} diff --git a/internal/repos/screen_sessions_repo/repo.go b/internal/repos/screen_sessions_repo/repo.go index a0ca0d5..e29fa06 100644 --- a/internal/repos/screen_sessions_repo/repo.go +++ b/internal/repos/screen_sessions_repo/repo.go @@ -29,6 +29,8 @@ type ScreenSession struct { TimerRemainingSeconds int64 TimerState int32 TimerEndsAt *time.Time + QRURL string + TimerType int32 Text string } @@ -55,20 +57,41 @@ func (r *ScreenSessionsRepo) Create(ctx context.Context, tokenHash string) (int, // Get returns a screen session by ID and token hash. func (r *ScreenSessionsRepo) Get(ctx context.Context, id int, tokenHash string) (*ScreenSession, error) { session := &ScreenSession{ID: id} - err := r.pool.QueryRow(ctx, ` - SELECT game_id, sound_enabled, last_seen_at, mode, state_version, position_ms, command, volume, - timer_label, timer_duration_seconds, timer_remaining_seconds, timer_state, timer_ends_at, text + err := r.pool.QueryRow( + ctx, + `SELECT + game_id, + sound_enabled, + last_seen_at, + mode, + state_version, + position_ms, + command, + volume, + timer_label, + timer_duration_seconds, + timer_remaining_seconds, + timer_state, + timer_ends_at, + text, + qr_url, + timer_type FROM screen_sessions - WHERE id = $1 AND access_token_hash = $2`, id, tokenHash). + WHERE id = $1 AND access_token_hash = $2`, + id, + tokenHash, + ). Scan(&session.GameID, &session.Sound, &session.LastSeen, &session.Mode, &session.Version, &session.Position, &session.Command, &session.Volume, - &session.TimerLabel, &session.TimerDurationSeconds, &session.TimerRemainingSeconds, &session.TimerState, &session.TimerEndsAt, &session.Text) + &session.TimerLabel, &session.TimerDurationSeconds, &session.TimerRemainingSeconds, &session.TimerState, &session.TimerEndsAt, &session.Text, &session.QRURL, &session.TimerType) if errors.Is(err, pgx.ErrNoRows) { return nil, ErrScreenNotFound } if err != nil { return nil, err } - _, err = r.pool.Exec(ctx, `UPDATE screen_sessions SET last_seen_at = NOW() WHERE id = $1`, id) + _, err = r.pool.Exec(ctx, `UPDATE screen_sessions SET last_seen_at = NOW() WHERE id = $1`, + id, + ) if err != nil { return nil, err } @@ -78,12 +101,31 @@ func (r *ScreenSessionsRepo) Get(ctx context.Context, id int, tokenHash string) // ListByGame returns screen sessions for a game. func (r *ScreenSessionsRepo) ListByGame(ctx context.Context, gameID int) ([]*ScreenSession, error) { - rows, err := r.pool.Query(ctx, ` - SELECT id, game_id, sound_enabled, last_seen_at, mode, state_version, position_ms, command, volume, - timer_label, timer_duration_seconds, timer_remaining_seconds, timer_state, timer_ends_at, text + rows, err := r.pool.Query( + ctx, + `SELECT + id, + game_id, + sound_enabled, + last_seen_at, + mode, + state_version, + position_ms, + command, + volume, + timer_label, + timer_duration_seconds, + timer_remaining_seconds, + timer_state, + timer_ends_at, + text, + qr_url, + timer_type FROM screen_sessions WHERE game_id = $1 - ORDER BY id`, gameID) + ORDER BY id`, + gameID, + ) if err != nil { return nil, err } @@ -93,7 +135,7 @@ func (r *ScreenSessionsRepo) ListByGame(ctx context.Context, gameID int) ([]*Scr for rows.Next() { session := &ScreenSession{} if err := rows.Scan(&session.ID, &session.GameID, &session.Sound, &session.LastSeen, &session.Mode, &session.Version, &session.Position, &session.Command, &session.Volume, - &session.TimerLabel, &session.TimerDurationSeconds, &session.TimerRemainingSeconds, &session.TimerState, &session.TimerEndsAt, &session.Text); err != nil { + &session.TimerLabel, &session.TimerDurationSeconds, &session.TimerRemainingSeconds, &session.TimerState, &session.TimerEndsAt, &session.Text, &session.QRURL, &session.TimerType); err != nil { return nil, err } sessions = append(sessions, session) @@ -148,10 +190,12 @@ func (r *ScreenSessionsRepo) SetCommand(ctx context.Context, gameID int, command } // SetTimer updates the display timer for a game. -func (r *ScreenSessionsRepo) SetTimer(ctx context.Context, gameID int, duration int64, label string) error { - _, err := r.pool.Exec(ctx, ` - UPDATE screen_sessions +func (r *ScreenSessionsRepo) SetTimer(ctx context.Context, gameID int, duration int64, label string, timerType int32) error { + _, err := r.pool.Exec( + ctx, + `UPDATE screen_sessions SET mode = 7, + timer_type = $4, timer_label = $2, timer_duration_seconds = $3, timer_remaining_seconds = $3, @@ -161,7 +205,12 @@ func (r *ScreenSessionsRepo) SetTimer(ctx context.Context, gameID int, duration state_version = state_version + 1, text = '', updated_at = NOW() - WHERE game_id = $1`, gameID, label, duration) + WHERE game_id = $1`, + gameID, + label, + duration, + timerType, + ) return err } @@ -280,12 +329,15 @@ func (r *ScreenSessionsRepo) BindWithAudio(ctx context.Context, id, gameID int, // Unbind detaches a screen session from its game. func (r *ScreenSessionsRepo) Unbind(ctx context.Context, id int) error { - result, err := r.pool.Exec(ctx, ` - UPDATE screen_sessions + result, err := r.pool.Exec( + ctx, + `UPDATE screen_sessions SET game_id = NULL, mode = 1, command = 0, position_ms = 0, + qr_url = '', + timer_type = 0, timer_label = 'Перерыв', timer_duration_seconds = 600, timer_remaining_seconds = 600, @@ -294,7 +346,9 @@ func (r *ScreenSessionsRepo) Unbind(ctx context.Context, id int) error { text = '', state_version = state_version + 1, updated_at = NOW() - WHERE id = $1`, id) + WHERE id = $1`, + id, + ) if err != nil { return err } @@ -339,12 +393,14 @@ func (r *ScreenSessionsRepo) SetSound(ctx context.Context, id int, enabled bool) } // InitializeScreen copies a live display or uses the plan for the first screen. -func (r *ScreenSessionsRepo) InitializeScreen(ctx context.Context, id, gameID int, mode int32, text, label string, duration int64) error { +func (r *ScreenSessionsRepo) InitializeScreen(ctx context.Context, id, gameID int, mode int32, text, label string, duration int64, qrURL string, timerType int32) error { _, err := r.pool.Exec( ctx, `UPDATE screen_sessions target SET mode = COALESCE(source.mode, $3), text = COALESCE(source.text, $4), + qr_url = COALESCE(source.qr_url, $7), + timer_type = COALESCE(source.timer_type, $8), command = COALESCE(source.command, 0), position_ms = COALESCE(source.position_ms, 0), timer_label = COALESCE(source.timer_label, $5), @@ -365,7 +421,9 @@ func (r *ScreenSessionsRepo) InitializeScreen(ctx context.Context, id, gameID in timer_duration_seconds, timer_remaining_seconds, timer_state, - timer_ends_at + timer_ends_at, + qr_url, + timer_type FROM screen_sessions WHERE game_id = $2 AND id <> $1 ORDER BY updated_at DESC, id DESC @@ -378,6 +436,27 @@ func (r *ScreenSessionsRepo) InitializeScreen(ctx context.Context, id, gameID in text, label, duration, + qrURL, + timerType, + ) + return err +} + +// SetQR updates QR content and mode together. +func (r *ScreenSessionsRepo) SetQR(ctx context.Context, gameID int, link, text string) error { + _, err := r.pool.Exec( + ctx, + `UPDATE screen_sessions + SET mode = 9, + qr_url = $2, + text = $3, + command = 0, + state_version = state_version + 1, + updated_at = NOW() + WHERE game_id = $1`, + gameID, + link, + text, ) return err } diff --git a/internal/services/screen_plan_service/mapper.go b/internal/services/screen_plan_service/mapper.go index 3585c98..cabf9ed 100644 --- a/internal/services/screen_plan_service/mapper.go +++ b/internal/services/screen_plan_service/mapper.go @@ -7,6 +7,8 @@ func mapPlan(plan *game_screen_plans_repo.Plan) *Plan { for _, step := range plan.Steps { steps = append(steps, Step{ Mode: step.Mode, + QRURL: step.QRURL, + TimerType: step.TimerType, Text: step.Text, TimerLabel: step.TimerLabel, TimerDurationSeconds: step.TimerDurationSeconds, @@ -20,6 +22,8 @@ func mapSteps(steps []Step) []game_screen_plans_repo.Step { for _, step := range steps { mapped = append(mapped, game_screen_plans_repo.Step{ Mode: step.Mode, + QRURL: step.QRURL, + TimerType: step.TimerType, Text: step.Text, TimerLabel: step.TimerLabel, TimerDurationSeconds: step.TimerDurationSeconds, diff --git a/internal/services/screen_plan_service/service.go b/internal/services/screen_plan_service/service.go index d11854e..e95be76 100644 --- a/internal/services/screen_plan_service/service.go +++ b/internal/services/screen_plan_service/service.go @@ -21,6 +21,8 @@ var ( // Step is a screen plan step used by the application layer. type Step struct { + QRURL string + TimerType int32 Mode int32 Text string TimerLabel string @@ -103,13 +105,13 @@ func (s *ScreenPlanService) SetStep(ctx context.Context, gameID, currentStep int func (s *ScreenPlanService) ApplyCurrent(ctx context.Context, gameID, screenID int) error { plan, err := s.Get(ctx, gameID) if errors.Is(err, ErrPlanNotFound) { - return s.screenService.InitializeScreen(ctx, screenID, gameID, 1, "", "Перерыв", 600) + return s.screenService.InitializeScreen(ctx, screenID, gameID, 1, "", "Перерыв", 600, "", 0) } if err != nil { return err } step := plan.Steps[plan.CurrentStep] - return s.screenService.InitializeScreen(ctx, screenID, gameID, step.Mode, step.Text, step.TimerLabel, step.TimerDurationSeconds) + return s.screenService.InitializeScreen(ctx, screenID, gameID, step.Mode, step.Text, step.TimerLabel, step.TimerDurationSeconds, step.QRURL, step.TimerType) } func normalizePlan(steps []Step, currentStep int) ([]Step, error) { @@ -126,12 +128,18 @@ func normalizePlan(steps []Step, currentStep int) ([]Step, error) { if step.Mode == 8 && (step.Text == "" || len(step.Text) > 10000) { return nil, ErrInvalidPlan } + if step.Mode == 9 && !screen_service.ValidQR(step.QRURL, step.Text) { + return nil, ErrInvalidPlan + } + if !screen_service.ValidTimerType(step.TimerType) { + return nil, ErrInvalidPlan + } if step.Mode == 7 { if step.TimerDurationSeconds <= 0 || step.TimerDurationSeconds > 24*60*60 { return nil, ErrInvalidPlan } if step.TimerLabel == "" { - step.TimerLabel = "Перерыв" + step.TimerLabel = screen_service.TimerLabel(step.TimerType) } if len(step.TimerLabel) > 200 { return nil, ErrInvalidPlan @@ -144,11 +152,14 @@ func normalizePlan(steps []Step, currentStep int) ([]Step, error) { func (s *ScreenPlanService) applyStep(ctx context.Context, gameID int, plan *Plan) error { step := plan.Steps[plan.CurrentStep] + if step.Mode == 9 { + return s.screenService.SetQR(ctx, gameID, step.QRURL, step.Text) + } if step.Mode == 8 { return s.screenService.SetText(ctx, gameID, step.Text) } if step.Mode == 7 { - return s.screenService.SetTimer(ctx, gameID, step.TimerDurationSeconds, step.TimerLabel) + return s.screenService.SetTimer(ctx, gameID, step.TimerDurationSeconds, step.TimerLabel, step.TimerType) } return s.screenService.SetMode(ctx, gameID, step.Mode) } diff --git a/internal/services/screen_plan_service/service_test.go b/internal/services/screen_plan_service/service_test.go index a6d4eb8..6e9fa7d 100644 --- a/internal/services/screen_plan_service/service_test.go +++ b/internal/services/screen_plan_service/service_test.go @@ -3,6 +3,8 @@ package screen_plan_service import ( "errors" "testing" + + "evening_detective_server/internal/repos/game_screen_plans_repo" ) func TestNormalizePlan(t *testing.T) { @@ -52,3 +54,38 @@ func TestNormalizePlan(t *testing.T) { }) } } + +func TestNormalizeNewScreens(t *testing.T) { + tests := []struct { + name string + step Step + wantLabel string + wantErr bool + }{ + {name: "QR", step: Step{Mode: 9, QRURL: "https://example.org", Text: ""}}, + {name: "teams", step: Step{Mode: 10}}, + {name: "invalid QR", step: Step{Mode: 9, QRURL: "javascript:alert(1)"}, wantErr: true}, + {name: "before game", step: Step{Mode: 7, TimerType: 1, TimerDurationSeconds: 60}, wantLabel: "До начала игры"}, + {name: "until end", step: Step{Mode: 7, TimerType: 2, TimerDurationSeconds: 60}, wantLabel: "До конца игры"}, + {name: "custom legacy", step: Step{Mode: 7, TimerLabel: "Обсуждение", TimerDurationSeconds: 60}, wantLabel: "Обсуждение"}, + {name: "invalid type", step: Step{Mode: 7, TimerType: 3, TimerDurationSeconds: 60}, wantErr: true}, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result, err := normalizePlan([]Step{tt.step}, 0) + if (err != nil) != tt.wantErr { + t.Fatalf("normalizePlan() error: %v", err) + } + if tt.wantErr { + return + } + if result[0].TimerLabel != tt.wantLabel { + t.Fatalf("label = %q", result[0].TimerLabel) + } + roundTrip := mapPlan(&game_screen_plans_repo.Plan{Steps: mapSteps(result)}) + if roundTrip.Steps[0] != result[0] { + t.Fatal("lost step fields") + } + }) + } +} diff --git a/internal/services/screen_service/mapper.go b/internal/services/screen_service/mapper.go index c2a31e4..d2a4096 100644 --- a/internal/services/screen_service/mapper.go +++ b/internal/services/screen_service/mapper.go @@ -23,6 +23,8 @@ type ScreenSession struct { TimerRemainingSeconds int64 TimerState int32 TimerEndsAt *time.Time + QRURL string + TimerType int32 Text string } @@ -43,5 +45,7 @@ func mapSession(session *screen_sessions_repo.ScreenSession) *ScreenSession { TimerState: session.TimerState, TimerEndsAt: session.TimerEndsAt, Text: session.Text, + QRURL: session.QRURL, + TimerType: session.TimerType, } } diff --git a/internal/services/screen_service/service.go b/internal/services/screen_service/service.go index 466657c..508a3a0 100644 --- a/internal/services/screen_service/service.go +++ b/internal/services/screen_service/service.go @@ -3,6 +3,8 @@ package screen_service import ( "context" "errors" + "net/url" + "strings" "evening_detective_server/internal/repos/screen_sessions_repo" ) @@ -53,7 +55,7 @@ func (s *ScreenService) ListByGame(ctx context.Context, gameID int) ([]*ScreenSe // ValidMode reports whether mode is a supported display mode. func ValidMode(mode int32) bool { switch mode { - case 1, 2, 4, 6, 7, 8: + case 1, 2, 4, 6, 7, 8, 9, 10: return true default: return false @@ -69,8 +71,11 @@ func (s *ScreenService) SetMode(ctx context.Context, gameID int, mode int32) err } // SetTimer updates the display timer for a game. -func (s *ScreenService) SetTimer(ctx context.Context, gameID int, duration int64, label string) error { - return s.repo.SetTimer(ctx, gameID, duration, label) +func (s *ScreenService) SetTimer(ctx context.Context, gameID int, duration int64, label string, timerType int32) error { + if !ValidTimerType(timerType) { + return ErrInvalidMode + } + return s.repo.SetTimer(ctx, gameID, duration, label, timerType) } // SetText updates the text screen for a game. @@ -112,6 +117,42 @@ func mapError(err error) error { } // InitializeScreen joins the current display without resetting other screens. -func (s *ScreenService) InitializeScreen(ctx context.Context, id, gameID int, mode int32, text, label string, duration int64) error { - return s.repo.InitializeScreen(ctx, id, gameID, mode, text, label, duration) +func (s *ScreenService) InitializeScreen(ctx context.Context, id, gameID int, mode int32, text, label string, duration int64, qrURL string, timerType int32) error { + // Non-timer steps have no duration, but every state includes a valid timer. + if mode != 7 && duration == 0 { + duration = 600 + } + if label == "" { + label = TimerLabel(timerType) + } + return s.repo.InitializeScreen(ctx, id, gameID, mode, text, label, duration, qrURL, timerType) +} + +// ValidQR validates a URL and caption without fetching the URL. +func ValidQR(link, text string) bool { + u, err := url.Parse(link) + return err == nil && (u.Scheme == "https" || u.Scheme == "http") && u.Hostname() != "" && u.User == nil && len(link) <= 2048 && len(text) <= 10000 && strings.TrimSpace(link) == link +} + +// ValidTimerType reports whether the timer category is supported. +func ValidTimerType(kind int32) bool { return kind >= 0 && kind <= 2 } + +// TimerLabel returns the initial caption for a timer category. +func TimerLabel(kind int32) string { + switch kind { + case 1: + return "До начала игры" + case 2: + return "До конца игры" + default: + return "Перерыв" + } +} + +// SetQR updates the QR screen for a game. +func (s *ScreenService) SetQR(ctx context.Context, gameID int, link, text string) error { + if !ValidQR(link, text) { + return ErrInvalidMode + } + return s.repo.SetQR(ctx, gameID, link, text) } diff --git a/internal/services/screen_service/service_test.go b/internal/services/screen_service/service_test.go index e4f6ad3..6da97c4 100644 --- a/internal/services/screen_service/service_test.go +++ b/internal/services/screen_service/service_test.go @@ -3,14 +3,38 @@ package screen_service import ( "context" "errors" + "strings" "testing" ) func TestSetModeRejectsUnsupportedModes(t *testing.T) { s := NewScreenService(nil) - for _, mode := range []int32{-1, 0, 3, 5, 9} { + for _, mode := range []int32{-1, 0, 3, 5, 11} { if err := s.SetMode(context.Background(), 1, mode); !errors.Is(err, ErrInvalidMode) { t.Errorf("SetMode(%d) = %v, want ErrInvalidMode", mode, err) } } } + +func TestValidQR(t *testing.T) { + tests := []struct { + name, link, caption string + valid bool + }{ + {"link without caption", "https://example.org/join?q=1#join", "", true}, + {"caption", "http://localhost:8080", "Команды", true}, + {"missing link", "", "Текст", false}, + {"script", "javascript:alert(1)", "", false}, + {"missing host", "https:///path", "", false}, + {"credentials", "https://user:secret@example.org", "", false}, + {"long link", "https://example.org/" + strings.Repeat("x", 2048), "", false}, + {"long caption", "https://example.org", strings.Repeat("я", 5001), false}, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if got := ValidQR(tt.link, tt.caption); got != tt.valid { + t.Fatalf("ValidQR() = %v", got) + } + }) + } +} diff --git a/internal/services/team_service/service.go b/internal/services/team_service/service.go index a243ac1..2553534 100644 --- a/internal/services/team_service/service.go +++ b/internal/services/team_service/service.go @@ -210,3 +210,8 @@ func (s *TeamService) CheckPresence(ctx context.Context, teamID string, password } return team.GameID, nil } + +// GetScreenTeams returns active registrations for the public screen. +func (s *TeamService) GetScreenTeams(ctx context.Context, gameID int) ([]*repos.Team, error) { + return s.teamsRepo.GetActiveTeamsByGameID(ctx, gameID) +} diff --git a/migrations/20261023130000_screen_qr_timer_type.sql b/migrations/20261023130000_screen_qr_timer_type.sql new file mode 100644 index 0000000..904f349 --- /dev/null +++ b/migrations/20261023130000_screen_qr_timer_type.sql @@ -0,0 +1,7 @@ +-- +goose Up +ALTER TABLE screen_sessions + ADD COLUMN qr_url TEXT NOT NULL DEFAULT '', + ADD COLUMN timer_type INTEGER NOT NULL DEFAULT 0 CHECK (timer_type BETWEEN 0 AND 2); + +-- +goose Down +ALTER TABLE screen_sessions DROP COLUMN qr_url, DROP COLUMN timer_type; diff --git a/proto/main.pb.go b/proto/main.pb.go index b06cc1c..1853406 100644 --- a/proto/main.pb.go +++ b/proto/main.pb.go @@ -41,18 +41,22 @@ const ( ScreenMode_SCREEN_MODE_RESULTS ScreenMode = 6 ScreenMode_SCREEN_MODE_TIMER ScreenMode = 7 ScreenMode_SCREEN_MODE_TEXT ScreenMode = 8 + ScreenMode_SCREEN_MODE_QR ScreenMode = 9 + ScreenMode_SCREEN_MODE_TEAMS ScreenMode = 10 ) // Enum value maps for ScreenMode. var ( ScreenMode_name = map[int32]string{ - 0: "SCREEN_MODE_UNSPECIFIED", - 1: "SCREEN_MODE_COVER", - 2: "SCREEN_MODE_INTRO", - 4: "SCREEN_MODE_CONCLUSION", - 6: "SCREEN_MODE_RESULTS", - 7: "SCREEN_MODE_TIMER", - 8: "SCREEN_MODE_TEXT", + 0: "SCREEN_MODE_UNSPECIFIED", + 1: "SCREEN_MODE_COVER", + 2: "SCREEN_MODE_INTRO", + 4: "SCREEN_MODE_CONCLUSION", + 6: "SCREEN_MODE_RESULTS", + 7: "SCREEN_MODE_TIMER", + 8: "SCREEN_MODE_TEXT", + 9: "SCREEN_MODE_QR", + 10: "SCREEN_MODE_TEAMS", } ScreenMode_value = map[string]int32{ "SCREEN_MODE_UNSPECIFIED": 0, @@ -62,6 +66,8 @@ var ( "SCREEN_MODE_RESULTS": 6, "SCREEN_MODE_TIMER": 7, "SCREEN_MODE_TEXT": 8, + "SCREEN_MODE_QR": 9, + "SCREEN_MODE_TEAMS": 10, } ) @@ -92,6 +98,55 @@ func (ScreenMode) EnumDescriptor() ([]byte, []int) { return file_main_proto_rawDescGZIP(), []int{0} } +type ScreenTimerType int32 + +const ( + ScreenTimerType_SCREEN_TIMER_TYPE_BREAK ScreenTimerType = 0 + ScreenTimerType_SCREEN_TIMER_TYPE_BEFORE_GAME ScreenTimerType = 1 + ScreenTimerType_SCREEN_TIMER_TYPE_UNTIL_END ScreenTimerType = 2 +) + +// Enum value maps for ScreenTimerType. +var ( + ScreenTimerType_name = map[int32]string{ + 0: "SCREEN_TIMER_TYPE_BREAK", + 1: "SCREEN_TIMER_TYPE_BEFORE_GAME", + 2: "SCREEN_TIMER_TYPE_UNTIL_END", + } + ScreenTimerType_value = map[string]int32{ + "SCREEN_TIMER_TYPE_BREAK": 0, + "SCREEN_TIMER_TYPE_BEFORE_GAME": 1, + "SCREEN_TIMER_TYPE_UNTIL_END": 2, + } +) + +func (x ScreenTimerType) Enum() *ScreenTimerType { + p := new(ScreenTimerType) + *p = x + return p +} + +func (x ScreenTimerType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ScreenTimerType) Descriptor() protoreflect.EnumDescriptor { + return file_main_proto_enumTypes[1].Descriptor() +} + +func (ScreenTimerType) Type() protoreflect.EnumType { + return &file_main_proto_enumTypes[1] +} + +func (x ScreenTimerType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ScreenTimerType.Descriptor instead. +func (ScreenTimerType) EnumDescriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{1} +} + type ScreenTimerState int32 const ( @@ -131,11 +186,11 @@ func (x ScreenTimerState) String() string { } func (ScreenTimerState) Descriptor() protoreflect.EnumDescriptor { - return file_main_proto_enumTypes[1].Descriptor() + return file_main_proto_enumTypes[2].Descriptor() } func (ScreenTimerState) Type() protoreflect.EnumType { - return &file_main_proto_enumTypes[1] + return &file_main_proto_enumTypes[2] } func (x ScreenTimerState) Number() protoreflect.EnumNumber { @@ -144,7 +199,7 @@ func (x ScreenTimerState) Number() protoreflect.EnumNumber { // Deprecated: Use ScreenTimerState.Descriptor instead. func (ScreenTimerState) EnumDescriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{1} + return file_main_proto_rawDescGZIP(), []int{2} } type ScreenCommand int32 @@ -207,11 +262,11 @@ func (x ScreenCommand) String() string { } func (ScreenCommand) Descriptor() protoreflect.EnumDescriptor { - return file_main_proto_enumTypes[2].Descriptor() + return file_main_proto_enumTypes[3].Descriptor() } func (ScreenCommand) Type() protoreflect.EnumType { - return &file_main_proto_enumTypes[2] + return &file_main_proto_enumTypes[3] } func (x ScreenCommand) Number() protoreflect.EnumNumber { @@ -220,7 +275,7 @@ func (x ScreenCommand) Number() protoreflect.EnumNumber { // Deprecated: Use ScreenCommand.Descriptor instead. func (ScreenCommand) EnumDescriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{2} + return file_main_proto_rawDescGZIP(), []int{3} } type MusicPlaybackState int32 @@ -259,11 +314,11 @@ func (x MusicPlaybackState) String() string { } func (MusicPlaybackState) Descriptor() protoreflect.EnumDescriptor { - return file_main_proto_enumTypes[3].Descriptor() + return file_main_proto_enumTypes[4].Descriptor() } func (MusicPlaybackState) Type() protoreflect.EnumType { - return &file_main_proto_enumTypes[3] + return &file_main_proto_enumTypes[4] } func (x MusicPlaybackState) Number() protoreflect.EnumNumber { @@ -272,7 +327,7 @@ func (x MusicPlaybackState) Number() protoreflect.EnumNumber { // Deprecated: Use MusicPlaybackState.Descriptor instead. func (MusicPlaybackState) EnumDescriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{3} + return file_main_proto_rawDescGZIP(), []int{4} } type PingReq struct { @@ -5892,6 +5947,8 @@ type ScreenState struct { TimerState ScreenTimerState `protobuf:"varint,19,opt,name=timer_state,json=timerState,proto3,enum=crabs.evening_detective_server.ScreenTimerState" json:"timer_state,omitempty"` Text string `protobuf:"bytes,20,opt,name=text,proto3" json:"text,omitempty"` Music *MusicState `protobuf:"bytes,21,opt,name=music,proto3" json:"music,omitempty"` + QrUrl string `protobuf:"bytes,22,opt,name=qr_url,json=qrUrl,proto3" json:"qr_url,omitempty"` + TimerType ScreenTimerType `protobuf:"varint,23,opt,name=timer_type,json=timerType,proto3,enum=crabs.evening_detective_server.ScreenTimerType" json:"timer_type,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -6073,6 +6130,20 @@ func (x *ScreenState) GetMusic() *MusicState { return nil } +func (x *ScreenState) GetQrUrl() string { + if x != nil { + return x.QrUrl + } + return "" +} + +func (x *ScreenState) GetTimerType() ScreenTimerType { + if x != nil { + return x.TimerType + } + return ScreenTimerType_SCREEN_TIMER_TYPE_BREAK +} + type CreateScreenSessionReq struct { state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields @@ -7373,6 +7444,8 @@ type SetScreenModeReq struct { state protoimpl.MessageState `protogen:"open.v1"` GameID int32 `protobuf:"varint,1,opt,name=gameID,proto3" json:"gameID,omitempty"` Mode ScreenMode `protobuf:"varint,2,opt,name=mode,proto3,enum=crabs.evening_detective_server.ScreenMode" json:"mode,omitempty"` + QrUrl string `protobuf:"bytes,3,opt,name=qr_url,json=qrUrl,proto3" json:"qr_url,omitempty"` + Text string `protobuf:"bytes,4,opt,name=text,proto3" json:"text,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -7421,6 +7494,20 @@ func (x *SetScreenModeReq) GetMode() ScreenMode { return ScreenMode_SCREEN_MODE_UNSPECIFIED } +func (x *SetScreenModeReq) GetQrUrl() string { + if x != nil { + return x.QrUrl + } + return "" +} + +func (x *SetScreenModeReq) GetText() string { + if x != nil { + return x.Text + } + return "" +} + type SetScreenModeRsp struct { state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields @@ -7462,6 +7549,7 @@ type SetScreenTimerReq struct { GameID int32 `protobuf:"varint,1,opt,name=gameID,proto3" json:"gameID,omitempty"` DurationSeconds int64 `protobuf:"varint,2,opt,name=duration_seconds,json=durationSeconds,proto3" json:"duration_seconds,omitempty"` Label string `protobuf:"bytes,3,opt,name=label,proto3" json:"label,omitempty"` + TimerType ScreenTimerType `protobuf:"varint,4,opt,name=timer_type,json=timerType,proto3,enum=crabs.evening_detective_server.ScreenTimerType" json:"timer_type,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -7517,6 +7605,13 @@ func (x *SetScreenTimerReq) GetLabel() string { return "" } +func (x *SetScreenTimerReq) GetTimerType() ScreenTimerType { + if x != nil { + return x.TimerType + } + return ScreenTimerType_SCREEN_TIMER_TYPE_BREAK +} + type SetScreenTimerRsp struct { state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields @@ -7663,6 +7758,8 @@ type ScreenPlanStep struct { Text string `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"` TimerLabel string `protobuf:"bytes,3,opt,name=timer_label,json=timerLabel,proto3" json:"timer_label,omitempty"` TimerDurationSeconds int64 `protobuf:"varint,4,opt,name=timer_duration_seconds,json=timerDurationSeconds,proto3" json:"timer_duration_seconds,omitempty"` + QrUrl string `protobuf:"bytes,5,opt,name=qr_url,json=qrUrl,proto3" json:"qr_url,omitempty"` + TimerType ScreenTimerType `protobuf:"varint,6,opt,name=timer_type,json=timerType,proto3,enum=crabs.evening_detective_server.ScreenTimerType" json:"timer_type,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -7725,6 +7822,20 @@ func (x *ScreenPlanStep) GetTimerDurationSeconds() int64 { return 0 } +func (x *ScreenPlanStep) GetQrUrl() string { + if x != nil { + return x.QrUrl + } + return "" +} + +func (x *ScreenPlanStep) GetTimerType() ScreenTimerType { + if x != nil { + return x.TimerType + } + return ScreenTimerType_SCREEN_TIMER_TYPE_BREAK +} + type ScreenPlan struct { state protoimpl.MessageState `protogen:"open.v1"` Steps []*ScreenPlanStep `protobuf:"bytes,1,rep,name=steps,proto3" json:"steps,omitempty"` @@ -8065,6 +8176,154 @@ func (x *SetScreenPlanStepRsp) GetPlan() *ScreenPlan { return nil } +type ScreenTeam struct { + state protoimpl.MessageState `protogen:"open.v1"` + ID string `protobuf:"bytes,1,opt,name=ID,proto3" json:"ID,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ScreenTeam) Reset() { + *x = ScreenTeam{} + mi := &file_main_proto_msgTypes[153] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ScreenTeam) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ScreenTeam) ProtoMessage() {} + +func (x *ScreenTeam) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[153] + 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 ScreenTeam.ProtoReflect.Descriptor instead. +func (*ScreenTeam) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{153} +} + +func (x *ScreenTeam) GetID() string { + if x != nil { + return x.ID + } + return "" +} + +func (x *ScreenTeam) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type GetScreenTeamsReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + ScreenID string `protobuf:"bytes,1,opt,name=screenID,proto3" json:"screenID,omitempty"` + AccessToken string `protobuf:"bytes,2,opt,name=access_token,json=accessToken,proto3" json:"access_token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetScreenTeamsReq) Reset() { + *x = GetScreenTeamsReq{} + mi := &file_main_proto_msgTypes[154] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetScreenTeamsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetScreenTeamsReq) ProtoMessage() {} + +func (x *GetScreenTeamsReq) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[154] + 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 GetScreenTeamsReq.ProtoReflect.Descriptor instead. +func (*GetScreenTeamsReq) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{154} +} + +func (x *GetScreenTeamsReq) GetScreenID() string { + if x != nil { + return x.ScreenID + } + return "" +} + +func (x *GetScreenTeamsReq) GetAccessToken() string { + if x != nil { + return x.AccessToken + } + return "" +} + +type GetScreenTeamsRsp struct { + state protoimpl.MessageState `protogen:"open.v1"` + Teams []*ScreenTeam `protobuf:"bytes,1,rep,name=teams,proto3" json:"teams,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetScreenTeamsRsp) Reset() { + *x = GetScreenTeamsRsp{} + mi := &file_main_proto_msgTypes[155] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetScreenTeamsRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetScreenTeamsRsp) ProtoMessage() {} + +func (x *GetScreenTeamsRsp) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[155] + 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 GetScreenTeamsRsp.ProtoReflect.Descriptor instead. +func (*GetScreenTeamsRsp) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{155} +} + +func (x *GetScreenTeamsRsp) GetTeams() []*ScreenTeam { + if x != nil { + return x.Teams + } + return nil +} + type GetScreenResultsReq struct { state protoimpl.MessageState `protogen:"open.v1"` ScreenID string `protobuf:"bytes,1,opt,name=screenID,proto3" json:"screenID,omitempty"` @@ -8075,7 +8334,7 @@ type GetScreenResultsReq struct { func (x *GetScreenResultsReq) Reset() { *x = GetScreenResultsReq{} - mi := &file_main_proto_msgTypes[153] + mi := &file_main_proto_msgTypes[156] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8087,7 +8346,7 @@ func (x *GetScreenResultsReq) String() string { func (*GetScreenResultsReq) ProtoMessage() {} func (x *GetScreenResultsReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[153] + mi := &file_main_proto_msgTypes[156] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8100,7 +8359,7 @@ func (x *GetScreenResultsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetScreenResultsReq.ProtoReflect.Descriptor instead. func (*GetScreenResultsReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{153} + return file_main_proto_rawDescGZIP(), []int{156} } func (x *GetScreenResultsReq) GetScreenID() string { @@ -8127,7 +8386,7 @@ type GetScreenResultsRsp struct { func (x *GetScreenResultsRsp) Reset() { *x = GetScreenResultsRsp{} - mi := &file_main_proto_msgTypes[154] + mi := &file_main_proto_msgTypes[157] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8139,7 +8398,7 @@ func (x *GetScreenResultsRsp) String() string { func (*GetScreenResultsRsp) ProtoMessage() {} func (x *GetScreenResultsRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[154] + mi := &file_main_proto_msgTypes[157] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8152,7 +8411,7 @@ func (x *GetScreenResultsRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetScreenResultsRsp.ProtoReflect.Descriptor instead. func (*GetScreenResultsRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{154} + return file_main_proto_rawDescGZIP(), []int{157} } func (x *GetScreenResultsRsp) GetQuestions() []*ResultsQuestion { @@ -8179,7 +8438,7 @@ type GetParticipationReq struct { func (x *GetParticipationReq) Reset() { *x = GetParticipationReq{} - mi := &file_main_proto_msgTypes[155] + mi := &file_main_proto_msgTypes[158] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8191,7 +8450,7 @@ func (x *GetParticipationReq) String() string { func (*GetParticipationReq) ProtoMessage() {} func (x *GetParticipationReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[155] + mi := &file_main_proto_msgTypes[158] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8204,7 +8463,7 @@ func (x *GetParticipationReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetParticipationReq.ProtoReflect.Descriptor instead. func (*GetParticipationReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{155} + return file_main_proto_rawDescGZIP(), []int{158} } func (x *GetParticipationReq) GetToken() string { @@ -8226,7 +8485,7 @@ type AnswerParticipationReq struct { func (x *AnswerParticipationReq) Reset() { *x = AnswerParticipationReq{} - mi := &file_main_proto_msgTypes[156] + mi := &file_main_proto_msgTypes[159] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8238,7 +8497,7 @@ func (x *AnswerParticipationReq) String() string { func (*AnswerParticipationReq) ProtoMessage() {} func (x *AnswerParticipationReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[156] + mi := &file_main_proto_msgTypes[159] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8251,7 +8510,7 @@ func (x *AnswerParticipationReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AnswerParticipationReq.ProtoReflect.Descriptor instead. func (*AnswerParticipationReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{156} + return file_main_proto_rawDescGZIP(), []int{159} } func (x *AnswerParticipationReq) GetToken() string { @@ -8289,7 +8548,7 @@ type ParticipationRsp struct { func (x *ParticipationRsp) Reset() { *x = ParticipationRsp{} - mi := &file_main_proto_msgTypes[157] + mi := &file_main_proto_msgTypes[160] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8301,7 +8560,7 @@ func (x *ParticipationRsp) String() string { func (*ParticipationRsp) ProtoMessage() {} func (x *ParticipationRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[157] + mi := &file_main_proto_msgTypes[160] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8314,7 +8573,7 @@ func (x *ParticipationRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use ParticipationRsp.ProtoReflect.Descriptor instead. func (*ParticipationRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{157} + return file_main_proto_rawDescGZIP(), []int{160} } func (x *ParticipationRsp) GetTeamName() string { @@ -8383,7 +8642,7 @@ type Team struct { func (x *Team) Reset() { *x = Team{} - mi := &file_main_proto_msgTypes[158] + mi := &file_main_proto_msgTypes[161] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8395,7 +8654,7 @@ func (x *Team) String() string { func (*Team) ProtoMessage() {} func (x *Team) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[158] + mi := &file_main_proto_msgTypes[161] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8408,7 +8667,7 @@ func (x *Team) ProtoReflect() protoreflect.Message { // Deprecated: Use Team.ProtoReflect.Descriptor instead. func (*Team) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{158} + return file_main_proto_rawDescGZIP(), []int{161} } func (x *Team) GetID() string { @@ -8504,7 +8763,7 @@ type GetGameReq struct { func (x *GetGameReq) Reset() { *x = GetGameReq{} - mi := &file_main_proto_msgTypes[159] + mi := &file_main_proto_msgTypes[162] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8516,7 +8775,7 @@ func (x *GetGameReq) String() string { func (*GetGameReq) ProtoMessage() {} func (x *GetGameReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[159] + mi := &file_main_proto_msgTypes[162] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8529,7 +8788,7 @@ func (x *GetGameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameReq.ProtoReflect.Descriptor instead. func (*GetGameReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{159} + return file_main_proto_rawDescGZIP(), []int{162} } func (x *GetGameReq) GetID() int32 { @@ -8548,7 +8807,7 @@ type GetGameRsp struct { func (x *GetGameRsp) Reset() { *x = GetGameRsp{} - mi := &file_main_proto_msgTypes[160] + mi := &file_main_proto_msgTypes[163] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8560,7 +8819,7 @@ func (x *GetGameRsp) String() string { func (*GetGameRsp) ProtoMessage() {} func (x *GetGameRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[160] + mi := &file_main_proto_msgTypes[163] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8573,7 +8832,7 @@ func (x *GetGameRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameRsp.ProtoReflect.Descriptor instead. func (*GetGameRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{160} + return file_main_proto_rawDescGZIP(), []int{163} } func (x *GetGameRsp) GetGame() *Game { @@ -8592,7 +8851,7 @@ type GetGameAnswersReq struct { func (x *GetGameAnswersReq) Reset() { *x = GetGameAnswersReq{} - mi := &file_main_proto_msgTypes[161] + mi := &file_main_proto_msgTypes[164] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8604,7 +8863,7 @@ func (x *GetGameAnswersReq) String() string { func (*GetGameAnswersReq) ProtoMessage() {} func (x *GetGameAnswersReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[161] + mi := &file_main_proto_msgTypes[164] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8617,7 +8876,7 @@ func (x *GetGameAnswersReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameAnswersReq.ProtoReflect.Descriptor instead. func (*GetGameAnswersReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{161} + return file_main_proto_rawDescGZIP(), []int{164} } func (x *GetGameAnswersReq) GetGameID() int32 { @@ -8637,7 +8896,7 @@ type GetGameAnswersRsp struct { func (x *GetGameAnswersRsp) Reset() { *x = GetGameAnswersRsp{} - mi := &file_main_proto_msgTypes[162] + mi := &file_main_proto_msgTypes[165] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8649,7 +8908,7 @@ func (x *GetGameAnswersRsp) String() string { func (*GetGameAnswersRsp) ProtoMessage() {} func (x *GetGameAnswersRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[162] + mi := &file_main_proto_msgTypes[165] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8662,7 +8921,7 @@ func (x *GetGameAnswersRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameAnswersRsp.ProtoReflect.Descriptor instead. func (*GetGameAnswersRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{162} + return file_main_proto_rawDescGZIP(), []int{165} } func (x *GetGameAnswersRsp) GetQuestions() []*Question { @@ -8688,7 +8947,7 @@ type GetGameResultsReq struct { func (x *GetGameResultsReq) Reset() { *x = GetGameResultsReq{} - mi := &file_main_proto_msgTypes[163] + mi := &file_main_proto_msgTypes[166] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8700,7 +8959,7 @@ func (x *GetGameResultsReq) String() string { func (*GetGameResultsReq) ProtoMessage() {} func (x *GetGameResultsReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[163] + mi := &file_main_proto_msgTypes[166] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8713,7 +8972,7 @@ func (x *GetGameResultsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameResultsReq.ProtoReflect.Descriptor instead. func (*GetGameResultsReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{163} + return file_main_proto_rawDescGZIP(), []int{166} } func (x *GetGameResultsReq) GetGameID() int32 { @@ -8735,7 +8994,7 @@ type ResultsQuestion struct { func (x *ResultsQuestion) Reset() { *x = ResultsQuestion{} - mi := &file_main_proto_msgTypes[164] + mi := &file_main_proto_msgTypes[167] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8747,7 +9006,7 @@ func (x *ResultsQuestion) String() string { func (*ResultsQuestion) ProtoMessage() {} func (x *ResultsQuestion) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[164] + mi := &file_main_proto_msgTypes[167] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8760,7 +9019,7 @@ func (x *ResultsQuestion) ProtoReflect() protoreflect.Message { // Deprecated: Use ResultsQuestion.ProtoReflect.Descriptor instead. func (*ResultsQuestion) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{164} + return file_main_proto_rawDescGZIP(), []int{167} } func (x *ResultsQuestion) GetCode() string { @@ -8796,7 +9055,7 @@ type TeamResult struct { func (x *TeamResult) Reset() { *x = TeamResult{} - mi := &file_main_proto_msgTypes[165] + mi := &file_main_proto_msgTypes[168] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8808,7 +9067,7 @@ func (x *TeamResult) String() string { func (*TeamResult) ProtoMessage() {} func (x *TeamResult) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[165] + mi := &file_main_proto_msgTypes[168] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8821,7 +9080,7 @@ func (x *TeamResult) ProtoReflect() protoreflect.Message { // Deprecated: Use TeamResult.ProtoReflect.Descriptor instead. func (*TeamResult) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{165} + return file_main_proto_rawDescGZIP(), []int{168} } func (x *TeamResult) GetTeam() *Team { @@ -8869,7 +9128,7 @@ type GetGameResultsRsp struct { func (x *GetGameResultsRsp) Reset() { *x = GetGameResultsRsp{} - mi := &file_main_proto_msgTypes[166] + mi := &file_main_proto_msgTypes[169] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8881,7 +9140,7 @@ func (x *GetGameResultsRsp) String() string { func (*GetGameResultsRsp) ProtoMessage() {} func (x *GetGameResultsRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[166] + mi := &file_main_proto_msgTypes[169] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8894,7 +9153,7 @@ func (x *GetGameResultsRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameResultsRsp.ProtoReflect.Descriptor instead. func (*GetGameResultsRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{166} + return file_main_proto_rawDescGZIP(), []int{169} } func (x *GetGameResultsRsp) GetQuestions() []*ResultsQuestion { @@ -8929,7 +9188,7 @@ type GameReview struct { func (x *GameReview) Reset() { *x = GameReview{} - mi := &file_main_proto_msgTypes[167] + mi := &file_main_proto_msgTypes[170] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8941,7 +9200,7 @@ func (x *GameReview) String() string { func (*GameReview) ProtoMessage() {} func (x *GameReview) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[167] + mi := &file_main_proto_msgTypes[170] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8954,7 +9213,7 @@ func (x *GameReview) ProtoReflect() protoreflect.Message { // Deprecated: Use GameReview.ProtoReflect.Descriptor instead. func (*GameReview) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{167} + return file_main_proto_rawDescGZIP(), []int{170} } func (x *GameReview) GetID() int32 { @@ -9041,7 +9300,7 @@ type CreateGameReviewReq struct { func (x *CreateGameReviewReq) Reset() { *x = CreateGameReviewReq{} - mi := &file_main_proto_msgTypes[168] + mi := &file_main_proto_msgTypes[171] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9053,7 +9312,7 @@ func (x *CreateGameReviewReq) String() string { func (*CreateGameReviewReq) ProtoMessage() {} func (x *CreateGameReviewReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[168] + mi := &file_main_proto_msgTypes[171] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9066,7 +9325,7 @@ func (x *CreateGameReviewReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateGameReviewReq.ProtoReflect.Descriptor instead. func (*CreateGameReviewReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{168} + return file_main_proto_rawDescGZIP(), []int{171} } func (x *CreateGameReviewReq) GetGameID() int32 { @@ -9120,7 +9379,7 @@ type CreateGameReviewRsp struct { func (x *CreateGameReviewRsp) Reset() { *x = CreateGameReviewRsp{} - mi := &file_main_proto_msgTypes[169] + mi := &file_main_proto_msgTypes[172] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9132,7 +9391,7 @@ func (x *CreateGameReviewRsp) String() string { func (*CreateGameReviewRsp) ProtoMessage() {} func (x *CreateGameReviewRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[169] + mi := &file_main_proto_msgTypes[172] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9145,7 +9404,7 @@ func (x *CreateGameReviewRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateGameReviewRsp.ProtoReflect.Descriptor instead. func (*CreateGameReviewRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{169} + return file_main_proto_rawDescGZIP(), []int{172} } func (x *CreateGameReviewRsp) GetReview() *GameReview { @@ -9164,7 +9423,7 @@ type GetGameReviewsReq struct { func (x *GetGameReviewsReq) Reset() { *x = GetGameReviewsReq{} - mi := &file_main_proto_msgTypes[170] + mi := &file_main_proto_msgTypes[173] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9176,7 +9435,7 @@ func (x *GetGameReviewsReq) String() string { func (*GetGameReviewsReq) ProtoMessage() {} func (x *GetGameReviewsReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[170] + mi := &file_main_proto_msgTypes[173] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9189,7 +9448,7 @@ func (x *GetGameReviewsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameReviewsReq.ProtoReflect.Descriptor instead. func (*GetGameReviewsReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{170} + return file_main_proto_rawDescGZIP(), []int{173} } func (x *GetGameReviewsReq) GetGameID() int32 { @@ -9208,7 +9467,7 @@ type GetScenarioReviewsReq struct { func (x *GetScenarioReviewsReq) Reset() { *x = GetScenarioReviewsReq{} - mi := &file_main_proto_msgTypes[171] + mi := &file_main_proto_msgTypes[174] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9220,7 +9479,7 @@ func (x *GetScenarioReviewsReq) String() string { func (*GetScenarioReviewsReq) ProtoMessage() {} func (x *GetScenarioReviewsReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[171] + mi := &file_main_proto_msgTypes[174] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9233,7 +9492,7 @@ func (x *GetScenarioReviewsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetScenarioReviewsReq.ProtoReflect.Descriptor instead. func (*GetScenarioReviewsReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{171} + return file_main_proto_rawDescGZIP(), []int{174} } func (x *GetScenarioReviewsReq) GetScenarioID() int32 { @@ -9251,7 +9510,7 @@ type GetReviewsForModerationReq struct { func (x *GetReviewsForModerationReq) Reset() { *x = GetReviewsForModerationReq{} - mi := &file_main_proto_msgTypes[172] + mi := &file_main_proto_msgTypes[175] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9263,7 +9522,7 @@ func (x *GetReviewsForModerationReq) String() string { func (*GetReviewsForModerationReq) ProtoMessage() {} func (x *GetReviewsForModerationReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[172] + mi := &file_main_proto_msgTypes[175] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9276,7 +9535,7 @@ func (x *GetReviewsForModerationReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetReviewsForModerationReq.ProtoReflect.Descriptor instead. func (*GetReviewsForModerationReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{172} + return file_main_proto_rawDescGZIP(), []int{175} } type GetGameReviewsRsp struct { @@ -9290,7 +9549,7 @@ type GetGameReviewsRsp struct { func (x *GetGameReviewsRsp) Reset() { *x = GetGameReviewsRsp{} - mi := &file_main_proto_msgTypes[173] + mi := &file_main_proto_msgTypes[176] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9302,7 +9561,7 @@ func (x *GetGameReviewsRsp) String() string { func (*GetGameReviewsRsp) ProtoMessage() {} func (x *GetGameReviewsRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[173] + mi := &file_main_proto_msgTypes[176] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9315,7 +9574,7 @@ func (x *GetGameReviewsRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameReviewsRsp.ProtoReflect.Descriptor instead. func (*GetGameReviewsRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{173} + return file_main_proto_rawDescGZIP(), []int{176} } func (x *GetGameReviewsRsp) GetAverageRating() float64 { @@ -9349,7 +9608,7 @@ type ModerateGameReviewReq struct { func (x *ModerateGameReviewReq) Reset() { *x = ModerateGameReviewReq{} - mi := &file_main_proto_msgTypes[174] + mi := &file_main_proto_msgTypes[177] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9361,7 +9620,7 @@ func (x *ModerateGameReviewReq) String() string { func (*ModerateGameReviewReq) ProtoMessage() {} func (x *ModerateGameReviewReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[174] + mi := &file_main_proto_msgTypes[177] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9374,7 +9633,7 @@ func (x *ModerateGameReviewReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ModerateGameReviewReq.ProtoReflect.Descriptor instead. func (*ModerateGameReviewReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{174} + return file_main_proto_rawDescGZIP(), []int{177} } func (x *ModerateGameReviewReq) GetID() int32 { @@ -9400,7 +9659,7 @@ type ModerateGameReviewRsp struct { func (x *ModerateGameReviewRsp) Reset() { *x = ModerateGameReviewRsp{} - mi := &file_main_proto_msgTypes[175] + mi := &file_main_proto_msgTypes[178] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9412,7 +9671,7 @@ func (x *ModerateGameReviewRsp) String() string { func (*ModerateGameReviewRsp) ProtoMessage() {} func (x *ModerateGameReviewRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[175] + mi := &file_main_proto_msgTypes[178] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9425,7 +9684,7 @@ func (x *ModerateGameReviewRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use ModerateGameReviewRsp.ProtoReflect.Descriptor instead. func (*ModerateGameReviewRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{175} + return file_main_proto_rawDescGZIP(), []int{178} } func (x *ModerateGameReviewRsp) GetReview() *GameReview { @@ -9452,7 +9711,7 @@ type UpdateGameReq struct { func (x *UpdateGameReq) Reset() { *x = UpdateGameReq{} - mi := &file_main_proto_msgTypes[176] + mi := &file_main_proto_msgTypes[179] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9464,7 +9723,7 @@ func (x *UpdateGameReq) String() string { func (*UpdateGameReq) ProtoMessage() {} func (x *UpdateGameReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[176] + mi := &file_main_proto_msgTypes[179] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9477,7 +9736,7 @@ func (x *UpdateGameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateGameReq.ProtoReflect.Descriptor instead. func (*UpdateGameReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{176} + return file_main_proto_rawDescGZIP(), []int{179} } func (x *UpdateGameReq) GetID() int32 { @@ -9551,7 +9810,7 @@ type UpdateGameRsp struct { func (x *UpdateGameRsp) Reset() { *x = UpdateGameRsp{} - mi := &file_main_proto_msgTypes[177] + mi := &file_main_proto_msgTypes[180] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9563,7 +9822,7 @@ func (x *UpdateGameRsp) String() string { func (*UpdateGameRsp) ProtoMessage() {} func (x *UpdateGameRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[177] + mi := &file_main_proto_msgTypes[180] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9576,7 +9835,7 @@ func (x *UpdateGameRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateGameRsp.ProtoReflect.Descriptor instead. func (*UpdateGameRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{177} + return file_main_proto_rawDescGZIP(), []int{180} } type StartGameReq struct { @@ -9588,7 +9847,7 @@ type StartGameReq struct { func (x *StartGameReq) Reset() { *x = StartGameReq{} - mi := &file_main_proto_msgTypes[178] + mi := &file_main_proto_msgTypes[181] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9600,7 +9859,7 @@ func (x *StartGameReq) String() string { func (*StartGameReq) ProtoMessage() {} func (x *StartGameReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[178] + mi := &file_main_proto_msgTypes[181] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9613,7 +9872,7 @@ func (x *StartGameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use StartGameReq.ProtoReflect.Descriptor instead. func (*StartGameReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{178} + return file_main_proto_rawDescGZIP(), []int{181} } func (x *StartGameReq) GetID() int32 { @@ -9631,7 +9890,7 @@ type StartGameRsp struct { func (x *StartGameRsp) Reset() { *x = StartGameRsp{} - mi := &file_main_proto_msgTypes[179] + mi := &file_main_proto_msgTypes[182] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9643,7 +9902,7 @@ func (x *StartGameRsp) String() string { func (*StartGameRsp) ProtoMessage() {} func (x *StartGameRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[179] + mi := &file_main_proto_msgTypes[182] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9656,7 +9915,7 @@ func (x *StartGameRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use StartGameRsp.ProtoReflect.Descriptor instead. func (*StartGameRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{179} + return file_main_proto_rawDescGZIP(), []int{182} } type PauseGameReq struct { @@ -9668,7 +9927,7 @@ type PauseGameReq struct { func (x *PauseGameReq) Reset() { *x = PauseGameReq{} - mi := &file_main_proto_msgTypes[180] + mi := &file_main_proto_msgTypes[183] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9680,7 +9939,7 @@ func (x *PauseGameReq) String() string { func (*PauseGameReq) ProtoMessage() {} func (x *PauseGameReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[180] + mi := &file_main_proto_msgTypes[183] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9693,7 +9952,7 @@ func (x *PauseGameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use PauseGameReq.ProtoReflect.Descriptor instead. func (*PauseGameReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{180} + return file_main_proto_rawDescGZIP(), []int{183} } func (x *PauseGameReq) GetID() int32 { @@ -9711,7 +9970,7 @@ type PauseGameRsp struct { func (x *PauseGameRsp) Reset() { *x = PauseGameRsp{} - mi := &file_main_proto_msgTypes[181] + mi := &file_main_proto_msgTypes[184] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9723,7 +9982,7 @@ func (x *PauseGameRsp) String() string { func (*PauseGameRsp) ProtoMessage() {} func (x *PauseGameRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[181] + mi := &file_main_proto_msgTypes[184] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9736,7 +9995,7 @@ func (x *PauseGameRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use PauseGameRsp.ProtoReflect.Descriptor instead. func (*PauseGameRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{181} + return file_main_proto_rawDescGZIP(), []int{184} } type PlayGameReq struct { @@ -9748,7 +10007,7 @@ type PlayGameReq struct { func (x *PlayGameReq) Reset() { *x = PlayGameReq{} - mi := &file_main_proto_msgTypes[182] + mi := &file_main_proto_msgTypes[185] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9760,7 +10019,7 @@ func (x *PlayGameReq) String() string { func (*PlayGameReq) ProtoMessage() {} func (x *PlayGameReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[182] + mi := &file_main_proto_msgTypes[185] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9773,7 +10032,7 @@ func (x *PlayGameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use PlayGameReq.ProtoReflect.Descriptor instead. func (*PlayGameReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{182} + return file_main_proto_rawDescGZIP(), []int{185} } func (x *PlayGameReq) GetID() int32 { @@ -9791,7 +10050,7 @@ type PlayGameRsp struct { func (x *PlayGameRsp) Reset() { *x = PlayGameRsp{} - mi := &file_main_proto_msgTypes[183] + mi := &file_main_proto_msgTypes[186] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9803,7 +10062,7 @@ func (x *PlayGameRsp) String() string { func (*PlayGameRsp) ProtoMessage() {} func (x *PlayGameRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[183] + mi := &file_main_proto_msgTypes[186] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9816,7 +10075,7 @@ func (x *PlayGameRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use PlayGameRsp.ProtoReflect.Descriptor instead. func (*PlayGameRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{183} + return file_main_proto_rawDescGZIP(), []int{186} } type FinishGameReq struct { @@ -9828,7 +10087,7 @@ type FinishGameReq struct { func (x *FinishGameReq) Reset() { *x = FinishGameReq{} - mi := &file_main_proto_msgTypes[184] + mi := &file_main_proto_msgTypes[187] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9840,7 +10099,7 @@ func (x *FinishGameReq) String() string { func (*FinishGameReq) ProtoMessage() {} func (x *FinishGameReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[184] + mi := &file_main_proto_msgTypes[187] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9853,7 +10112,7 @@ func (x *FinishGameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use FinishGameReq.ProtoReflect.Descriptor instead. func (*FinishGameReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{184} + return file_main_proto_rawDescGZIP(), []int{187} } func (x *FinishGameReq) GetID() int32 { @@ -9871,7 +10130,7 @@ type FinishGameRsp struct { func (x *FinishGameRsp) Reset() { *x = FinishGameRsp{} - mi := &file_main_proto_msgTypes[185] + mi := &file_main_proto_msgTypes[188] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9883,7 +10142,7 @@ func (x *FinishGameRsp) String() string { func (*FinishGameRsp) ProtoMessage() {} func (x *FinishGameRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[185] + mi := &file_main_proto_msgTypes[188] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9896,7 +10155,7 @@ func (x *FinishGameRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use FinishGameRsp.ProtoReflect.Descriptor instead. func (*FinishGameRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{185} + return file_main_proto_rawDescGZIP(), []int{188} } type ResetGameReq struct { @@ -9908,7 +10167,7 @@ type ResetGameReq struct { func (x *ResetGameReq) Reset() { *x = ResetGameReq{} - mi := &file_main_proto_msgTypes[186] + mi := &file_main_proto_msgTypes[189] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9920,7 +10179,7 @@ func (x *ResetGameReq) String() string { func (*ResetGameReq) ProtoMessage() {} func (x *ResetGameReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[186] + mi := &file_main_proto_msgTypes[189] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9933,7 +10192,7 @@ func (x *ResetGameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ResetGameReq.ProtoReflect.Descriptor instead. func (*ResetGameReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{186} + return file_main_proto_rawDescGZIP(), []int{189} } func (x *ResetGameReq) GetID() int32 { @@ -9951,7 +10210,7 @@ type ResetGameRsp struct { func (x *ResetGameRsp) Reset() { *x = ResetGameRsp{} - mi := &file_main_proto_msgTypes[187] + mi := &file_main_proto_msgTypes[190] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9963,7 +10222,7 @@ func (x *ResetGameRsp) String() string { func (*ResetGameRsp) ProtoMessage() {} func (x *ResetGameRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[187] + mi := &file_main_proto_msgTypes[190] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9976,7 +10235,7 @@ func (x *ResetGameRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use ResetGameRsp.ProtoReflect.Descriptor instead. func (*ResetGameRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{187} + return file_main_proto_rawDescGZIP(), []int{190} } type DeleteGameReq struct { @@ -9988,7 +10247,7 @@ type DeleteGameReq struct { func (x *DeleteGameReq) Reset() { *x = DeleteGameReq{} - mi := &file_main_proto_msgTypes[188] + mi := &file_main_proto_msgTypes[191] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10000,7 +10259,7 @@ func (x *DeleteGameReq) String() string { func (*DeleteGameReq) ProtoMessage() {} func (x *DeleteGameReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[188] + mi := &file_main_proto_msgTypes[191] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10013,7 +10272,7 @@ func (x *DeleteGameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteGameReq.ProtoReflect.Descriptor instead. func (*DeleteGameReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{188} + return file_main_proto_rawDescGZIP(), []int{191} } func (x *DeleteGameReq) GetID() int32 { @@ -10031,7 +10290,7 @@ type DeleteGameRsp struct { func (x *DeleteGameRsp) Reset() { *x = DeleteGameRsp{} - mi := &file_main_proto_msgTypes[189] + mi := &file_main_proto_msgTypes[192] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10043,7 +10302,7 @@ func (x *DeleteGameRsp) String() string { func (*DeleteGameRsp) ProtoMessage() {} func (x *DeleteGameRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[189] + mi := &file_main_proto_msgTypes[192] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10056,7 +10315,7 @@ func (x *DeleteGameRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteGameRsp.ProtoReflect.Descriptor instead. func (*DeleteGameRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{189} + return file_main_proto_rawDescGZIP(), []int{192} } type AddTeamReq struct { @@ -10071,7 +10330,7 @@ type AddTeamReq struct { func (x *AddTeamReq) Reset() { *x = AddTeamReq{} - mi := &file_main_proto_msgTypes[190] + mi := &file_main_proto_msgTypes[193] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10083,7 +10342,7 @@ func (x *AddTeamReq) String() string { func (*AddTeamReq) ProtoMessage() {} func (x *AddTeamReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[190] + mi := &file_main_proto_msgTypes[193] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10096,7 +10355,7 @@ func (x *AddTeamReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AddTeamReq.ProtoReflect.Descriptor instead. func (*AddTeamReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{190} + return file_main_proto_rawDescGZIP(), []int{193} } func (x *AddTeamReq) GetGameID() int32 { @@ -10137,7 +10396,7 @@ type AddTeamRsp struct { func (x *AddTeamRsp) Reset() { *x = AddTeamRsp{} - mi := &file_main_proto_msgTypes[191] + mi := &file_main_proto_msgTypes[194] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10149,7 +10408,7 @@ func (x *AddTeamRsp) String() string { func (*AddTeamRsp) ProtoMessage() {} func (x *AddTeamRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[191] + mi := &file_main_proto_msgTypes[194] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10162,7 +10421,7 @@ func (x *AddTeamRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use AddTeamRsp.ProtoReflect.Descriptor instead. func (*AddTeamRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{191} + return file_main_proto_rawDescGZIP(), []int{194} } func (x *AddTeamRsp) GetID() string { @@ -10189,7 +10448,7 @@ type UpdateTeamReq struct { func (x *UpdateTeamReq) Reset() { *x = UpdateTeamReq{} - mi := &file_main_proto_msgTypes[192] + mi := &file_main_proto_msgTypes[195] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10201,7 +10460,7 @@ func (x *UpdateTeamReq) String() string { func (*UpdateTeamReq) ProtoMessage() {} func (x *UpdateTeamReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[192] + mi := &file_main_proto_msgTypes[195] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10214,7 +10473,7 @@ func (x *UpdateTeamReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateTeamReq.ProtoReflect.Descriptor instead. func (*UpdateTeamReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{192} + return file_main_proto_rawDescGZIP(), []int{195} } func (x *UpdateTeamReq) GetID() string { @@ -10239,7 +10498,7 @@ type UpdateTeamRsp struct { func (x *UpdateTeamRsp) Reset() { *x = UpdateTeamRsp{} - mi := &file_main_proto_msgTypes[193] + mi := &file_main_proto_msgTypes[196] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10251,7 +10510,7 @@ func (x *UpdateTeamRsp) String() string { func (*UpdateTeamRsp) ProtoMessage() {} func (x *UpdateTeamRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[193] + mi := &file_main_proto_msgTypes[196] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10264,7 +10523,7 @@ func (x *UpdateTeamRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateTeamRsp.ProtoReflect.Descriptor instead. func (*UpdateTeamRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{193} + return file_main_proto_rawDescGZIP(), []int{196} } type DeleteTeamReq struct { @@ -10276,7 +10535,7 @@ type DeleteTeamReq struct { func (x *DeleteTeamReq) Reset() { *x = DeleteTeamReq{} - mi := &file_main_proto_msgTypes[194] + mi := &file_main_proto_msgTypes[197] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10288,7 +10547,7 @@ func (x *DeleteTeamReq) String() string { func (*DeleteTeamReq) ProtoMessage() {} func (x *DeleteTeamReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[194] + mi := &file_main_proto_msgTypes[197] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10301,7 +10560,7 @@ func (x *DeleteTeamReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteTeamReq.ProtoReflect.Descriptor instead. func (*DeleteTeamReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{194} + return file_main_proto_rawDescGZIP(), []int{197} } func (x *DeleteTeamReq) GetID() string { @@ -10319,7 +10578,7 @@ type DeleteTeamRsp struct { func (x *DeleteTeamRsp) Reset() { *x = DeleteTeamRsp{} - mi := &file_main_proto_msgTypes[195] + mi := &file_main_proto_msgTypes[198] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10331,7 +10590,7 @@ func (x *DeleteTeamRsp) String() string { func (*DeleteTeamRsp) ProtoMessage() {} func (x *DeleteTeamRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[195] + mi := &file_main_proto_msgTypes[198] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10344,7 +10603,7 @@ func (x *DeleteTeamRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteTeamRsp.ProtoReflect.Descriptor instead. func (*DeleteTeamRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{195} + return file_main_proto_rawDescGZIP(), []int{198} } type GiveTeamApplicationsReq struct { @@ -10357,7 +10616,7 @@ type GiveTeamApplicationsReq struct { func (x *GiveTeamApplicationsReq) Reset() { *x = GiveTeamApplicationsReq{} - mi := &file_main_proto_msgTypes[196] + mi := &file_main_proto_msgTypes[199] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10369,7 +10628,7 @@ func (x *GiveTeamApplicationsReq) String() string { func (*GiveTeamApplicationsReq) ProtoMessage() {} func (x *GiveTeamApplicationsReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[196] + mi := &file_main_proto_msgTypes[199] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10382,7 +10641,7 @@ func (x *GiveTeamApplicationsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GiveTeamApplicationsReq.ProtoReflect.Descriptor instead. func (*GiveTeamApplicationsReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{196} + return file_main_proto_rawDescGZIP(), []int{199} } func (x *GiveTeamApplicationsReq) GetID() string { @@ -10407,7 +10666,7 @@ type GiveTeamApplicationsRsp struct { func (x *GiveTeamApplicationsRsp) Reset() { *x = GiveTeamApplicationsRsp{} - mi := &file_main_proto_msgTypes[197] + mi := &file_main_proto_msgTypes[200] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10419,7 +10678,7 @@ func (x *GiveTeamApplicationsRsp) String() string { func (*GiveTeamApplicationsRsp) ProtoMessage() {} func (x *GiveTeamApplicationsRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[197] + mi := &file_main_proto_msgTypes[200] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10432,7 +10691,7 @@ func (x *GiveTeamApplicationsRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GiveTeamApplicationsRsp.ProtoReflect.Descriptor instead. func (*GiveTeamApplicationsRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{197} + return file_main_proto_rawDescGZIP(), []int{200} } type GetTeamStoryReq struct { @@ -10445,7 +10704,7 @@ type GetTeamStoryReq struct { func (x *GetTeamStoryReq) Reset() { *x = GetTeamStoryReq{} - mi := &file_main_proto_msgTypes[198] + mi := &file_main_proto_msgTypes[201] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10457,7 +10716,7 @@ func (x *GetTeamStoryReq) String() string { func (*GetTeamStoryReq) ProtoMessage() {} func (x *GetTeamStoryReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[198] + mi := &file_main_proto_msgTypes[201] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10470,7 +10729,7 @@ func (x *GetTeamStoryReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTeamStoryReq.ProtoReflect.Descriptor instead. func (*GetTeamStoryReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{198} + return file_main_proto_rawDescGZIP(), []int{201} } func (x *GetTeamStoryReq) GetID() string { @@ -10498,7 +10757,7 @@ type GetTeamStoryRsp struct { func (x *GetTeamStoryRsp) Reset() { *x = GetTeamStoryRsp{} - mi := &file_main_proto_msgTypes[199] + mi := &file_main_proto_msgTypes[202] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10510,7 +10769,7 @@ func (x *GetTeamStoryRsp) String() string { func (*GetTeamStoryRsp) ProtoMessage() {} func (x *GetTeamStoryRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[199] + mi := &file_main_proto_msgTypes[202] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10523,7 +10782,7 @@ func (x *GetTeamStoryRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTeamStoryRsp.ProtoReflect.Descriptor instead. func (*GetTeamStoryRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{199} + return file_main_proto_rawDescGZIP(), []int{202} } func (x *GetTeamStoryRsp) GetStory() *Story { @@ -10557,7 +10816,7 @@ type TeamAction struct { func (x *TeamAction) Reset() { *x = TeamAction{} - mi := &file_main_proto_msgTypes[200] + mi := &file_main_proto_msgTypes[203] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10569,7 +10828,7 @@ func (x *TeamAction) String() string { func (*TeamAction) ProtoMessage() {} func (x *TeamAction) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[200] + mi := &file_main_proto_msgTypes[203] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10582,7 +10841,7 @@ func (x *TeamAction) ProtoReflect() protoreflect.Message { // Deprecated: Use TeamAction.ProtoReflect.Descriptor instead. func (*TeamAction) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{200} + return file_main_proto_rawDescGZIP(), []int{203} } func (x *TeamAction) GetCode() string { @@ -10610,7 +10869,7 @@ type AddTeamActionReq struct { func (x *AddTeamActionReq) Reset() { *x = AddTeamActionReq{} - mi := &file_main_proto_msgTypes[201] + mi := &file_main_proto_msgTypes[204] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10622,7 +10881,7 @@ func (x *AddTeamActionReq) String() string { func (*AddTeamActionReq) ProtoMessage() {} func (x *AddTeamActionReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[201] + mi := &file_main_proto_msgTypes[204] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10635,7 +10894,7 @@ func (x *AddTeamActionReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AddTeamActionReq.ProtoReflect.Descriptor instead. func (*AddTeamActionReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{201} + return file_main_proto_rawDescGZIP(), []int{204} } func (x *AddTeamActionReq) GetID() string { @@ -10667,7 +10926,7 @@ type AddTeamActionRsp struct { func (x *AddTeamActionRsp) Reset() { *x = AddTeamActionRsp{} - mi := &file_main_proto_msgTypes[202] + mi := &file_main_proto_msgTypes[205] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10679,7 +10938,7 @@ func (x *AddTeamActionRsp) String() string { func (*AddTeamActionRsp) ProtoMessage() {} func (x *AddTeamActionRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[202] + mi := &file_main_proto_msgTypes[205] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10692,7 +10951,7 @@ func (x *AddTeamActionRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use AddTeamActionRsp.ProtoReflect.Descriptor instead. func (*AddTeamActionRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{202} + return file_main_proto_rawDescGZIP(), []int{205} } type DeleteLastTeamActionReq struct { @@ -10704,7 +10963,7 @@ type DeleteLastTeamActionReq struct { func (x *DeleteLastTeamActionReq) Reset() { *x = DeleteLastTeamActionReq{} - mi := &file_main_proto_msgTypes[203] + mi := &file_main_proto_msgTypes[206] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10716,7 +10975,7 @@ func (x *DeleteLastTeamActionReq) String() string { func (*DeleteLastTeamActionReq) ProtoMessage() {} func (x *DeleteLastTeamActionReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[203] + mi := &file_main_proto_msgTypes[206] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10729,7 +10988,7 @@ func (x *DeleteLastTeamActionReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteLastTeamActionReq.ProtoReflect.Descriptor instead. func (*DeleteLastTeamActionReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{203} + return file_main_proto_rawDescGZIP(), []int{206} } func (x *DeleteLastTeamActionReq) GetID() string { @@ -10747,7 +11006,7 @@ type DeleteLastTeamActionRsp struct { func (x *DeleteLastTeamActionRsp) Reset() { *x = DeleteLastTeamActionRsp{} - mi := &file_main_proto_msgTypes[204] + mi := &file_main_proto_msgTypes[207] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10759,7 +11018,7 @@ func (x *DeleteLastTeamActionRsp) String() string { func (*DeleteLastTeamActionRsp) ProtoMessage() {} func (x *DeleteLastTeamActionRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[204] + mi := &file_main_proto_msgTypes[207] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10772,7 +11031,7 @@ func (x *DeleteLastTeamActionRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteLastTeamActionRsp.ProtoReflect.Descriptor instead. func (*DeleteLastTeamActionRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{204} + return file_main_proto_rawDescGZIP(), []int{207} } type GetTeamAnswersReq struct { @@ -10785,7 +11044,7 @@ type GetTeamAnswersReq struct { func (x *GetTeamAnswersReq) Reset() { *x = GetTeamAnswersReq{} - mi := &file_main_proto_msgTypes[205] + mi := &file_main_proto_msgTypes[208] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10797,7 +11056,7 @@ func (x *GetTeamAnswersReq) String() string { func (*GetTeamAnswersReq) ProtoMessage() {} func (x *GetTeamAnswersReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[205] + mi := &file_main_proto_msgTypes[208] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10810,7 +11069,7 @@ func (x *GetTeamAnswersReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTeamAnswersReq.ProtoReflect.Descriptor instead. func (*GetTeamAnswersReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{205} + return file_main_proto_rawDescGZIP(), []int{208} } func (x *GetTeamAnswersReq) GetID() string { @@ -10836,7 +11095,7 @@ type GetTeamAnswersRsp struct { func (x *GetTeamAnswersRsp) Reset() { *x = GetTeamAnswersRsp{} - mi := &file_main_proto_msgTypes[206] + mi := &file_main_proto_msgTypes[209] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10848,7 +11107,7 @@ func (x *GetTeamAnswersRsp) String() string { func (*GetTeamAnswersRsp) ProtoMessage() {} func (x *GetTeamAnswersRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[206] + mi := &file_main_proto_msgTypes[209] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10861,7 +11120,7 @@ func (x *GetTeamAnswersRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTeamAnswersRsp.ProtoReflect.Descriptor instead. func (*GetTeamAnswersRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{206} + return file_main_proto_rawDescGZIP(), []int{209} } func (x *GetTeamAnswersRsp) GetAnswers() []*Answer { @@ -10882,7 +11141,7 @@ type SubmitTeamAnswersReq struct { func (x *SubmitTeamAnswersReq) Reset() { *x = SubmitTeamAnswersReq{} - mi := &file_main_proto_msgTypes[207] + mi := &file_main_proto_msgTypes[210] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10894,7 +11153,7 @@ func (x *SubmitTeamAnswersReq) String() string { func (*SubmitTeamAnswersReq) ProtoMessage() {} func (x *SubmitTeamAnswersReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[207] + mi := &file_main_proto_msgTypes[210] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10907,7 +11166,7 @@ func (x *SubmitTeamAnswersReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SubmitTeamAnswersReq.ProtoReflect.Descriptor instead. func (*SubmitTeamAnswersReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{207} + return file_main_proto_rawDescGZIP(), []int{210} } func (x *SubmitTeamAnswersReq) GetID() string { @@ -10939,7 +11198,7 @@ type SubmitTeamAnswersRsp struct { func (x *SubmitTeamAnswersRsp) Reset() { *x = SubmitTeamAnswersRsp{} - mi := &file_main_proto_msgTypes[208] + mi := &file_main_proto_msgTypes[211] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10951,7 +11210,7 @@ func (x *SubmitTeamAnswersRsp) String() string { func (*SubmitTeamAnswersRsp) ProtoMessage() {} func (x *SubmitTeamAnswersRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[208] + mi := &file_main_proto_msgTypes[211] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10964,7 +11223,7 @@ func (x *SubmitTeamAnswersRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use SubmitTeamAnswersRsp.ProtoReflect.Descriptor instead. func (*SubmitTeamAnswersRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{208} + return file_main_proto_rawDescGZIP(), []int{211} } type SetTeamAnswerScoreReq struct { @@ -10979,7 +11238,7 @@ type SetTeamAnswerScoreReq struct { func (x *SetTeamAnswerScoreReq) Reset() { *x = SetTeamAnswerScoreReq{} - mi := &file_main_proto_msgTypes[209] + mi := &file_main_proto_msgTypes[212] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10991,7 +11250,7 @@ func (x *SetTeamAnswerScoreReq) String() string { func (*SetTeamAnswerScoreReq) ProtoMessage() {} func (x *SetTeamAnswerScoreReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[209] + mi := &file_main_proto_msgTypes[212] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11004,7 +11263,7 @@ func (x *SetTeamAnswerScoreReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SetTeamAnswerScoreReq.ProtoReflect.Descriptor instead. func (*SetTeamAnswerScoreReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{209} + return file_main_proto_rawDescGZIP(), []int{212} } func (x *SetTeamAnswerScoreReq) GetID() string { @@ -11036,7 +11295,7 @@ type SetTeamAnswerScoreRsp struct { func (x *SetTeamAnswerScoreRsp) Reset() { *x = SetTeamAnswerScoreRsp{} - mi := &file_main_proto_msgTypes[210] + mi := &file_main_proto_msgTypes[213] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11048,7 +11307,7 @@ func (x *SetTeamAnswerScoreRsp) String() string { func (*SetTeamAnswerScoreRsp) ProtoMessage() {} func (x *SetTeamAnswerScoreRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[210] + mi := &file_main_proto_msgTypes[213] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11061,7 +11320,7 @@ func (x *SetTeamAnswerScoreRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use SetTeamAnswerScoreRsp.ProtoReflect.Descriptor instead. func (*SetTeamAnswerScoreRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{210} + return file_main_proto_rawDescGZIP(), []int{213} } type UpdateScenarioBackgroundReq struct { @@ -11074,7 +11333,7 @@ type UpdateScenarioBackgroundReq struct { func (x *UpdateScenarioBackgroundReq) Reset() { *x = UpdateScenarioBackgroundReq{} - mi := &file_main_proto_msgTypes[211] + mi := &file_main_proto_msgTypes[214] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11086,7 +11345,7 @@ func (x *UpdateScenarioBackgroundReq) String() string { func (*UpdateScenarioBackgroundReq) ProtoMessage() {} func (x *UpdateScenarioBackgroundReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[211] + mi := &file_main_proto_msgTypes[214] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11099,7 +11358,7 @@ func (x *UpdateScenarioBackgroundReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScenarioBackgroundReq.ProtoReflect.Descriptor instead. func (*UpdateScenarioBackgroundReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{211} + return file_main_proto_rawDescGZIP(), []int{214} } func (x *UpdateScenarioBackgroundReq) GetID() int32 { @@ -11124,7 +11383,7 @@ type UpdateScenarioBackgroundRsp struct { func (x *UpdateScenarioBackgroundRsp) Reset() { *x = UpdateScenarioBackgroundRsp{} - mi := &file_main_proto_msgTypes[212] + mi := &file_main_proto_msgTypes[215] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11136,7 +11395,7 @@ func (x *UpdateScenarioBackgroundRsp) String() string { func (*UpdateScenarioBackgroundRsp) ProtoMessage() {} func (x *UpdateScenarioBackgroundRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[212] + mi := &file_main_proto_msgTypes[215] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11149,7 +11408,7 @@ func (x *UpdateScenarioBackgroundRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScenarioBackgroundRsp.ProtoReflect.Descriptor instead. func (*UpdateScenarioBackgroundRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{212} + return file_main_proto_rawDescGZIP(), []int{215} } type IssueGameTicketsReq struct { @@ -11162,7 +11421,7 @@ type IssueGameTicketsReq struct { func (x *IssueGameTicketsReq) Reset() { *x = IssueGameTicketsReq{} - mi := &file_main_proto_msgTypes[213] + mi := &file_main_proto_msgTypes[216] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11174,7 +11433,7 @@ func (x *IssueGameTicketsReq) String() string { func (*IssueGameTicketsReq) ProtoMessage() {} func (x *IssueGameTicketsReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[213] + mi := &file_main_proto_msgTypes[216] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11187,7 +11446,7 @@ func (x *IssueGameTicketsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use IssueGameTicketsReq.ProtoReflect.Descriptor instead. func (*IssueGameTicketsReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{213} + return file_main_proto_rawDescGZIP(), []int{216} } func (x *IssueGameTicketsReq) GetGameID() int32 { @@ -11213,7 +11472,7 @@ type IssueGameTicketsRsp struct { func (x *IssueGameTicketsRsp) Reset() { *x = IssueGameTicketsRsp{} - mi := &file_main_proto_msgTypes[214] + mi := &file_main_proto_msgTypes[217] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11225,7 +11484,7 @@ func (x *IssueGameTicketsRsp) String() string { func (*IssueGameTicketsRsp) ProtoMessage() {} func (x *IssueGameTicketsRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[214] + mi := &file_main_proto_msgTypes[217] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11238,7 +11497,7 @@ func (x *IssueGameTicketsRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use IssueGameTicketsRsp.ProtoReflect.Descriptor instead. func (*IssueGameTicketsRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{214} + return file_main_proto_rawDescGZIP(), []int{217} } func (x *IssueGameTicketsRsp) GetTickets() []*Ticket { @@ -11258,7 +11517,7 @@ type Ticket struct { func (x *Ticket) Reset() { *x = Ticket{} - mi := &file_main_proto_msgTypes[215] + mi := &file_main_proto_msgTypes[218] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11270,7 +11529,7 @@ func (x *Ticket) String() string { func (*Ticket) ProtoMessage() {} func (x *Ticket) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[215] + mi := &file_main_proto_msgTypes[218] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11283,7 +11542,7 @@ func (x *Ticket) ProtoReflect() protoreflect.Message { // Deprecated: Use Ticket.ProtoReflect.Descriptor instead. func (*Ticket) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{215} + return file_main_proto_rawDescGZIP(), []int{218} } func (x *Ticket) GetID() int32 { @@ -11309,7 +11568,7 @@ type GetTicketReq struct { func (x *GetTicketReq) Reset() { *x = GetTicketReq{} - mi := &file_main_proto_msgTypes[216] + mi := &file_main_proto_msgTypes[219] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11321,7 +11580,7 @@ func (x *GetTicketReq) String() string { func (*GetTicketReq) ProtoMessage() {} func (x *GetTicketReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[216] + mi := &file_main_proto_msgTypes[219] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11334,7 +11593,7 @@ func (x *GetTicketReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTicketReq.ProtoReflect.Descriptor instead. func (*GetTicketReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{216} + return file_main_proto_rawDescGZIP(), []int{219} } func (x *GetTicketReq) GetToken() string { @@ -11353,7 +11612,7 @@ type GetTicketRsp struct { func (x *GetTicketRsp) Reset() { *x = GetTicketRsp{} - mi := &file_main_proto_msgTypes[217] + mi := &file_main_proto_msgTypes[220] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11365,7 +11624,7 @@ func (x *GetTicketRsp) String() string { func (*GetTicketRsp) ProtoMessage() {} func (x *GetTicketRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[217] + mi := &file_main_proto_msgTypes[220] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11378,7 +11637,7 @@ func (x *GetTicketRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTicketRsp.ProtoReflect.Descriptor instead. func (*GetTicketRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{217} + return file_main_proto_rawDescGZIP(), []int{220} } func (x *GetTicketRsp) GetTicket() *TicketPage { @@ -11397,7 +11656,7 @@ type AcceptTicketReq struct { func (x *AcceptTicketReq) Reset() { *x = AcceptTicketReq{} - mi := &file_main_proto_msgTypes[218] + mi := &file_main_proto_msgTypes[221] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11409,7 +11668,7 @@ func (x *AcceptTicketReq) String() string { func (*AcceptTicketReq) ProtoMessage() {} func (x *AcceptTicketReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[218] + mi := &file_main_proto_msgTypes[221] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11422,7 +11681,7 @@ func (x *AcceptTicketReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AcceptTicketReq.ProtoReflect.Descriptor instead. func (*AcceptTicketReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{218} + return file_main_proto_rawDescGZIP(), []int{221} } func (x *AcceptTicketReq) GetToken() string { @@ -11441,7 +11700,7 @@ type AcceptTicketRsp struct { func (x *AcceptTicketRsp) Reset() { *x = AcceptTicketRsp{} - mi := &file_main_proto_msgTypes[219] + mi := &file_main_proto_msgTypes[222] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11453,7 +11712,7 @@ func (x *AcceptTicketRsp) String() string { func (*AcceptTicketRsp) ProtoMessage() {} func (x *AcceptTicketRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[219] + mi := &file_main_proto_msgTypes[222] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11466,7 +11725,7 @@ func (x *AcceptTicketRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use AcceptTicketRsp.ProtoReflect.Descriptor instead. func (*AcceptTicketRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{219} + return file_main_proto_rawDescGZIP(), []int{222} } func (x *AcceptTicketRsp) GetTicket() *TicketPage { @@ -11492,7 +11751,7 @@ type TicketPage struct { func (x *TicketPage) Reset() { *x = TicketPage{} - mi := &file_main_proto_msgTypes[220] + mi := &file_main_proto_msgTypes[223] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11504,7 +11763,7 @@ func (x *TicketPage) String() string { func (*TicketPage) ProtoMessage() {} func (x *TicketPage) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[220] + mi := &file_main_proto_msgTypes[223] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11517,7 +11776,7 @@ func (x *TicketPage) ProtoReflect() protoreflect.Message { // Deprecated: Use TicketPage.ProtoReflect.Descriptor instead. func (*TicketPage) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{220} + return file_main_proto_rawDescGZIP(), []int{223} } func (x *TicketPage) GetID() int32 { @@ -11599,7 +11858,7 @@ type DeveloperTask struct { func (x *DeveloperTask) Reset() { *x = DeveloperTask{} - mi := &file_main_proto_msgTypes[221] + mi := &file_main_proto_msgTypes[224] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11611,7 +11870,7 @@ func (x *DeveloperTask) String() string { func (*DeveloperTask) ProtoMessage() {} func (x *DeveloperTask) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[221] + mi := &file_main_proto_msgTypes[224] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11624,7 +11883,7 @@ func (x *DeveloperTask) ProtoReflect() protoreflect.Message { // Deprecated: Use DeveloperTask.ProtoReflect.Descriptor instead. func (*DeveloperTask) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{221} + return file_main_proto_rawDescGZIP(), []int{224} } func (x *DeveloperTask) GetID() int32 { @@ -11714,7 +11973,7 @@ type TaskAssignee struct { func (x *TaskAssignee) Reset() { *x = TaskAssignee{} - mi := &file_main_proto_msgTypes[222] + mi := &file_main_proto_msgTypes[225] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11726,7 +11985,7 @@ func (x *TaskAssignee) String() string { func (*TaskAssignee) ProtoMessage() {} func (x *TaskAssignee) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[222] + mi := &file_main_proto_msgTypes[225] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11739,7 +11998,7 @@ func (x *TaskAssignee) ProtoReflect() protoreflect.Message { // Deprecated: Use TaskAssignee.ProtoReflect.Descriptor instead. func (*TaskAssignee) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{222} + return file_main_proto_rawDescGZIP(), []int{225} } func (x *TaskAssignee) GetID() int32 { @@ -11764,7 +12023,7 @@ type GetTasksReq struct { func (x *GetTasksReq) Reset() { *x = GetTasksReq{} - mi := &file_main_proto_msgTypes[223] + mi := &file_main_proto_msgTypes[226] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11776,7 +12035,7 @@ func (x *GetTasksReq) String() string { func (*GetTasksReq) ProtoMessage() {} func (x *GetTasksReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[223] + mi := &file_main_proto_msgTypes[226] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11789,7 +12048,7 @@ func (x *GetTasksReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTasksReq.ProtoReflect.Descriptor instead. func (*GetTasksReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{223} + return file_main_proto_rawDescGZIP(), []int{226} } type GetTasksRsp struct { @@ -11801,7 +12060,7 @@ type GetTasksRsp struct { func (x *GetTasksRsp) Reset() { *x = GetTasksRsp{} - mi := &file_main_proto_msgTypes[224] + mi := &file_main_proto_msgTypes[227] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11813,7 +12072,7 @@ func (x *GetTasksRsp) String() string { func (*GetTasksRsp) ProtoMessage() {} func (x *GetTasksRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[224] + mi := &file_main_proto_msgTypes[227] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11826,7 +12085,7 @@ func (x *GetTasksRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTasksRsp.ProtoReflect.Descriptor instead. func (*GetTasksRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{224} + return file_main_proto_rawDescGZIP(), []int{227} } func (x *GetTasksRsp) GetTasks() []*DeveloperTask { @@ -11844,7 +12103,7 @@ type GetTaskAssigneesReq struct { func (x *GetTaskAssigneesReq) Reset() { *x = GetTaskAssigneesReq{} - mi := &file_main_proto_msgTypes[225] + mi := &file_main_proto_msgTypes[228] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11856,7 +12115,7 @@ func (x *GetTaskAssigneesReq) String() string { func (*GetTaskAssigneesReq) ProtoMessage() {} func (x *GetTaskAssigneesReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[225] + mi := &file_main_proto_msgTypes[228] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11869,7 +12128,7 @@ func (x *GetTaskAssigneesReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTaskAssigneesReq.ProtoReflect.Descriptor instead. func (*GetTaskAssigneesReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{225} + return file_main_proto_rawDescGZIP(), []int{228} } type GetTaskAssigneesRsp struct { @@ -11881,7 +12140,7 @@ type GetTaskAssigneesRsp struct { func (x *GetTaskAssigneesRsp) Reset() { *x = GetTaskAssigneesRsp{} - mi := &file_main_proto_msgTypes[226] + mi := &file_main_proto_msgTypes[229] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11893,7 +12152,7 @@ func (x *GetTaskAssigneesRsp) String() string { func (*GetTaskAssigneesRsp) ProtoMessage() {} func (x *GetTaskAssigneesRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[226] + mi := &file_main_proto_msgTypes[229] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11906,7 +12165,7 @@ func (x *GetTaskAssigneesRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTaskAssigneesRsp.ProtoReflect.Descriptor instead. func (*GetTaskAssigneesRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{226} + return file_main_proto_rawDescGZIP(), []int{229} } func (x *GetTaskAssigneesRsp) GetAssignees() []*TaskAssignee { @@ -11929,7 +12188,7 @@ type CreateTaskReq struct { func (x *CreateTaskReq) Reset() { *x = CreateTaskReq{} - mi := &file_main_proto_msgTypes[227] + mi := &file_main_proto_msgTypes[230] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11941,7 +12200,7 @@ func (x *CreateTaskReq) String() string { func (*CreateTaskReq) ProtoMessage() {} func (x *CreateTaskReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[227] + mi := &file_main_proto_msgTypes[230] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11954,7 +12213,7 @@ func (x *CreateTaskReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateTaskReq.ProtoReflect.Descriptor instead. func (*CreateTaskReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{227} + return file_main_proto_rawDescGZIP(), []int{230} } func (x *CreateTaskReq) GetTitle() string { @@ -12007,7 +12266,7 @@ type UpdateTaskReq struct { func (x *UpdateTaskReq) Reset() { *x = UpdateTaskReq{} - mi := &file_main_proto_msgTypes[228] + mi := &file_main_proto_msgTypes[231] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12019,7 +12278,7 @@ func (x *UpdateTaskReq) String() string { func (*UpdateTaskReq) ProtoMessage() {} func (x *UpdateTaskReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[228] + mi := &file_main_proto_msgTypes[231] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12032,7 +12291,7 @@ func (x *UpdateTaskReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateTaskReq.ProtoReflect.Descriptor instead. func (*UpdateTaskReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{228} + return file_main_proto_rawDescGZIP(), []int{231} } func (x *UpdateTaskReq) GetID() int32 { @@ -12095,7 +12354,7 @@ type SetTaskStatusReq struct { func (x *SetTaskStatusReq) Reset() { *x = SetTaskStatusReq{} - mi := &file_main_proto_msgTypes[229] + mi := &file_main_proto_msgTypes[232] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12107,7 +12366,7 @@ func (x *SetTaskStatusReq) String() string { func (*SetTaskStatusReq) ProtoMessage() {} func (x *SetTaskStatusReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[229] + mi := &file_main_proto_msgTypes[232] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12120,7 +12379,7 @@ func (x *SetTaskStatusReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SetTaskStatusReq.ProtoReflect.Descriptor instead. func (*SetTaskStatusReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{229} + return file_main_proto_rawDescGZIP(), []int{232} } func (x *SetTaskStatusReq) GetID() int32 { @@ -12154,7 +12413,7 @@ type DeleteTaskReq struct { func (x *DeleteTaskReq) Reset() { *x = DeleteTaskReq{} - mi := &file_main_proto_msgTypes[230] + mi := &file_main_proto_msgTypes[233] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12166,7 +12425,7 @@ func (x *DeleteTaskReq) String() string { func (*DeleteTaskReq) ProtoMessage() {} func (x *DeleteTaskReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[230] + mi := &file_main_proto_msgTypes[233] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12179,7 +12438,7 @@ func (x *DeleteTaskReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteTaskReq.ProtoReflect.Descriptor instead. func (*DeleteTaskReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{230} + return file_main_proto_rawDescGZIP(), []int{233} } func (x *DeleteTaskReq) GetID() int32 { @@ -12205,7 +12464,7 @@ type TaskRsp struct { func (x *TaskRsp) Reset() { *x = TaskRsp{} - mi := &file_main_proto_msgTypes[231] + mi := &file_main_proto_msgTypes[234] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12217,7 +12476,7 @@ func (x *TaskRsp) String() string { func (*TaskRsp) ProtoMessage() {} func (x *TaskRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[231] + mi := &file_main_proto_msgTypes[234] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12230,7 +12489,7 @@ func (x *TaskRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use TaskRsp.ProtoReflect.Descriptor instead. func (*TaskRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{231} + return file_main_proto_rawDescGZIP(), []int{234} } func (x *TaskRsp) GetTask() *DeveloperTask { @@ -12248,7 +12507,7 @@ type DeleteTaskRsp struct { func (x *DeleteTaskRsp) Reset() { *x = DeleteTaskRsp{} - mi := &file_main_proto_msgTypes[232] + mi := &file_main_proto_msgTypes[235] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12260,7 +12519,7 @@ func (x *DeleteTaskRsp) String() string { func (*DeleteTaskRsp) ProtoMessage() {} func (x *DeleteTaskRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[232] + mi := &file_main_proto_msgTypes[235] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12273,7 +12532,7 @@ func (x *DeleteTaskRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteTaskRsp.ProtoReflect.Descriptor instead. func (*DeleteTaskRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{232} + return file_main_proto_rawDescGZIP(), []int{235} } type GameResultsPackageReq struct { @@ -12285,7 +12544,7 @@ type GameResultsPackageReq struct { func (x *GameResultsPackageReq) Reset() { *x = GameResultsPackageReq{} - mi := &file_main_proto_msgTypes[233] + mi := &file_main_proto_msgTypes[236] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12297,7 +12556,7 @@ func (x *GameResultsPackageReq) String() string { func (*GameResultsPackageReq) ProtoMessage() {} func (x *GameResultsPackageReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[233] + mi := &file_main_proto_msgTypes[236] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12310,7 +12569,7 @@ func (x *GameResultsPackageReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GameResultsPackageReq.ProtoReflect.Descriptor instead. func (*GameResultsPackageReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{233} + return file_main_proto_rawDescGZIP(), []int{236} } func (x *GameResultsPackageReq) GetID() int32 { @@ -12330,7 +12589,7 @@ type ApplyGameResultsPackageReq struct { func (x *ApplyGameResultsPackageReq) Reset() { *x = ApplyGameResultsPackageReq{} - mi := &file_main_proto_msgTypes[234] + mi := &file_main_proto_msgTypes[237] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12342,7 +12601,7 @@ func (x *ApplyGameResultsPackageReq) String() string { func (*ApplyGameResultsPackageReq) ProtoMessage() {} func (x *ApplyGameResultsPackageReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[234] + mi := &file_main_proto_msgTypes[237] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12355,7 +12614,7 @@ func (x *ApplyGameResultsPackageReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplyGameResultsPackageReq.ProtoReflect.Descriptor instead. func (*ApplyGameResultsPackageReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{234} + return file_main_proto_rawDescGZIP(), []int{237} } func (x *ApplyGameResultsPackageReq) GetID() int32 { @@ -12383,7 +12642,7 @@ type GameResultsPackageRsp struct { func (x *GameResultsPackageRsp) Reset() { *x = GameResultsPackageRsp{} - mi := &file_main_proto_msgTypes[235] + mi := &file_main_proto_msgTypes[238] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12395,7 +12654,7 @@ func (x *GameResultsPackageRsp) String() string { func (*GameResultsPackageRsp) ProtoMessage() {} func (x *GameResultsPackageRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[235] + mi := &file_main_proto_msgTypes[238] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12408,7 +12667,7 @@ func (x *GameResultsPackageRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GameResultsPackageRsp.ProtoReflect.Descriptor instead. func (*GameResultsPackageRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{235} + return file_main_proto_rawDescGZIP(), []int{238} } func (x *GameResultsPackageRsp) GetGameID() int32 { @@ -12447,7 +12706,7 @@ type DeviceHeartbeatReq struct { func (x *DeviceHeartbeatReq) Reset() { *x = DeviceHeartbeatReq{} - mi := &file_main_proto_msgTypes[236] + mi := &file_main_proto_msgTypes[239] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12459,7 +12718,7 @@ func (x *DeviceHeartbeatReq) String() string { func (*DeviceHeartbeatReq) ProtoMessage() {} func (x *DeviceHeartbeatReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[236] + mi := &file_main_proto_msgTypes[239] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12472,7 +12731,7 @@ func (x *DeviceHeartbeatReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceHeartbeatReq.ProtoReflect.Descriptor instead. func (*DeviceHeartbeatReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{236} + return file_main_proto_rawDescGZIP(), []int{239} } func (x *DeviceHeartbeatReq) GetDeviceID() string { @@ -12534,7 +12793,7 @@ type DeviceHeartbeatRsp struct { func (x *DeviceHeartbeatRsp) Reset() { *x = DeviceHeartbeatRsp{} - mi := &file_main_proto_msgTypes[237] + mi := &file_main_proto_msgTypes[240] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12546,7 +12805,7 @@ func (x *DeviceHeartbeatRsp) String() string { func (*DeviceHeartbeatRsp) ProtoMessage() {} func (x *DeviceHeartbeatRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[237] + mi := &file_main_proto_msgTypes[240] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12559,7 +12818,7 @@ func (x *DeviceHeartbeatRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceHeartbeatRsp.ProtoReflect.Descriptor instead. func (*DeviceHeartbeatRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{237} + return file_main_proto_rawDescGZIP(), []int{240} } func (x *DeviceHeartbeatRsp) GetEnabled() bool { @@ -12585,7 +12844,7 @@ type GetDevicesReq struct { func (x *GetDevicesReq) Reset() { *x = GetDevicesReq{} - mi := &file_main_proto_msgTypes[238] + mi := &file_main_proto_msgTypes[241] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12597,7 +12856,7 @@ func (x *GetDevicesReq) String() string { func (*GetDevicesReq) ProtoMessage() {} func (x *GetDevicesReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[238] + mi := &file_main_proto_msgTypes[241] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12610,7 +12869,7 @@ func (x *GetDevicesReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetDevicesReq.ProtoReflect.Descriptor instead. func (*GetDevicesReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{238} + return file_main_proto_rawDescGZIP(), []int{241} } func (x *GetDevicesReq) GetGameID() int32 { @@ -12631,7 +12890,7 @@ type GetDevicesRsp struct { func (x *GetDevicesRsp) Reset() { *x = GetDevicesRsp{} - mi := &file_main_proto_msgTypes[239] + mi := &file_main_proto_msgTypes[242] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12643,7 +12902,7 @@ func (x *GetDevicesRsp) String() string { func (*GetDevicesRsp) ProtoMessage() {} func (x *GetDevicesRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[239] + mi := &file_main_proto_msgTypes[242] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12656,7 +12915,7 @@ func (x *GetDevicesRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetDevicesRsp.ProtoReflect.Descriptor instead. func (*GetDevicesRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{239} + return file_main_proto_rawDescGZIP(), []int{242} } func (x *GetDevicesRsp) GetDevices() []*VenueDevice { @@ -12693,7 +12952,7 @@ type VenueDevice struct { func (x *VenueDevice) Reset() { *x = VenueDevice{} - mi := &file_main_proto_msgTypes[240] + mi := &file_main_proto_msgTypes[243] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12705,7 +12964,7 @@ func (x *VenueDevice) String() string { func (*VenueDevice) ProtoMessage() {} func (x *VenueDevice) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[240] + mi := &file_main_proto_msgTypes[243] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12718,7 +12977,7 @@ func (x *VenueDevice) ProtoReflect() protoreflect.Message { // Deprecated: Use VenueDevice.ProtoReflect.Descriptor instead. func (*VenueDevice) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{240} + return file_main_proto_rawDescGZIP(), []int{243} } func (x *VenueDevice) GetID() string { @@ -12774,7 +13033,7 @@ type DeviceConnection struct { func (x *DeviceConnection) Reset() { *x = DeviceConnection{} - mi := &file_main_proto_msgTypes[241] + mi := &file_main_proto_msgTypes[244] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12786,7 +13045,7 @@ func (x *DeviceConnection) String() string { func (*DeviceConnection) ProtoMessage() {} func (x *DeviceConnection) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[241] + mi := &file_main_proto_msgTypes[244] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12799,7 +13058,7 @@ func (x *DeviceConnection) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceConnection.ProtoReflect.Descriptor instead. func (*DeviceConnection) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{241} + return file_main_proto_rawDescGZIP(), []int{244} } func (x *DeviceConnection) GetID() string { @@ -12885,7 +13144,7 @@ type VenueWiFi struct { func (x *VenueWiFi) Reset() { *x = VenueWiFi{} - mi := &file_main_proto_msgTypes[242] + mi := &file_main_proto_msgTypes[245] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12897,7 +13156,7 @@ func (x *VenueWiFi) String() string { func (*VenueWiFi) ProtoMessage() {} func (x *VenueWiFi) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[242] + mi := &file_main_proto_msgTypes[245] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12910,7 +13169,7 @@ func (x *VenueWiFi) ProtoReflect() protoreflect.Message { // Deprecated: Use VenueWiFi.ProtoReflect.Descriptor instead. func (*VenueWiFi) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{242} + return file_main_proto_rawDescGZIP(), []int{245} } func (x *VenueWiFi) GetEnabled() bool { @@ -12960,7 +13219,7 @@ type WiFiClient struct { func (x *WiFiClient) Reset() { *x = WiFiClient{} - mi := &file_main_proto_msgTypes[243] + mi := &file_main_proto_msgTypes[246] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12972,7 +13231,7 @@ func (x *WiFiClient) String() string { func (*WiFiClient) ProtoMessage() {} func (x *WiFiClient) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[243] + mi := &file_main_proto_msgTypes[246] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12985,7 +13244,7 @@ func (x *WiFiClient) ProtoReflect() protoreflect.Message { // Deprecated: Use WiFiClient.ProtoReflect.Descriptor instead. func (*WiFiClient) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{243} + return file_main_proto_rawDescGZIP(), []int{246} } func (x *WiFiClient) GetIP() string { @@ -13026,7 +13285,7 @@ type TeamReceiptReq struct { func (x *TeamReceiptReq) Reset() { *x = TeamReceiptReq{} - mi := &file_main_proto_msgTypes[244] + mi := &file_main_proto_msgTypes[247] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13038,7 +13297,7 @@ func (x *TeamReceiptReq) String() string { func (*TeamReceiptReq) ProtoMessage() {} func (x *TeamReceiptReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[244] + mi := &file_main_proto_msgTypes[247] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13051,7 +13310,7 @@ func (x *TeamReceiptReq) ProtoReflect() protoreflect.Message { // Deprecated: Use TeamReceiptReq.ProtoReflect.Descriptor instead. func (*TeamReceiptReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{244} + return file_main_proto_rawDescGZIP(), []int{247} } func (x *TeamReceiptReq) GetGameID() int32 { @@ -13076,7 +13335,7 @@ type PrintTeamReceiptRsp struct { func (x *PrintTeamReceiptRsp) Reset() { *x = PrintTeamReceiptRsp{} - mi := &file_main_proto_msgTypes[245] + mi := &file_main_proto_msgTypes[248] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13088,7 +13347,7 @@ func (x *PrintTeamReceiptRsp) String() string { func (*PrintTeamReceiptRsp) ProtoMessage() {} func (x *PrintTeamReceiptRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[245] + mi := &file_main_proto_msgTypes[248] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13101,7 +13360,7 @@ func (x *PrintTeamReceiptRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use PrintTeamReceiptRsp.ProtoReflect.Descriptor instead. func (*PrintTeamReceiptRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{245} + return file_main_proto_rawDescGZIP(), []int{248} } var File_main_proto protoreflect.FileDescriptor @@ -13443,7 +13702,7 @@ const file_main_proto_rawDesc = "" + "\bexportID\x18\x02 \x01(\tR\bexportID\"\x17\n" + "\x15ResetGameLocalModeRsp\"S\n" + "\rGameExportRsp\x12B\n" + - "\x06export\x18\x01 \x01(\v2*.crabs.evening_detective_server.GameExportR\x06export\"\xec\x06\n" + + "\x06export\x18\x01 \x01(\v2*.crabs.evening_detective_server.GameExportR\x06export\"\xd3\a\n" + "\vScreenState\x12\x0e\n" + "\x02ID\x18\x01 \x01(\tR\x02ID\x12\x16\n" + "\x06status\x18\x02 \x01(\tR\x06status\x12\x1b\n" + @@ -13471,7 +13730,10 @@ const file_main_proto_rawDesc = "" + "\vtimer_state\x18\x13 \x01(\x0e20.crabs.evening_detective_server.ScreenTimerStateR\n" + "timerState\x12\x12\n" + "\x04text\x18\x14 \x01(\tR\x04text\x12@\n" + - "\x05music\x18\x15 \x01(\v2*.crabs.evening_detective_server.MusicStateR\x05musicB\t\n" + + "\x05music\x18\x15 \x01(\v2*.crabs.evening_detective_server.MusicStateR\x05music\x12\x15\n" + + "\x06qr_url\x18\x16 \x01(\tR\x05qrUrl\x12N\n" + + "\n" + + "timer_type\x18\x17 \x01(\x0e2/.crabs.evening_detective_server.ScreenTimerTypeR\ttimerTypeB\t\n" + "\a_gameID\"\x18\n" + "\x16CreateScreenSessionReq\"W\n" + "\x16CreateScreenSessionRsp\x12\x1a\n" + @@ -13557,15 +13819,19 @@ const file_main_proto_rawDesc = "" + "\x01x\x18\x04 \x01(\x05R\x01x\x12\f\n" + "\x01y\x18\x05 \x01(\x05R\x01y\x12\x16\n" + "\x06hidden\x18\x06 \x01(\bR\x06hidden\"\x16\n" + - "\x14UpdateGameMapItemRsp\"j\n" + + "\x14UpdateGameMapItemRsp\"\x95\x01\n" + "\x10SetScreenModeReq\x12\x16\n" + "\x06gameID\x18\x01 \x01(\x05R\x06gameID\x12>\n" + - "\x04mode\x18\x02 \x01(\x0e2*.crabs.evening_detective_server.ScreenModeR\x04mode\"\x12\n" + - "\x10SetScreenModeRsp\"l\n" + + "\x04mode\x18\x02 \x01(\x0e2*.crabs.evening_detective_server.ScreenModeR\x04mode\x12\x15\n" + + "\x06qr_url\x18\x03 \x01(\tR\x05qrUrl\x12\x12\n" + + "\x04text\x18\x04 \x01(\tR\x04text\"\x12\n" + + "\x10SetScreenModeRsp\"\xbc\x01\n" + "\x11SetScreenTimerReq\x12\x16\n" + "\x06gameID\x18\x01 \x01(\x05R\x06gameID\x12)\n" + "\x10duration_seconds\x18\x02 \x01(\x03R\x0fdurationSeconds\x12\x14\n" + - "\x05label\x18\x03 \x01(\tR\x05label\"\x13\n" + + "\x05label\x18\x03 \x01(\tR\x05label\x12N\n" + + "\n" + + "timer_type\x18\x04 \x01(\x0e2/.crabs.evening_detective_server.ScreenTimerTypeR\ttimerType\"\x13\n" + "\x11SetScreenTimerRsp\"\xb0\x01\n" + "\x14SendScreenCommandReq\x12\x16\n" + "\x06gameID\x18\x01 \x01(\x05R\x06gameID\x12G\n" + @@ -13573,13 +13839,16 @@ const file_main_proto_rawDesc = "" + "\vposition_ms\x18\x03 \x01(\x03R\n" + "positionMs\x12\x16\n" + "\x06volume\x18\x04 \x01(\x05R\x06volume\"\x16\n" + - "\x14SendScreenCommandRsp\"\xbb\x01\n" + + "\x14SendScreenCommandRsp\"\xa2\x02\n" + "\x0eScreenPlanStep\x12>\n" + "\x04mode\x18\x01 \x01(\x0e2*.crabs.evening_detective_server.ScreenModeR\x04mode\x12\x12\n" + "\x04text\x18\x02 \x01(\tR\x04text\x12\x1f\n" + "\vtimer_label\x18\x03 \x01(\tR\n" + "timerLabel\x124\n" + - "\x16timer_duration_seconds\x18\x04 \x01(\x03R\x14timerDurationSeconds\"u\n" + + "\x16timer_duration_seconds\x18\x04 \x01(\x03R\x14timerDurationSeconds\x12\x15\n" + + "\x06qr_url\x18\x05 \x01(\tR\x05qrUrl\x12N\n" + + "\n" + + "timer_type\x18\x06 \x01(\x0e2/.crabs.evening_detective_server.ScreenTimerTypeR\ttimerType\"u\n" + "\n" + "ScreenPlan\x12D\n" + "\x05steps\x18\x01 \x03(\v2..crabs.evening_detective_server.ScreenPlanStepR\x05steps\x12!\n" + @@ -13598,7 +13867,16 @@ const file_main_proto_rawDesc = "" + "\x06gameID\x18\x01 \x01(\x05R\x06gameID\x12!\n" + "\fcurrent_step\x18\x02 \x01(\x05R\vcurrentStep\"V\n" + "\x14SetScreenPlanStepRsp\x12>\n" + - "\x04plan\x18\x01 \x01(\v2*.crabs.evening_detective_server.ScreenPlanR\x04plan\"S\n" + + "\x04plan\x18\x01 \x01(\v2*.crabs.evening_detective_server.ScreenPlanR\x04plan\"0\n" + + "\n" + + "ScreenTeam\x12\x0e\n" + + "\x02ID\x18\x01 \x01(\tR\x02ID\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\"R\n" + + "\x11GetScreenTeamsReq\x12\x1a\n" + + "\bscreenID\x18\x01 \x01(\tR\bscreenID\x12!\n" + + "\faccess_token\x18\x02 \x01(\tR\vaccessToken\"U\n" + + "\x11GetScreenTeamsRsp\x12@\n" + + "\x05teams\x18\x01 \x03(\v2*.crabs.evening_detective_server.ScreenTeamR\x05teams\"S\n" + "\x13GetScreenResultsReq\x12\x1a\n" + "\bscreenID\x18\x01 \x01(\tR\bscreenID\x12 \n" + "\vaccessToken\x18\x02 \x01(\tR\vaccessToken\"\xa6\x01\n" + @@ -13958,7 +14236,7 @@ const file_main_proto_rawDesc = "" + "\x0eTeamReceiptReq\x12\x16\n" + "\x06gameID\x18\x01 \x01(\x05R\x06gameID\x12\x16\n" + "\x06teamID\x18\x02 \x01(\tR\x06teamID\"\x15\n" + - "\x13PrintTeamReceiptRsp*\xfa\x01\n" + + "\x13PrintTeamReceiptRsp*\xa5\x02\n" + "\n" + "ScreenMode\x12\x1b\n" + "\x17SCREEN_MODE_UNSPECIFIED\x10\x00\x12\x15\n" + @@ -13967,7 +14245,14 @@ const file_main_proto_rawDesc = "" + "\x16SCREEN_MODE_CONCLUSION\x10\x04\x12\x17\n" + "\x13SCREEN_MODE_RESULTS\x10\x06\x12\x15\n" + "\x11SCREEN_MODE_TIMER\x10\a\x12\x14\n" + - "\x10SCREEN_MODE_TEXT\x10\b\"\x04\b\x03\x10\x03\"\x04\b\x05\x10\x05*\x16SCREEN_MODE_INTRO_DONE*\x1bSCREEN_MODE_CONCLUSION_DONE*\xb6\x01\n" + + "\x10SCREEN_MODE_TEXT\x10\b\x12\x12\n" + + "\x0eSCREEN_MODE_QR\x10\t\x12\x15\n" + + "\x11SCREEN_MODE_TEAMS\x10\n" + + "\"\x04\b\x03\x10\x03\"\x04\b\x05\x10\x05*\x16SCREEN_MODE_INTRO_DONE*\x1bSCREEN_MODE_CONCLUSION_DONE*r\n" + + "\x0fScreenTimerType\x12\x1b\n" + + "\x17SCREEN_TIMER_TYPE_BREAK\x10\x00\x12!\n" + + "\x1dSCREEN_TIMER_TYPE_BEFORE_GAME\x10\x01\x12\x1f\n" + + "\x1bSCREEN_TIMER_TYPE_UNTIL_END\x10\x02*\xb6\x01\n" + "\x10ScreenTimerState\x12\"\n" + "\x1eSCREEN_TIMER_STATE_UNSPECIFIED\x10\x00\x12\x1e\n" + "\x1aSCREEN_TIMER_STATE_STOPPED\x10\x01\x12\x1e\n" + @@ -13992,7 +14277,7 @@ const file_main_proto_rawDesc = "" + "\x1aMUSIC_PLAYBACK_UNSPECIFIED\x10\x00\x12\x1a\n" + "\x16MUSIC_PLAYBACK_STOPPED\x10\x01\x12\x1a\n" + "\x16MUSIC_PLAYBACK_PLAYING\x10\x02\x12\x19\n" + - "\x15MUSIC_PLAYBACK_PAUSED\x10\x032\x85\xe6\x01\n" + + "\x15MUSIC_PLAYBACK_PAUSED\x10\x032\x9d\xe7\x01\n" + "\x16EveningDetectiveServer\x12\xa9\x04\n" + "\x0fDeviceHeartbeat\x122.crabs.evening_detective_server.DeviceHeartbeatReq\x1a2.crabs.evening_detective_server.DeviceHeartbeatRsp\"\xad\x03\x92A\x88\x03\n" + "\x14Устройства\x12OОбновить присутствие подключения браузера\x1a\x9c\x02Публичный endpoint. Контексты взаимоисключающие и проверяются сервером. В prod enabled=false без регистрации. UUID обозначает браузерный профиль, не физический телефон.b\x00\x82\xd3\xe4\x93\x02\x1b:\x01*\"\x16/api/devices/heartbeat\x12\xa1\x04\n" + @@ -14199,7 +14484,8 @@ const file_main_proto_rawDesc = "" + "\x0eSaveScreenPlan\x121.crabs.evening_detective_server.SaveScreenPlanReq\x1a1.crabs.evening_detective_server.SaveScreenPlanRsp\"g\x92A:\n" + "\fЭкраны\x12*Сохранить план экранов\x82\xd3\xe4\x93\x02$:\x01*\x1a\x1f/api/games/{gameID}/screen-plan\x12\xf7\x01\n" + "\x11SetScreenPlanStep\x124.crabs.evening_detective_server.SetScreenPlanStepReq\x1a4.crabs.evening_detective_server.SetScreenPlanStepRsp\"v\x92AD\n" + - "\fЭкраны\x124Перейти на шаг плана экранов\x82\xd3\xe4\x93\x02):\x01*\"$/api/games/{gameID}/screen-plan/step\x12\xe9\x01\n" + + "\fЭкраны\x124Перейти на шаг плана экранов\x82\xd3\xe4\x93\x02):\x01*\"$/api/games/{gameID}/screen-plan/step\x12\x95\x01\n" + + "\x0eGetScreenTeams\x121.crabs.evening_detective_server.GetScreenTeamsReq\x1a1.crabs.evening_detective_server.GetScreenTeamsRsp\"\x1d\x82\xd3\xe4\x93\x02\x17:\x01*\"\x12/api/screens/teams\x12\xe9\x01\n" + "\x10GetScreenResults\x123.crabs.evening_detective_server.GetScreenResultsReq\x1a3.crabs.evening_detective_server.GetScreenResultsRsp\"k\x92AI\n" + "\fЭкраны\x129Получить результаты для экрана\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/screens/results\x12\xe8\x01\n" + "\x1aDownloadGamePrintMaterials\x12*.crabs.evening_detective_server.GetGameReq\x1a\x14.google.api.HttpBody\"\x87\x01\x92A]\n" + @@ -14300,609 +14586,619 @@ func file_main_proto_rawDescGZIP() []byte { return file_main_proto_rawDescData } -var file_main_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_main_proto_msgTypes = make([]protoimpl.MessageInfo, 246) +var file_main_proto_enumTypes = make([]protoimpl.EnumInfo, 5) +var file_main_proto_msgTypes = make([]protoimpl.MessageInfo, 249) var file_main_proto_goTypes = []any{ (ScreenMode)(0), // 0: crabs.evening_detective_server.ScreenMode - (ScreenTimerState)(0), // 1: crabs.evening_detective_server.ScreenTimerState - (ScreenCommand)(0), // 2: crabs.evening_detective_server.ScreenCommand - (MusicPlaybackState)(0), // 3: crabs.evening_detective_server.MusicPlaybackState - (*PingReq)(nil), // 4: crabs.evening_detective_server.PingReq - (*PingRsp)(nil), // 5: crabs.evening_detective_server.PingRsp - (*EchoReq)(nil), // 6: crabs.evening_detective_server.EchoReq - (*EchoRsp)(nil), // 7: crabs.evening_detective_server.EchoRsp - (*SignupReq)(nil), // 8: crabs.evening_detective_server.SignupReq - (*SignupRsp)(nil), // 9: crabs.evening_detective_server.SignupRsp - (*RefreshPasswordReq)(nil), // 10: crabs.evening_detective_server.RefreshPasswordReq - (*RefreshPasswordRsp)(nil), // 11: crabs.evening_detective_server.RefreshPasswordRsp - (*LoginReq)(nil), // 12: crabs.evening_detective_server.LoginReq - (*LoginRsp)(nil), // 13: crabs.evening_detective_server.LoginRsp - (*RefreshReq)(nil), // 14: crabs.evening_detective_server.RefreshReq - (*RefreshRsp)(nil), // 15: crabs.evening_detective_server.RefreshRsp - (*DeleteAccountReq)(nil), // 16: crabs.evening_detective_server.DeleteAccountReq - (*DeleteAccountRsp)(nil), // 17: crabs.evening_detective_server.DeleteAccountRsp - (*GetTermsReq)(nil), // 18: crabs.evening_detective_server.GetTermsReq - (*GetTermsRsp)(nil), // 19: crabs.evening_detective_server.GetTermsRsp - (*GetPrivacyReq)(nil), // 20: crabs.evening_detective_server.GetPrivacyReq - (*GetPrivacyRsp)(nil), // 21: crabs.evening_detective_server.GetPrivacyRsp - (*GetConsentReq)(nil), // 22: crabs.evening_detective_server.GetConsentReq - (*GetConsentRsp)(nil), // 23: crabs.evening_detective_server.GetConsentRsp - (*GetUsersReq)(nil), // 24: crabs.evening_detective_server.GetUsersReq - (*GetUsersRsp)(nil), // 25: crabs.evening_detective_server.GetUsersRsp - (*User)(nil), // 26: crabs.evening_detective_server.User - (*GetUserByIDReq)(nil), // 27: crabs.evening_detective_server.GetUserByIDReq - (*GetUserByIDRsp)(nil), // 28: crabs.evening_detective_server.GetUserByIDRsp - (*GetMeReq)(nil), // 29: crabs.evening_detective_server.GetMeReq - (*GetMeRsp)(nil), // 30: crabs.evening_detective_server.GetMeRsp - (*ChangeUserPasswordReq)(nil), // 31: crabs.evening_detective_server.ChangeUserPasswordReq - (*ChangeUserPasswordRsp)(nil), // 32: crabs.evening_detective_server.ChangeUserPasswordRsp - (*AddUserRoleReq)(nil), // 33: crabs.evening_detective_server.AddUserRoleReq - (*AddUserRoleRsp)(nil), // 34: crabs.evening_detective_server.AddUserRoleRsp - (*DeleteUserRoleReq)(nil), // 35: crabs.evening_detective_server.DeleteUserRoleReq - (*DeleteUserRoleRsp)(nil), // 36: crabs.evening_detective_server.DeleteUserRoleRsp - (*GetPermissionsReq)(nil), // 37: crabs.evening_detective_server.GetPermissionsReq - (*GetPermissionsRsp)(nil), // 38: crabs.evening_detective_server.GetPermissionsRsp - (*UploadFileReq)(nil), // 39: crabs.evening_detective_server.UploadFileReq - (*UploadFileRsp)(nil), // 40: crabs.evening_detective_server.UploadFileRsp - (*DownloadFileReq)(nil), // 41: crabs.evening_detective_server.DownloadFileReq - (*PlaylistTrack)(nil), // 42: crabs.evening_detective_server.PlaylistTrack - (*Playlist)(nil), // 43: crabs.evening_detective_server.Playlist - (*GetPlaylistsReq)(nil), // 44: crabs.evening_detective_server.GetPlaylistsReq - (*GetPlaylistsRsp)(nil), // 45: crabs.evening_detective_server.GetPlaylistsRsp - (*CreatePlaylistReq)(nil), // 46: crabs.evening_detective_server.CreatePlaylistReq - (*CreatePlaylistRsp)(nil), // 47: crabs.evening_detective_server.CreatePlaylistRsp - (*UpdatePlaylistReq)(nil), // 48: crabs.evening_detective_server.UpdatePlaylistReq - (*UpdatePlaylistRsp)(nil), // 49: crabs.evening_detective_server.UpdatePlaylistRsp - (*DeletePlaylistReq)(nil), // 50: crabs.evening_detective_server.DeletePlaylistReq - (*DeletePlaylistRsp)(nil), // 51: crabs.evening_detective_server.DeletePlaylistRsp - (*UploadPlaylistTrackReq)(nil), // 52: crabs.evening_detective_server.UploadPlaylistTrackReq - (*UploadPlaylistTrackRsp)(nil), // 53: crabs.evening_detective_server.UploadPlaylistTrackRsp - (*ReorderPlaylistTracksReq)(nil), // 54: crabs.evening_detective_server.ReorderPlaylistTracksReq - (*ReorderPlaylistTracksRsp)(nil), // 55: crabs.evening_detective_server.ReorderPlaylistTracksRsp - (*DeletePlaylistTrackReq)(nil), // 56: crabs.evening_detective_server.DeletePlaylistTrackReq - (*DeletePlaylistTrackRsp)(nil), // 57: crabs.evening_detective_server.DeletePlaylistTrackRsp - (*SetScenarioPlaylistReq)(nil), // 58: crabs.evening_detective_server.SetScenarioPlaylistReq - (*SetScenarioPlaylistRsp)(nil), // 59: crabs.evening_detective_server.SetScenarioPlaylistRsp - (*AddScenarioReq)(nil), // 60: crabs.evening_detective_server.AddScenarioReq - (*AddScenarioRsp)(nil), // 61: crabs.evening_detective_server.AddScenarioRsp - (*GetMyScenariosReq)(nil), // 62: crabs.evening_detective_server.GetMyScenariosReq - (*GetMyScenariosRsp)(nil), // 63: crabs.evening_detective_server.GetMyScenariosRsp - (*GetScenariosCatalogReq)(nil), // 64: crabs.evening_detective_server.GetScenariosCatalogReq - (*GetScenariosCatalogRsp)(nil), // 65: crabs.evening_detective_server.GetScenariosCatalogRsp - (*GetScenarioReq)(nil), // 66: crabs.evening_detective_server.GetScenarioReq - (*GetScenarioRsp)(nil), // 67: crabs.evening_detective_server.GetScenarioRsp - (*Scenario)(nil), // 68: crabs.evening_detective_server.Scenario - (*Story)(nil), // 69: crabs.evening_detective_server.Story - (*Conclusion)(nil), // 70: crabs.evening_detective_server.Conclusion - (*Introduction)(nil), // 71: crabs.evening_detective_server.Introduction - (*Place)(nil), // 72: crabs.evening_detective_server.Place - (*Application)(nil), // 73: crabs.evening_detective_server.Application - (*Door)(nil), // 74: crabs.evening_detective_server.Door - (*Key)(nil), // 75: crabs.evening_detective_server.Key - (*Question)(nil), // 76: crabs.evening_detective_server.Question - (*Answer)(nil), // 77: crabs.evening_detective_server.Answer - (*AnswerScore)(nil), // 78: crabs.evening_detective_server.AnswerScore - (*TeamAnswers)(nil), // 79: crabs.evening_detective_server.TeamAnswers - (*UpdateScenarioReq)(nil), // 80: crabs.evening_detective_server.UpdateScenarioReq - (*UpdateScenarioRsp)(nil), // 81: crabs.evening_detective_server.UpdateScenarioRsp - (*PublicScenarioReq)(nil), // 82: crabs.evening_detective_server.PublicScenarioReq - (*PublicScenarioRsp)(nil), // 83: crabs.evening_detective_server.PublicScenarioRsp - (*DraftScenarioReq)(nil), // 84: crabs.evening_detective_server.DraftScenarioReq - (*DraftScenarioRsp)(nil), // 85: crabs.evening_detective_server.DraftScenarioRsp - (*DeleteScenarioReq)(nil), // 86: crabs.evening_detective_server.DeleteScenarioReq - (*DeleteScenarioRsp)(nil), // 87: crabs.evening_detective_server.DeleteScenarioRsp - (*AddScenarioPlaceReq)(nil), // 88: crabs.evening_detective_server.AddScenarioPlaceReq - (*AddScenarioPlaceRsp)(nil), // 89: crabs.evening_detective_server.AddScenarioPlaceRsp - (*UpdateScenarioPlaceReq)(nil), // 90: crabs.evening_detective_server.UpdateScenarioPlaceReq - (*UpdateScenarioPlaceRsp)(nil), // 91: crabs.evening_detective_server.UpdateScenarioPlaceRsp - (*DeleteScenarioPlaceReq)(nil), // 92: crabs.evening_detective_server.DeleteScenarioPlaceReq - (*DeleteScenarioPlaceRsp)(nil), // 93: crabs.evening_detective_server.DeleteScenarioPlaceRsp - (*UpdateScenarioConclusionReq)(nil), // 94: crabs.evening_detective_server.UpdateScenarioConclusionReq - (*UpdateScenarioConclusionRsp)(nil), // 95: crabs.evening_detective_server.UpdateScenarioConclusionRsp - (*UpdateScenarioIntroReq)(nil), // 96: crabs.evening_detective_server.UpdateScenarioIntroReq - (*UpdateScenarioIntroRsp)(nil), // 97: crabs.evening_detective_server.UpdateScenarioIntroRsp - (*AddScenarioQuestionReq)(nil), // 98: crabs.evening_detective_server.AddScenarioQuestionReq - (*AddScenarioQuestionRsp)(nil), // 99: crabs.evening_detective_server.AddScenarioQuestionRsp - (*UpdateScenarioQuestionReq)(nil), // 100: crabs.evening_detective_server.UpdateScenarioQuestionReq - (*UpdateScenarioQuestionRsp)(nil), // 101: crabs.evening_detective_server.UpdateScenarioQuestionRsp - (*DeleteScenarioQuestionReq)(nil), // 102: crabs.evening_detective_server.DeleteScenarioQuestionReq - (*DeleteScenarioQuestionRsp)(nil), // 103: crabs.evening_detective_server.DeleteScenarioQuestionRsp - (*DownloadScenarioArchiveReq)(nil), // 104: crabs.evening_detective_server.DownloadScenarioArchiveReq - (*UploadScenarioArchiveRsp)(nil), // 105: crabs.evening_detective_server.UploadScenarioArchiveRsp - (*AddGameReq)(nil), // 106: crabs.evening_detective_server.AddGameReq - (*AddGameRsp)(nil), // 107: crabs.evening_detective_server.AddGameRsp - (*GetGamesReq)(nil), // 108: crabs.evening_detective_server.GetGamesReq - (*GetGamesRsp)(nil), // 109: crabs.evening_detective_server.GetGamesRsp - (*Game)(nil), // 110: crabs.evening_detective_server.Game - (*GameExport)(nil), // 111: crabs.evening_detective_server.GameExport - (*GameImportRsp)(nil), // 112: crabs.evening_detective_server.GameImportRsp - (*StartGameExportReq)(nil), // 113: crabs.evening_detective_server.StartGameExportReq - (*GetGameExportReq)(nil), // 114: crabs.evening_detective_server.GetGameExportReq - (*ResetGameLocalModeReq)(nil), // 115: crabs.evening_detective_server.ResetGameLocalModeReq - (*ResetGameLocalModeRsp)(nil), // 116: crabs.evening_detective_server.ResetGameLocalModeRsp - (*GameExportRsp)(nil), // 117: crabs.evening_detective_server.GameExportRsp - (*ScreenState)(nil), // 118: crabs.evening_detective_server.ScreenState - (*CreateScreenSessionReq)(nil), // 119: crabs.evening_detective_server.CreateScreenSessionReq - (*CreateScreenSessionRsp)(nil), // 120: crabs.evening_detective_server.CreateScreenSessionRsp - (*GetScreenStateReq)(nil), // 121: crabs.evening_detective_server.GetScreenStateReq - (*GetScreenStateRsp)(nil), // 122: crabs.evening_detective_server.GetScreenStateRsp - (*GetGameScreensReq)(nil), // 123: crabs.evening_detective_server.GetGameScreensReq - (*GetGameScreensRsp)(nil), // 124: crabs.evening_detective_server.GetGameScreensRsp - (*MusicState)(nil), // 125: crabs.evening_detective_server.MusicState - (*GetGameMusicReq)(nil), // 126: crabs.evening_detective_server.GetGameMusicReq - (*GetGameMusicRsp)(nil), // 127: crabs.evening_detective_server.GetGameMusicRsp - (*SetGameMusicReq)(nil), // 128: crabs.evening_detective_server.SetGameMusicReq - (*SetGameMusicRsp)(nil), // 129: crabs.evening_detective_server.SetGameMusicRsp - (*AdvanceScreenMusicReq)(nil), // 130: crabs.evening_detective_server.AdvanceScreenMusicReq - (*AdvanceScreenMusicRsp)(nil), // 131: crabs.evening_detective_server.AdvanceScreenMusicRsp - (*BindScreenReq)(nil), // 132: crabs.evening_detective_server.BindScreenReq - (*BindScreenRsp)(nil), // 133: crabs.evening_detective_server.BindScreenRsp - (*UnbindScreenReq)(nil), // 134: crabs.evening_detective_server.UnbindScreenReq - (*UnbindScreenRsp)(nil), // 135: crabs.evening_detective_server.UnbindScreenRsp - (*SetScreenSoundReq)(nil), // 136: crabs.evening_detective_server.SetScreenSoundReq - (*SetScreenSoundRsp)(nil), // 137: crabs.evening_detective_server.SetScreenSoundRsp - (*MapItem)(nil), // 138: crabs.evening_detective_server.MapItem - (*GetGameMapReq)(nil), // 139: crabs.evening_detective_server.GetGameMapReq - (*GetGameMapRsp)(nil), // 140: crabs.evening_detective_server.GetGameMapRsp - (*UpdateGameMapItemReq)(nil), // 141: crabs.evening_detective_server.UpdateGameMapItemReq - (*UpdateGameMapItemRsp)(nil), // 142: crabs.evening_detective_server.UpdateGameMapItemRsp - (*SetScreenModeReq)(nil), // 143: crabs.evening_detective_server.SetScreenModeReq - (*SetScreenModeRsp)(nil), // 144: crabs.evening_detective_server.SetScreenModeRsp - (*SetScreenTimerReq)(nil), // 145: crabs.evening_detective_server.SetScreenTimerReq - (*SetScreenTimerRsp)(nil), // 146: crabs.evening_detective_server.SetScreenTimerRsp - (*SendScreenCommandReq)(nil), // 147: crabs.evening_detective_server.SendScreenCommandReq - (*SendScreenCommandRsp)(nil), // 148: crabs.evening_detective_server.SendScreenCommandRsp - (*ScreenPlanStep)(nil), // 149: crabs.evening_detective_server.ScreenPlanStep - (*ScreenPlan)(nil), // 150: crabs.evening_detective_server.ScreenPlan - (*GetScreenPlanReq)(nil), // 151: crabs.evening_detective_server.GetScreenPlanReq - (*GetScreenPlanRsp)(nil), // 152: crabs.evening_detective_server.GetScreenPlanRsp - (*SaveScreenPlanReq)(nil), // 153: crabs.evening_detective_server.SaveScreenPlanReq - (*SaveScreenPlanRsp)(nil), // 154: crabs.evening_detective_server.SaveScreenPlanRsp - (*SetScreenPlanStepReq)(nil), // 155: crabs.evening_detective_server.SetScreenPlanStepReq - (*SetScreenPlanStepRsp)(nil), // 156: crabs.evening_detective_server.SetScreenPlanStepRsp - (*GetScreenResultsReq)(nil), // 157: crabs.evening_detective_server.GetScreenResultsReq - (*GetScreenResultsRsp)(nil), // 158: crabs.evening_detective_server.GetScreenResultsRsp - (*GetParticipationReq)(nil), // 159: crabs.evening_detective_server.GetParticipationReq - (*AnswerParticipationReq)(nil), // 160: crabs.evening_detective_server.AnswerParticipationReq - (*ParticipationRsp)(nil), // 161: crabs.evening_detective_server.ParticipationRsp - (*Team)(nil), // 162: crabs.evening_detective_server.Team - (*GetGameReq)(nil), // 163: crabs.evening_detective_server.GetGameReq - (*GetGameRsp)(nil), // 164: crabs.evening_detective_server.GetGameRsp - (*GetGameAnswersReq)(nil), // 165: crabs.evening_detective_server.GetGameAnswersReq - (*GetGameAnswersRsp)(nil), // 166: crabs.evening_detective_server.GetGameAnswersRsp - (*GetGameResultsReq)(nil), // 167: crabs.evening_detective_server.GetGameResultsReq - (*ResultsQuestion)(nil), // 168: crabs.evening_detective_server.ResultsQuestion - (*TeamResult)(nil), // 169: crabs.evening_detective_server.TeamResult - (*GetGameResultsRsp)(nil), // 170: crabs.evening_detective_server.GetGameResultsRsp - (*GameReview)(nil), // 171: crabs.evening_detective_server.GameReview - (*CreateGameReviewReq)(nil), // 172: crabs.evening_detective_server.CreateGameReviewReq - (*CreateGameReviewRsp)(nil), // 173: crabs.evening_detective_server.CreateGameReviewRsp - (*GetGameReviewsReq)(nil), // 174: crabs.evening_detective_server.GetGameReviewsReq - (*GetScenarioReviewsReq)(nil), // 175: crabs.evening_detective_server.GetScenarioReviewsReq - (*GetReviewsForModerationReq)(nil), // 176: crabs.evening_detective_server.GetReviewsForModerationReq - (*GetGameReviewsRsp)(nil), // 177: crabs.evening_detective_server.GetGameReviewsRsp - (*ModerateGameReviewReq)(nil), // 178: crabs.evening_detective_server.ModerateGameReviewReq - (*ModerateGameReviewRsp)(nil), // 179: crabs.evening_detective_server.ModerateGameReviewRsp - (*UpdateGameReq)(nil), // 180: crabs.evening_detective_server.UpdateGameReq - (*UpdateGameRsp)(nil), // 181: crabs.evening_detective_server.UpdateGameRsp - (*StartGameReq)(nil), // 182: crabs.evening_detective_server.StartGameReq - (*StartGameRsp)(nil), // 183: crabs.evening_detective_server.StartGameRsp - (*PauseGameReq)(nil), // 184: crabs.evening_detective_server.PauseGameReq - (*PauseGameRsp)(nil), // 185: crabs.evening_detective_server.PauseGameRsp - (*PlayGameReq)(nil), // 186: crabs.evening_detective_server.PlayGameReq - (*PlayGameRsp)(nil), // 187: crabs.evening_detective_server.PlayGameRsp - (*FinishGameReq)(nil), // 188: crabs.evening_detective_server.FinishGameReq - (*FinishGameRsp)(nil), // 189: crabs.evening_detective_server.FinishGameRsp - (*ResetGameReq)(nil), // 190: crabs.evening_detective_server.ResetGameReq - (*ResetGameRsp)(nil), // 191: crabs.evening_detective_server.ResetGameRsp - (*DeleteGameReq)(nil), // 192: crabs.evening_detective_server.DeleteGameReq - (*DeleteGameRsp)(nil), // 193: crabs.evening_detective_server.DeleteGameRsp - (*AddTeamReq)(nil), // 194: crabs.evening_detective_server.AddTeamReq - (*AddTeamRsp)(nil), // 195: crabs.evening_detective_server.AddTeamRsp - (*UpdateTeamReq)(nil), // 196: crabs.evening_detective_server.UpdateTeamReq - (*UpdateTeamRsp)(nil), // 197: crabs.evening_detective_server.UpdateTeamRsp - (*DeleteTeamReq)(nil), // 198: crabs.evening_detective_server.DeleteTeamReq - (*DeleteTeamRsp)(nil), // 199: crabs.evening_detective_server.DeleteTeamRsp - (*GiveTeamApplicationsReq)(nil), // 200: crabs.evening_detective_server.GiveTeamApplicationsReq - (*GiveTeamApplicationsRsp)(nil), // 201: crabs.evening_detective_server.GiveTeamApplicationsRsp - (*GetTeamStoryReq)(nil), // 202: crabs.evening_detective_server.GetTeamStoryReq - (*GetTeamStoryRsp)(nil), // 203: crabs.evening_detective_server.GetTeamStoryRsp - (*TeamAction)(nil), // 204: crabs.evening_detective_server.TeamAction - (*AddTeamActionReq)(nil), // 205: crabs.evening_detective_server.AddTeamActionReq - (*AddTeamActionRsp)(nil), // 206: crabs.evening_detective_server.AddTeamActionRsp - (*DeleteLastTeamActionReq)(nil), // 207: crabs.evening_detective_server.DeleteLastTeamActionReq - (*DeleteLastTeamActionRsp)(nil), // 208: crabs.evening_detective_server.DeleteLastTeamActionRsp - (*GetTeamAnswersReq)(nil), // 209: crabs.evening_detective_server.GetTeamAnswersReq - (*GetTeamAnswersRsp)(nil), // 210: crabs.evening_detective_server.GetTeamAnswersRsp - (*SubmitTeamAnswersReq)(nil), // 211: crabs.evening_detective_server.SubmitTeamAnswersReq - (*SubmitTeamAnswersRsp)(nil), // 212: crabs.evening_detective_server.SubmitTeamAnswersRsp - (*SetTeamAnswerScoreReq)(nil), // 213: crabs.evening_detective_server.SetTeamAnswerScoreReq - (*SetTeamAnswerScoreRsp)(nil), // 214: crabs.evening_detective_server.SetTeamAnswerScoreRsp - (*UpdateScenarioBackgroundReq)(nil), // 215: crabs.evening_detective_server.UpdateScenarioBackgroundReq - (*UpdateScenarioBackgroundRsp)(nil), // 216: crabs.evening_detective_server.UpdateScenarioBackgroundRsp - (*IssueGameTicketsReq)(nil), // 217: crabs.evening_detective_server.IssueGameTicketsReq - (*IssueGameTicketsRsp)(nil), // 218: crabs.evening_detective_server.IssueGameTicketsRsp - (*Ticket)(nil), // 219: crabs.evening_detective_server.Ticket - (*GetTicketReq)(nil), // 220: crabs.evening_detective_server.GetTicketReq - (*GetTicketRsp)(nil), // 221: crabs.evening_detective_server.GetTicketRsp - (*AcceptTicketReq)(nil), // 222: crabs.evening_detective_server.AcceptTicketReq - (*AcceptTicketRsp)(nil), // 223: crabs.evening_detective_server.AcceptTicketRsp - (*TicketPage)(nil), // 224: crabs.evening_detective_server.TicketPage - (*DeveloperTask)(nil), // 225: crabs.evening_detective_server.DeveloperTask - (*TaskAssignee)(nil), // 226: crabs.evening_detective_server.TaskAssignee - (*GetTasksReq)(nil), // 227: crabs.evening_detective_server.GetTasksReq - (*GetTasksRsp)(nil), // 228: crabs.evening_detective_server.GetTasksRsp - (*GetTaskAssigneesReq)(nil), // 229: crabs.evening_detective_server.GetTaskAssigneesReq - (*GetTaskAssigneesRsp)(nil), // 230: crabs.evening_detective_server.GetTaskAssigneesRsp - (*CreateTaskReq)(nil), // 231: crabs.evening_detective_server.CreateTaskReq - (*UpdateTaskReq)(nil), // 232: crabs.evening_detective_server.UpdateTaskReq - (*SetTaskStatusReq)(nil), // 233: crabs.evening_detective_server.SetTaskStatusReq - (*DeleteTaskReq)(nil), // 234: crabs.evening_detective_server.DeleteTaskReq - (*TaskRsp)(nil), // 235: crabs.evening_detective_server.TaskRsp - (*DeleteTaskRsp)(nil), // 236: crabs.evening_detective_server.DeleteTaskRsp - (*GameResultsPackageReq)(nil), // 237: crabs.evening_detective_server.GameResultsPackageReq - (*ApplyGameResultsPackageReq)(nil), // 238: crabs.evening_detective_server.ApplyGameResultsPackageReq - (*GameResultsPackageRsp)(nil), // 239: crabs.evening_detective_server.GameResultsPackageRsp - (*DeviceHeartbeatReq)(nil), // 240: crabs.evening_detective_server.DeviceHeartbeatReq - (*DeviceHeartbeatRsp)(nil), // 241: crabs.evening_detective_server.DeviceHeartbeatRsp - (*GetDevicesReq)(nil), // 242: crabs.evening_detective_server.GetDevicesReq - (*GetDevicesRsp)(nil), // 243: crabs.evening_detective_server.GetDevicesRsp - (*VenueDevice)(nil), // 244: crabs.evening_detective_server.VenueDevice - (*DeviceConnection)(nil), // 245: crabs.evening_detective_server.DeviceConnection - (*VenueWiFi)(nil), // 246: crabs.evening_detective_server.VenueWiFi - (*WiFiClient)(nil), // 247: crabs.evening_detective_server.WiFiClient - (*TeamReceiptReq)(nil), // 248: crabs.evening_detective_server.TeamReceiptReq - (*PrintTeamReceiptRsp)(nil), // 249: crabs.evening_detective_server.PrintTeamReceiptRsp - (*timestamppb.Timestamp)(nil), // 250: google.protobuf.Timestamp - (*httpbody.HttpBody)(nil), // 251: google.api.HttpBody + (ScreenTimerType)(0), // 1: crabs.evening_detective_server.ScreenTimerType + (ScreenTimerState)(0), // 2: crabs.evening_detective_server.ScreenTimerState + (ScreenCommand)(0), // 3: crabs.evening_detective_server.ScreenCommand + (MusicPlaybackState)(0), // 4: crabs.evening_detective_server.MusicPlaybackState + (*PingReq)(nil), // 5: crabs.evening_detective_server.PingReq + (*PingRsp)(nil), // 6: crabs.evening_detective_server.PingRsp + (*EchoReq)(nil), // 7: crabs.evening_detective_server.EchoReq + (*EchoRsp)(nil), // 8: crabs.evening_detective_server.EchoRsp + (*SignupReq)(nil), // 9: crabs.evening_detective_server.SignupReq + (*SignupRsp)(nil), // 10: crabs.evening_detective_server.SignupRsp + (*RefreshPasswordReq)(nil), // 11: crabs.evening_detective_server.RefreshPasswordReq + (*RefreshPasswordRsp)(nil), // 12: crabs.evening_detective_server.RefreshPasswordRsp + (*LoginReq)(nil), // 13: crabs.evening_detective_server.LoginReq + (*LoginRsp)(nil), // 14: crabs.evening_detective_server.LoginRsp + (*RefreshReq)(nil), // 15: crabs.evening_detective_server.RefreshReq + (*RefreshRsp)(nil), // 16: crabs.evening_detective_server.RefreshRsp + (*DeleteAccountReq)(nil), // 17: crabs.evening_detective_server.DeleteAccountReq + (*DeleteAccountRsp)(nil), // 18: crabs.evening_detective_server.DeleteAccountRsp + (*GetTermsReq)(nil), // 19: crabs.evening_detective_server.GetTermsReq + (*GetTermsRsp)(nil), // 20: crabs.evening_detective_server.GetTermsRsp + (*GetPrivacyReq)(nil), // 21: crabs.evening_detective_server.GetPrivacyReq + (*GetPrivacyRsp)(nil), // 22: crabs.evening_detective_server.GetPrivacyRsp + (*GetConsentReq)(nil), // 23: crabs.evening_detective_server.GetConsentReq + (*GetConsentRsp)(nil), // 24: crabs.evening_detective_server.GetConsentRsp + (*GetUsersReq)(nil), // 25: crabs.evening_detective_server.GetUsersReq + (*GetUsersRsp)(nil), // 26: crabs.evening_detective_server.GetUsersRsp + (*User)(nil), // 27: crabs.evening_detective_server.User + (*GetUserByIDReq)(nil), // 28: crabs.evening_detective_server.GetUserByIDReq + (*GetUserByIDRsp)(nil), // 29: crabs.evening_detective_server.GetUserByIDRsp + (*GetMeReq)(nil), // 30: crabs.evening_detective_server.GetMeReq + (*GetMeRsp)(nil), // 31: crabs.evening_detective_server.GetMeRsp + (*ChangeUserPasswordReq)(nil), // 32: crabs.evening_detective_server.ChangeUserPasswordReq + (*ChangeUserPasswordRsp)(nil), // 33: crabs.evening_detective_server.ChangeUserPasswordRsp + (*AddUserRoleReq)(nil), // 34: crabs.evening_detective_server.AddUserRoleReq + (*AddUserRoleRsp)(nil), // 35: crabs.evening_detective_server.AddUserRoleRsp + (*DeleteUserRoleReq)(nil), // 36: crabs.evening_detective_server.DeleteUserRoleReq + (*DeleteUserRoleRsp)(nil), // 37: crabs.evening_detective_server.DeleteUserRoleRsp + (*GetPermissionsReq)(nil), // 38: crabs.evening_detective_server.GetPermissionsReq + (*GetPermissionsRsp)(nil), // 39: crabs.evening_detective_server.GetPermissionsRsp + (*UploadFileReq)(nil), // 40: crabs.evening_detective_server.UploadFileReq + (*UploadFileRsp)(nil), // 41: crabs.evening_detective_server.UploadFileRsp + (*DownloadFileReq)(nil), // 42: crabs.evening_detective_server.DownloadFileReq + (*PlaylistTrack)(nil), // 43: crabs.evening_detective_server.PlaylistTrack + (*Playlist)(nil), // 44: crabs.evening_detective_server.Playlist + (*GetPlaylistsReq)(nil), // 45: crabs.evening_detective_server.GetPlaylistsReq + (*GetPlaylistsRsp)(nil), // 46: crabs.evening_detective_server.GetPlaylistsRsp + (*CreatePlaylistReq)(nil), // 47: crabs.evening_detective_server.CreatePlaylistReq + (*CreatePlaylistRsp)(nil), // 48: crabs.evening_detective_server.CreatePlaylistRsp + (*UpdatePlaylistReq)(nil), // 49: crabs.evening_detective_server.UpdatePlaylistReq + (*UpdatePlaylistRsp)(nil), // 50: crabs.evening_detective_server.UpdatePlaylistRsp + (*DeletePlaylistReq)(nil), // 51: crabs.evening_detective_server.DeletePlaylistReq + (*DeletePlaylistRsp)(nil), // 52: crabs.evening_detective_server.DeletePlaylistRsp + (*UploadPlaylistTrackReq)(nil), // 53: crabs.evening_detective_server.UploadPlaylistTrackReq + (*UploadPlaylistTrackRsp)(nil), // 54: crabs.evening_detective_server.UploadPlaylistTrackRsp + (*ReorderPlaylistTracksReq)(nil), // 55: crabs.evening_detective_server.ReorderPlaylistTracksReq + (*ReorderPlaylistTracksRsp)(nil), // 56: crabs.evening_detective_server.ReorderPlaylistTracksRsp + (*DeletePlaylistTrackReq)(nil), // 57: crabs.evening_detective_server.DeletePlaylistTrackReq + (*DeletePlaylistTrackRsp)(nil), // 58: crabs.evening_detective_server.DeletePlaylistTrackRsp + (*SetScenarioPlaylistReq)(nil), // 59: crabs.evening_detective_server.SetScenarioPlaylistReq + (*SetScenarioPlaylistRsp)(nil), // 60: crabs.evening_detective_server.SetScenarioPlaylistRsp + (*AddScenarioReq)(nil), // 61: crabs.evening_detective_server.AddScenarioReq + (*AddScenarioRsp)(nil), // 62: crabs.evening_detective_server.AddScenarioRsp + (*GetMyScenariosReq)(nil), // 63: crabs.evening_detective_server.GetMyScenariosReq + (*GetMyScenariosRsp)(nil), // 64: crabs.evening_detective_server.GetMyScenariosRsp + (*GetScenariosCatalogReq)(nil), // 65: crabs.evening_detective_server.GetScenariosCatalogReq + (*GetScenariosCatalogRsp)(nil), // 66: crabs.evening_detective_server.GetScenariosCatalogRsp + (*GetScenarioReq)(nil), // 67: crabs.evening_detective_server.GetScenarioReq + (*GetScenarioRsp)(nil), // 68: crabs.evening_detective_server.GetScenarioRsp + (*Scenario)(nil), // 69: crabs.evening_detective_server.Scenario + (*Story)(nil), // 70: crabs.evening_detective_server.Story + (*Conclusion)(nil), // 71: crabs.evening_detective_server.Conclusion + (*Introduction)(nil), // 72: crabs.evening_detective_server.Introduction + (*Place)(nil), // 73: crabs.evening_detective_server.Place + (*Application)(nil), // 74: crabs.evening_detective_server.Application + (*Door)(nil), // 75: crabs.evening_detective_server.Door + (*Key)(nil), // 76: crabs.evening_detective_server.Key + (*Question)(nil), // 77: crabs.evening_detective_server.Question + (*Answer)(nil), // 78: crabs.evening_detective_server.Answer + (*AnswerScore)(nil), // 79: crabs.evening_detective_server.AnswerScore + (*TeamAnswers)(nil), // 80: crabs.evening_detective_server.TeamAnswers + (*UpdateScenarioReq)(nil), // 81: crabs.evening_detective_server.UpdateScenarioReq + (*UpdateScenarioRsp)(nil), // 82: crabs.evening_detective_server.UpdateScenarioRsp + (*PublicScenarioReq)(nil), // 83: crabs.evening_detective_server.PublicScenarioReq + (*PublicScenarioRsp)(nil), // 84: crabs.evening_detective_server.PublicScenarioRsp + (*DraftScenarioReq)(nil), // 85: crabs.evening_detective_server.DraftScenarioReq + (*DraftScenarioRsp)(nil), // 86: crabs.evening_detective_server.DraftScenarioRsp + (*DeleteScenarioReq)(nil), // 87: crabs.evening_detective_server.DeleteScenarioReq + (*DeleteScenarioRsp)(nil), // 88: crabs.evening_detective_server.DeleteScenarioRsp + (*AddScenarioPlaceReq)(nil), // 89: crabs.evening_detective_server.AddScenarioPlaceReq + (*AddScenarioPlaceRsp)(nil), // 90: crabs.evening_detective_server.AddScenarioPlaceRsp + (*UpdateScenarioPlaceReq)(nil), // 91: crabs.evening_detective_server.UpdateScenarioPlaceReq + (*UpdateScenarioPlaceRsp)(nil), // 92: crabs.evening_detective_server.UpdateScenarioPlaceRsp + (*DeleteScenarioPlaceReq)(nil), // 93: crabs.evening_detective_server.DeleteScenarioPlaceReq + (*DeleteScenarioPlaceRsp)(nil), // 94: crabs.evening_detective_server.DeleteScenarioPlaceRsp + (*UpdateScenarioConclusionReq)(nil), // 95: crabs.evening_detective_server.UpdateScenarioConclusionReq + (*UpdateScenarioConclusionRsp)(nil), // 96: crabs.evening_detective_server.UpdateScenarioConclusionRsp + (*UpdateScenarioIntroReq)(nil), // 97: crabs.evening_detective_server.UpdateScenarioIntroReq + (*UpdateScenarioIntroRsp)(nil), // 98: crabs.evening_detective_server.UpdateScenarioIntroRsp + (*AddScenarioQuestionReq)(nil), // 99: crabs.evening_detective_server.AddScenarioQuestionReq + (*AddScenarioQuestionRsp)(nil), // 100: crabs.evening_detective_server.AddScenarioQuestionRsp + (*UpdateScenarioQuestionReq)(nil), // 101: crabs.evening_detective_server.UpdateScenarioQuestionReq + (*UpdateScenarioQuestionRsp)(nil), // 102: crabs.evening_detective_server.UpdateScenarioQuestionRsp + (*DeleteScenarioQuestionReq)(nil), // 103: crabs.evening_detective_server.DeleteScenarioQuestionReq + (*DeleteScenarioQuestionRsp)(nil), // 104: crabs.evening_detective_server.DeleteScenarioQuestionRsp + (*DownloadScenarioArchiveReq)(nil), // 105: crabs.evening_detective_server.DownloadScenarioArchiveReq + (*UploadScenarioArchiveRsp)(nil), // 106: crabs.evening_detective_server.UploadScenarioArchiveRsp + (*AddGameReq)(nil), // 107: crabs.evening_detective_server.AddGameReq + (*AddGameRsp)(nil), // 108: crabs.evening_detective_server.AddGameRsp + (*GetGamesReq)(nil), // 109: crabs.evening_detective_server.GetGamesReq + (*GetGamesRsp)(nil), // 110: crabs.evening_detective_server.GetGamesRsp + (*Game)(nil), // 111: crabs.evening_detective_server.Game + (*GameExport)(nil), // 112: crabs.evening_detective_server.GameExport + (*GameImportRsp)(nil), // 113: crabs.evening_detective_server.GameImportRsp + (*StartGameExportReq)(nil), // 114: crabs.evening_detective_server.StartGameExportReq + (*GetGameExportReq)(nil), // 115: crabs.evening_detective_server.GetGameExportReq + (*ResetGameLocalModeReq)(nil), // 116: crabs.evening_detective_server.ResetGameLocalModeReq + (*ResetGameLocalModeRsp)(nil), // 117: crabs.evening_detective_server.ResetGameLocalModeRsp + (*GameExportRsp)(nil), // 118: crabs.evening_detective_server.GameExportRsp + (*ScreenState)(nil), // 119: crabs.evening_detective_server.ScreenState + (*CreateScreenSessionReq)(nil), // 120: crabs.evening_detective_server.CreateScreenSessionReq + (*CreateScreenSessionRsp)(nil), // 121: crabs.evening_detective_server.CreateScreenSessionRsp + (*GetScreenStateReq)(nil), // 122: crabs.evening_detective_server.GetScreenStateReq + (*GetScreenStateRsp)(nil), // 123: crabs.evening_detective_server.GetScreenStateRsp + (*GetGameScreensReq)(nil), // 124: crabs.evening_detective_server.GetGameScreensReq + (*GetGameScreensRsp)(nil), // 125: crabs.evening_detective_server.GetGameScreensRsp + (*MusicState)(nil), // 126: crabs.evening_detective_server.MusicState + (*GetGameMusicReq)(nil), // 127: crabs.evening_detective_server.GetGameMusicReq + (*GetGameMusicRsp)(nil), // 128: crabs.evening_detective_server.GetGameMusicRsp + (*SetGameMusicReq)(nil), // 129: crabs.evening_detective_server.SetGameMusicReq + (*SetGameMusicRsp)(nil), // 130: crabs.evening_detective_server.SetGameMusicRsp + (*AdvanceScreenMusicReq)(nil), // 131: crabs.evening_detective_server.AdvanceScreenMusicReq + (*AdvanceScreenMusicRsp)(nil), // 132: crabs.evening_detective_server.AdvanceScreenMusicRsp + (*BindScreenReq)(nil), // 133: crabs.evening_detective_server.BindScreenReq + (*BindScreenRsp)(nil), // 134: crabs.evening_detective_server.BindScreenRsp + (*UnbindScreenReq)(nil), // 135: crabs.evening_detective_server.UnbindScreenReq + (*UnbindScreenRsp)(nil), // 136: crabs.evening_detective_server.UnbindScreenRsp + (*SetScreenSoundReq)(nil), // 137: crabs.evening_detective_server.SetScreenSoundReq + (*SetScreenSoundRsp)(nil), // 138: crabs.evening_detective_server.SetScreenSoundRsp + (*MapItem)(nil), // 139: crabs.evening_detective_server.MapItem + (*GetGameMapReq)(nil), // 140: crabs.evening_detective_server.GetGameMapReq + (*GetGameMapRsp)(nil), // 141: crabs.evening_detective_server.GetGameMapRsp + (*UpdateGameMapItemReq)(nil), // 142: crabs.evening_detective_server.UpdateGameMapItemReq + (*UpdateGameMapItemRsp)(nil), // 143: crabs.evening_detective_server.UpdateGameMapItemRsp + (*SetScreenModeReq)(nil), // 144: crabs.evening_detective_server.SetScreenModeReq + (*SetScreenModeRsp)(nil), // 145: crabs.evening_detective_server.SetScreenModeRsp + (*SetScreenTimerReq)(nil), // 146: crabs.evening_detective_server.SetScreenTimerReq + (*SetScreenTimerRsp)(nil), // 147: crabs.evening_detective_server.SetScreenTimerRsp + (*SendScreenCommandReq)(nil), // 148: crabs.evening_detective_server.SendScreenCommandReq + (*SendScreenCommandRsp)(nil), // 149: crabs.evening_detective_server.SendScreenCommandRsp + (*ScreenPlanStep)(nil), // 150: crabs.evening_detective_server.ScreenPlanStep + (*ScreenPlan)(nil), // 151: crabs.evening_detective_server.ScreenPlan + (*GetScreenPlanReq)(nil), // 152: crabs.evening_detective_server.GetScreenPlanReq + (*GetScreenPlanRsp)(nil), // 153: crabs.evening_detective_server.GetScreenPlanRsp + (*SaveScreenPlanReq)(nil), // 154: crabs.evening_detective_server.SaveScreenPlanReq + (*SaveScreenPlanRsp)(nil), // 155: crabs.evening_detective_server.SaveScreenPlanRsp + (*SetScreenPlanStepReq)(nil), // 156: crabs.evening_detective_server.SetScreenPlanStepReq + (*SetScreenPlanStepRsp)(nil), // 157: crabs.evening_detective_server.SetScreenPlanStepRsp + (*ScreenTeam)(nil), // 158: crabs.evening_detective_server.ScreenTeam + (*GetScreenTeamsReq)(nil), // 159: crabs.evening_detective_server.GetScreenTeamsReq + (*GetScreenTeamsRsp)(nil), // 160: crabs.evening_detective_server.GetScreenTeamsRsp + (*GetScreenResultsReq)(nil), // 161: crabs.evening_detective_server.GetScreenResultsReq + (*GetScreenResultsRsp)(nil), // 162: crabs.evening_detective_server.GetScreenResultsRsp + (*GetParticipationReq)(nil), // 163: crabs.evening_detective_server.GetParticipationReq + (*AnswerParticipationReq)(nil), // 164: crabs.evening_detective_server.AnswerParticipationReq + (*ParticipationRsp)(nil), // 165: crabs.evening_detective_server.ParticipationRsp + (*Team)(nil), // 166: crabs.evening_detective_server.Team + (*GetGameReq)(nil), // 167: crabs.evening_detective_server.GetGameReq + (*GetGameRsp)(nil), // 168: crabs.evening_detective_server.GetGameRsp + (*GetGameAnswersReq)(nil), // 169: crabs.evening_detective_server.GetGameAnswersReq + (*GetGameAnswersRsp)(nil), // 170: crabs.evening_detective_server.GetGameAnswersRsp + (*GetGameResultsReq)(nil), // 171: crabs.evening_detective_server.GetGameResultsReq + (*ResultsQuestion)(nil), // 172: crabs.evening_detective_server.ResultsQuestion + (*TeamResult)(nil), // 173: crabs.evening_detective_server.TeamResult + (*GetGameResultsRsp)(nil), // 174: crabs.evening_detective_server.GetGameResultsRsp + (*GameReview)(nil), // 175: crabs.evening_detective_server.GameReview + (*CreateGameReviewReq)(nil), // 176: crabs.evening_detective_server.CreateGameReviewReq + (*CreateGameReviewRsp)(nil), // 177: crabs.evening_detective_server.CreateGameReviewRsp + (*GetGameReviewsReq)(nil), // 178: crabs.evening_detective_server.GetGameReviewsReq + (*GetScenarioReviewsReq)(nil), // 179: crabs.evening_detective_server.GetScenarioReviewsReq + (*GetReviewsForModerationReq)(nil), // 180: crabs.evening_detective_server.GetReviewsForModerationReq + (*GetGameReviewsRsp)(nil), // 181: crabs.evening_detective_server.GetGameReviewsRsp + (*ModerateGameReviewReq)(nil), // 182: crabs.evening_detective_server.ModerateGameReviewReq + (*ModerateGameReviewRsp)(nil), // 183: crabs.evening_detective_server.ModerateGameReviewRsp + (*UpdateGameReq)(nil), // 184: crabs.evening_detective_server.UpdateGameReq + (*UpdateGameRsp)(nil), // 185: crabs.evening_detective_server.UpdateGameRsp + (*StartGameReq)(nil), // 186: crabs.evening_detective_server.StartGameReq + (*StartGameRsp)(nil), // 187: crabs.evening_detective_server.StartGameRsp + (*PauseGameReq)(nil), // 188: crabs.evening_detective_server.PauseGameReq + (*PauseGameRsp)(nil), // 189: crabs.evening_detective_server.PauseGameRsp + (*PlayGameReq)(nil), // 190: crabs.evening_detective_server.PlayGameReq + (*PlayGameRsp)(nil), // 191: crabs.evening_detective_server.PlayGameRsp + (*FinishGameReq)(nil), // 192: crabs.evening_detective_server.FinishGameReq + (*FinishGameRsp)(nil), // 193: crabs.evening_detective_server.FinishGameRsp + (*ResetGameReq)(nil), // 194: crabs.evening_detective_server.ResetGameReq + (*ResetGameRsp)(nil), // 195: crabs.evening_detective_server.ResetGameRsp + (*DeleteGameReq)(nil), // 196: crabs.evening_detective_server.DeleteGameReq + (*DeleteGameRsp)(nil), // 197: crabs.evening_detective_server.DeleteGameRsp + (*AddTeamReq)(nil), // 198: crabs.evening_detective_server.AddTeamReq + (*AddTeamRsp)(nil), // 199: crabs.evening_detective_server.AddTeamRsp + (*UpdateTeamReq)(nil), // 200: crabs.evening_detective_server.UpdateTeamReq + (*UpdateTeamRsp)(nil), // 201: crabs.evening_detective_server.UpdateTeamRsp + (*DeleteTeamReq)(nil), // 202: crabs.evening_detective_server.DeleteTeamReq + (*DeleteTeamRsp)(nil), // 203: crabs.evening_detective_server.DeleteTeamRsp + (*GiveTeamApplicationsReq)(nil), // 204: crabs.evening_detective_server.GiveTeamApplicationsReq + (*GiveTeamApplicationsRsp)(nil), // 205: crabs.evening_detective_server.GiveTeamApplicationsRsp + (*GetTeamStoryReq)(nil), // 206: crabs.evening_detective_server.GetTeamStoryReq + (*GetTeamStoryRsp)(nil), // 207: crabs.evening_detective_server.GetTeamStoryRsp + (*TeamAction)(nil), // 208: crabs.evening_detective_server.TeamAction + (*AddTeamActionReq)(nil), // 209: crabs.evening_detective_server.AddTeamActionReq + (*AddTeamActionRsp)(nil), // 210: crabs.evening_detective_server.AddTeamActionRsp + (*DeleteLastTeamActionReq)(nil), // 211: crabs.evening_detective_server.DeleteLastTeamActionReq + (*DeleteLastTeamActionRsp)(nil), // 212: crabs.evening_detective_server.DeleteLastTeamActionRsp + (*GetTeamAnswersReq)(nil), // 213: crabs.evening_detective_server.GetTeamAnswersReq + (*GetTeamAnswersRsp)(nil), // 214: crabs.evening_detective_server.GetTeamAnswersRsp + (*SubmitTeamAnswersReq)(nil), // 215: crabs.evening_detective_server.SubmitTeamAnswersReq + (*SubmitTeamAnswersRsp)(nil), // 216: crabs.evening_detective_server.SubmitTeamAnswersRsp + (*SetTeamAnswerScoreReq)(nil), // 217: crabs.evening_detective_server.SetTeamAnswerScoreReq + (*SetTeamAnswerScoreRsp)(nil), // 218: crabs.evening_detective_server.SetTeamAnswerScoreRsp + (*UpdateScenarioBackgroundReq)(nil), // 219: crabs.evening_detective_server.UpdateScenarioBackgroundReq + (*UpdateScenarioBackgroundRsp)(nil), // 220: crabs.evening_detective_server.UpdateScenarioBackgroundRsp + (*IssueGameTicketsReq)(nil), // 221: crabs.evening_detective_server.IssueGameTicketsReq + (*IssueGameTicketsRsp)(nil), // 222: crabs.evening_detective_server.IssueGameTicketsRsp + (*Ticket)(nil), // 223: crabs.evening_detective_server.Ticket + (*GetTicketReq)(nil), // 224: crabs.evening_detective_server.GetTicketReq + (*GetTicketRsp)(nil), // 225: crabs.evening_detective_server.GetTicketRsp + (*AcceptTicketReq)(nil), // 226: crabs.evening_detective_server.AcceptTicketReq + (*AcceptTicketRsp)(nil), // 227: crabs.evening_detective_server.AcceptTicketRsp + (*TicketPage)(nil), // 228: crabs.evening_detective_server.TicketPage + (*DeveloperTask)(nil), // 229: crabs.evening_detective_server.DeveloperTask + (*TaskAssignee)(nil), // 230: crabs.evening_detective_server.TaskAssignee + (*GetTasksReq)(nil), // 231: crabs.evening_detective_server.GetTasksReq + (*GetTasksRsp)(nil), // 232: crabs.evening_detective_server.GetTasksRsp + (*GetTaskAssigneesReq)(nil), // 233: crabs.evening_detective_server.GetTaskAssigneesReq + (*GetTaskAssigneesRsp)(nil), // 234: crabs.evening_detective_server.GetTaskAssigneesRsp + (*CreateTaskReq)(nil), // 235: crabs.evening_detective_server.CreateTaskReq + (*UpdateTaskReq)(nil), // 236: crabs.evening_detective_server.UpdateTaskReq + (*SetTaskStatusReq)(nil), // 237: crabs.evening_detective_server.SetTaskStatusReq + (*DeleteTaskReq)(nil), // 238: crabs.evening_detective_server.DeleteTaskReq + (*TaskRsp)(nil), // 239: crabs.evening_detective_server.TaskRsp + (*DeleteTaskRsp)(nil), // 240: crabs.evening_detective_server.DeleteTaskRsp + (*GameResultsPackageReq)(nil), // 241: crabs.evening_detective_server.GameResultsPackageReq + (*ApplyGameResultsPackageReq)(nil), // 242: crabs.evening_detective_server.ApplyGameResultsPackageReq + (*GameResultsPackageRsp)(nil), // 243: crabs.evening_detective_server.GameResultsPackageRsp + (*DeviceHeartbeatReq)(nil), // 244: crabs.evening_detective_server.DeviceHeartbeatReq + (*DeviceHeartbeatRsp)(nil), // 245: crabs.evening_detective_server.DeviceHeartbeatRsp + (*GetDevicesReq)(nil), // 246: crabs.evening_detective_server.GetDevicesReq + (*GetDevicesRsp)(nil), // 247: crabs.evening_detective_server.GetDevicesRsp + (*VenueDevice)(nil), // 248: crabs.evening_detective_server.VenueDevice + (*DeviceConnection)(nil), // 249: crabs.evening_detective_server.DeviceConnection + (*VenueWiFi)(nil), // 250: crabs.evening_detective_server.VenueWiFi + (*WiFiClient)(nil), // 251: crabs.evening_detective_server.WiFiClient + (*TeamReceiptReq)(nil), // 252: crabs.evening_detective_server.TeamReceiptReq + (*PrintTeamReceiptRsp)(nil), // 253: crabs.evening_detective_server.PrintTeamReceiptRsp + (*timestamppb.Timestamp)(nil), // 254: google.protobuf.Timestamp + (*httpbody.HttpBody)(nil), // 255: google.api.HttpBody } var file_main_proto_depIdxs = []int32{ - 26, // 0: crabs.evening_detective_server.GetUsersRsp.users:type_name -> crabs.evening_detective_server.User - 250, // 1: crabs.evening_detective_server.User.created_at:type_name -> google.protobuf.Timestamp - 26, // 2: crabs.evening_detective_server.GetUserByIDRsp.user:type_name -> crabs.evening_detective_server.User - 26, // 3: crabs.evening_detective_server.GetMeRsp.user:type_name -> crabs.evening_detective_server.User - 42, // 4: crabs.evening_detective_server.Playlist.tracks:type_name -> crabs.evening_detective_server.PlaylistTrack - 43, // 5: crabs.evening_detective_server.GetPlaylistsRsp.playlists:type_name -> crabs.evening_detective_server.Playlist - 43, // 6: crabs.evening_detective_server.CreatePlaylistRsp.playlist:type_name -> crabs.evening_detective_server.Playlist - 43, // 7: crabs.evening_detective_server.UpdatePlaylistRsp.playlist:type_name -> crabs.evening_detective_server.Playlist - 43, // 8: crabs.evening_detective_server.UploadPlaylistTrackRsp.playlist:type_name -> crabs.evening_detective_server.Playlist - 43, // 9: crabs.evening_detective_server.ReorderPlaylistTracksRsp.playlist:type_name -> crabs.evening_detective_server.Playlist - 68, // 10: crabs.evening_detective_server.GetMyScenariosRsp.scenarios:type_name -> crabs.evening_detective_server.Scenario - 68, // 11: crabs.evening_detective_server.GetScenariosCatalogRsp.scenarios:type_name -> crabs.evening_detective_server.Scenario - 68, // 12: crabs.evening_detective_server.GetScenarioRsp.scenario:type_name -> crabs.evening_detective_server.Scenario - 69, // 13: crabs.evening_detective_server.Scenario.story:type_name -> crabs.evening_detective_server.Story - 26, // 14: crabs.evening_detective_server.Scenario.author:type_name -> crabs.evening_detective_server.User - 250, // 15: crabs.evening_detective_server.Scenario.updated_at:type_name -> google.protobuf.Timestamp - 250, // 16: crabs.evening_detective_server.Scenario.created_at:type_name -> google.protobuf.Timestamp - 250, // 17: crabs.evening_detective_server.Scenario.published_at:type_name -> google.protobuf.Timestamp - 72, // 18: crabs.evening_detective_server.Story.places:type_name -> crabs.evening_detective_server.Place - 71, // 19: crabs.evening_detective_server.Story.introduction:type_name -> crabs.evening_detective_server.Introduction - 76, // 20: crabs.evening_detective_server.Story.questions:type_name -> crabs.evening_detective_server.Question - 70, // 21: crabs.evening_detective_server.Story.conclusion:type_name -> crabs.evening_detective_server.Conclusion - 73, // 22: crabs.evening_detective_server.Place.applications:type_name -> crabs.evening_detective_server.Application - 74, // 23: crabs.evening_detective_server.Place.doors:type_name -> crabs.evening_detective_server.Door - 75, // 24: crabs.evening_detective_server.Place.keys:type_name -> crabs.evening_detective_server.Key - 75, // 25: crabs.evening_detective_server.Door.keys:type_name -> crabs.evening_detective_server.Key - 162, // 26: crabs.evening_detective_server.TeamAnswers.team:type_name -> crabs.evening_detective_server.Team - 78, // 27: crabs.evening_detective_server.TeamAnswers.answers:type_name -> crabs.evening_detective_server.AnswerScore - 72, // 28: crabs.evening_detective_server.AddScenarioPlaceReq.place:type_name -> crabs.evening_detective_server.Place - 72, // 29: crabs.evening_detective_server.UpdateScenarioPlaceReq.place:type_name -> crabs.evening_detective_server.Place - 70, // 30: crabs.evening_detective_server.UpdateScenarioConclusionReq.conclusion:type_name -> crabs.evening_detective_server.Conclusion - 71, // 31: crabs.evening_detective_server.UpdateScenarioIntroReq.introduction:type_name -> crabs.evening_detective_server.Introduction - 76, // 32: crabs.evening_detective_server.AddScenarioQuestionReq.question:type_name -> crabs.evening_detective_server.Question - 76, // 33: crabs.evening_detective_server.UpdateScenarioQuestionReq.question:type_name -> crabs.evening_detective_server.Question - 250, // 34: crabs.evening_detective_server.AddGameReq.start_at:type_name -> google.protobuf.Timestamp - 110, // 35: crabs.evening_detective_server.GetGamesRsp.games:type_name -> crabs.evening_detective_server.Game - 250, // 36: crabs.evening_detective_server.Game.start_at:type_name -> google.protobuf.Timestamp - 68, // 37: crabs.evening_detective_server.Game.scenario:type_name -> crabs.evening_detective_server.Scenario - 162, // 38: crabs.evening_detective_server.Game.teams:type_name -> crabs.evening_detective_server.Team - 250, // 39: crabs.evening_detective_server.Game.started_at:type_name -> google.protobuf.Timestamp - 250, // 40: crabs.evening_detective_server.Game.ended_at:type_name -> google.protobuf.Timestamp - 111, // 41: crabs.evening_detective_server.Game.export:type_name -> crabs.evening_detective_server.GameExport - 111, // 42: crabs.evening_detective_server.GameExportRsp.export:type_name -> crabs.evening_detective_server.GameExport + 27, // 0: crabs.evening_detective_server.GetUsersRsp.users:type_name -> crabs.evening_detective_server.User + 254, // 1: crabs.evening_detective_server.User.created_at:type_name -> google.protobuf.Timestamp + 27, // 2: crabs.evening_detective_server.GetUserByIDRsp.user:type_name -> crabs.evening_detective_server.User + 27, // 3: crabs.evening_detective_server.GetMeRsp.user:type_name -> crabs.evening_detective_server.User + 43, // 4: crabs.evening_detective_server.Playlist.tracks:type_name -> crabs.evening_detective_server.PlaylistTrack + 44, // 5: crabs.evening_detective_server.GetPlaylistsRsp.playlists:type_name -> crabs.evening_detective_server.Playlist + 44, // 6: crabs.evening_detective_server.CreatePlaylistRsp.playlist:type_name -> crabs.evening_detective_server.Playlist + 44, // 7: crabs.evening_detective_server.UpdatePlaylistRsp.playlist:type_name -> crabs.evening_detective_server.Playlist + 44, // 8: crabs.evening_detective_server.UploadPlaylistTrackRsp.playlist:type_name -> crabs.evening_detective_server.Playlist + 44, // 9: crabs.evening_detective_server.ReorderPlaylistTracksRsp.playlist:type_name -> crabs.evening_detective_server.Playlist + 69, // 10: crabs.evening_detective_server.GetMyScenariosRsp.scenarios:type_name -> crabs.evening_detective_server.Scenario + 69, // 11: crabs.evening_detective_server.GetScenariosCatalogRsp.scenarios:type_name -> crabs.evening_detective_server.Scenario + 69, // 12: crabs.evening_detective_server.GetScenarioRsp.scenario:type_name -> crabs.evening_detective_server.Scenario + 70, // 13: crabs.evening_detective_server.Scenario.story:type_name -> crabs.evening_detective_server.Story + 27, // 14: crabs.evening_detective_server.Scenario.author:type_name -> crabs.evening_detective_server.User + 254, // 15: crabs.evening_detective_server.Scenario.updated_at:type_name -> google.protobuf.Timestamp + 254, // 16: crabs.evening_detective_server.Scenario.created_at:type_name -> google.protobuf.Timestamp + 254, // 17: crabs.evening_detective_server.Scenario.published_at:type_name -> google.protobuf.Timestamp + 73, // 18: crabs.evening_detective_server.Story.places:type_name -> crabs.evening_detective_server.Place + 72, // 19: crabs.evening_detective_server.Story.introduction:type_name -> crabs.evening_detective_server.Introduction + 77, // 20: crabs.evening_detective_server.Story.questions:type_name -> crabs.evening_detective_server.Question + 71, // 21: crabs.evening_detective_server.Story.conclusion:type_name -> crabs.evening_detective_server.Conclusion + 74, // 22: crabs.evening_detective_server.Place.applications:type_name -> crabs.evening_detective_server.Application + 75, // 23: crabs.evening_detective_server.Place.doors:type_name -> crabs.evening_detective_server.Door + 76, // 24: crabs.evening_detective_server.Place.keys:type_name -> crabs.evening_detective_server.Key + 76, // 25: crabs.evening_detective_server.Door.keys:type_name -> crabs.evening_detective_server.Key + 166, // 26: crabs.evening_detective_server.TeamAnswers.team:type_name -> crabs.evening_detective_server.Team + 79, // 27: crabs.evening_detective_server.TeamAnswers.answers:type_name -> crabs.evening_detective_server.AnswerScore + 73, // 28: crabs.evening_detective_server.AddScenarioPlaceReq.place:type_name -> crabs.evening_detective_server.Place + 73, // 29: crabs.evening_detective_server.UpdateScenarioPlaceReq.place:type_name -> crabs.evening_detective_server.Place + 71, // 30: crabs.evening_detective_server.UpdateScenarioConclusionReq.conclusion:type_name -> crabs.evening_detective_server.Conclusion + 72, // 31: crabs.evening_detective_server.UpdateScenarioIntroReq.introduction:type_name -> crabs.evening_detective_server.Introduction + 77, // 32: crabs.evening_detective_server.AddScenarioQuestionReq.question:type_name -> crabs.evening_detective_server.Question + 77, // 33: crabs.evening_detective_server.UpdateScenarioQuestionReq.question:type_name -> crabs.evening_detective_server.Question + 254, // 34: crabs.evening_detective_server.AddGameReq.start_at:type_name -> google.protobuf.Timestamp + 111, // 35: crabs.evening_detective_server.GetGamesRsp.games:type_name -> crabs.evening_detective_server.Game + 254, // 36: crabs.evening_detective_server.Game.start_at:type_name -> google.protobuf.Timestamp + 69, // 37: crabs.evening_detective_server.Game.scenario:type_name -> crabs.evening_detective_server.Scenario + 166, // 38: crabs.evening_detective_server.Game.teams:type_name -> crabs.evening_detective_server.Team + 254, // 39: crabs.evening_detective_server.Game.started_at:type_name -> google.protobuf.Timestamp + 254, // 40: crabs.evening_detective_server.Game.ended_at:type_name -> google.protobuf.Timestamp + 112, // 41: crabs.evening_detective_server.Game.export:type_name -> crabs.evening_detective_server.GameExport + 112, // 42: crabs.evening_detective_server.GameExportRsp.export:type_name -> crabs.evening_detective_server.GameExport 0, // 43: crabs.evening_detective_server.ScreenState.mode:type_name -> crabs.evening_detective_server.ScreenMode - 2, // 44: crabs.evening_detective_server.ScreenState.command:type_name -> crabs.evening_detective_server.ScreenCommand - 1, // 45: crabs.evening_detective_server.ScreenState.timer_state:type_name -> crabs.evening_detective_server.ScreenTimerState - 125, // 46: crabs.evening_detective_server.ScreenState.music:type_name -> crabs.evening_detective_server.MusicState - 118, // 47: crabs.evening_detective_server.GetScreenStateRsp.state:type_name -> crabs.evening_detective_server.ScreenState - 118, // 48: crabs.evening_detective_server.GetGameScreensRsp.screens:type_name -> crabs.evening_detective_server.ScreenState - 43, // 49: crabs.evening_detective_server.MusicState.playlist:type_name -> crabs.evening_detective_server.Playlist - 3, // 50: crabs.evening_detective_server.MusicState.playback:type_name -> crabs.evening_detective_server.MusicPlaybackState - 43, // 51: crabs.evening_detective_server.GetGameMusicRsp.playlists:type_name -> crabs.evening_detective_server.Playlist - 125, // 52: crabs.evening_detective_server.GetGameMusicRsp.state:type_name -> crabs.evening_detective_server.MusicState - 3, // 53: crabs.evening_detective_server.SetGameMusicReq.playback:type_name -> crabs.evening_detective_server.MusicPlaybackState - 125, // 54: crabs.evening_detective_server.SetGameMusicRsp.state:type_name -> crabs.evening_detective_server.MusicState - 125, // 55: crabs.evening_detective_server.AdvanceScreenMusicRsp.state:type_name -> crabs.evening_detective_server.MusicState - 118, // 56: crabs.evening_detective_server.BindScreenRsp.state:type_name -> crabs.evening_detective_server.ScreenState - 138, // 57: crabs.evening_detective_server.GetGameMapRsp.items:type_name -> crabs.evening_detective_server.MapItem - 0, // 58: crabs.evening_detective_server.SetScreenModeReq.mode:type_name -> crabs.evening_detective_server.ScreenMode - 2, // 59: crabs.evening_detective_server.SendScreenCommandReq.command:type_name -> crabs.evening_detective_server.ScreenCommand - 0, // 60: crabs.evening_detective_server.ScreenPlanStep.mode:type_name -> crabs.evening_detective_server.ScreenMode - 149, // 61: crabs.evening_detective_server.ScreenPlan.steps:type_name -> crabs.evening_detective_server.ScreenPlanStep - 150, // 62: crabs.evening_detective_server.GetScreenPlanRsp.plan:type_name -> crabs.evening_detective_server.ScreenPlan - 149, // 63: crabs.evening_detective_server.SaveScreenPlanReq.steps:type_name -> crabs.evening_detective_server.ScreenPlanStep - 150, // 64: crabs.evening_detective_server.SaveScreenPlanRsp.plan:type_name -> crabs.evening_detective_server.ScreenPlan - 150, // 65: crabs.evening_detective_server.SetScreenPlanStepRsp.plan:type_name -> crabs.evening_detective_server.ScreenPlan - 168, // 66: crabs.evening_detective_server.GetScreenResultsRsp.questions:type_name -> crabs.evening_detective_server.ResultsQuestion - 169, // 67: crabs.evening_detective_server.GetScreenResultsRsp.teams:type_name -> crabs.evening_detective_server.TeamResult - 250, // 68: crabs.evening_detective_server.ParticipationRsp.start_at:type_name -> google.protobuf.Timestamp - 73, // 69: crabs.evening_detective_server.Team.applications:type_name -> crabs.evening_detective_server.Application - 110, // 70: crabs.evening_detective_server.GetGameRsp.game:type_name -> crabs.evening_detective_server.Game - 76, // 71: crabs.evening_detective_server.GetGameAnswersRsp.questions:type_name -> crabs.evening_detective_server.Question - 79, // 72: crabs.evening_detective_server.GetGameAnswersRsp.teams:type_name -> crabs.evening_detective_server.TeamAnswers - 162, // 73: crabs.evening_detective_server.TeamResult.team:type_name -> crabs.evening_detective_server.Team - 78, // 74: crabs.evening_detective_server.TeamResult.answers:type_name -> crabs.evening_detective_server.AnswerScore - 168, // 75: crabs.evening_detective_server.GetGameResultsRsp.questions:type_name -> crabs.evening_detective_server.ResultsQuestion - 169, // 76: crabs.evening_detective_server.GetGameResultsRsp.teams:type_name -> crabs.evening_detective_server.TeamResult - 250, // 77: crabs.evening_detective_server.GameReview.created_at:type_name -> google.protobuf.Timestamp - 171, // 78: crabs.evening_detective_server.CreateGameReviewRsp.review:type_name -> crabs.evening_detective_server.GameReview - 171, // 79: crabs.evening_detective_server.GetGameReviewsRsp.reviews:type_name -> crabs.evening_detective_server.GameReview - 171, // 80: crabs.evening_detective_server.ModerateGameReviewRsp.review:type_name -> crabs.evening_detective_server.GameReview - 250, // 81: crabs.evening_detective_server.UpdateGameReq.start_at:type_name -> google.protobuf.Timestamp - 69, // 82: crabs.evening_detective_server.GetTeamStoryRsp.story:type_name -> crabs.evening_detective_server.Story - 110, // 83: crabs.evening_detective_server.GetTeamStoryRsp.game:type_name -> crabs.evening_detective_server.Game - 204, // 84: crabs.evening_detective_server.GetTeamStoryRsp.actions:type_name -> crabs.evening_detective_server.TeamAction - 77, // 85: crabs.evening_detective_server.GetTeamAnswersRsp.answers:type_name -> crabs.evening_detective_server.Answer - 77, // 86: crabs.evening_detective_server.SubmitTeamAnswersReq.answers:type_name -> crabs.evening_detective_server.Answer - 219, // 87: crabs.evening_detective_server.IssueGameTicketsRsp.tickets:type_name -> crabs.evening_detective_server.Ticket - 224, // 88: crabs.evening_detective_server.GetTicketRsp.ticket:type_name -> crabs.evening_detective_server.TicketPage - 224, // 89: crabs.evening_detective_server.AcceptTicketRsp.ticket:type_name -> crabs.evening_detective_server.TicketPage - 250, // 90: crabs.evening_detective_server.TicketPage.start_at:type_name -> google.protobuf.Timestamp - 250, // 91: crabs.evening_detective_server.TicketPage.used_at:type_name -> google.protobuf.Timestamp - 250, // 92: crabs.evening_detective_server.DeveloperTask.createdAt:type_name -> google.protobuf.Timestamp - 250, // 93: crabs.evening_detective_server.DeveloperTask.updatedAt:type_name -> google.protobuf.Timestamp - 225, // 94: crabs.evening_detective_server.GetTasksRsp.tasks:type_name -> crabs.evening_detective_server.DeveloperTask - 226, // 95: crabs.evening_detective_server.GetTaskAssigneesRsp.assignees:type_name -> crabs.evening_detective_server.TaskAssignee - 225, // 96: crabs.evening_detective_server.TaskRsp.task:type_name -> crabs.evening_detective_server.DeveloperTask - 251, // 97: crabs.evening_detective_server.ApplyGameResultsPackageReq.package:type_name -> google.api.HttpBody - 250, // 98: crabs.evening_detective_server.DeviceHeartbeatRsp.serverTime:type_name -> google.protobuf.Timestamp - 244, // 99: crabs.evening_detective_server.GetDevicesRsp.devices:type_name -> crabs.evening_detective_server.VenueDevice - 250, // 100: crabs.evening_detective_server.GetDevicesRsp.serverTime:type_name -> google.protobuf.Timestamp - 246, // 101: crabs.evening_detective_server.GetDevicesRsp.wifi:type_name -> crabs.evening_detective_server.VenueWiFi - 250, // 102: crabs.evening_detective_server.VenueDevice.firstSeenAt:type_name -> google.protobuf.Timestamp - 250, // 103: crabs.evening_detective_server.VenueDevice.lastSeenAt:type_name -> google.protobuf.Timestamp - 245, // 104: crabs.evening_detective_server.VenueDevice.connections:type_name -> crabs.evening_detective_server.DeviceConnection - 250, // 105: crabs.evening_detective_server.DeviceConnection.firstSeenAt:type_name -> google.protobuf.Timestamp - 250, // 106: crabs.evening_detective_server.DeviceConnection.lastSeenAt:type_name -> google.protobuf.Timestamp - 250, // 107: crabs.evening_detective_server.VenueWiFi.collectedAt:type_name -> google.protobuf.Timestamp - 247, // 108: crabs.evening_detective_server.VenueWiFi.clients:type_name -> crabs.evening_detective_server.WiFiClient - 240, // 109: crabs.evening_detective_server.EveningDetectiveServer.DeviceHeartbeat:input_type -> crabs.evening_detective_server.DeviceHeartbeatReq - 242, // 110: crabs.evening_detective_server.EveningDetectiveServer.GetDevices:input_type -> crabs.evening_detective_server.GetDevicesReq - 227, // 111: crabs.evening_detective_server.EveningDetectiveServer.GetTasks:input_type -> crabs.evening_detective_server.GetTasksReq - 229, // 112: crabs.evening_detective_server.EveningDetectiveServer.GetTaskAssignees:input_type -> crabs.evening_detective_server.GetTaskAssigneesReq - 231, // 113: crabs.evening_detective_server.EveningDetectiveServer.CreateTask:input_type -> crabs.evening_detective_server.CreateTaskReq - 232, // 114: crabs.evening_detective_server.EveningDetectiveServer.UpdateTask:input_type -> crabs.evening_detective_server.UpdateTaskReq - 233, // 115: crabs.evening_detective_server.EveningDetectiveServer.SetTaskStatus:input_type -> crabs.evening_detective_server.SetTaskStatusReq - 234, // 116: crabs.evening_detective_server.EveningDetectiveServer.DeleteTask:input_type -> crabs.evening_detective_server.DeleteTaskReq - 159, // 117: crabs.evening_detective_server.EveningDetectiveServer.GetParticipation:input_type -> crabs.evening_detective_server.GetParticipationReq - 160, // 118: crabs.evening_detective_server.EveningDetectiveServer.AnswerParticipation:input_type -> crabs.evening_detective_server.AnswerParticipationReq - 4, // 119: crabs.evening_detective_server.EveningDetectiveServer.Ping:input_type -> crabs.evening_detective_server.PingReq - 6, // 120: crabs.evening_detective_server.EveningDetectiveServer.Echo:input_type -> crabs.evening_detective_server.EchoReq - 8, // 121: crabs.evening_detective_server.EveningDetectiveServer.Signup:input_type -> crabs.evening_detective_server.SignupReq - 10, // 122: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:input_type -> crabs.evening_detective_server.RefreshPasswordReq - 12, // 123: crabs.evening_detective_server.EveningDetectiveServer.Login:input_type -> crabs.evening_detective_server.LoginReq - 14, // 124: crabs.evening_detective_server.EveningDetectiveServer.Refresh:input_type -> crabs.evening_detective_server.RefreshReq - 16, // 125: crabs.evening_detective_server.EveningDetectiveServer.DeleteAccount:input_type -> crabs.evening_detective_server.DeleteAccountReq - 18, // 126: crabs.evening_detective_server.EveningDetectiveServer.GetTerms:input_type -> crabs.evening_detective_server.GetTermsReq - 20, // 127: crabs.evening_detective_server.EveningDetectiveServer.GetPrivacy:input_type -> crabs.evening_detective_server.GetPrivacyReq - 22, // 128: crabs.evening_detective_server.EveningDetectiveServer.GetConsent:input_type -> crabs.evening_detective_server.GetConsentReq - 24, // 129: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:input_type -> crabs.evening_detective_server.GetUsersReq - 27, // 130: crabs.evening_detective_server.EveningDetectiveServer.GetUserByID:input_type -> crabs.evening_detective_server.GetUserByIDReq - 29, // 131: crabs.evening_detective_server.EveningDetectiveServer.GetMe:input_type -> crabs.evening_detective_server.GetMeReq - 31, // 132: crabs.evening_detective_server.EveningDetectiveServer.ChangeUserPassword:input_type -> crabs.evening_detective_server.ChangeUserPasswordReq - 33, // 133: crabs.evening_detective_server.EveningDetectiveServer.AddUserRole:input_type -> crabs.evening_detective_server.AddUserRoleReq - 35, // 134: crabs.evening_detective_server.EveningDetectiveServer.DeleteUserRole:input_type -> crabs.evening_detective_server.DeleteUserRoleReq - 37, // 135: crabs.evening_detective_server.EveningDetectiveServer.GetPermissions:input_type -> crabs.evening_detective_server.GetPermissionsReq - 39, // 136: crabs.evening_detective_server.EveningDetectiveServer.UploadFile:input_type -> crabs.evening_detective_server.UploadFileReq - 41, // 137: crabs.evening_detective_server.EveningDetectiveServer.DownloadFile:input_type -> crabs.evening_detective_server.DownloadFileReq - 44, // 138: crabs.evening_detective_server.EveningDetectiveServer.GetPlaylists:input_type -> crabs.evening_detective_server.GetPlaylistsReq - 46, // 139: crabs.evening_detective_server.EveningDetectiveServer.CreatePlaylist:input_type -> crabs.evening_detective_server.CreatePlaylistReq - 48, // 140: crabs.evening_detective_server.EveningDetectiveServer.UpdatePlaylist:input_type -> crabs.evening_detective_server.UpdatePlaylistReq - 50, // 141: crabs.evening_detective_server.EveningDetectiveServer.DeletePlaylist:input_type -> crabs.evening_detective_server.DeletePlaylistReq - 52, // 142: crabs.evening_detective_server.EveningDetectiveServer.UploadPlaylistTrack:input_type -> crabs.evening_detective_server.UploadPlaylistTrackReq - 54, // 143: crabs.evening_detective_server.EveningDetectiveServer.ReorderPlaylistTracks:input_type -> crabs.evening_detective_server.ReorderPlaylistTracksReq - 56, // 144: crabs.evening_detective_server.EveningDetectiveServer.DeletePlaylistTrack:input_type -> crabs.evening_detective_server.DeletePlaylistTrackReq - 58, // 145: crabs.evening_detective_server.EveningDetectiveServer.SetScenarioPlaylist:input_type -> crabs.evening_detective_server.SetScenarioPlaylistReq - 60, // 146: crabs.evening_detective_server.EveningDetectiveServer.AddScenario:input_type -> crabs.evening_detective_server.AddScenarioReq - 62, // 147: crabs.evening_detective_server.EveningDetectiveServer.GetMyScenarios:input_type -> crabs.evening_detective_server.GetMyScenariosReq - 64, // 148: crabs.evening_detective_server.EveningDetectiveServer.GetScenariosCatalog:input_type -> crabs.evening_detective_server.GetScenariosCatalogReq - 66, // 149: crabs.evening_detective_server.EveningDetectiveServer.GetFullScenario:input_type -> crabs.evening_detective_server.GetScenarioReq - 66, // 150: crabs.evening_detective_server.EveningDetectiveServer.GetScenario:input_type -> crabs.evening_detective_server.GetScenarioReq - 80, // 151: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenario:input_type -> crabs.evening_detective_server.UpdateScenarioReq - 82, // 152: crabs.evening_detective_server.EveningDetectiveServer.PublicScenario:input_type -> crabs.evening_detective_server.PublicScenarioReq - 84, // 153: crabs.evening_detective_server.EveningDetectiveServer.DraftScenario:input_type -> crabs.evening_detective_server.DraftScenarioReq - 86, // 154: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenario:input_type -> crabs.evening_detective_server.DeleteScenarioReq - 88, // 155: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioPlace:input_type -> crabs.evening_detective_server.AddScenarioPlaceReq - 90, // 156: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioPlace:input_type -> crabs.evening_detective_server.UpdateScenarioPlaceReq - 92, // 157: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioPlace:input_type -> crabs.evening_detective_server.DeleteScenarioPlaceReq - 98, // 158: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioQuestion:input_type -> crabs.evening_detective_server.AddScenarioQuestionReq - 100, // 159: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioQuestion:input_type -> crabs.evening_detective_server.UpdateScenarioQuestionReq - 102, // 160: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioQuestion:input_type -> crabs.evening_detective_server.DeleteScenarioQuestionReq - 215, // 161: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioBackground:input_type -> crabs.evening_detective_server.UpdateScenarioBackgroundReq - 96, // 162: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioIntro:input_type -> crabs.evening_detective_server.UpdateScenarioIntroReq - 94, // 163: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioConclusion:input_type -> crabs.evening_detective_server.UpdateScenarioConclusionReq - 104, // 164: crabs.evening_detective_server.EveningDetectiveServer.DownloadScenarioArchive:input_type -> crabs.evening_detective_server.DownloadScenarioArchiveReq - 251, // 165: crabs.evening_detective_server.EveningDetectiveServer.UploadScenarioArchive:input_type -> google.api.HttpBody - 106, // 166: crabs.evening_detective_server.EveningDetectiveServer.AddGame:input_type -> crabs.evening_detective_server.AddGameReq - 108, // 167: crabs.evening_detective_server.EveningDetectiveServer.GetGames:input_type -> crabs.evening_detective_server.GetGamesReq - 163, // 168: crabs.evening_detective_server.EveningDetectiveServer.GetGame:input_type -> crabs.evening_detective_server.GetGameReq - 251, // 169: crabs.evening_detective_server.EveningDetectiveServer.ImportGame:input_type -> google.api.HttpBody - 237, // 170: crabs.evening_detective_server.EveningDetectiveServer.DownloadGameResultsPackage:input_type -> crabs.evening_detective_server.GameResultsPackageReq - 238, // 171: crabs.evening_detective_server.EveningDetectiveServer.ApplyGameResultsPackage:input_type -> crabs.evening_detective_server.ApplyGameResultsPackageReq - 113, // 172: crabs.evening_detective_server.EveningDetectiveServer.StartGameExport:input_type -> crabs.evening_detective_server.StartGameExportReq - 115, // 173: crabs.evening_detective_server.EveningDetectiveServer.ResetGameLocalMode:input_type -> crabs.evening_detective_server.ResetGameLocalModeReq - 114, // 174: crabs.evening_detective_server.EveningDetectiveServer.GetGameExport:input_type -> crabs.evening_detective_server.GetGameExportReq - 217, // 175: crabs.evening_detective_server.EveningDetectiveServer.IssueGameTickets:input_type -> crabs.evening_detective_server.IssueGameTicketsReq - 220, // 176: crabs.evening_detective_server.EveningDetectiveServer.GetTicket:input_type -> crabs.evening_detective_server.GetTicketReq - 222, // 177: crabs.evening_detective_server.EveningDetectiveServer.AcceptTicket:input_type -> crabs.evening_detective_server.AcceptTicketReq - 119, // 178: crabs.evening_detective_server.EveningDetectiveServer.CreateScreenSession:input_type -> crabs.evening_detective_server.CreateScreenSessionReq - 121, // 179: crabs.evening_detective_server.EveningDetectiveServer.GetScreenState:input_type -> crabs.evening_detective_server.GetScreenStateReq - 123, // 180: crabs.evening_detective_server.EveningDetectiveServer.GetGameScreens:input_type -> crabs.evening_detective_server.GetGameScreensReq - 126, // 181: crabs.evening_detective_server.EveningDetectiveServer.GetGameMusic:input_type -> crabs.evening_detective_server.GetGameMusicReq - 128, // 182: crabs.evening_detective_server.EveningDetectiveServer.SetGameMusic:input_type -> crabs.evening_detective_server.SetGameMusicReq - 130, // 183: crabs.evening_detective_server.EveningDetectiveServer.AdvanceScreenMusic:input_type -> crabs.evening_detective_server.AdvanceScreenMusicReq - 132, // 184: crabs.evening_detective_server.EveningDetectiveServer.BindScreen:input_type -> crabs.evening_detective_server.BindScreenReq - 134, // 185: crabs.evening_detective_server.EveningDetectiveServer.UnbindScreen:input_type -> crabs.evening_detective_server.UnbindScreenReq - 136, // 186: crabs.evening_detective_server.EveningDetectiveServer.SetScreenSound:input_type -> crabs.evening_detective_server.SetScreenSoundReq - 139, // 187: crabs.evening_detective_server.EveningDetectiveServer.GetGameMap:input_type -> crabs.evening_detective_server.GetGameMapReq - 141, // 188: crabs.evening_detective_server.EveningDetectiveServer.UpdateGameMapItem:input_type -> crabs.evening_detective_server.UpdateGameMapItemReq - 143, // 189: crabs.evening_detective_server.EveningDetectiveServer.SetScreenMode:input_type -> crabs.evening_detective_server.SetScreenModeReq - 145, // 190: crabs.evening_detective_server.EveningDetectiveServer.SetScreenTimer:input_type -> crabs.evening_detective_server.SetScreenTimerReq - 147, // 191: crabs.evening_detective_server.EveningDetectiveServer.SendScreenCommand:input_type -> crabs.evening_detective_server.SendScreenCommandReq - 151, // 192: crabs.evening_detective_server.EveningDetectiveServer.GetScreenPlan:input_type -> crabs.evening_detective_server.GetScreenPlanReq - 153, // 193: crabs.evening_detective_server.EveningDetectiveServer.SaveScreenPlan:input_type -> crabs.evening_detective_server.SaveScreenPlanReq - 155, // 194: crabs.evening_detective_server.EveningDetectiveServer.SetScreenPlanStep:input_type -> crabs.evening_detective_server.SetScreenPlanStepReq - 157, // 195: crabs.evening_detective_server.EveningDetectiveServer.GetScreenResults:input_type -> crabs.evening_detective_server.GetScreenResultsReq - 163, // 196: crabs.evening_detective_server.EveningDetectiveServer.DownloadGamePrintMaterials:input_type -> crabs.evening_detective_server.GetGameReq - 248, // 197: crabs.evening_detective_server.EveningDetectiveServer.PreviewTeamReceipt:input_type -> crabs.evening_detective_server.TeamReceiptReq - 248, // 198: crabs.evening_detective_server.EveningDetectiveServer.PrintTeamReceipt:input_type -> crabs.evening_detective_server.TeamReceiptReq - 163, // 199: crabs.evening_detective_server.EveningDetectiveServer.DownloadTeamQR:input_type -> crabs.evening_detective_server.GetGameReq - 165, // 200: crabs.evening_detective_server.EveningDetectiveServer.GetGameAnswers:input_type -> crabs.evening_detective_server.GetGameAnswersReq - 167, // 201: crabs.evening_detective_server.EveningDetectiveServer.GetGameResults:input_type -> crabs.evening_detective_server.GetGameResultsReq - 172, // 202: crabs.evening_detective_server.EveningDetectiveServer.CreateGameReview:input_type -> crabs.evening_detective_server.CreateGameReviewReq - 174, // 203: crabs.evening_detective_server.EveningDetectiveServer.GetGameReviews:input_type -> crabs.evening_detective_server.GetGameReviewsReq - 175, // 204: crabs.evening_detective_server.EveningDetectiveServer.GetScenarioReviews:input_type -> crabs.evening_detective_server.GetScenarioReviewsReq - 174, // 205: crabs.evening_detective_server.EveningDetectiveServer.GetGameReviewsForModeration:input_type -> crabs.evening_detective_server.GetGameReviewsReq - 176, // 206: crabs.evening_detective_server.EveningDetectiveServer.GetReviewsForModeration:input_type -> crabs.evening_detective_server.GetReviewsForModerationReq - 178, // 207: crabs.evening_detective_server.EveningDetectiveServer.ModerateGameReview:input_type -> crabs.evening_detective_server.ModerateGameReviewReq - 180, // 208: crabs.evening_detective_server.EveningDetectiveServer.UpdateGame:input_type -> crabs.evening_detective_server.UpdateGameReq - 182, // 209: crabs.evening_detective_server.EveningDetectiveServer.StartGame:input_type -> crabs.evening_detective_server.StartGameReq - 184, // 210: crabs.evening_detective_server.EveningDetectiveServer.PauseGame:input_type -> crabs.evening_detective_server.PauseGameReq - 186, // 211: crabs.evening_detective_server.EveningDetectiveServer.PlayGame:input_type -> crabs.evening_detective_server.PlayGameReq - 188, // 212: crabs.evening_detective_server.EveningDetectiveServer.FinishGame:input_type -> crabs.evening_detective_server.FinishGameReq - 190, // 213: crabs.evening_detective_server.EveningDetectiveServer.ResetGame:input_type -> crabs.evening_detective_server.ResetGameReq - 192, // 214: crabs.evening_detective_server.EveningDetectiveServer.DeleteGame:input_type -> crabs.evening_detective_server.DeleteGameReq - 194, // 215: crabs.evening_detective_server.EveningDetectiveServer.AddTeam:input_type -> crabs.evening_detective_server.AddTeamReq - 196, // 216: crabs.evening_detective_server.EveningDetectiveServer.UpdateTeam:input_type -> crabs.evening_detective_server.UpdateTeamReq - 198, // 217: crabs.evening_detective_server.EveningDetectiveServer.DeleteTeam:input_type -> crabs.evening_detective_server.DeleteTeamReq - 200, // 218: crabs.evening_detective_server.EveningDetectiveServer.GiveTeamApplications:input_type -> crabs.evening_detective_server.GiveTeamApplicationsReq - 202, // 219: crabs.evening_detective_server.EveningDetectiveServer.GetTeamStory:input_type -> crabs.evening_detective_server.GetTeamStoryReq - 205, // 220: crabs.evening_detective_server.EveningDetectiveServer.AddTeamAction:input_type -> crabs.evening_detective_server.AddTeamActionReq - 207, // 221: crabs.evening_detective_server.EveningDetectiveServer.DeleteLastTeamAction:input_type -> crabs.evening_detective_server.DeleteLastTeamActionReq - 209, // 222: crabs.evening_detective_server.EveningDetectiveServer.GetTeamAnswers:input_type -> crabs.evening_detective_server.GetTeamAnswersReq - 211, // 223: crabs.evening_detective_server.EveningDetectiveServer.SubmitTeamAnswers:input_type -> crabs.evening_detective_server.SubmitTeamAnswersReq - 213, // 224: crabs.evening_detective_server.EveningDetectiveServer.SetTeamAnswerScore:input_type -> crabs.evening_detective_server.SetTeamAnswerScoreReq - 241, // 225: crabs.evening_detective_server.EveningDetectiveServer.DeviceHeartbeat:output_type -> crabs.evening_detective_server.DeviceHeartbeatRsp - 243, // 226: crabs.evening_detective_server.EveningDetectiveServer.GetDevices:output_type -> crabs.evening_detective_server.GetDevicesRsp - 228, // 227: crabs.evening_detective_server.EveningDetectiveServer.GetTasks:output_type -> crabs.evening_detective_server.GetTasksRsp - 230, // 228: crabs.evening_detective_server.EveningDetectiveServer.GetTaskAssignees:output_type -> crabs.evening_detective_server.GetTaskAssigneesRsp - 235, // 229: crabs.evening_detective_server.EveningDetectiveServer.CreateTask:output_type -> crabs.evening_detective_server.TaskRsp - 235, // 230: crabs.evening_detective_server.EveningDetectiveServer.UpdateTask:output_type -> crabs.evening_detective_server.TaskRsp - 235, // 231: crabs.evening_detective_server.EveningDetectiveServer.SetTaskStatus:output_type -> crabs.evening_detective_server.TaskRsp - 236, // 232: crabs.evening_detective_server.EveningDetectiveServer.DeleteTask:output_type -> crabs.evening_detective_server.DeleteTaskRsp - 161, // 233: crabs.evening_detective_server.EveningDetectiveServer.GetParticipation:output_type -> crabs.evening_detective_server.ParticipationRsp - 161, // 234: crabs.evening_detective_server.EveningDetectiveServer.AnswerParticipation:output_type -> crabs.evening_detective_server.ParticipationRsp - 5, // 235: crabs.evening_detective_server.EveningDetectiveServer.Ping:output_type -> crabs.evening_detective_server.PingRsp - 7, // 236: crabs.evening_detective_server.EveningDetectiveServer.Echo:output_type -> crabs.evening_detective_server.EchoRsp - 9, // 237: crabs.evening_detective_server.EveningDetectiveServer.Signup:output_type -> crabs.evening_detective_server.SignupRsp - 11, // 238: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:output_type -> crabs.evening_detective_server.RefreshPasswordRsp - 13, // 239: crabs.evening_detective_server.EveningDetectiveServer.Login:output_type -> crabs.evening_detective_server.LoginRsp - 15, // 240: crabs.evening_detective_server.EveningDetectiveServer.Refresh:output_type -> crabs.evening_detective_server.RefreshRsp - 17, // 241: crabs.evening_detective_server.EveningDetectiveServer.DeleteAccount:output_type -> crabs.evening_detective_server.DeleteAccountRsp - 19, // 242: crabs.evening_detective_server.EveningDetectiveServer.GetTerms:output_type -> crabs.evening_detective_server.GetTermsRsp - 21, // 243: crabs.evening_detective_server.EveningDetectiveServer.GetPrivacy:output_type -> crabs.evening_detective_server.GetPrivacyRsp - 23, // 244: crabs.evening_detective_server.EveningDetectiveServer.GetConsent:output_type -> crabs.evening_detective_server.GetConsentRsp - 25, // 245: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:output_type -> crabs.evening_detective_server.GetUsersRsp - 28, // 246: crabs.evening_detective_server.EveningDetectiveServer.GetUserByID:output_type -> crabs.evening_detective_server.GetUserByIDRsp - 30, // 247: crabs.evening_detective_server.EveningDetectiveServer.GetMe:output_type -> crabs.evening_detective_server.GetMeRsp - 32, // 248: crabs.evening_detective_server.EveningDetectiveServer.ChangeUserPassword:output_type -> crabs.evening_detective_server.ChangeUserPasswordRsp - 34, // 249: crabs.evening_detective_server.EveningDetectiveServer.AddUserRole:output_type -> crabs.evening_detective_server.AddUserRoleRsp - 36, // 250: crabs.evening_detective_server.EveningDetectiveServer.DeleteUserRole:output_type -> crabs.evening_detective_server.DeleteUserRoleRsp - 38, // 251: crabs.evening_detective_server.EveningDetectiveServer.GetPermissions:output_type -> crabs.evening_detective_server.GetPermissionsRsp - 40, // 252: crabs.evening_detective_server.EveningDetectiveServer.UploadFile:output_type -> crabs.evening_detective_server.UploadFileRsp - 251, // 253: crabs.evening_detective_server.EveningDetectiveServer.DownloadFile:output_type -> google.api.HttpBody - 45, // 254: crabs.evening_detective_server.EveningDetectiveServer.GetPlaylists:output_type -> crabs.evening_detective_server.GetPlaylistsRsp - 47, // 255: crabs.evening_detective_server.EveningDetectiveServer.CreatePlaylist:output_type -> crabs.evening_detective_server.CreatePlaylistRsp - 49, // 256: crabs.evening_detective_server.EveningDetectiveServer.UpdatePlaylist:output_type -> crabs.evening_detective_server.UpdatePlaylistRsp - 51, // 257: crabs.evening_detective_server.EveningDetectiveServer.DeletePlaylist:output_type -> crabs.evening_detective_server.DeletePlaylistRsp - 53, // 258: crabs.evening_detective_server.EveningDetectiveServer.UploadPlaylistTrack:output_type -> crabs.evening_detective_server.UploadPlaylistTrackRsp - 55, // 259: crabs.evening_detective_server.EveningDetectiveServer.ReorderPlaylistTracks:output_type -> crabs.evening_detective_server.ReorderPlaylistTracksRsp - 57, // 260: crabs.evening_detective_server.EveningDetectiveServer.DeletePlaylistTrack:output_type -> crabs.evening_detective_server.DeletePlaylistTrackRsp - 59, // 261: crabs.evening_detective_server.EveningDetectiveServer.SetScenarioPlaylist:output_type -> crabs.evening_detective_server.SetScenarioPlaylistRsp - 61, // 262: crabs.evening_detective_server.EveningDetectiveServer.AddScenario:output_type -> crabs.evening_detective_server.AddScenarioRsp - 63, // 263: crabs.evening_detective_server.EveningDetectiveServer.GetMyScenarios:output_type -> crabs.evening_detective_server.GetMyScenariosRsp - 65, // 264: crabs.evening_detective_server.EveningDetectiveServer.GetScenariosCatalog:output_type -> crabs.evening_detective_server.GetScenariosCatalogRsp - 67, // 265: crabs.evening_detective_server.EveningDetectiveServer.GetFullScenario:output_type -> crabs.evening_detective_server.GetScenarioRsp - 67, // 266: crabs.evening_detective_server.EveningDetectiveServer.GetScenario:output_type -> crabs.evening_detective_server.GetScenarioRsp - 81, // 267: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenario:output_type -> crabs.evening_detective_server.UpdateScenarioRsp - 83, // 268: crabs.evening_detective_server.EveningDetectiveServer.PublicScenario:output_type -> crabs.evening_detective_server.PublicScenarioRsp - 85, // 269: crabs.evening_detective_server.EveningDetectiveServer.DraftScenario:output_type -> crabs.evening_detective_server.DraftScenarioRsp - 87, // 270: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenario:output_type -> crabs.evening_detective_server.DeleteScenarioRsp - 89, // 271: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioPlace:output_type -> crabs.evening_detective_server.AddScenarioPlaceRsp - 91, // 272: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioPlace:output_type -> crabs.evening_detective_server.UpdateScenarioPlaceRsp - 93, // 273: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioPlace:output_type -> crabs.evening_detective_server.DeleteScenarioPlaceRsp - 99, // 274: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioQuestion:output_type -> crabs.evening_detective_server.AddScenarioQuestionRsp - 101, // 275: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioQuestion:output_type -> crabs.evening_detective_server.UpdateScenarioQuestionRsp - 103, // 276: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioQuestion:output_type -> crabs.evening_detective_server.DeleteScenarioQuestionRsp - 216, // 277: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioBackground:output_type -> crabs.evening_detective_server.UpdateScenarioBackgroundRsp - 97, // 278: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioIntro:output_type -> crabs.evening_detective_server.UpdateScenarioIntroRsp - 95, // 279: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioConclusion:output_type -> crabs.evening_detective_server.UpdateScenarioConclusionRsp - 251, // 280: crabs.evening_detective_server.EveningDetectiveServer.DownloadScenarioArchive:output_type -> google.api.HttpBody - 105, // 281: crabs.evening_detective_server.EveningDetectiveServer.UploadScenarioArchive:output_type -> crabs.evening_detective_server.UploadScenarioArchiveRsp - 107, // 282: crabs.evening_detective_server.EveningDetectiveServer.AddGame:output_type -> crabs.evening_detective_server.AddGameRsp - 109, // 283: crabs.evening_detective_server.EveningDetectiveServer.GetGames:output_type -> crabs.evening_detective_server.GetGamesRsp - 164, // 284: crabs.evening_detective_server.EveningDetectiveServer.GetGame:output_type -> crabs.evening_detective_server.GetGameRsp - 112, // 285: crabs.evening_detective_server.EveningDetectiveServer.ImportGame:output_type -> crabs.evening_detective_server.GameImportRsp - 251, // 286: crabs.evening_detective_server.EveningDetectiveServer.DownloadGameResultsPackage:output_type -> google.api.HttpBody - 239, // 287: crabs.evening_detective_server.EveningDetectiveServer.ApplyGameResultsPackage:output_type -> crabs.evening_detective_server.GameResultsPackageRsp - 117, // 288: crabs.evening_detective_server.EveningDetectiveServer.StartGameExport:output_type -> crabs.evening_detective_server.GameExportRsp - 116, // 289: crabs.evening_detective_server.EveningDetectiveServer.ResetGameLocalMode:output_type -> crabs.evening_detective_server.ResetGameLocalModeRsp - 117, // 290: crabs.evening_detective_server.EveningDetectiveServer.GetGameExport:output_type -> crabs.evening_detective_server.GameExportRsp - 218, // 291: crabs.evening_detective_server.EveningDetectiveServer.IssueGameTickets:output_type -> crabs.evening_detective_server.IssueGameTicketsRsp - 221, // 292: crabs.evening_detective_server.EveningDetectiveServer.GetTicket:output_type -> crabs.evening_detective_server.GetTicketRsp - 223, // 293: crabs.evening_detective_server.EveningDetectiveServer.AcceptTicket:output_type -> crabs.evening_detective_server.AcceptTicketRsp - 120, // 294: crabs.evening_detective_server.EveningDetectiveServer.CreateScreenSession:output_type -> crabs.evening_detective_server.CreateScreenSessionRsp - 122, // 295: crabs.evening_detective_server.EveningDetectiveServer.GetScreenState:output_type -> crabs.evening_detective_server.GetScreenStateRsp - 124, // 296: crabs.evening_detective_server.EveningDetectiveServer.GetGameScreens:output_type -> crabs.evening_detective_server.GetGameScreensRsp - 127, // 297: crabs.evening_detective_server.EveningDetectiveServer.GetGameMusic:output_type -> crabs.evening_detective_server.GetGameMusicRsp - 129, // 298: crabs.evening_detective_server.EveningDetectiveServer.SetGameMusic:output_type -> crabs.evening_detective_server.SetGameMusicRsp - 131, // 299: crabs.evening_detective_server.EveningDetectiveServer.AdvanceScreenMusic:output_type -> crabs.evening_detective_server.AdvanceScreenMusicRsp - 133, // 300: crabs.evening_detective_server.EveningDetectiveServer.BindScreen:output_type -> crabs.evening_detective_server.BindScreenRsp - 135, // 301: crabs.evening_detective_server.EveningDetectiveServer.UnbindScreen:output_type -> crabs.evening_detective_server.UnbindScreenRsp - 137, // 302: crabs.evening_detective_server.EveningDetectiveServer.SetScreenSound:output_type -> crabs.evening_detective_server.SetScreenSoundRsp - 140, // 303: crabs.evening_detective_server.EveningDetectiveServer.GetGameMap:output_type -> crabs.evening_detective_server.GetGameMapRsp - 142, // 304: crabs.evening_detective_server.EveningDetectiveServer.UpdateGameMapItem:output_type -> crabs.evening_detective_server.UpdateGameMapItemRsp - 144, // 305: crabs.evening_detective_server.EveningDetectiveServer.SetScreenMode:output_type -> crabs.evening_detective_server.SetScreenModeRsp - 146, // 306: crabs.evening_detective_server.EveningDetectiveServer.SetScreenTimer:output_type -> crabs.evening_detective_server.SetScreenTimerRsp - 148, // 307: crabs.evening_detective_server.EveningDetectiveServer.SendScreenCommand:output_type -> crabs.evening_detective_server.SendScreenCommandRsp - 152, // 308: crabs.evening_detective_server.EveningDetectiveServer.GetScreenPlan:output_type -> crabs.evening_detective_server.GetScreenPlanRsp - 154, // 309: crabs.evening_detective_server.EveningDetectiveServer.SaveScreenPlan:output_type -> crabs.evening_detective_server.SaveScreenPlanRsp - 156, // 310: crabs.evening_detective_server.EveningDetectiveServer.SetScreenPlanStep:output_type -> crabs.evening_detective_server.SetScreenPlanStepRsp - 158, // 311: crabs.evening_detective_server.EveningDetectiveServer.GetScreenResults:output_type -> crabs.evening_detective_server.GetScreenResultsRsp - 251, // 312: crabs.evening_detective_server.EveningDetectiveServer.DownloadGamePrintMaterials:output_type -> google.api.HttpBody - 251, // 313: crabs.evening_detective_server.EveningDetectiveServer.PreviewTeamReceipt:output_type -> google.api.HttpBody - 249, // 314: crabs.evening_detective_server.EveningDetectiveServer.PrintTeamReceipt:output_type -> crabs.evening_detective_server.PrintTeamReceiptRsp - 251, // 315: crabs.evening_detective_server.EveningDetectiveServer.DownloadTeamQR:output_type -> google.api.HttpBody - 166, // 316: crabs.evening_detective_server.EveningDetectiveServer.GetGameAnswers:output_type -> crabs.evening_detective_server.GetGameAnswersRsp - 170, // 317: crabs.evening_detective_server.EveningDetectiveServer.GetGameResults:output_type -> crabs.evening_detective_server.GetGameResultsRsp - 173, // 318: crabs.evening_detective_server.EveningDetectiveServer.CreateGameReview:output_type -> crabs.evening_detective_server.CreateGameReviewRsp - 177, // 319: crabs.evening_detective_server.EveningDetectiveServer.GetGameReviews:output_type -> crabs.evening_detective_server.GetGameReviewsRsp - 177, // 320: crabs.evening_detective_server.EveningDetectiveServer.GetScenarioReviews:output_type -> crabs.evening_detective_server.GetGameReviewsRsp - 177, // 321: crabs.evening_detective_server.EveningDetectiveServer.GetGameReviewsForModeration:output_type -> crabs.evening_detective_server.GetGameReviewsRsp - 177, // 322: crabs.evening_detective_server.EveningDetectiveServer.GetReviewsForModeration:output_type -> crabs.evening_detective_server.GetGameReviewsRsp - 179, // 323: crabs.evening_detective_server.EveningDetectiveServer.ModerateGameReview:output_type -> crabs.evening_detective_server.ModerateGameReviewRsp - 181, // 324: crabs.evening_detective_server.EveningDetectiveServer.UpdateGame:output_type -> crabs.evening_detective_server.UpdateGameRsp - 183, // 325: crabs.evening_detective_server.EveningDetectiveServer.StartGame:output_type -> crabs.evening_detective_server.StartGameRsp - 185, // 326: crabs.evening_detective_server.EveningDetectiveServer.PauseGame:output_type -> crabs.evening_detective_server.PauseGameRsp - 187, // 327: crabs.evening_detective_server.EveningDetectiveServer.PlayGame:output_type -> crabs.evening_detective_server.PlayGameRsp - 189, // 328: crabs.evening_detective_server.EveningDetectiveServer.FinishGame:output_type -> crabs.evening_detective_server.FinishGameRsp - 191, // 329: crabs.evening_detective_server.EveningDetectiveServer.ResetGame:output_type -> crabs.evening_detective_server.ResetGameRsp - 193, // 330: crabs.evening_detective_server.EveningDetectiveServer.DeleteGame:output_type -> crabs.evening_detective_server.DeleteGameRsp - 195, // 331: crabs.evening_detective_server.EveningDetectiveServer.AddTeam:output_type -> crabs.evening_detective_server.AddTeamRsp - 197, // 332: crabs.evening_detective_server.EveningDetectiveServer.UpdateTeam:output_type -> crabs.evening_detective_server.UpdateTeamRsp - 199, // 333: crabs.evening_detective_server.EveningDetectiveServer.DeleteTeam:output_type -> crabs.evening_detective_server.DeleteTeamRsp - 201, // 334: crabs.evening_detective_server.EveningDetectiveServer.GiveTeamApplications:output_type -> crabs.evening_detective_server.GiveTeamApplicationsRsp - 203, // 335: crabs.evening_detective_server.EveningDetectiveServer.GetTeamStory:output_type -> crabs.evening_detective_server.GetTeamStoryRsp - 206, // 336: crabs.evening_detective_server.EveningDetectiveServer.AddTeamAction:output_type -> crabs.evening_detective_server.AddTeamActionRsp - 208, // 337: crabs.evening_detective_server.EveningDetectiveServer.DeleteLastTeamAction:output_type -> crabs.evening_detective_server.DeleteLastTeamActionRsp - 210, // 338: crabs.evening_detective_server.EveningDetectiveServer.GetTeamAnswers:output_type -> crabs.evening_detective_server.GetTeamAnswersRsp - 212, // 339: crabs.evening_detective_server.EveningDetectiveServer.SubmitTeamAnswers:output_type -> crabs.evening_detective_server.SubmitTeamAnswersRsp - 214, // 340: crabs.evening_detective_server.EveningDetectiveServer.SetTeamAnswerScore:output_type -> crabs.evening_detective_server.SetTeamAnswerScoreRsp - 225, // [225:341] is the sub-list for method output_type - 109, // [109:225] is the sub-list for method input_type - 109, // [109:109] is the sub-list for extension type_name - 109, // [109:109] is the sub-list for extension extendee - 0, // [0:109] is the sub-list for field type_name + 3, // 44: crabs.evening_detective_server.ScreenState.command:type_name -> crabs.evening_detective_server.ScreenCommand + 2, // 45: crabs.evening_detective_server.ScreenState.timer_state:type_name -> crabs.evening_detective_server.ScreenTimerState + 126, // 46: crabs.evening_detective_server.ScreenState.music:type_name -> crabs.evening_detective_server.MusicState + 1, // 47: crabs.evening_detective_server.ScreenState.timer_type:type_name -> crabs.evening_detective_server.ScreenTimerType + 119, // 48: crabs.evening_detective_server.GetScreenStateRsp.state:type_name -> crabs.evening_detective_server.ScreenState + 119, // 49: crabs.evening_detective_server.GetGameScreensRsp.screens:type_name -> crabs.evening_detective_server.ScreenState + 44, // 50: crabs.evening_detective_server.MusicState.playlist:type_name -> crabs.evening_detective_server.Playlist + 4, // 51: crabs.evening_detective_server.MusicState.playback:type_name -> crabs.evening_detective_server.MusicPlaybackState + 44, // 52: crabs.evening_detective_server.GetGameMusicRsp.playlists:type_name -> crabs.evening_detective_server.Playlist + 126, // 53: crabs.evening_detective_server.GetGameMusicRsp.state:type_name -> crabs.evening_detective_server.MusicState + 4, // 54: crabs.evening_detective_server.SetGameMusicReq.playback:type_name -> crabs.evening_detective_server.MusicPlaybackState + 126, // 55: crabs.evening_detective_server.SetGameMusicRsp.state:type_name -> crabs.evening_detective_server.MusicState + 126, // 56: crabs.evening_detective_server.AdvanceScreenMusicRsp.state:type_name -> crabs.evening_detective_server.MusicState + 119, // 57: crabs.evening_detective_server.BindScreenRsp.state:type_name -> crabs.evening_detective_server.ScreenState + 139, // 58: crabs.evening_detective_server.GetGameMapRsp.items:type_name -> crabs.evening_detective_server.MapItem + 0, // 59: crabs.evening_detective_server.SetScreenModeReq.mode:type_name -> crabs.evening_detective_server.ScreenMode + 1, // 60: crabs.evening_detective_server.SetScreenTimerReq.timer_type:type_name -> crabs.evening_detective_server.ScreenTimerType + 3, // 61: crabs.evening_detective_server.SendScreenCommandReq.command:type_name -> crabs.evening_detective_server.ScreenCommand + 0, // 62: crabs.evening_detective_server.ScreenPlanStep.mode:type_name -> crabs.evening_detective_server.ScreenMode + 1, // 63: crabs.evening_detective_server.ScreenPlanStep.timer_type:type_name -> crabs.evening_detective_server.ScreenTimerType + 150, // 64: crabs.evening_detective_server.ScreenPlan.steps:type_name -> crabs.evening_detective_server.ScreenPlanStep + 151, // 65: crabs.evening_detective_server.GetScreenPlanRsp.plan:type_name -> crabs.evening_detective_server.ScreenPlan + 150, // 66: crabs.evening_detective_server.SaveScreenPlanReq.steps:type_name -> crabs.evening_detective_server.ScreenPlanStep + 151, // 67: crabs.evening_detective_server.SaveScreenPlanRsp.plan:type_name -> crabs.evening_detective_server.ScreenPlan + 151, // 68: crabs.evening_detective_server.SetScreenPlanStepRsp.plan:type_name -> crabs.evening_detective_server.ScreenPlan + 158, // 69: crabs.evening_detective_server.GetScreenTeamsRsp.teams:type_name -> crabs.evening_detective_server.ScreenTeam + 172, // 70: crabs.evening_detective_server.GetScreenResultsRsp.questions:type_name -> crabs.evening_detective_server.ResultsQuestion + 173, // 71: crabs.evening_detective_server.GetScreenResultsRsp.teams:type_name -> crabs.evening_detective_server.TeamResult + 254, // 72: crabs.evening_detective_server.ParticipationRsp.start_at:type_name -> google.protobuf.Timestamp + 74, // 73: crabs.evening_detective_server.Team.applications:type_name -> crabs.evening_detective_server.Application + 111, // 74: crabs.evening_detective_server.GetGameRsp.game:type_name -> crabs.evening_detective_server.Game + 77, // 75: crabs.evening_detective_server.GetGameAnswersRsp.questions:type_name -> crabs.evening_detective_server.Question + 80, // 76: crabs.evening_detective_server.GetGameAnswersRsp.teams:type_name -> crabs.evening_detective_server.TeamAnswers + 166, // 77: crabs.evening_detective_server.TeamResult.team:type_name -> crabs.evening_detective_server.Team + 79, // 78: crabs.evening_detective_server.TeamResult.answers:type_name -> crabs.evening_detective_server.AnswerScore + 172, // 79: crabs.evening_detective_server.GetGameResultsRsp.questions:type_name -> crabs.evening_detective_server.ResultsQuestion + 173, // 80: crabs.evening_detective_server.GetGameResultsRsp.teams:type_name -> crabs.evening_detective_server.TeamResult + 254, // 81: crabs.evening_detective_server.GameReview.created_at:type_name -> google.protobuf.Timestamp + 175, // 82: crabs.evening_detective_server.CreateGameReviewRsp.review:type_name -> crabs.evening_detective_server.GameReview + 175, // 83: crabs.evening_detective_server.GetGameReviewsRsp.reviews:type_name -> crabs.evening_detective_server.GameReview + 175, // 84: crabs.evening_detective_server.ModerateGameReviewRsp.review:type_name -> crabs.evening_detective_server.GameReview + 254, // 85: crabs.evening_detective_server.UpdateGameReq.start_at:type_name -> google.protobuf.Timestamp + 70, // 86: crabs.evening_detective_server.GetTeamStoryRsp.story:type_name -> crabs.evening_detective_server.Story + 111, // 87: crabs.evening_detective_server.GetTeamStoryRsp.game:type_name -> crabs.evening_detective_server.Game + 208, // 88: crabs.evening_detective_server.GetTeamStoryRsp.actions:type_name -> crabs.evening_detective_server.TeamAction + 78, // 89: crabs.evening_detective_server.GetTeamAnswersRsp.answers:type_name -> crabs.evening_detective_server.Answer + 78, // 90: crabs.evening_detective_server.SubmitTeamAnswersReq.answers:type_name -> crabs.evening_detective_server.Answer + 223, // 91: crabs.evening_detective_server.IssueGameTicketsRsp.tickets:type_name -> crabs.evening_detective_server.Ticket + 228, // 92: crabs.evening_detective_server.GetTicketRsp.ticket:type_name -> crabs.evening_detective_server.TicketPage + 228, // 93: crabs.evening_detective_server.AcceptTicketRsp.ticket:type_name -> crabs.evening_detective_server.TicketPage + 254, // 94: crabs.evening_detective_server.TicketPage.start_at:type_name -> google.protobuf.Timestamp + 254, // 95: crabs.evening_detective_server.TicketPage.used_at:type_name -> google.protobuf.Timestamp + 254, // 96: crabs.evening_detective_server.DeveloperTask.createdAt:type_name -> google.protobuf.Timestamp + 254, // 97: crabs.evening_detective_server.DeveloperTask.updatedAt:type_name -> google.protobuf.Timestamp + 229, // 98: crabs.evening_detective_server.GetTasksRsp.tasks:type_name -> crabs.evening_detective_server.DeveloperTask + 230, // 99: crabs.evening_detective_server.GetTaskAssigneesRsp.assignees:type_name -> crabs.evening_detective_server.TaskAssignee + 229, // 100: crabs.evening_detective_server.TaskRsp.task:type_name -> crabs.evening_detective_server.DeveloperTask + 255, // 101: crabs.evening_detective_server.ApplyGameResultsPackageReq.package:type_name -> google.api.HttpBody + 254, // 102: crabs.evening_detective_server.DeviceHeartbeatRsp.serverTime:type_name -> google.protobuf.Timestamp + 248, // 103: crabs.evening_detective_server.GetDevicesRsp.devices:type_name -> crabs.evening_detective_server.VenueDevice + 254, // 104: crabs.evening_detective_server.GetDevicesRsp.serverTime:type_name -> google.protobuf.Timestamp + 250, // 105: crabs.evening_detective_server.GetDevicesRsp.wifi:type_name -> crabs.evening_detective_server.VenueWiFi + 254, // 106: crabs.evening_detective_server.VenueDevice.firstSeenAt:type_name -> google.protobuf.Timestamp + 254, // 107: crabs.evening_detective_server.VenueDevice.lastSeenAt:type_name -> google.protobuf.Timestamp + 249, // 108: crabs.evening_detective_server.VenueDevice.connections:type_name -> crabs.evening_detective_server.DeviceConnection + 254, // 109: crabs.evening_detective_server.DeviceConnection.firstSeenAt:type_name -> google.protobuf.Timestamp + 254, // 110: crabs.evening_detective_server.DeviceConnection.lastSeenAt:type_name -> google.protobuf.Timestamp + 254, // 111: crabs.evening_detective_server.VenueWiFi.collectedAt:type_name -> google.protobuf.Timestamp + 251, // 112: crabs.evening_detective_server.VenueWiFi.clients:type_name -> crabs.evening_detective_server.WiFiClient + 244, // 113: crabs.evening_detective_server.EveningDetectiveServer.DeviceHeartbeat:input_type -> crabs.evening_detective_server.DeviceHeartbeatReq + 246, // 114: crabs.evening_detective_server.EveningDetectiveServer.GetDevices:input_type -> crabs.evening_detective_server.GetDevicesReq + 231, // 115: crabs.evening_detective_server.EveningDetectiveServer.GetTasks:input_type -> crabs.evening_detective_server.GetTasksReq + 233, // 116: crabs.evening_detective_server.EveningDetectiveServer.GetTaskAssignees:input_type -> crabs.evening_detective_server.GetTaskAssigneesReq + 235, // 117: crabs.evening_detective_server.EveningDetectiveServer.CreateTask:input_type -> crabs.evening_detective_server.CreateTaskReq + 236, // 118: crabs.evening_detective_server.EveningDetectiveServer.UpdateTask:input_type -> crabs.evening_detective_server.UpdateTaskReq + 237, // 119: crabs.evening_detective_server.EveningDetectiveServer.SetTaskStatus:input_type -> crabs.evening_detective_server.SetTaskStatusReq + 238, // 120: crabs.evening_detective_server.EveningDetectiveServer.DeleteTask:input_type -> crabs.evening_detective_server.DeleteTaskReq + 163, // 121: crabs.evening_detective_server.EveningDetectiveServer.GetParticipation:input_type -> crabs.evening_detective_server.GetParticipationReq + 164, // 122: crabs.evening_detective_server.EveningDetectiveServer.AnswerParticipation:input_type -> crabs.evening_detective_server.AnswerParticipationReq + 5, // 123: crabs.evening_detective_server.EveningDetectiveServer.Ping:input_type -> crabs.evening_detective_server.PingReq + 7, // 124: crabs.evening_detective_server.EveningDetectiveServer.Echo:input_type -> crabs.evening_detective_server.EchoReq + 9, // 125: crabs.evening_detective_server.EveningDetectiveServer.Signup:input_type -> crabs.evening_detective_server.SignupReq + 11, // 126: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:input_type -> crabs.evening_detective_server.RefreshPasswordReq + 13, // 127: crabs.evening_detective_server.EveningDetectiveServer.Login:input_type -> crabs.evening_detective_server.LoginReq + 15, // 128: crabs.evening_detective_server.EveningDetectiveServer.Refresh:input_type -> crabs.evening_detective_server.RefreshReq + 17, // 129: crabs.evening_detective_server.EveningDetectiveServer.DeleteAccount:input_type -> crabs.evening_detective_server.DeleteAccountReq + 19, // 130: crabs.evening_detective_server.EveningDetectiveServer.GetTerms:input_type -> crabs.evening_detective_server.GetTermsReq + 21, // 131: crabs.evening_detective_server.EveningDetectiveServer.GetPrivacy:input_type -> crabs.evening_detective_server.GetPrivacyReq + 23, // 132: crabs.evening_detective_server.EveningDetectiveServer.GetConsent:input_type -> crabs.evening_detective_server.GetConsentReq + 25, // 133: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:input_type -> crabs.evening_detective_server.GetUsersReq + 28, // 134: crabs.evening_detective_server.EveningDetectiveServer.GetUserByID:input_type -> crabs.evening_detective_server.GetUserByIDReq + 30, // 135: crabs.evening_detective_server.EveningDetectiveServer.GetMe:input_type -> crabs.evening_detective_server.GetMeReq + 32, // 136: crabs.evening_detective_server.EveningDetectiveServer.ChangeUserPassword:input_type -> crabs.evening_detective_server.ChangeUserPasswordReq + 34, // 137: crabs.evening_detective_server.EveningDetectiveServer.AddUserRole:input_type -> crabs.evening_detective_server.AddUserRoleReq + 36, // 138: crabs.evening_detective_server.EveningDetectiveServer.DeleteUserRole:input_type -> crabs.evening_detective_server.DeleteUserRoleReq + 38, // 139: crabs.evening_detective_server.EveningDetectiveServer.GetPermissions:input_type -> crabs.evening_detective_server.GetPermissionsReq + 40, // 140: crabs.evening_detective_server.EveningDetectiveServer.UploadFile:input_type -> crabs.evening_detective_server.UploadFileReq + 42, // 141: crabs.evening_detective_server.EveningDetectiveServer.DownloadFile:input_type -> crabs.evening_detective_server.DownloadFileReq + 45, // 142: crabs.evening_detective_server.EveningDetectiveServer.GetPlaylists:input_type -> crabs.evening_detective_server.GetPlaylistsReq + 47, // 143: crabs.evening_detective_server.EveningDetectiveServer.CreatePlaylist:input_type -> crabs.evening_detective_server.CreatePlaylistReq + 49, // 144: crabs.evening_detective_server.EveningDetectiveServer.UpdatePlaylist:input_type -> crabs.evening_detective_server.UpdatePlaylistReq + 51, // 145: crabs.evening_detective_server.EveningDetectiveServer.DeletePlaylist:input_type -> crabs.evening_detective_server.DeletePlaylistReq + 53, // 146: crabs.evening_detective_server.EveningDetectiveServer.UploadPlaylistTrack:input_type -> crabs.evening_detective_server.UploadPlaylistTrackReq + 55, // 147: crabs.evening_detective_server.EveningDetectiveServer.ReorderPlaylistTracks:input_type -> crabs.evening_detective_server.ReorderPlaylistTracksReq + 57, // 148: crabs.evening_detective_server.EveningDetectiveServer.DeletePlaylistTrack:input_type -> crabs.evening_detective_server.DeletePlaylistTrackReq + 59, // 149: crabs.evening_detective_server.EveningDetectiveServer.SetScenarioPlaylist:input_type -> crabs.evening_detective_server.SetScenarioPlaylistReq + 61, // 150: crabs.evening_detective_server.EveningDetectiveServer.AddScenario:input_type -> crabs.evening_detective_server.AddScenarioReq + 63, // 151: crabs.evening_detective_server.EveningDetectiveServer.GetMyScenarios:input_type -> crabs.evening_detective_server.GetMyScenariosReq + 65, // 152: crabs.evening_detective_server.EveningDetectiveServer.GetScenariosCatalog:input_type -> crabs.evening_detective_server.GetScenariosCatalogReq + 67, // 153: crabs.evening_detective_server.EveningDetectiveServer.GetFullScenario:input_type -> crabs.evening_detective_server.GetScenarioReq + 67, // 154: crabs.evening_detective_server.EveningDetectiveServer.GetScenario:input_type -> crabs.evening_detective_server.GetScenarioReq + 81, // 155: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenario:input_type -> crabs.evening_detective_server.UpdateScenarioReq + 83, // 156: crabs.evening_detective_server.EveningDetectiveServer.PublicScenario:input_type -> crabs.evening_detective_server.PublicScenarioReq + 85, // 157: crabs.evening_detective_server.EveningDetectiveServer.DraftScenario:input_type -> crabs.evening_detective_server.DraftScenarioReq + 87, // 158: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenario:input_type -> crabs.evening_detective_server.DeleteScenarioReq + 89, // 159: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioPlace:input_type -> crabs.evening_detective_server.AddScenarioPlaceReq + 91, // 160: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioPlace:input_type -> crabs.evening_detective_server.UpdateScenarioPlaceReq + 93, // 161: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioPlace:input_type -> crabs.evening_detective_server.DeleteScenarioPlaceReq + 99, // 162: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioQuestion:input_type -> crabs.evening_detective_server.AddScenarioQuestionReq + 101, // 163: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioQuestion:input_type -> crabs.evening_detective_server.UpdateScenarioQuestionReq + 103, // 164: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioQuestion:input_type -> crabs.evening_detective_server.DeleteScenarioQuestionReq + 219, // 165: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioBackground:input_type -> crabs.evening_detective_server.UpdateScenarioBackgroundReq + 97, // 166: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioIntro:input_type -> crabs.evening_detective_server.UpdateScenarioIntroReq + 95, // 167: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioConclusion:input_type -> crabs.evening_detective_server.UpdateScenarioConclusionReq + 105, // 168: crabs.evening_detective_server.EveningDetectiveServer.DownloadScenarioArchive:input_type -> crabs.evening_detective_server.DownloadScenarioArchiveReq + 255, // 169: crabs.evening_detective_server.EveningDetectiveServer.UploadScenarioArchive:input_type -> google.api.HttpBody + 107, // 170: crabs.evening_detective_server.EveningDetectiveServer.AddGame:input_type -> crabs.evening_detective_server.AddGameReq + 109, // 171: crabs.evening_detective_server.EveningDetectiveServer.GetGames:input_type -> crabs.evening_detective_server.GetGamesReq + 167, // 172: crabs.evening_detective_server.EveningDetectiveServer.GetGame:input_type -> crabs.evening_detective_server.GetGameReq + 255, // 173: crabs.evening_detective_server.EveningDetectiveServer.ImportGame:input_type -> google.api.HttpBody + 241, // 174: crabs.evening_detective_server.EveningDetectiveServer.DownloadGameResultsPackage:input_type -> crabs.evening_detective_server.GameResultsPackageReq + 242, // 175: crabs.evening_detective_server.EveningDetectiveServer.ApplyGameResultsPackage:input_type -> crabs.evening_detective_server.ApplyGameResultsPackageReq + 114, // 176: crabs.evening_detective_server.EveningDetectiveServer.StartGameExport:input_type -> crabs.evening_detective_server.StartGameExportReq + 116, // 177: crabs.evening_detective_server.EveningDetectiveServer.ResetGameLocalMode:input_type -> crabs.evening_detective_server.ResetGameLocalModeReq + 115, // 178: crabs.evening_detective_server.EveningDetectiveServer.GetGameExport:input_type -> crabs.evening_detective_server.GetGameExportReq + 221, // 179: crabs.evening_detective_server.EveningDetectiveServer.IssueGameTickets:input_type -> crabs.evening_detective_server.IssueGameTicketsReq + 224, // 180: crabs.evening_detective_server.EveningDetectiveServer.GetTicket:input_type -> crabs.evening_detective_server.GetTicketReq + 226, // 181: crabs.evening_detective_server.EveningDetectiveServer.AcceptTicket:input_type -> crabs.evening_detective_server.AcceptTicketReq + 120, // 182: crabs.evening_detective_server.EveningDetectiveServer.CreateScreenSession:input_type -> crabs.evening_detective_server.CreateScreenSessionReq + 122, // 183: crabs.evening_detective_server.EveningDetectiveServer.GetScreenState:input_type -> crabs.evening_detective_server.GetScreenStateReq + 124, // 184: crabs.evening_detective_server.EveningDetectiveServer.GetGameScreens:input_type -> crabs.evening_detective_server.GetGameScreensReq + 127, // 185: crabs.evening_detective_server.EveningDetectiveServer.GetGameMusic:input_type -> crabs.evening_detective_server.GetGameMusicReq + 129, // 186: crabs.evening_detective_server.EveningDetectiveServer.SetGameMusic:input_type -> crabs.evening_detective_server.SetGameMusicReq + 131, // 187: crabs.evening_detective_server.EveningDetectiveServer.AdvanceScreenMusic:input_type -> crabs.evening_detective_server.AdvanceScreenMusicReq + 133, // 188: crabs.evening_detective_server.EveningDetectiveServer.BindScreen:input_type -> crabs.evening_detective_server.BindScreenReq + 135, // 189: crabs.evening_detective_server.EveningDetectiveServer.UnbindScreen:input_type -> crabs.evening_detective_server.UnbindScreenReq + 137, // 190: crabs.evening_detective_server.EveningDetectiveServer.SetScreenSound:input_type -> crabs.evening_detective_server.SetScreenSoundReq + 140, // 191: crabs.evening_detective_server.EveningDetectiveServer.GetGameMap:input_type -> crabs.evening_detective_server.GetGameMapReq + 142, // 192: crabs.evening_detective_server.EveningDetectiveServer.UpdateGameMapItem:input_type -> crabs.evening_detective_server.UpdateGameMapItemReq + 144, // 193: crabs.evening_detective_server.EveningDetectiveServer.SetScreenMode:input_type -> crabs.evening_detective_server.SetScreenModeReq + 146, // 194: crabs.evening_detective_server.EveningDetectiveServer.SetScreenTimer:input_type -> crabs.evening_detective_server.SetScreenTimerReq + 148, // 195: crabs.evening_detective_server.EveningDetectiveServer.SendScreenCommand:input_type -> crabs.evening_detective_server.SendScreenCommandReq + 152, // 196: crabs.evening_detective_server.EveningDetectiveServer.GetScreenPlan:input_type -> crabs.evening_detective_server.GetScreenPlanReq + 154, // 197: crabs.evening_detective_server.EveningDetectiveServer.SaveScreenPlan:input_type -> crabs.evening_detective_server.SaveScreenPlanReq + 156, // 198: crabs.evening_detective_server.EveningDetectiveServer.SetScreenPlanStep:input_type -> crabs.evening_detective_server.SetScreenPlanStepReq + 159, // 199: crabs.evening_detective_server.EveningDetectiveServer.GetScreenTeams:input_type -> crabs.evening_detective_server.GetScreenTeamsReq + 161, // 200: crabs.evening_detective_server.EveningDetectiveServer.GetScreenResults:input_type -> crabs.evening_detective_server.GetScreenResultsReq + 167, // 201: crabs.evening_detective_server.EveningDetectiveServer.DownloadGamePrintMaterials:input_type -> crabs.evening_detective_server.GetGameReq + 252, // 202: crabs.evening_detective_server.EveningDetectiveServer.PreviewTeamReceipt:input_type -> crabs.evening_detective_server.TeamReceiptReq + 252, // 203: crabs.evening_detective_server.EveningDetectiveServer.PrintTeamReceipt:input_type -> crabs.evening_detective_server.TeamReceiptReq + 167, // 204: crabs.evening_detective_server.EveningDetectiveServer.DownloadTeamQR:input_type -> crabs.evening_detective_server.GetGameReq + 169, // 205: crabs.evening_detective_server.EveningDetectiveServer.GetGameAnswers:input_type -> crabs.evening_detective_server.GetGameAnswersReq + 171, // 206: crabs.evening_detective_server.EveningDetectiveServer.GetGameResults:input_type -> crabs.evening_detective_server.GetGameResultsReq + 176, // 207: crabs.evening_detective_server.EveningDetectiveServer.CreateGameReview:input_type -> crabs.evening_detective_server.CreateGameReviewReq + 178, // 208: crabs.evening_detective_server.EveningDetectiveServer.GetGameReviews:input_type -> crabs.evening_detective_server.GetGameReviewsReq + 179, // 209: crabs.evening_detective_server.EveningDetectiveServer.GetScenarioReviews:input_type -> crabs.evening_detective_server.GetScenarioReviewsReq + 178, // 210: crabs.evening_detective_server.EveningDetectiveServer.GetGameReviewsForModeration:input_type -> crabs.evening_detective_server.GetGameReviewsReq + 180, // 211: crabs.evening_detective_server.EveningDetectiveServer.GetReviewsForModeration:input_type -> crabs.evening_detective_server.GetReviewsForModerationReq + 182, // 212: crabs.evening_detective_server.EveningDetectiveServer.ModerateGameReview:input_type -> crabs.evening_detective_server.ModerateGameReviewReq + 184, // 213: crabs.evening_detective_server.EveningDetectiveServer.UpdateGame:input_type -> crabs.evening_detective_server.UpdateGameReq + 186, // 214: crabs.evening_detective_server.EveningDetectiveServer.StartGame:input_type -> crabs.evening_detective_server.StartGameReq + 188, // 215: crabs.evening_detective_server.EveningDetectiveServer.PauseGame:input_type -> crabs.evening_detective_server.PauseGameReq + 190, // 216: crabs.evening_detective_server.EveningDetectiveServer.PlayGame:input_type -> crabs.evening_detective_server.PlayGameReq + 192, // 217: crabs.evening_detective_server.EveningDetectiveServer.FinishGame:input_type -> crabs.evening_detective_server.FinishGameReq + 194, // 218: crabs.evening_detective_server.EveningDetectiveServer.ResetGame:input_type -> crabs.evening_detective_server.ResetGameReq + 196, // 219: crabs.evening_detective_server.EveningDetectiveServer.DeleteGame:input_type -> crabs.evening_detective_server.DeleteGameReq + 198, // 220: crabs.evening_detective_server.EveningDetectiveServer.AddTeam:input_type -> crabs.evening_detective_server.AddTeamReq + 200, // 221: crabs.evening_detective_server.EveningDetectiveServer.UpdateTeam:input_type -> crabs.evening_detective_server.UpdateTeamReq + 202, // 222: crabs.evening_detective_server.EveningDetectiveServer.DeleteTeam:input_type -> crabs.evening_detective_server.DeleteTeamReq + 204, // 223: crabs.evening_detective_server.EveningDetectiveServer.GiveTeamApplications:input_type -> crabs.evening_detective_server.GiveTeamApplicationsReq + 206, // 224: crabs.evening_detective_server.EveningDetectiveServer.GetTeamStory:input_type -> crabs.evening_detective_server.GetTeamStoryReq + 209, // 225: crabs.evening_detective_server.EveningDetectiveServer.AddTeamAction:input_type -> crabs.evening_detective_server.AddTeamActionReq + 211, // 226: crabs.evening_detective_server.EveningDetectiveServer.DeleteLastTeamAction:input_type -> crabs.evening_detective_server.DeleteLastTeamActionReq + 213, // 227: crabs.evening_detective_server.EveningDetectiveServer.GetTeamAnswers:input_type -> crabs.evening_detective_server.GetTeamAnswersReq + 215, // 228: crabs.evening_detective_server.EveningDetectiveServer.SubmitTeamAnswers:input_type -> crabs.evening_detective_server.SubmitTeamAnswersReq + 217, // 229: crabs.evening_detective_server.EveningDetectiveServer.SetTeamAnswerScore:input_type -> crabs.evening_detective_server.SetTeamAnswerScoreReq + 245, // 230: crabs.evening_detective_server.EveningDetectiveServer.DeviceHeartbeat:output_type -> crabs.evening_detective_server.DeviceHeartbeatRsp + 247, // 231: crabs.evening_detective_server.EveningDetectiveServer.GetDevices:output_type -> crabs.evening_detective_server.GetDevicesRsp + 232, // 232: crabs.evening_detective_server.EveningDetectiveServer.GetTasks:output_type -> crabs.evening_detective_server.GetTasksRsp + 234, // 233: crabs.evening_detective_server.EveningDetectiveServer.GetTaskAssignees:output_type -> crabs.evening_detective_server.GetTaskAssigneesRsp + 239, // 234: crabs.evening_detective_server.EveningDetectiveServer.CreateTask:output_type -> crabs.evening_detective_server.TaskRsp + 239, // 235: crabs.evening_detective_server.EveningDetectiveServer.UpdateTask:output_type -> crabs.evening_detective_server.TaskRsp + 239, // 236: crabs.evening_detective_server.EveningDetectiveServer.SetTaskStatus:output_type -> crabs.evening_detective_server.TaskRsp + 240, // 237: crabs.evening_detective_server.EveningDetectiveServer.DeleteTask:output_type -> crabs.evening_detective_server.DeleteTaskRsp + 165, // 238: crabs.evening_detective_server.EveningDetectiveServer.GetParticipation:output_type -> crabs.evening_detective_server.ParticipationRsp + 165, // 239: crabs.evening_detective_server.EveningDetectiveServer.AnswerParticipation:output_type -> crabs.evening_detective_server.ParticipationRsp + 6, // 240: crabs.evening_detective_server.EveningDetectiveServer.Ping:output_type -> crabs.evening_detective_server.PingRsp + 8, // 241: crabs.evening_detective_server.EveningDetectiveServer.Echo:output_type -> crabs.evening_detective_server.EchoRsp + 10, // 242: crabs.evening_detective_server.EveningDetectiveServer.Signup:output_type -> crabs.evening_detective_server.SignupRsp + 12, // 243: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:output_type -> crabs.evening_detective_server.RefreshPasswordRsp + 14, // 244: crabs.evening_detective_server.EveningDetectiveServer.Login:output_type -> crabs.evening_detective_server.LoginRsp + 16, // 245: crabs.evening_detective_server.EveningDetectiveServer.Refresh:output_type -> crabs.evening_detective_server.RefreshRsp + 18, // 246: crabs.evening_detective_server.EveningDetectiveServer.DeleteAccount:output_type -> crabs.evening_detective_server.DeleteAccountRsp + 20, // 247: crabs.evening_detective_server.EveningDetectiveServer.GetTerms:output_type -> crabs.evening_detective_server.GetTermsRsp + 22, // 248: crabs.evening_detective_server.EveningDetectiveServer.GetPrivacy:output_type -> crabs.evening_detective_server.GetPrivacyRsp + 24, // 249: crabs.evening_detective_server.EveningDetectiveServer.GetConsent:output_type -> crabs.evening_detective_server.GetConsentRsp + 26, // 250: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:output_type -> crabs.evening_detective_server.GetUsersRsp + 29, // 251: crabs.evening_detective_server.EveningDetectiveServer.GetUserByID:output_type -> crabs.evening_detective_server.GetUserByIDRsp + 31, // 252: crabs.evening_detective_server.EveningDetectiveServer.GetMe:output_type -> crabs.evening_detective_server.GetMeRsp + 33, // 253: crabs.evening_detective_server.EveningDetectiveServer.ChangeUserPassword:output_type -> crabs.evening_detective_server.ChangeUserPasswordRsp + 35, // 254: crabs.evening_detective_server.EveningDetectiveServer.AddUserRole:output_type -> crabs.evening_detective_server.AddUserRoleRsp + 37, // 255: crabs.evening_detective_server.EveningDetectiveServer.DeleteUserRole:output_type -> crabs.evening_detective_server.DeleteUserRoleRsp + 39, // 256: crabs.evening_detective_server.EveningDetectiveServer.GetPermissions:output_type -> crabs.evening_detective_server.GetPermissionsRsp + 41, // 257: crabs.evening_detective_server.EveningDetectiveServer.UploadFile:output_type -> crabs.evening_detective_server.UploadFileRsp + 255, // 258: crabs.evening_detective_server.EveningDetectiveServer.DownloadFile:output_type -> google.api.HttpBody + 46, // 259: crabs.evening_detective_server.EveningDetectiveServer.GetPlaylists:output_type -> crabs.evening_detective_server.GetPlaylistsRsp + 48, // 260: crabs.evening_detective_server.EveningDetectiveServer.CreatePlaylist:output_type -> crabs.evening_detective_server.CreatePlaylistRsp + 50, // 261: crabs.evening_detective_server.EveningDetectiveServer.UpdatePlaylist:output_type -> crabs.evening_detective_server.UpdatePlaylistRsp + 52, // 262: crabs.evening_detective_server.EveningDetectiveServer.DeletePlaylist:output_type -> crabs.evening_detective_server.DeletePlaylistRsp + 54, // 263: crabs.evening_detective_server.EveningDetectiveServer.UploadPlaylistTrack:output_type -> crabs.evening_detective_server.UploadPlaylistTrackRsp + 56, // 264: crabs.evening_detective_server.EveningDetectiveServer.ReorderPlaylistTracks:output_type -> crabs.evening_detective_server.ReorderPlaylistTracksRsp + 58, // 265: crabs.evening_detective_server.EveningDetectiveServer.DeletePlaylistTrack:output_type -> crabs.evening_detective_server.DeletePlaylistTrackRsp + 60, // 266: crabs.evening_detective_server.EveningDetectiveServer.SetScenarioPlaylist:output_type -> crabs.evening_detective_server.SetScenarioPlaylistRsp + 62, // 267: crabs.evening_detective_server.EveningDetectiveServer.AddScenario:output_type -> crabs.evening_detective_server.AddScenarioRsp + 64, // 268: crabs.evening_detective_server.EveningDetectiveServer.GetMyScenarios:output_type -> crabs.evening_detective_server.GetMyScenariosRsp + 66, // 269: crabs.evening_detective_server.EveningDetectiveServer.GetScenariosCatalog:output_type -> crabs.evening_detective_server.GetScenariosCatalogRsp + 68, // 270: crabs.evening_detective_server.EveningDetectiveServer.GetFullScenario:output_type -> crabs.evening_detective_server.GetScenarioRsp + 68, // 271: crabs.evening_detective_server.EveningDetectiveServer.GetScenario:output_type -> crabs.evening_detective_server.GetScenarioRsp + 82, // 272: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenario:output_type -> crabs.evening_detective_server.UpdateScenarioRsp + 84, // 273: crabs.evening_detective_server.EveningDetectiveServer.PublicScenario:output_type -> crabs.evening_detective_server.PublicScenarioRsp + 86, // 274: crabs.evening_detective_server.EveningDetectiveServer.DraftScenario:output_type -> crabs.evening_detective_server.DraftScenarioRsp + 88, // 275: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenario:output_type -> crabs.evening_detective_server.DeleteScenarioRsp + 90, // 276: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioPlace:output_type -> crabs.evening_detective_server.AddScenarioPlaceRsp + 92, // 277: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioPlace:output_type -> crabs.evening_detective_server.UpdateScenarioPlaceRsp + 94, // 278: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioPlace:output_type -> crabs.evening_detective_server.DeleteScenarioPlaceRsp + 100, // 279: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioQuestion:output_type -> crabs.evening_detective_server.AddScenarioQuestionRsp + 102, // 280: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioQuestion:output_type -> crabs.evening_detective_server.UpdateScenarioQuestionRsp + 104, // 281: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioQuestion:output_type -> crabs.evening_detective_server.DeleteScenarioQuestionRsp + 220, // 282: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioBackground:output_type -> crabs.evening_detective_server.UpdateScenarioBackgroundRsp + 98, // 283: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioIntro:output_type -> crabs.evening_detective_server.UpdateScenarioIntroRsp + 96, // 284: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioConclusion:output_type -> crabs.evening_detective_server.UpdateScenarioConclusionRsp + 255, // 285: crabs.evening_detective_server.EveningDetectiveServer.DownloadScenarioArchive:output_type -> google.api.HttpBody + 106, // 286: crabs.evening_detective_server.EveningDetectiveServer.UploadScenarioArchive:output_type -> crabs.evening_detective_server.UploadScenarioArchiveRsp + 108, // 287: crabs.evening_detective_server.EveningDetectiveServer.AddGame:output_type -> crabs.evening_detective_server.AddGameRsp + 110, // 288: crabs.evening_detective_server.EveningDetectiveServer.GetGames:output_type -> crabs.evening_detective_server.GetGamesRsp + 168, // 289: crabs.evening_detective_server.EveningDetectiveServer.GetGame:output_type -> crabs.evening_detective_server.GetGameRsp + 113, // 290: crabs.evening_detective_server.EveningDetectiveServer.ImportGame:output_type -> crabs.evening_detective_server.GameImportRsp + 255, // 291: crabs.evening_detective_server.EveningDetectiveServer.DownloadGameResultsPackage:output_type -> google.api.HttpBody + 243, // 292: crabs.evening_detective_server.EveningDetectiveServer.ApplyGameResultsPackage:output_type -> crabs.evening_detective_server.GameResultsPackageRsp + 118, // 293: crabs.evening_detective_server.EveningDetectiveServer.StartGameExport:output_type -> crabs.evening_detective_server.GameExportRsp + 117, // 294: crabs.evening_detective_server.EveningDetectiveServer.ResetGameLocalMode:output_type -> crabs.evening_detective_server.ResetGameLocalModeRsp + 118, // 295: crabs.evening_detective_server.EveningDetectiveServer.GetGameExport:output_type -> crabs.evening_detective_server.GameExportRsp + 222, // 296: crabs.evening_detective_server.EveningDetectiveServer.IssueGameTickets:output_type -> crabs.evening_detective_server.IssueGameTicketsRsp + 225, // 297: crabs.evening_detective_server.EveningDetectiveServer.GetTicket:output_type -> crabs.evening_detective_server.GetTicketRsp + 227, // 298: crabs.evening_detective_server.EveningDetectiveServer.AcceptTicket:output_type -> crabs.evening_detective_server.AcceptTicketRsp + 121, // 299: crabs.evening_detective_server.EveningDetectiveServer.CreateScreenSession:output_type -> crabs.evening_detective_server.CreateScreenSessionRsp + 123, // 300: crabs.evening_detective_server.EveningDetectiveServer.GetScreenState:output_type -> crabs.evening_detective_server.GetScreenStateRsp + 125, // 301: crabs.evening_detective_server.EveningDetectiveServer.GetGameScreens:output_type -> crabs.evening_detective_server.GetGameScreensRsp + 128, // 302: crabs.evening_detective_server.EveningDetectiveServer.GetGameMusic:output_type -> crabs.evening_detective_server.GetGameMusicRsp + 130, // 303: crabs.evening_detective_server.EveningDetectiveServer.SetGameMusic:output_type -> crabs.evening_detective_server.SetGameMusicRsp + 132, // 304: crabs.evening_detective_server.EveningDetectiveServer.AdvanceScreenMusic:output_type -> crabs.evening_detective_server.AdvanceScreenMusicRsp + 134, // 305: crabs.evening_detective_server.EveningDetectiveServer.BindScreen:output_type -> crabs.evening_detective_server.BindScreenRsp + 136, // 306: crabs.evening_detective_server.EveningDetectiveServer.UnbindScreen:output_type -> crabs.evening_detective_server.UnbindScreenRsp + 138, // 307: crabs.evening_detective_server.EveningDetectiveServer.SetScreenSound:output_type -> crabs.evening_detective_server.SetScreenSoundRsp + 141, // 308: crabs.evening_detective_server.EveningDetectiveServer.GetGameMap:output_type -> crabs.evening_detective_server.GetGameMapRsp + 143, // 309: crabs.evening_detective_server.EveningDetectiveServer.UpdateGameMapItem:output_type -> crabs.evening_detective_server.UpdateGameMapItemRsp + 145, // 310: crabs.evening_detective_server.EveningDetectiveServer.SetScreenMode:output_type -> crabs.evening_detective_server.SetScreenModeRsp + 147, // 311: crabs.evening_detective_server.EveningDetectiveServer.SetScreenTimer:output_type -> crabs.evening_detective_server.SetScreenTimerRsp + 149, // 312: crabs.evening_detective_server.EveningDetectiveServer.SendScreenCommand:output_type -> crabs.evening_detective_server.SendScreenCommandRsp + 153, // 313: crabs.evening_detective_server.EveningDetectiveServer.GetScreenPlan:output_type -> crabs.evening_detective_server.GetScreenPlanRsp + 155, // 314: crabs.evening_detective_server.EveningDetectiveServer.SaveScreenPlan:output_type -> crabs.evening_detective_server.SaveScreenPlanRsp + 157, // 315: crabs.evening_detective_server.EveningDetectiveServer.SetScreenPlanStep:output_type -> crabs.evening_detective_server.SetScreenPlanStepRsp + 160, // 316: crabs.evening_detective_server.EveningDetectiveServer.GetScreenTeams:output_type -> crabs.evening_detective_server.GetScreenTeamsRsp + 162, // 317: crabs.evening_detective_server.EveningDetectiveServer.GetScreenResults:output_type -> crabs.evening_detective_server.GetScreenResultsRsp + 255, // 318: crabs.evening_detective_server.EveningDetectiveServer.DownloadGamePrintMaterials:output_type -> google.api.HttpBody + 255, // 319: crabs.evening_detective_server.EveningDetectiveServer.PreviewTeamReceipt:output_type -> google.api.HttpBody + 253, // 320: crabs.evening_detective_server.EveningDetectiveServer.PrintTeamReceipt:output_type -> crabs.evening_detective_server.PrintTeamReceiptRsp + 255, // 321: crabs.evening_detective_server.EveningDetectiveServer.DownloadTeamQR:output_type -> google.api.HttpBody + 170, // 322: crabs.evening_detective_server.EveningDetectiveServer.GetGameAnswers:output_type -> crabs.evening_detective_server.GetGameAnswersRsp + 174, // 323: crabs.evening_detective_server.EveningDetectiveServer.GetGameResults:output_type -> crabs.evening_detective_server.GetGameResultsRsp + 177, // 324: crabs.evening_detective_server.EveningDetectiveServer.CreateGameReview:output_type -> crabs.evening_detective_server.CreateGameReviewRsp + 181, // 325: crabs.evening_detective_server.EveningDetectiveServer.GetGameReviews:output_type -> crabs.evening_detective_server.GetGameReviewsRsp + 181, // 326: crabs.evening_detective_server.EveningDetectiveServer.GetScenarioReviews:output_type -> crabs.evening_detective_server.GetGameReviewsRsp + 181, // 327: crabs.evening_detective_server.EveningDetectiveServer.GetGameReviewsForModeration:output_type -> crabs.evening_detective_server.GetGameReviewsRsp + 181, // 328: crabs.evening_detective_server.EveningDetectiveServer.GetReviewsForModeration:output_type -> crabs.evening_detective_server.GetGameReviewsRsp + 183, // 329: crabs.evening_detective_server.EveningDetectiveServer.ModerateGameReview:output_type -> crabs.evening_detective_server.ModerateGameReviewRsp + 185, // 330: crabs.evening_detective_server.EveningDetectiveServer.UpdateGame:output_type -> crabs.evening_detective_server.UpdateGameRsp + 187, // 331: crabs.evening_detective_server.EveningDetectiveServer.StartGame:output_type -> crabs.evening_detective_server.StartGameRsp + 189, // 332: crabs.evening_detective_server.EveningDetectiveServer.PauseGame:output_type -> crabs.evening_detective_server.PauseGameRsp + 191, // 333: crabs.evening_detective_server.EveningDetectiveServer.PlayGame:output_type -> crabs.evening_detective_server.PlayGameRsp + 193, // 334: crabs.evening_detective_server.EveningDetectiveServer.FinishGame:output_type -> crabs.evening_detective_server.FinishGameRsp + 195, // 335: crabs.evening_detective_server.EveningDetectiveServer.ResetGame:output_type -> crabs.evening_detective_server.ResetGameRsp + 197, // 336: crabs.evening_detective_server.EveningDetectiveServer.DeleteGame:output_type -> crabs.evening_detective_server.DeleteGameRsp + 199, // 337: crabs.evening_detective_server.EveningDetectiveServer.AddTeam:output_type -> crabs.evening_detective_server.AddTeamRsp + 201, // 338: crabs.evening_detective_server.EveningDetectiveServer.UpdateTeam:output_type -> crabs.evening_detective_server.UpdateTeamRsp + 203, // 339: crabs.evening_detective_server.EveningDetectiveServer.DeleteTeam:output_type -> crabs.evening_detective_server.DeleteTeamRsp + 205, // 340: crabs.evening_detective_server.EveningDetectiveServer.GiveTeamApplications:output_type -> crabs.evening_detective_server.GiveTeamApplicationsRsp + 207, // 341: crabs.evening_detective_server.EveningDetectiveServer.GetTeamStory:output_type -> crabs.evening_detective_server.GetTeamStoryRsp + 210, // 342: crabs.evening_detective_server.EveningDetectiveServer.AddTeamAction:output_type -> crabs.evening_detective_server.AddTeamActionRsp + 212, // 343: crabs.evening_detective_server.EveningDetectiveServer.DeleteLastTeamAction:output_type -> crabs.evening_detective_server.DeleteLastTeamActionRsp + 214, // 344: crabs.evening_detective_server.EveningDetectiveServer.GetTeamAnswers:output_type -> crabs.evening_detective_server.GetTeamAnswersRsp + 216, // 345: crabs.evening_detective_server.EveningDetectiveServer.SubmitTeamAnswers:output_type -> crabs.evening_detective_server.SubmitTeamAnswersRsp + 218, // 346: crabs.evening_detective_server.EveningDetectiveServer.SetTeamAnswerScore:output_type -> crabs.evening_detective_server.SetTeamAnswerScoreRsp + 230, // [230:347] is the sub-list for method output_type + 113, // [113:230] is the sub-list for method input_type + 113, // [113:113] is the sub-list for extension type_name + 113, // [113:113] is the sub-list for extension extendee + 0, // [0:113] is the sub-list for field type_name } func init() { file_main_proto_init() } @@ -14914,24 +15210,24 @@ func file_main_proto_init() { file_main_proto_msgTypes[74].OneofWrappers = []any{} file_main_proto_msgTypes[106].OneofWrappers = []any{} file_main_proto_msgTypes[114].OneofWrappers = []any{} - file_main_proto_msgTypes[176].OneofWrappers = []any{} - file_main_proto_msgTypes[209].OneofWrappers = []any{} - file_main_proto_msgTypes[220].OneofWrappers = []any{} - file_main_proto_msgTypes[221].OneofWrappers = []any{} - file_main_proto_msgTypes[227].OneofWrappers = []any{} - file_main_proto_msgTypes[228].OneofWrappers = []any{} - file_main_proto_msgTypes[236].OneofWrappers = []any{} - file_main_proto_msgTypes[237].OneofWrappers = []any{} - file_main_proto_msgTypes[238].OneofWrappers = []any{} + file_main_proto_msgTypes[179].OneofWrappers = []any{} + file_main_proto_msgTypes[212].OneofWrappers = []any{} + file_main_proto_msgTypes[223].OneofWrappers = []any{} + file_main_proto_msgTypes[224].OneofWrappers = []any{} + file_main_proto_msgTypes[230].OneofWrappers = []any{} + file_main_proto_msgTypes[231].OneofWrappers = []any{} + file_main_proto_msgTypes[239].OneofWrappers = []any{} + file_main_proto_msgTypes[240].OneofWrappers = []any{} file_main_proto_msgTypes[241].OneofWrappers = []any{} - file_main_proto_msgTypes[243].OneofWrappers = []any{} + file_main_proto_msgTypes[244].OneofWrappers = []any{} + file_main_proto_msgTypes[246].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: 4, - NumMessages: 246, + NumEnums: 5, + NumMessages: 249, NumExtensions: 0, NumServices: 1, }, diff --git a/proto/main.pb.gw.go b/proto/main.pb.gw.go index fb793da..e193bb2 100644 --- a/proto/main.pb.gw.go +++ b/proto/main.pb.gw.go @@ -3248,6 +3248,33 @@ func local_request_EveningDetectiveServer_SetScreenPlanStep_0(ctx context.Contex return msg, metadata, err } +func request_EveningDetectiveServer_GetScreenTeams_0(ctx context.Context, marshaler runtime.Marshaler, client EveningDetectiveServerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq GetScreenTeamsReq + metadata runtime.ServerMetadata + ) + 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) + } + msg, err := client.GetScreenTeams(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err +} + +func local_request_EveningDetectiveServer_GetScreenTeams_0(ctx context.Context, marshaler runtime.Marshaler, server EveningDetectiveServerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq GetScreenTeamsReq + metadata runtime.ServerMetadata + ) + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + msg, err := server.GetScreenTeams(ctx, &protoReq) + return msg, metadata, err +} + func request_EveningDetectiveServer_GetScreenResults_0(ctx context.Context, marshaler runtime.Marshaler, client EveningDetectiveServerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var ( protoReq GetScreenResultsReq @@ -6262,6 +6289,26 @@ func RegisterEveningDetectiveServerHandlerServer(ctx context.Context, mux *runti } forward_EveningDetectiveServer_SetScreenPlanStep_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) + mux.Handle(http.MethodPost, pattern_EveningDetectiveServer_GetScreenTeams_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/GetScreenTeams", runtime.WithHTTPPathPattern("/api/screens/teams")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EveningDetectiveServer_GetScreenTeams_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_GetScreenTeams_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) mux.Handle(http.MethodPost, pattern_EveningDetectiveServer_GetScreenResults_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -8364,6 +8411,23 @@ func RegisterEveningDetectiveServerHandlerClient(ctx context.Context, mux *runti } forward_EveningDetectiveServer_SetScreenPlanStep_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) + mux.Handle(http.MethodPost, pattern_EveningDetectiveServer_GetScreenTeams_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/GetScreenTeams", runtime.WithHTTPPathPattern("/api/screens/teams")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EveningDetectiveServer_GetScreenTeams_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_GetScreenTeams_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) mux.Handle(http.MethodPost, pattern_EveningDetectiveServer_GetScreenResults_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -8964,6 +9028,7 @@ var ( pattern_EveningDetectiveServer_GetScreenPlan_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"api", "games", "gameID", "screen-plan"}, "")) pattern_EveningDetectiveServer_SaveScreenPlan_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"api", "games", "gameID", "screen-plan"}, "")) pattern_EveningDetectiveServer_SetScreenPlanStep_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 2, 4}, []string{"api", "games", "gameID", "screen-plan", "step"}, "")) + pattern_EveningDetectiveServer_GetScreenTeams_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "screens", "teams"}, "")) pattern_EveningDetectiveServer_GetScreenResults_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "screens", "results"}, "")) pattern_EveningDetectiveServer_DownloadGamePrintMaterials_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"api", "games", "ID", "print-materials"}, "")) pattern_EveningDetectiveServer_PreviewTeamReceipt_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, 2, 5}, []string{"api", "games", "gameID", "teams", "teamID", "receipt.png"}, "")) @@ -9083,6 +9148,7 @@ var ( forward_EveningDetectiveServer_GetScreenPlan_0 = runtime.ForwardResponseMessage forward_EveningDetectiveServer_SaveScreenPlan_0 = runtime.ForwardResponseMessage forward_EveningDetectiveServer_SetScreenPlanStep_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_GetScreenTeams_0 = runtime.ForwardResponseMessage forward_EveningDetectiveServer_GetScreenResults_0 = runtime.ForwardResponseMessage forward_EveningDetectiveServer_DownloadGamePrintMaterials_0 = runtime.ForwardResponseMessage forward_EveningDetectiveServer_PreviewTeamReceipt_0 = runtime.ForwardResponseMessage diff --git a/proto/main_grpc.pb.go b/proto/main_grpc.pb.go index 6d81254..c655f92 100644 --- a/proto/main_grpc.pb.go +++ b/proto/main_grpc.pb.go @@ -112,6 +112,7 @@ const ( EveningDetectiveServer_GetScreenPlan_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/GetScreenPlan" EveningDetectiveServer_SaveScreenPlan_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/SaveScreenPlan" EveningDetectiveServer_SetScreenPlanStep_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/SetScreenPlanStep" + EveningDetectiveServer_GetScreenTeams_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/GetScreenTeams" EveningDetectiveServer_GetScreenResults_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/GetScreenResults" EveningDetectiveServer_DownloadGamePrintMaterials_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/DownloadGamePrintMaterials" EveningDetectiveServer_PreviewTeamReceipt_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/PreviewTeamReceipt" @@ -248,6 +249,7 @@ type EveningDetectiveServerClient interface { GetScreenPlan(ctx context.Context, in *GetScreenPlanReq, opts ...grpc.CallOption) (*GetScreenPlanRsp, error) SaveScreenPlan(ctx context.Context, in *SaveScreenPlanReq, opts ...grpc.CallOption) (*SaveScreenPlanRsp, error) SetScreenPlanStep(ctx context.Context, in *SetScreenPlanStepReq, opts ...grpc.CallOption) (*SetScreenPlanStepRsp, error) + GetScreenTeams(ctx context.Context, in *GetScreenTeamsReq, opts ...grpc.CallOption) (*GetScreenTeamsRsp, error) GetScreenResults(ctx context.Context, in *GetScreenResultsReq, opts ...grpc.CallOption) (*GetScreenResultsRsp, error) DownloadGamePrintMaterials(ctx context.Context, in *GetGameReq, opts ...grpc.CallOption) (*httpbody.HttpBody, error) PreviewTeamReceipt(ctx context.Context, in *TeamReceiptReq, opts ...grpc.CallOption) (*httpbody.HttpBody, error) @@ -1148,6 +1150,16 @@ func (c *eveningDetectiveServerClient) SetScreenPlanStep(ctx context.Context, in return out, nil } +func (c *eveningDetectiveServerClient) GetScreenTeams(ctx context.Context, in *GetScreenTeamsReq, opts ...grpc.CallOption) (*GetScreenTeamsRsp, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(GetScreenTeamsRsp) + err := c.cc.Invoke(ctx, EveningDetectiveServer_GetScreenTeams_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *eveningDetectiveServerClient) GetScreenResults(ctx context.Context, in *GetScreenResultsReq, opts ...grpc.CallOption) (*GetScreenResultsRsp, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(GetScreenResultsRsp) @@ -1552,6 +1564,7 @@ type EveningDetectiveServerServer interface { GetScreenPlan(context.Context, *GetScreenPlanReq) (*GetScreenPlanRsp, error) SaveScreenPlan(context.Context, *SaveScreenPlanReq) (*SaveScreenPlanRsp, error) SetScreenPlanStep(context.Context, *SetScreenPlanStepReq) (*SetScreenPlanStepRsp, error) + GetScreenTeams(context.Context, *GetScreenTeamsReq) (*GetScreenTeamsRsp, error) GetScreenResults(context.Context, *GetScreenResultsReq) (*GetScreenResultsRsp, error) DownloadGamePrintMaterials(context.Context, *GetGameReq) (*httpbody.HttpBody, error) PreviewTeamReceipt(context.Context, *TeamReceiptReq) (*httpbody.HttpBody, error) @@ -1850,6 +1863,9 @@ func (UnimplementedEveningDetectiveServerServer) SaveScreenPlan(context.Context, func (UnimplementedEveningDetectiveServerServer) SetScreenPlanStep(context.Context, *SetScreenPlanStepReq) (*SetScreenPlanStepRsp, error) { return nil, status.Error(codes.Unimplemented, "method SetScreenPlanStep not implemented") } +func (UnimplementedEveningDetectiveServerServer) GetScreenTeams(context.Context, *GetScreenTeamsReq) (*GetScreenTeamsRsp, error) { + return nil, status.Error(codes.Unimplemented, "method GetScreenTeams not implemented") +} func (UnimplementedEveningDetectiveServerServer) GetScreenResults(context.Context, *GetScreenResultsReq) (*GetScreenResultsRsp, error) { return nil, status.Error(codes.Unimplemented, "method GetScreenResults not implemented") } @@ -3510,6 +3526,24 @@ func _EveningDetectiveServer_SetScreenPlanStep_Handler(srv interface{}, ctx cont return interceptor(ctx, in, info, handler) } +func _EveningDetectiveServer_GetScreenTeams_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetScreenTeamsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EveningDetectiveServerServer).GetScreenTeams(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EveningDetectiveServer_GetScreenTeams_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EveningDetectiveServerServer).GetScreenTeams(ctx, req.(*GetScreenTeamsReq)) + } + return interceptor(ctx, in, info, handler) +} + func _EveningDetectiveServer_GetScreenResults_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetScreenResultsReq) if err := dec(in); err != nil { @@ -4401,6 +4435,10 @@ var EveningDetectiveServer_ServiceDesc = grpc.ServiceDesc{ MethodName: "SetScreenPlanStep", Handler: _EveningDetectiveServer_SetScreenPlanStep_Handler, }, + { + MethodName: "GetScreenTeams", + Handler: _EveningDetectiveServer_GetScreenTeams_Handler, + }, { MethodName: "GetScreenResults", Handler: _EveningDetectiveServer_GetScreenResults_Handler,