From e96199afbad75ea72e57d432308b3d8b3fc47003 Mon Sep 17 00:00:00 2001 From: Fedorov Vladimir Date: Sun, 18 Oct 2026 05:28:57 +0700 Subject: [PATCH] up --- api/main.proto | 18 + .../main.swagger.json | 63 + internal/app/playlist_errors.go | 2 + internal/app/playlist_order_test.go | 47 + internal/app/playlists.go | 15 + internal/app/screens.go | 9 +- internal/repos/playlists_repo/fixture_test.go | 88 + internal/repos/playlists_repo/order.go | 103 + internal/repos/playlists_repo/order_test.go | 247 ++ internal/repos/playlists_repo/repo.go | 185 +- internal/repos/screen_sessions_repo/repo.go | 144 +- .../services/playlist_service/order_test.go | 35 + internal/services/playlist_service/service.go | 36 +- .../services/screen_plan_service/service.go | 7 +- internal/services/screen_service/service.go | 10 +- proto/main.pb.go | 2393 +++++++++-------- proto/main.pb.gw.go | 84 + proto/main_grpc.pb.go | 38 + 18 files changed, 2331 insertions(+), 1193 deletions(-) create mode 100644 internal/app/playlist_order_test.go create mode 100644 internal/repos/playlists_repo/fixture_test.go create mode 100644 internal/repos/playlists_repo/order.go create mode 100644 internal/repos/playlists_repo/order_test.go create mode 100644 internal/services/playlist_service/order_test.go diff --git a/api/main.proto b/api/main.proto index 92beae8..e3c7ff8 100644 --- a/api/main.proto +++ b/api/main.proto @@ -382,6 +382,14 @@ service EveningDetectiveServer { }; } + rpc ReorderPlaylistTracks(ReorderPlaylistTracksReq) returns (ReorderPlaylistTracksRsp) { + option (google.api.http) = { put: "/api/playlists/{playlistID}/tracks/order" body: "*" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + tags : "Музыка"; + summary: "Изменить порядок треков"; + }; + } + rpc DeletePlaylistTrack(DeletePlaylistTrackReq) returns (DeletePlaylistTrackRsp) { option (google.api.http) = { delete: "/api/playlists/{playlistID}/tracks/{trackID}" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { @@ -1441,6 +1449,15 @@ message UploadPlaylistTrackRsp { Playlist playlist = 1; } +message ReorderPlaylistTracksReq { + int32 playlistID = 1; + repeated int32 trackIDs = 2; +} + +message ReorderPlaylistTracksRsp { + Playlist playlist = 1; +} + message DeletePlaylistTrackReq { int32 playlistID = 1; int32 trackID = 2; @@ -1892,6 +1909,7 @@ message BindScreenReq { string screenID = 1; string accessToken = 2; int32 gameID = 3; + bool initializeAudio = 4; } message BindScreenRsp { diff --git a/cmd/evening_detective_server/main.swagger.json b/cmd/evening_detective_server/main.swagger.json index 0c1ef9a..227f17d 100644 --- a/cmd/evening_detective_server/main.swagger.json +++ b/cmd/evening_detective_server/main.swagger.json @@ -2054,6 +2054,46 @@ ] } }, + "/api/playlists/{playlistID}/tracks/order": { + "put": { + "summary": "Изменить порядок треков", + "operationId": "EveningDetectiveServer_ReorderPlaylistTracks", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/evening_detective_serverReorderPlaylistTracksRsp" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "playlistID", + "in": "path", + "required": true, + "type": "integer", + "format": "int32" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/EveningDetectiveServerReorderPlaylistTracksBody" + } + } + ], + "tags": [ + "Музыка" + ] + } + }, "/api/playlists/{playlistID}/tracks/{trackID}": { "delete": { "summary": "Удалить MP3 из плейлиста", @@ -4154,6 +4194,9 @@ "gameID": { "type": "integer", "format": "int32" + }, + "initializeAudio": { + "type": "boolean" } } }, @@ -4247,6 +4290,18 @@ "EveningDetectiveServerPublicScenarioBody": { "type": "object" }, + "EveningDetectiveServerReorderPlaylistTracksBody": { + "type": "object", + "properties": { + "trackIDs": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + }, "EveningDetectiveServerResetGameBody": { "type": "object" }, @@ -5881,6 +5936,14 @@ } } }, + "evening_detective_serverReorderPlaylistTracksRsp": { + "type": "object", + "properties": { + "playlist": { + "$ref": "#/definitions/evening_detective_serverPlaylist" + } + } + }, "evening_detective_serverResetGameLocalModeRsp": { "type": "object" }, diff --git a/internal/app/playlist_errors.go b/internal/app/playlist_errors.go index 03fec7c..20b83fc 100644 --- a/internal/app/playlist_errors.go +++ b/internal/app/playlist_errors.go @@ -18,6 +18,8 @@ func playlistErrorStatus(err error, fallback string) error { errors.Is(err, playlist_service.ErrGameNotFound), errors.Is(err, playlist_service.ErrScenarioNotFound): return status.Error(codes.NotFound, err.Error()) + case errors.Is(err, playlist_service.ErrTrackOrderChanged): + return status.Error(codes.Aborted, err.Error()) case errors.Is(err, playlist_service.ErrPlaylistInUse): return status.Error(codes.FailedPrecondition, err.Error()) default: diff --git a/internal/app/playlist_order_test.go b/internal/app/playlist_order_test.go new file mode 100644 index 0000000..55fbaa0 --- /dev/null +++ b/internal/app/playlist_order_test.go @@ -0,0 +1,47 @@ +package app + +import ( + "context" + "errors" + "testing" + + "evening_detective_server/internal/services/playlist_service" + proto "evening_detective_server/proto" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +func TestPlaylistOrderErrorCodes(t *testing.T) { + cases := []struct { + name string + err error + code codes.Code + }{ + {"invalid", playlist_service.ErrInvalidTrack, codes.InvalidArgument}, + {"conflict", playlist_service.ErrTrackOrderChanged, codes.Aborted}, + {"missing", playlist_service.ErrPlaylistNotFound, codes.NotFound}, + {"internal", errors.New("secret SQL"), codes.Internal}, + } + for _, tc := range cases { + t.Run(tc.name, func(t *testing.T) { + err := playlistErrorStatus(tc.err, "Не удалось сохранить порядок") + if status.Code(err) != tc.code { + t.Fatal(err) + } + if tc.code == codes.Internal && status.Convert(err).Message() != "Не удалось сохранить порядок" { + t.Fatal("internal details exposed") + } + }) + } +} + +func TestPlaylistOrderRequiresAuthentication(t *testing.T) { + for _, ctx := range []context.Context{context.Background()} { + t.Run("anonymous", func(t *testing.T) { + _, err := (&server{}).ReorderPlaylistTracks(ctx, &proto.ReorderPlaylistTracksReq{PlaylistID: 1, TrackIDs: []int32{1}}) + if status.Code(err) != codes.PermissionDenied { + t.Fatal(err) + } + }) + } +} diff --git a/internal/app/playlists.go b/internal/app/playlists.go index 2c82e9b..4891b4d 100644 --- a/internal/app/playlists.go +++ b/internal/app/playlists.go @@ -159,3 +159,18 @@ func (s *server) SetGameMusic(ctx context.Context, req *proto.SetGameMusicReq) ( } return &proto.SetGameMusicRsp{State: mapMusicState(state)}, nil } + +func (s *server) ReorderPlaylistTracks(ctx context.Context, req *proto.ReorderPlaylistTracksReq) (*proto.ReorderPlaylistTracksRsp, error) { + if !canManagePlaylists(ctx) { + return nil, status.Error(codes.PermissionDenied, "permission denied") + } + ids := make([]int, len(req.GetTrackIDs())) + for i, id := range req.GetTrackIDs() { + ids[i] = int(id) + } + item, err := s.playlistService.Reorder(ctx, int(req.GetPlaylistID()), ids) + if err != nil { + return nil, playlistErrorStatus(err, "не удалось сохранить порядок треков") + } + return &proto.ReorderPlaylistTracksRsp{Playlist: mapPlaylist(item)}, nil +} diff --git a/internal/app/screens.go b/internal/app/screens.go index 0d66b90..d7855d5 100644 --- a/internal/app/screens.go +++ b/internal/app/screens.go @@ -123,14 +123,17 @@ func (s *server) BindScreen(ctx context.Context, req *proto.BindScreenReq) (*pro return nil, status.Error(codes.NotFound, "игра не найдена") } hash := hashScreenToken(req.AccessToken) - if err = s.screenService.Bind(ctx, id, int(req.GameID), hash); err != nil { + isNewBinding, err := s.screenService.Bind(ctx, id, int(req.GameID), hash, req.GetInitializeAudio()) + if err != nil { if errors.Is(err, screen_service.ErrScreenNotFound) { return nil, status.Error(codes.Unauthenticated, "недействительная сессия экрана") } return nil, status.Error(codes.Internal, "не удалось привязать экран") } - if err := s.screenPlanService.ApplyCurrent(ctx, int(req.GameID)); err != nil { - return nil, status.Error(codes.Internal, "не удалось применить план экранов") + if isNewBinding { + if err := s.screenPlanService.ApplyCurrent(ctx, int(req.GameID), id); err != nil { + return nil, status.Error(codes.Internal, "не удалось применить план экранов") + } } session, err := s.screenService.Get(ctx, id, hash) if err != nil { diff --git a/internal/repos/playlists_repo/fixture_test.go b/internal/repos/playlists_repo/fixture_test.go new file mode 100644 index 0000000..1638a06 --- /dev/null +++ b/internal/repos/playlists_repo/fixture_test.go @@ -0,0 +1,88 @@ +package playlists_repo + +import ( + "context" + "fmt" + "os" + "path/filepath" + "strings" + "testing" + "time" + + "evening_detective_server/internal/repos/games_repo" + "evening_detective_server/internal/repos/scenarios_repo" + "evening_detective_server/internal/repos/screen_sessions_repo" + "evening_detective_server/internal/repos/user_agreements_repo" + "evening_detective_server/internal/repos/users_repo" + "github.com/jackc/pgx/v5" + "github.com/jackc/pgx/v5/pgxpool" +) + +type playlistFixture struct { + pool *pgxpool.Pool + repo *Repo + screens *screen_sessions_repo.ScreenSessionsRepo + gameID int +} + +// newPlaylistFixture uses real migrations in an isolated test schema; all game data uses repositories. +func newPlaylistFixture(t *testing.T) playlistFixture { + t.Helper() + dsn := os.Getenv("TEST_DATABASE_URL") + if dsn == "" { + t.Skip("set TEST_DATABASE_URL for PostgreSQL playlist checks") + } + ctx := context.Background() + admin, err := pgxpool.New(ctx, dsn) + requireNoError(t, err) + schema := fmt.Sprintf("playlist_test_%d", time.Now().UnixNano()) + quoted := pgx.Identifier{schema}.Sanitize() + _, err = admin.Exec(ctx, "CREATE SCHEMA "+quoted) + requireNoError(t, err) + t.Cleanup(func() { + _, err := admin.Exec(ctx, "DROP SCHEMA "+quoted+" CASCADE") + if err != nil { + t.Error(err) + } + admin.Close() + }) + config, err := pgxpool.ParseConfig(dsn) + requireNoError(t, err) + config.ConnConfig.RuntimeParams["search_path"] = schema + config.ConnConfig.RuntimeParams["timezone"] = "UTC" + pool, err := pgxpool.NewWithConfig(ctx, config) + requireNoError(t, err) + t.Cleanup(pool.Close) + files, err := filepath.Glob("../../../migrations/*.sql") + requireNoError(t, err) + for _, name := range files { + raw, err := os.ReadFile(name) + requireNoError(t, err) + _, err = pool.Exec(ctx, strings.Split(string(raw), "-- +goose Down")[0]) + if err != nil { + t.Fatalf("migration %s: %v", name, err) + } + } + f := playlistFixture{pool: pool, repo: New(pool), screens: screen_sessions_repo.NewScreenSessionsRepo(pool)} + users := users_repo.NewUserRepo(pool) + scenarios := scenarios_repo.NewScenariosRepo(pool) + games := games_repo.NewGamesRepo(pool) + var userID, scenarioID int + userID, err = users.AddUserWithAgreements(ctx, "organizer", "export@test.invalid", "hash", []string{"organizer"}, + []user_agreements_repo.Agreement{{AgreementType: "terms", Version: "test"}}) + requireNoError(t, err) + scenarioID, err = scenarios.AddScenario(ctx, "Original story", userID) + requireNoError(t, err) + requireNoError(t, scenarios.UpdateStoryByScenarioID(ctx, scenarioID, + `{"introduction":{"text":"Intro"},"questions":[{"code":"q","text":"Who?","answer":"Butler"}]}`)) + f.gameID, err = games.AddGame(ctx, "Test export", "Original description", nil, time.Now().Add(12*time.Hour), int32(scenarioID), "offline") + requireNoError(t, err) + return f +} + +func requireNoError(t *testing.T, err error) { + t.Helper() + if err != nil { + t.Fatal(err) + } +} diff --git a/internal/repos/playlists_repo/order.go b/internal/repos/playlists_repo/order.go new file mode 100644 index 0000000..1a0f971 --- /dev/null +++ b/internal/repos/playlists_repo/order.go @@ -0,0 +1,103 @@ +package playlists_repo + +import ( + "context" + "errors" + "slices" + + "github.com/jackc/pgx/v5" +) + +func lockPlaylist(ctx context.Context, tx pgx.Tx, id int) error { + var found int + err := tx.QueryRow( + ctx, + `SELECT id + FROM playlists + WHERE id = $1 + FOR UPDATE`, + id, + ).Scan(&found) + if errors.Is(err, pgx.ErrNoRows) { + return ErrPlaylistNotFound + } + return err +} + +// Reorder atomically changes order and preserves each game's current track. +func (r *Repo) Reorder(ctx context.Context, playlistID int, trackIDs []int) (*Playlist, error) { + tx, err := r.pool.Begin(ctx) + if err != nil { + return nil, err + } + defer tx.Rollback(ctx) + if err := lockPlaylist(ctx, tx, playlistID); err != nil { + return nil, err + } + rows, err := tx.Query( + ctx, + `SELECT id + FROM playlist_tracks + WHERE playlist_id = $1 + ORDER BY position, id`, + playlistID, + ) + if err != nil { + return nil, err + } + old, err := pgx.CollectRows(rows, pgx.RowTo[int]) + if err != nil { + return nil, err + } + sortedOld, sortedNew := slices.Clone(old), slices.Clone(trackIDs) + slices.Sort(sortedOld) + slices.Sort(sortedNew) + if !slices.Equal(sortedOld, sortedNew) { + return nil, ErrTrackOrderChanged + } + if !slices.Equal(old, trackIDs) { + // Lock state before changing indices; timing and playback remain untouched. + _, err = tx.Exec( + ctx, + `UPDATE game_music_states ms + SET track_index = COALESCE(array_position($3::int[], ($2::int[])[ms.track_index + 1]) - 1, 0), + state_version = ms.state_version + 1, + updated_at = NOW() + FROM games g + JOIN scenarios s ON s.id = g.scenario_id + WHERE ms.game_id = g.id + AND COALESCE(ms.playlist_id, g.playlist_id, s.playlist_id) = $1`, + playlistID, + old, + trackIDs, + ) + if err != nil { + return nil, err + } + _, err = tx.Exec( + ctx, + `UPDATE playlist_tracks t + SET position = ordered.position - 1 + FROM unnest($2::int[]) WITH ORDINALITY AS ordered(id, position) + WHERE t.playlist_id = $1 AND t.id = ordered.id`, + playlistID, + trackIDs, + ) + if err != nil { + return nil, err + } + } + items, err := list(ctx, tx) + if err != nil { + return nil, err + } + if err := tx.Commit(ctx); err != nil { + return nil, err + } + for _, item := range items { + if item.ID == playlistID { + return item, nil + } + } + return nil, ErrPlaylistNotFound +} diff --git a/internal/repos/playlists_repo/order_test.go b/internal/repos/playlists_repo/order_test.go new file mode 100644 index 0000000..5737c1d --- /dev/null +++ b/internal/repos/playlists_repo/order_test.go @@ -0,0 +1,247 @@ +package playlists_repo + +import ( + "context" + "errors" + "fmt" + "slices" + "sync" + "testing" + "time" +) + +func TestReorderPreservesPlaybackAndRejectsChangedMembership(t *testing.T) { + for _, playback := range []int32{1, 2, 3} { + t.Run(map[int32]string{1: "stopped", 2: "playing", 3: "paused"}[playback], func(t *testing.T) { + f := newPlaylistFixture(t) + ctx := context.Background() + p, err := f.repo.Create(ctx, "Music") + requireNoError(t, err) + for _, name := range []string{"One", "Two", "Three"} { + requireNoError(t, f.repo.AddTrack(ctx, p.ID, name, name+".mp3")) + } + p, err = f.repo.Get(ctx, p.ID) + requireNoError(t, err) + before, err := f.repo.SetMusic(ctx, f.gameID, p.ID, 1, 1234, 37, true, playback) + requireNoError(t, err) + if err := f.repo.Delete(ctx, p.ID); !errors.Is(err, ErrPlaylistInUse) { + t.Fatalf("active playlist deletion: %v", err) + } + if _, err := f.repo.DeleteTrack(ctx, p.ID, p.Tracks[0].ID); !errors.Is(err, ErrPlaylistInUse) { + t.Fatalf("active track deletion: %v", err) + } + order := []int{p.Tracks[1].ID, p.Tracks[2].ID, p.Tracks[0].ID} + reordered, err := f.repo.Reorder(ctx, p.ID, order) + requireNoError(t, err) + if reordered.Tracks[0].ID != p.Tracks[1].ID { + t.Fatal("order not saved") + } + after, err := f.repo.GetMusic(ctx, f.gameID) + requireNoError(t, err) + if after.TrackIndex != 0 || after.Playlist.Tracks[0].ID != before.Playlist.Tracks[1].ID || after.Playback != playback || after.Volume != 37 || !after.Loop || after.Version != before.Version+1 { + t.Fatalf("transport changed: %+v", after) + } + if after.PositionMs < before.PositionMs || after.PositionMs-before.PositionMs > 1000 || !sameTime(before.StartedAt, after.StartedAt) { + t.Fatal("playback position reset") + } + _, err = f.repo.Reorder(ctx, p.ID, order) + requireNoError(t, err) + unchanged, err := f.repo.GetMusic(ctx, f.gameID) + requireNoError(t, err) + if unchanged.Version != after.Version { + t.Fatal("no-op changed version") + } + for _, invalid := range [][]int{order[:2], {order[0], order[0], order[2]}, {order[0], order[1], 999999}} { + if _, err := f.repo.Reorder(ctx, p.ID, invalid); !errors.Is(err, ErrTrackOrderChanged) { + t.Fatalf("expected membership conflict, got %v", err) + } + } + current, err := f.repo.Get(ctx, p.ID) + requireNoError(t, err) + for i, track := range current.Tracks { + if track.ID != order[i] { + t.Fatal("failed reorder changed data") + } + } + empty, err := f.repo.Create(ctx, "Empty") + requireNoError(t, err) + _, err = f.repo.Reorder(ctx, empty.ID, nil) + requireNoError(t, err) + if _, err := f.repo.Reorder(ctx, 999999, nil); !errors.Is(err, ErrPlaylistNotFound) { + t.Fatal(err) + } + }) + } +} + +func sameTime(a, b *time.Time) bool { + return a == nil && b == nil || a != nil && b != nil && a.Equal(*b) +} + +func TestConcurrentAdditionsKeepDistinctPositions(t *testing.T) { + for _, count := range []int{8} { + t.Run("parallel uploads", func(t *testing.T) { + f := newPlaylistFixture(t) + ctx := context.Background() + p, err := f.repo.Create(ctx, "Concurrent") + requireNoError(t, err) + var wg sync.WaitGroup + failures := make(chan error, count) + for i := 0; i < count; i++ { + wg.Go(func() { failures <- f.repo.AddTrack(ctx, p.ID, "Track", fmt.Sprintf("track-%d.mp3", i)) }) + } + wg.Wait() + close(failures) + for err := range failures { + requireNoError(t, err) + } + p, err = f.repo.Get(ctx, p.ID) + requireNoError(t, err) + positions := make([]int, len(p.Tracks)) + for i, track := range p.Tracks { + positions[i] = track.Position + } + if !slices.Equal(positions, []int{0, 1, 2, 3, 4, 5, 6, 7}) { + t.Fatal(positions) + } + }) + } +} + +func TestBindInitializesAudioWithoutChangingTransport(t *testing.T) { + for _, initialize := range []bool{false, true} { + t.Run(map[bool]string{false: "legacy", true: "initialize"}[initialize], func(t *testing.T) { + f := newPlaylistFixture(t) + ctx := context.Background() + first, err := f.screens.Create(ctx, "first") + requireNoError(t, err) + requireNoError(t, f.screens.Bind(ctx, first, f.gameID, "first")) + requireNoError(t, f.screens.SetSound(ctx, first, true)) + requireNoError(t, f.screens.SetCommand(ctx, f.gameID, 2, 3456, 39)) + before, err := f.repo.SetMusic(ctx, f.gameID, 0, 0, 1234, 42, true, 2) + requireNoError(t, err) + second, err := f.screens.Create(ctx, "second") + requireNoError(t, err) + if _, err := f.screens.BindWithAudio(ctx, second, f.gameID, "wrong", initialize); err == nil { + t.Fatal("bad token accepted") + } + isNewBinding, err := f.screens.BindWithAudio(ctx, second, f.gameID, "second", initialize) + requireNoError(t, err) + if !isNewBinding { + t.Fatal("new binding not detected") + } + isNewBinding, err = f.screens.BindWithAudio(ctx, second, f.gameID, "second", initialize) + requireNoError(t, err) + if isNewBinding { + t.Fatal("repeat binding would reset transport") + } + requireNoError(t, f.screens.InitializeScreen(ctx, second, f.gameID, 1, "", "Pause", 600)) + original, err := f.screens.Get(ctx, first, "first") + requireNoError(t, err) + joined, err := f.screens.Get(ctx, second, "second") + requireNoError(t, err) + after, err := f.repo.GetMusic(ctx, f.gameID) + requireNoError(t, err) + if original.Command != 2 || original.Position != 3456 || joined.Command != 2 || joined.Position != 3456 { + t.Fatal("join reset display") + } + if original.Sound == initialize || joined.Sound != initialize { + t.Fatal("incorrect sound assignment") + } + expectedVolume := int32(42) + if initialize { + expectedVolume = 100 + if joined.Volume != 100 { + t.Fatal(joined.Volume) + } + } + if after.Volume != expectedVolume || after.Playback != before.Playback || !sameTime(after.StartedAt, before.StartedAt) { + t.Fatal("audio initialization changed playback") + } + }) + } +} + +func TestReorderReadersSeeConsistentTrackAndIndex(t *testing.T) { + for _, iterations := range []int{20} { + t.Run("concurrent snapshots", func(t *testing.T) { + f := newPlaylistFixture(t) + ctx := context.Background() + p, err := f.repo.Create(ctx, "Snapshot") + requireNoError(t, err) + for _, name := range []string{"a", "b", "c"} { + requireNoError(t, f.repo.AddTrack(ctx, p.ID, name, name+".mp3")) + } + p, err = f.repo.Get(ctx, p.ID) + requireNoError(t, err) + _, err = f.repo.SetMusic(ctx, f.gameID, p.ID, 1, 1000, 50, true, 3) + requireNoError(t, err) + old := []int{p.Tracks[0].ID, p.Tracks[1].ID, p.Tracks[2].ID} + reordered := []int{old[1], old[2], old[0]} + failures := make(chan error, 1) + go func() { + for i := 0; i < iterations; i++ { + order := old + if i%2 == 0 { + order = reordered + } + if _, err := f.repo.Reorder(ctx, p.ID, order); err != nil { + failures <- err + return + } + } + failures <- nil + }() + for i := 0; i < iterations; i++ { + state, err := f.repo.GetMusic(ctx, f.gameID) + requireNoError(t, err) + if state.Playlist.Tracks[state.TrackIndex].ID != old[1] { + t.Fatal("mixed playlist order and current index") + } + } + requireNoError(t, <-failures) + }) + } +} + +func TestConcurrentBindingsAssignSoundOnce(t *testing.T) { + for _, count := range []int{2} { + t.Run("two screens", func(t *testing.T) { + f := newPlaylistFixture(t) + ctx := context.Background() + ids := make([]int, count) + for i := range ids { + var err error + ids[i], err = f.screens.Create(ctx, fmt.Sprintf("token-%d", i)) + requireNoError(t, err) + } + failures := make(chan error, count) + var wg sync.WaitGroup + for i, id := range ids { + wg.Go(func() { + _, err := f.screens.BindWithAudio(ctx, id, f.gameID, fmt.Sprintf("token-%d", i), true) + failures <- err + }) + } + wg.Wait() + close(failures) + for err := range failures { + requireNoError(t, err) + } + screens, err := f.screens.ListByGame(ctx, f.gameID) + requireNoError(t, err) + sound := 0 + for _, s := range screens { + if s.Sound { + sound++ + } + if s.Volume != 100 { + t.Fatal(s.Volume) + } + } + if sound != 1 { + t.Fatalf("%d screens have sound", sound) + } + }) + } +} diff --git a/internal/repos/playlists_repo/repo.go b/internal/repos/playlists_repo/repo.go index d9eac56..ac22b67 100644 --- a/internal/repos/playlists_repo/repo.go +++ b/internal/repos/playlists_repo/repo.go @@ -10,11 +10,12 @@ import ( ) var ( - ErrPlaylistNotFound = errors.New("плейлист не найден") - ErrPlaylistInUse = errors.New("плейлист используется") - ErrTrackNotFound = errors.New("трек не найден") - ErrGameNotFound = errors.New("игра не найдена") - ErrScenarioNotFound = errors.New("сценарий не найден") + ErrPlaylistNotFound = errors.New("плейлист не найден") + ErrTrackOrderChanged = errors.New("состав треков изменился; обновите список") + ErrPlaylistInUse = errors.New("плейлист используется") + ErrTrackNotFound = errors.New("трек не найден") + ErrGameNotFound = errors.New("игра не найдена") + ErrScenarioNotFound = errors.New("сценарий не найден") ) // Track describes a stored playlist track. @@ -54,11 +55,28 @@ func New(pool *pgxpool.Pool) *Repo { return &Repo{pool: pool} } // List returns all playlists with their tracks. func (r *Repo) List(ctx context.Context) ([]*Playlist, error) { - rows, err := r.pool.Query(ctx, ` - SELECT p.id, p.name, t.id, t.name, t.filename, t.position + return list(ctx, r.pool) +} + +// IPlaylistReader reads catalogues from a pool or a consistent transaction snapshot. +type IPlaylistReader interface { + Query(context.Context, string, ...any) (pgx.Rows, error) +} + +func list(ctx context.Context, reader IPlaylistReader) ([]*Playlist, error) { + rows, err := reader.Query( + ctx, + `SELECT + p.id, + p.name, + t.id, + t.name, + t.filename, + t.position FROM playlists p LEFT JOIN playlist_tracks t ON t.playlist_id = p.id - ORDER BY p.id, t.position, t.id`) + ORDER BY p.id, t.position, t.id`, + ) if err != nil { return nil, err } @@ -136,68 +154,128 @@ func (r *Repo) Update(ctx context.Context, id int, name string) (*Playlist, erro // Delete removes a playlist that is not assigned to a scenario or game. func (r *Repo) Delete(ctx context.Context, id int) error { + tx, err := r.pool.Begin(ctx) + if err != nil { + return err + } + defer tx.Rollback(ctx) + if err := lockPlaylist(ctx, tx, id); err != nil { + return err + } var used bool - if err := r.pool.QueryRow(ctx, ` + if err := tx.QueryRow( + ctx, + ` SELECT EXISTS (SELECT 1 FROM scenarios WHERE playlist_id = $1) OR EXISTS (SELECT 1 FROM games WHERE playlist_id = $1) - `, id).Scan(&used); err != nil { + OR EXISTS (SELECT 1 FROM game_music_states WHERE playlist_id = $1) + `, + id, + ).Scan(&used); err != nil { return err } if used { return ErrPlaylistInUse } - result, err := r.pool.Exec(ctx, ` + result, err := tx.Exec( + ctx, + ` DELETE FROM playlists WHERE id = $1 - `, id) + `, + id, + ) if err != nil { return err } if result.RowsAffected() == 0 { return ErrPlaylistNotFound } - return nil + return tx.Commit(ctx) } // AddTrack adds a track to a playlist. func (r *Repo) AddTrack(ctx context.Context, playlistID int, name, filename string) error { + tx, err := r.pool.Begin(ctx) + if err != nil { + return err + } + defer tx.Rollback(ctx) + if err := lockPlaylist(ctx, tx, playlistID); err != nil { + return err + } var position int - if err := r.pool.QueryRow(ctx, ` + if err := tx.QueryRow( + ctx, + ` SELECT COALESCE(MAX(position), -1) + 1 FROM playlist_tracks WHERE playlist_id = $1 - `, playlistID).Scan(&position); err != nil { + `, + playlistID, + ).Scan(&position); err != nil { return err } - _, err := r.pool.Exec(ctx, ` + _, err = tx.Exec( + ctx, + ` INSERT INTO playlist_tracks (playlist_id, name, filename, position) VALUES ($1, $2, $3, $4) - `, playlistID, name, filename, position) - return err + `, + playlistID, + name, + filename, + position, + ) + if err != nil { + return err + } + return tx.Commit(ctx) } // DeleteTrack removes a track and returns its stored filename. func (r *Repo) DeleteTrack(ctx context.Context, playlistID, trackID int) (string, error) { + tx, err := r.pool.Begin(ctx) + if err != nil { + return "", err + } + defer tx.Rollback(ctx) + if err := lockPlaylist(ctx, tx, playlistID); err != nil { + return "", err + } var filename string var used bool - if err := r.pool.QueryRow(ctx, ` + if err = tx.QueryRow( + ctx, + ` SELECT EXISTS (SELECT 1 FROM scenarios WHERE playlist_id = $1) OR EXISTS (SELECT 1 FROM games WHERE playlist_id = $1) - `, playlistID).Scan(&used); err != nil { + OR EXISTS (SELECT 1 FROM game_music_states WHERE playlist_id = $1) + `, + playlistID, + ).Scan(&used); err != nil { return "", err } if used { return "", ErrPlaylistInUse } - err := r.pool.QueryRow(ctx, ` + err = tx.QueryRow( + ctx, + ` DELETE FROM playlist_tracks WHERE id = $1 AND playlist_id = $2 RETURNING filename - `, trackID, playlistID).Scan(&filename) + `, + trackID, + playlistID, + ).Scan(&filename) if errors.Is(err, pgx.ErrNoRows) { return "", ErrTrackNotFound } - return filename, err + if err != nil { + return "", err + } + return filename, tx.Commit(ctx) } // SetScenario assigns a playlist to a scenario. @@ -244,9 +322,30 @@ func (r *Repo) SetGame(ctx context.Context, gameID, playlistID int) error { // GetMusic returns the effective and current music state for a game. func (r *Repo) GetMusic(ctx context.Context, gameID int) (*MusicState, error) { + tx, err := r.pool.BeginTx(ctx, pgx.TxOptions{IsoLevel: pgx.RepeatableRead, AccessMode: pgx.ReadOnly}) + if err != nil { + return nil, err + } + defer tx.Rollback(ctx) + playlists, err := list(ctx, tx) + if err != nil { + return nil, err + } + get := func(id int) (*Playlist, error) { + for _, playlist := range playlists { + if playlist.ID == id { + return playlist, nil + } + } + return nil, ErrPlaylistNotFound + } var gamePlaylistID, scenarioPlaylistID *int - err := r.pool.QueryRow(ctx, ` - SELECT g.playlist_id, s.playlist_id + err = tx.QueryRow( + ctx, + ` + SELECT + g.playlist_id, + s.playlist_id FROM games g JOIN scenarios s ON s.id = g.scenario_id WHERE g.id = $1 @@ -265,18 +364,30 @@ func (r *Repo) GetMusic(ctx context.Context, gameID int) (*MusicState, error) { } state := &MusicState{ScenarioID: scenarioPlaylistID, GameID: gamePlaylistID, Volume: 100, Playback: 1} if playlistID != nil { - state.Playlist, err = r.Get(ctx, *playlistID) + state.Playlist, err = get(*playlistID) if err != nil { return nil, err } } var trackIndex int var statePlaylistID *int - err = r.pool.QueryRow(ctx, ` - SELECT playlist_id, track_index, position_ms, volume, loop, playback, state_version, started_at + err = tx.QueryRow( + ctx, + ` + SELECT + playlist_id, + track_index, + position_ms, + volume, + loop, + playback, + state_version, + started_at FROM game_music_states WHERE game_id = $1 - `, gameID). + `, + gameID, + ). Scan(&statePlaylistID, &trackIndex, &state.PositionMs, &state.Volume, &state.Loop, &state.Playback, &state.Version, &state.StartedAt) if errors.Is(err, pgx.ErrNoRows) { state.Version = 1 @@ -290,7 +401,7 @@ func (r *Repo) GetMusic(ctx context.Context, gameID int) (*MusicState, error) { state.PositionMs += time.Since(*state.StartedAt).Milliseconds() } if statePlaylistID != nil && (state.Playlist == nil || state.Playlist.ID != *statePlaylistID) { - state.Playlist, err = r.Get(ctx, *statePlaylistID) + state.Playlist, err = get(*statePlaylistID) if err != nil { return nil, err } @@ -300,12 +411,19 @@ func (r *Repo) GetMusic(ctx context.Context, gameID int) (*MusicState, error) { // SetMusic stores the current music state for a game. func (r *Repo) SetMusic(ctx context.Context, gameID, playlistID, trackIndex int, positionMs int64, volume int32, loop bool, playback int32) (*MusicState, error) { + tx, err := r.pool.Begin(ctx) + if err != nil { + return nil, err + } + defer tx.Rollback(ctx) if playlistID > 0 { - if _, err := r.Get(ctx, playlistID); err != nil { + if err := lockPlaylist(ctx, tx, playlistID); err != nil { return nil, err } } - _, err := r.pool.Exec(ctx, ` + _, err = tx.Exec( + ctx, + ` INSERT INTO game_music_states ( game_id, playlist_id, track_index, position_ms, volume, loop, playback, state_version, started_at @@ -336,5 +454,8 @@ func (r *Repo) SetMusic(ctx context.Context, gameID, playlistID, trackIndex int, if err != nil { return nil, err } + if err := tx.Commit(ctx); err != nil { + return nil, err + } return r.GetMusic(ctx, gameID) } diff --git a/internal/repos/screen_sessions_repo/repo.go b/internal/repos/screen_sessions_repo/repo.go index d91cdc8..a0ca0d5 100644 --- a/internal/repos/screen_sessions_repo/repo.go +++ b/internal/repos/screen_sessions_repo/repo.go @@ -198,17 +198,84 @@ func (r *ScreenSessionsRepo) SetTimerCommand(ctx context.Context, gameID int, co // Bind attaches a screen session to a game. func (r *ScreenSessionsRepo) Bind(ctx context.Context, id, gameID int, tokenHash string) error { - result, err := r.pool.Exec(ctx, ` - UPDATE screen_sessions - SET game_id = $1, updated_at = NOW() - WHERE id = $2 AND access_token_hash = $3`, gameID, id, tokenHash) + _, err := r.BindWithAudio(ctx, id, gameID, tokenHash, false) + return err +} + +// BindWithAudio initializes audio without transport commands and reports a new game binding. +func (r *ScreenSessionsRepo) BindWithAudio(ctx context.Context, id, gameID int, tokenHash string, initializeAudio bool) (bool, error) { + tx, err := r.pool.Begin(ctx) if err != nil { - return err + return false, err + } + defer tx.Rollback(ctx) + if _, err := tx.Exec( + ctx, + `SELECT id + FROM games + WHERE id = $1 + FOR UPDATE`, + gameID, + ); err != nil { + return false, err + } + var previousGameID *int + if err := tx.QueryRow( + ctx, + `SELECT game_id + FROM screen_sessions + WHERE id = $1 AND access_token_hash = $2 + FOR UPDATE`, + id, + tokenHash, + ).Scan(&previousGameID); err != nil { + if errors.Is(err, pgx.ErrNoRows) { + return false, ErrScreenNotFound + } + return false, err + } + result, err := tx.Exec( + ctx, + `UPDATE screen_sessions + SET game_id = $1, + sound_enabled = CASE WHEN $4 THEN TRUE ELSE sound_enabled END, + volume = CASE WHEN $4 THEN 100 ELSE volume END, + state_version = state_version + 1, + updated_at = NOW() + WHERE id = $2 AND access_token_hash = $3`, + gameID, + id, + tokenHash, + initializeAudio, + ) + if err != nil { + return false, err } if result.RowsAffected() == 0 { - return ErrScreenNotFound + return false, ErrScreenNotFound } - return nil + if initializeAudio { + if _, err := tx.Exec( + ctx, + `UPDATE screen_sessions + SET sound_enabled = FALSE, updated_at = NOW() + WHERE game_id = $1 AND id <> $2`, + gameID, + id, + ); err != nil { + return false, err + } + if _, err := tx.Exec( + ctx, + `UPDATE game_music_states + SET volume = 100, state_version = state_version + 1, updated_at = NOW() + WHERE game_id = $1`, + gameID, + ); err != nil { + return false, err + } + } + return previousGameID == nil || *previousGameID != gameID, tx.Commit(ctx) } // Unbind detaches a screen session from its game. @@ -239,6 +306,21 @@ func (r *ScreenSessionsRepo) Unbind(ctx context.Context, id int) error { // SetSound enables or disables sound for a screen session. func (r *ScreenSessionsRepo) SetSound(ctx context.Context, id int, enabled bool) error { + tx, err := r.pool.Begin(ctx) + if err != nil { + return err + } + defer tx.Rollback(ctx) + if _, err := tx.Exec( + ctx, + `SELECT id + FROM games + WHERE id = (SELECT game_id FROM screen_sessions WHERE id = $1) + FOR UPDATE`, + id, + ); err != nil { + return err + } query := `UPDATE screen_sessions SET sound_enabled = FALSE, updated_at = NOW() WHERE id = $1` args := []any{id} if enabled { @@ -246,12 +328,56 @@ func (r *ScreenSessionsRepo) SetSound(ctx context.Context, id int, enabled bool) SET sound_enabled = (id = $1), updated_at = NOW() WHERE game_id = (SELECT game_id FROM screen_sessions WHERE id = $1)` } - result, err := r.pool.Exec(ctx, query, args...) + result, err := tx.Exec(ctx, query, args...) if err != nil { return err } if result.RowsAffected() == 0 { return ErrScreenNotFound } - return nil + return tx.Commit(ctx) +} + +// 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 { + _, err := r.pool.Exec( + ctx, + `UPDATE screen_sessions target + SET mode = COALESCE(source.mode, $3), + text = COALESCE(source.text, $4), + command = COALESCE(source.command, 0), + position_ms = COALESCE(source.position_ms, 0), + timer_label = COALESCE(source.timer_label, $5), + timer_duration_seconds = COALESCE(source.timer_duration_seconds, $6), + timer_remaining_seconds = COALESCE(source.timer_remaining_seconds, $6), + timer_state = COALESCE(source.timer_state, 1), + timer_ends_at = source.timer_ends_at, + state_version = target.state_version + 1, + updated_at = NOW() + FROM (SELECT 1) seed + LEFT JOIN LATERAL ( + SELECT + mode, + text, + command, + position_ms, + timer_label, + timer_duration_seconds, + timer_remaining_seconds, + timer_state, + timer_ends_at + FROM screen_sessions + WHERE game_id = $2 AND id <> $1 + ORDER BY updated_at DESC, id DESC + LIMIT 1 + ) source ON TRUE + WHERE target.id = $1 AND target.game_id = $2`, + id, + gameID, + mode, + text, + label, + duration, + ) + return err } diff --git a/internal/services/playlist_service/order_test.go b/internal/services/playlist_service/order_test.go new file mode 100644 index 0000000..f2cee7a --- /dev/null +++ b/internal/services/playlist_service/order_test.go @@ -0,0 +1,35 @@ +package playlist_service + +import ( + "context" + "errors" + "testing" + + "evening_detective_server/internal/repos/playlists_repo" +) + +func TestReorderRejectsInvalidIDsBeforeRepository(t *testing.T) { + cases := []struct { + name string + playlistID int + ids []int + }{ + {"playlist", 0, []int{1}}, {"negative", 1, []int{-1}}, {"duplicate", 1, []int{1, 1}}, {"zero", 1, []int{0}}, + } + for _, tc := range cases { + t.Run(tc.name, func(t *testing.T) { + _, err := New(nil, nil).Reorder(context.Background(), tc.playlistID, tc.ids) + if !errors.Is(err, ErrInvalidTrack) { + t.Fatal(err) + } + }) + } +} + +func TestOrderConflictMapping(t *testing.T) { + for _, tc := range []struct{ input, expected error }{{playlists_repo.ErrTrackOrderChanged, ErrTrackOrderChanged}} { + if !errors.Is(mapError(tc.input), tc.expected) { + t.Fatal("lost conflict") + } + } +} diff --git a/internal/services/playlist_service/service.go b/internal/services/playlist_service/service.go index 4eaf8d3..7e6f9e6 100644 --- a/internal/services/playlist_service/service.go +++ b/internal/services/playlist_service/service.go @@ -11,13 +11,14 @@ import ( ) var ( - ErrInvalidName = errors.New("некорректное имя плейлиста") - ErrInvalidTrack = errors.New("некорректный трек") - ErrPlaylistNotFound = errors.New("плейлист не найден") - ErrPlaylistInUse = errors.New("плейлист используется") - ErrTrackNotFound = errors.New("трек не найден") - ErrGameNotFound = errors.New("игра не найдена") - ErrScenarioNotFound = errors.New("сценарий не найден") + ErrTrackOrderChanged = errors.New("состав треков изменился; обновите список") + ErrInvalidName = errors.New("некорректное имя плейлиста") + ErrInvalidTrack = errors.New("некорректный трек") + ErrPlaylistNotFound = errors.New("плейлист не найден") + ErrPlaylistInUse = errors.New("плейлист используется") + ErrTrackNotFound = errors.New("трек не найден") + ErrGameNotFound = errors.New("игра не найдена") + ErrScenarioNotFound = errors.New("сценарий не найден") ) // Service implements playlist and game music use cases. @@ -150,6 +151,8 @@ func (s *Service) GetGame(ctx context.Context, gameID int) (*MusicState, error) func mapError(err error) error { switch { + case errors.Is(err, playlists_repo.ErrTrackOrderChanged): + return ErrTrackOrderChanged case errors.Is(err, playlists_repo.ErrPlaylistNotFound): return ErrPlaylistNotFound case errors.Is(err, playlists_repo.ErrPlaylistInUse): @@ -164,3 +167,22 @@ func mapError(err error) error { return err } } + +// Reorder validates a complete track order and preserves live playback. +func (s *Service) Reorder(ctx context.Context, playlistID int, trackIDs []int) (*Playlist, error) { + if playlistID <= 0 { + return nil, ErrInvalidTrack + } + seen := make(map[int]bool, len(trackIDs)) + for _, id := range trackIDs { + if id <= 0 || seen[id] { + return nil, ErrInvalidTrack + } + seen[id] = true + } + item, err := s.repo.Reorder(ctx, playlistID, trackIDs) + if err != nil { + return nil, mapError(err) + } + return mapPlaylist(item), nil +} diff --git a/internal/services/screen_plan_service/service.go b/internal/services/screen_plan_service/service.go index 8b89db4..2281e18 100644 --- a/internal/services/screen_plan_service/service.go +++ b/internal/services/screen_plan_service/service.go @@ -100,15 +100,16 @@ func (s *ScreenPlanService) SetStep(ctx context.Context, gameID, currentStep int } // ApplyCurrent applies the current step when a screen joins a game. -func (s *ScreenPlanService) ApplyCurrent(ctx context.Context, gameID int) error { +func (s *ScreenPlanService) ApplyCurrent(ctx context.Context, gameID, screenID int) error { plan, err := s.Get(ctx, gameID) if errors.Is(err, ErrPlanNotFound) { - return nil + return s.screenService.InitializeScreen(ctx, screenID, gameID, 1, "", "Перерыв", 600) } if err != nil { return err } - return s.applyStep(ctx, gameID, plan) + step := plan.Steps[plan.CurrentStep] + return s.screenService.InitializeScreen(ctx, screenID, gameID, step.Mode, step.Text, step.TimerLabel, step.TimerDurationSeconds) } func normalizePlan(steps []Step, currentStep int) ([]Step, error) { diff --git a/internal/services/screen_service/service.go b/internal/services/screen_service/service.go index 532e429..a7ea0bf 100644 --- a/internal/services/screen_service/service.go +++ b/internal/services/screen_service/service.go @@ -73,8 +73,9 @@ func (s *ScreenService) SetCommand(ctx context.Context, gameID int, command int3 } // Bind attaches a screen session to a game. -func (s *ScreenService) Bind(ctx context.Context, id, gameID int, tokenHash string) error { - return mapError(s.repo.Bind(ctx, id, gameID, tokenHash)) +func (s *ScreenService) Bind(ctx context.Context, id, gameID int, tokenHash string, initializeAudio bool) (bool, error) { + isNewBinding, err := s.repo.BindWithAudio(ctx, id, gameID, tokenHash, initializeAudio) + return isNewBinding, mapError(err) } // Unbind detaches a screen session from its game. @@ -93,3 +94,8 @@ func mapError(err error) error { } return err } + +// 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) +} diff --git a/proto/main.pb.go b/proto/main.pb.go index a729b80..f7e7005 100644 --- a/proto/main.pb.go +++ b/proto/main.pb.go @@ -2562,6 +2562,102 @@ func (x *UploadPlaylistTrackRsp) GetPlaylist() *Playlist { return nil } +type ReorderPlaylistTracksReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + PlaylistID int32 `protobuf:"varint,1,opt,name=playlistID,proto3" json:"playlistID,omitempty"` + TrackIDs []int32 `protobuf:"varint,2,rep,packed,name=trackIDs,proto3" json:"trackIDs,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ReorderPlaylistTracksReq) Reset() { + *x = ReorderPlaylistTracksReq{} + mi := &file_main_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ReorderPlaylistTracksReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReorderPlaylistTracksReq) ProtoMessage() {} + +func (x *ReorderPlaylistTracksReq) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[50] + 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 ReorderPlaylistTracksReq.ProtoReflect.Descriptor instead. +func (*ReorderPlaylistTracksReq) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{50} +} + +func (x *ReorderPlaylistTracksReq) GetPlaylistID() int32 { + if x != nil { + return x.PlaylistID + } + return 0 +} + +func (x *ReorderPlaylistTracksReq) GetTrackIDs() []int32 { + if x != nil { + return x.TrackIDs + } + return nil +} + +type ReorderPlaylistTracksRsp struct { + state protoimpl.MessageState `protogen:"open.v1"` + Playlist *Playlist `protobuf:"bytes,1,opt,name=playlist,proto3" json:"playlist,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ReorderPlaylistTracksRsp) Reset() { + *x = ReorderPlaylistTracksRsp{} + mi := &file_main_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ReorderPlaylistTracksRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReorderPlaylistTracksRsp) ProtoMessage() {} + +func (x *ReorderPlaylistTracksRsp) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[51] + 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 ReorderPlaylistTracksRsp.ProtoReflect.Descriptor instead. +func (*ReorderPlaylistTracksRsp) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{51} +} + +func (x *ReorderPlaylistTracksRsp) GetPlaylist() *Playlist { + if x != nil { + return x.Playlist + } + return nil +} + type DeletePlaylistTrackReq struct { state protoimpl.MessageState `protogen:"open.v1"` PlaylistID int32 `protobuf:"varint,1,opt,name=playlistID,proto3" json:"playlistID,omitempty"` @@ -2572,7 +2668,7 @@ type DeletePlaylistTrackReq struct { func (x *DeletePlaylistTrackReq) Reset() { *x = DeletePlaylistTrackReq{} - mi := &file_main_proto_msgTypes[50] + mi := &file_main_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2584,7 +2680,7 @@ func (x *DeletePlaylistTrackReq) String() string { func (*DeletePlaylistTrackReq) ProtoMessage() {} func (x *DeletePlaylistTrackReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[50] + mi := &file_main_proto_msgTypes[52] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2597,7 +2693,7 @@ func (x *DeletePlaylistTrackReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeletePlaylistTrackReq.ProtoReflect.Descriptor instead. func (*DeletePlaylistTrackReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{50} + return file_main_proto_rawDescGZIP(), []int{52} } func (x *DeletePlaylistTrackReq) GetPlaylistID() int32 { @@ -2622,7 +2718,7 @@ type DeletePlaylistTrackRsp struct { func (x *DeletePlaylistTrackRsp) Reset() { *x = DeletePlaylistTrackRsp{} - mi := &file_main_proto_msgTypes[51] + mi := &file_main_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2634,7 +2730,7 @@ func (x *DeletePlaylistTrackRsp) String() string { func (*DeletePlaylistTrackRsp) ProtoMessage() {} func (x *DeletePlaylistTrackRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[51] + mi := &file_main_proto_msgTypes[53] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2647,7 +2743,7 @@ func (x *DeletePlaylistTrackRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeletePlaylistTrackRsp.ProtoReflect.Descriptor instead. func (*DeletePlaylistTrackRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{51} + return file_main_proto_rawDescGZIP(), []int{53} } type SetScenarioPlaylistReq struct { @@ -2660,7 +2756,7 @@ type SetScenarioPlaylistReq struct { func (x *SetScenarioPlaylistReq) Reset() { *x = SetScenarioPlaylistReq{} - mi := &file_main_proto_msgTypes[52] + mi := &file_main_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2672,7 +2768,7 @@ func (x *SetScenarioPlaylistReq) String() string { func (*SetScenarioPlaylistReq) ProtoMessage() {} func (x *SetScenarioPlaylistReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[52] + mi := &file_main_proto_msgTypes[54] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2685,7 +2781,7 @@ func (x *SetScenarioPlaylistReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SetScenarioPlaylistReq.ProtoReflect.Descriptor instead. func (*SetScenarioPlaylistReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{52} + return file_main_proto_rawDescGZIP(), []int{54} } func (x *SetScenarioPlaylistReq) GetID() int32 { @@ -2710,7 +2806,7 @@ type SetScenarioPlaylistRsp struct { func (x *SetScenarioPlaylistRsp) Reset() { *x = SetScenarioPlaylistRsp{} - mi := &file_main_proto_msgTypes[53] + mi := &file_main_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2722,7 +2818,7 @@ func (x *SetScenarioPlaylistRsp) String() string { func (*SetScenarioPlaylistRsp) ProtoMessage() {} func (x *SetScenarioPlaylistRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[53] + mi := &file_main_proto_msgTypes[55] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2735,7 +2831,7 @@ func (x *SetScenarioPlaylistRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use SetScenarioPlaylistRsp.ProtoReflect.Descriptor instead. func (*SetScenarioPlaylistRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{53} + return file_main_proto_rawDescGZIP(), []int{55} } type AddScenarioReq struct { @@ -2747,7 +2843,7 @@ type AddScenarioReq struct { func (x *AddScenarioReq) Reset() { *x = AddScenarioReq{} - mi := &file_main_proto_msgTypes[54] + mi := &file_main_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2759,7 +2855,7 @@ func (x *AddScenarioReq) String() string { func (*AddScenarioReq) ProtoMessage() {} func (x *AddScenarioReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[54] + mi := &file_main_proto_msgTypes[56] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2772,7 +2868,7 @@ func (x *AddScenarioReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AddScenarioReq.ProtoReflect.Descriptor instead. func (*AddScenarioReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{54} + return file_main_proto_rawDescGZIP(), []int{56} } func (x *AddScenarioReq) GetName() string { @@ -2791,7 +2887,7 @@ type AddScenarioRsp struct { func (x *AddScenarioRsp) Reset() { *x = AddScenarioRsp{} - mi := &file_main_proto_msgTypes[55] + mi := &file_main_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2803,7 +2899,7 @@ func (x *AddScenarioRsp) String() string { func (*AddScenarioRsp) ProtoMessage() {} func (x *AddScenarioRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[55] + mi := &file_main_proto_msgTypes[57] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2816,7 +2912,7 @@ func (x *AddScenarioRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use AddScenarioRsp.ProtoReflect.Descriptor instead. func (*AddScenarioRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{55} + return file_main_proto_rawDescGZIP(), []int{57} } func (x *AddScenarioRsp) GetID() int32 { @@ -2834,7 +2930,7 @@ type GetMyScenariosReq struct { func (x *GetMyScenariosReq) Reset() { *x = GetMyScenariosReq{} - mi := &file_main_proto_msgTypes[56] + mi := &file_main_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2846,7 +2942,7 @@ func (x *GetMyScenariosReq) String() string { func (*GetMyScenariosReq) ProtoMessage() {} func (x *GetMyScenariosReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[56] + mi := &file_main_proto_msgTypes[58] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2859,7 +2955,7 @@ func (x *GetMyScenariosReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMyScenariosReq.ProtoReflect.Descriptor instead. func (*GetMyScenariosReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{56} + return file_main_proto_rawDescGZIP(), []int{58} } type GetMyScenariosRsp struct { @@ -2871,7 +2967,7 @@ type GetMyScenariosRsp struct { func (x *GetMyScenariosRsp) Reset() { *x = GetMyScenariosRsp{} - mi := &file_main_proto_msgTypes[57] + mi := &file_main_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2883,7 +2979,7 @@ func (x *GetMyScenariosRsp) String() string { func (*GetMyScenariosRsp) ProtoMessage() {} func (x *GetMyScenariosRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[57] + mi := &file_main_proto_msgTypes[59] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2896,7 +2992,7 @@ func (x *GetMyScenariosRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMyScenariosRsp.ProtoReflect.Descriptor instead. func (*GetMyScenariosRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{57} + return file_main_proto_rawDescGZIP(), []int{59} } func (x *GetMyScenariosRsp) GetScenarios() []*Scenario { @@ -2914,7 +3010,7 @@ type GetScenariosCatalogReq struct { func (x *GetScenariosCatalogReq) Reset() { *x = GetScenariosCatalogReq{} - mi := &file_main_proto_msgTypes[58] + mi := &file_main_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2926,7 +3022,7 @@ func (x *GetScenariosCatalogReq) String() string { func (*GetScenariosCatalogReq) ProtoMessage() {} func (x *GetScenariosCatalogReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[58] + mi := &file_main_proto_msgTypes[60] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2939,7 +3035,7 @@ func (x *GetScenariosCatalogReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetScenariosCatalogReq.ProtoReflect.Descriptor instead. func (*GetScenariosCatalogReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{58} + return file_main_proto_rawDescGZIP(), []int{60} } type GetScenariosCatalogRsp struct { @@ -2951,7 +3047,7 @@ type GetScenariosCatalogRsp struct { func (x *GetScenariosCatalogRsp) Reset() { *x = GetScenariosCatalogRsp{} - mi := &file_main_proto_msgTypes[59] + mi := &file_main_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2963,7 +3059,7 @@ func (x *GetScenariosCatalogRsp) String() string { func (*GetScenariosCatalogRsp) ProtoMessage() {} func (x *GetScenariosCatalogRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[59] + mi := &file_main_proto_msgTypes[61] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2976,7 +3072,7 @@ func (x *GetScenariosCatalogRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetScenariosCatalogRsp.ProtoReflect.Descriptor instead. func (*GetScenariosCatalogRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{59} + return file_main_proto_rawDescGZIP(), []int{61} } func (x *GetScenariosCatalogRsp) GetScenarios() []*Scenario { @@ -2995,7 +3091,7 @@ type GetScenarioReq struct { func (x *GetScenarioReq) Reset() { *x = GetScenarioReq{} - mi := &file_main_proto_msgTypes[60] + mi := &file_main_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3007,7 +3103,7 @@ func (x *GetScenarioReq) String() string { func (*GetScenarioReq) ProtoMessage() {} func (x *GetScenarioReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[60] + mi := &file_main_proto_msgTypes[62] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3020,7 +3116,7 @@ func (x *GetScenarioReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetScenarioReq.ProtoReflect.Descriptor instead. func (*GetScenarioReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{60} + return file_main_proto_rawDescGZIP(), []int{62} } func (x *GetScenarioReq) GetID() int32 { @@ -3039,7 +3135,7 @@ type GetScenarioRsp struct { func (x *GetScenarioRsp) Reset() { *x = GetScenarioRsp{} - mi := &file_main_proto_msgTypes[61] + mi := &file_main_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3051,7 +3147,7 @@ func (x *GetScenarioRsp) String() string { func (*GetScenarioRsp) ProtoMessage() {} func (x *GetScenarioRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[61] + mi := &file_main_proto_msgTypes[63] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3064,7 +3160,7 @@ func (x *GetScenarioRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetScenarioRsp.ProtoReflect.Descriptor instead. func (*GetScenarioRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{61} + return file_main_proto_rawDescGZIP(), []int{63} } func (x *GetScenarioRsp) GetScenario() *Scenario { @@ -3096,7 +3192,7 @@ type Scenario struct { func (x *Scenario) Reset() { *x = Scenario{} - mi := &file_main_proto_msgTypes[62] + mi := &file_main_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3108,7 +3204,7 @@ func (x *Scenario) String() string { func (*Scenario) ProtoMessage() {} func (x *Scenario) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[62] + mi := &file_main_proto_msgTypes[64] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3121,7 +3217,7 @@ func (x *Scenario) ProtoReflect() protoreflect.Message { // Deprecated: Use Scenario.ProtoReflect.Descriptor instead. func (*Scenario) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{62} + return file_main_proto_rawDescGZIP(), []int{64} } func (x *Scenario) GetID() int32 { @@ -3235,7 +3331,7 @@ type Story struct { func (x *Story) Reset() { *x = Story{} - mi := &file_main_proto_msgTypes[63] + mi := &file_main_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3247,7 +3343,7 @@ func (x *Story) String() string { func (*Story) ProtoMessage() {} func (x *Story) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[63] + mi := &file_main_proto_msgTypes[65] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3260,7 +3356,7 @@ func (x *Story) ProtoReflect() protoreflect.Message { // Deprecated: Use Story.ProtoReflect.Descriptor instead. func (*Story) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{63} + return file_main_proto_rawDescGZIP(), []int{65} } func (x *Story) GetPlaces() []*Place { @@ -3308,7 +3404,7 @@ type Conclusion struct { func (x *Conclusion) Reset() { *x = Conclusion{} - mi := &file_main_proto_msgTypes[64] + mi := &file_main_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3320,7 +3416,7 @@ func (x *Conclusion) String() string { func (*Conclusion) ProtoMessage() {} func (x *Conclusion) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[64] + mi := &file_main_proto_msgTypes[66] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3333,7 +3429,7 @@ func (x *Conclusion) ProtoReflect() protoreflect.Message { // Deprecated: Use Conclusion.ProtoReflect.Descriptor instead. func (*Conclusion) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{64} + return file_main_proto_rawDescGZIP(), []int{66} } func (x *Conclusion) GetText() string { @@ -3360,7 +3456,7 @@ type Introduction struct { func (x *Introduction) Reset() { *x = Introduction{} - mi := &file_main_proto_msgTypes[65] + mi := &file_main_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3372,7 +3468,7 @@ func (x *Introduction) String() string { func (*Introduction) ProtoMessage() {} func (x *Introduction) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[65] + mi := &file_main_proto_msgTypes[67] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3385,7 +3481,7 @@ func (x *Introduction) ProtoReflect() protoreflect.Message { // Deprecated: Use Introduction.ProtoReflect.Descriptor instead. func (*Introduction) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{65} + return file_main_proto_rawDescGZIP(), []int{67} } func (x *Introduction) GetText() string { @@ -3418,7 +3514,7 @@ type Place struct { func (x *Place) Reset() { *x = Place{} - mi := &file_main_proto_msgTypes[66] + mi := &file_main_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3430,7 +3526,7 @@ func (x *Place) String() string { func (*Place) ProtoMessage() {} func (x *Place) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[66] + mi := &file_main_proto_msgTypes[68] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3443,7 +3539,7 @@ func (x *Place) ProtoReflect() protoreflect.Message { // Deprecated: Use Place.ProtoReflect.Descriptor instead. func (*Place) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{66} + return file_main_proto_rawDescGZIP(), []int{68} } func (x *Place) GetCode() string { @@ -3516,7 +3612,7 @@ type Application struct { func (x *Application) Reset() { *x = Application{} - mi := &file_main_proto_msgTypes[67] + mi := &file_main_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3528,7 +3624,7 @@ func (x *Application) String() string { func (*Application) ProtoMessage() {} func (x *Application) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[67] + mi := &file_main_proto_msgTypes[69] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3541,7 +3637,7 @@ func (x *Application) ProtoReflect() protoreflect.Message { // Deprecated: Use Application.ProtoReflect.Descriptor instead. func (*Application) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{67} + return file_main_proto_rawDescGZIP(), []int{69} } func (x *Application) GetName() string { @@ -3576,7 +3672,7 @@ type Door struct { func (x *Door) Reset() { *x = Door{} - mi := &file_main_proto_msgTypes[68] + mi := &file_main_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3588,7 +3684,7 @@ func (x *Door) String() string { func (*Door) ProtoMessage() {} func (x *Door) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[68] + mi := &file_main_proto_msgTypes[70] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3601,7 +3697,7 @@ func (x *Door) ProtoReflect() protoreflect.Message { // Deprecated: Use Door.ProtoReflect.Descriptor instead. func (*Door) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{68} + return file_main_proto_rawDescGZIP(), []int{70} } func (x *Door) GetCode() string { @@ -3634,7 +3730,7 @@ type Key struct { func (x *Key) Reset() { *x = Key{} - mi := &file_main_proto_msgTypes[69] + mi := &file_main_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3646,7 +3742,7 @@ func (x *Key) String() string { func (*Key) ProtoMessage() {} func (x *Key) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[69] + mi := &file_main_proto_msgTypes[71] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3659,7 +3755,7 @@ func (x *Key) ProtoReflect() protoreflect.Message { // Deprecated: Use Key.ProtoReflect.Descriptor instead. func (*Key) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{69} + return file_main_proto_rawDescGZIP(), []int{71} } func (x *Key) GetName() string { @@ -3686,7 +3782,7 @@ type Question struct { func (x *Question) Reset() { *x = Question{} - mi := &file_main_proto_msgTypes[70] + mi := &file_main_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3698,7 +3794,7 @@ func (x *Question) String() string { func (*Question) ProtoMessage() {} func (x *Question) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[70] + mi := &file_main_proto_msgTypes[72] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3711,7 +3807,7 @@ func (x *Question) ProtoReflect() protoreflect.Message { // Deprecated: Use Question.ProtoReflect.Descriptor instead. func (*Question) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{70} + return file_main_proto_rawDescGZIP(), []int{72} } func (x *Question) GetCode() string { @@ -3748,7 +3844,7 @@ type Answer struct { func (x *Answer) Reset() { *x = Answer{} - mi := &file_main_proto_msgTypes[71] + mi := &file_main_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3760,7 +3856,7 @@ func (x *Answer) String() string { func (*Answer) ProtoMessage() {} func (x *Answer) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[71] + mi := &file_main_proto_msgTypes[73] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3773,7 +3869,7 @@ func (x *Answer) ProtoReflect() protoreflect.Message { // Deprecated: Use Answer.ProtoReflect.Descriptor instead. func (*Answer) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{71} + return file_main_proto_rawDescGZIP(), []int{73} } func (x *Answer) GetQuestionCode() string { @@ -3803,7 +3899,7 @@ type AnswerScore struct { func (x *AnswerScore) Reset() { *x = AnswerScore{} - mi := &file_main_proto_msgTypes[72] + mi := &file_main_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3815,7 +3911,7 @@ func (x *AnswerScore) String() string { func (*AnswerScore) ProtoMessage() {} func (x *AnswerScore) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[72] + mi := &file_main_proto_msgTypes[74] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3828,7 +3924,7 @@ func (x *AnswerScore) ProtoReflect() protoreflect.Message { // Deprecated: Use AnswerScore.ProtoReflect.Descriptor instead. func (*AnswerScore) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{72} + return file_main_proto_rawDescGZIP(), []int{74} } func (x *AnswerScore) GetQuestionCode() string { @@ -3863,7 +3959,7 @@ type TeamAnswers struct { func (x *TeamAnswers) Reset() { *x = TeamAnswers{} - mi := &file_main_proto_msgTypes[73] + mi := &file_main_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3875,7 +3971,7 @@ func (x *TeamAnswers) String() string { func (*TeamAnswers) ProtoMessage() {} func (x *TeamAnswers) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[73] + mi := &file_main_proto_msgTypes[75] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3888,7 +3984,7 @@ func (x *TeamAnswers) ProtoReflect() protoreflect.Message { // Deprecated: Use TeamAnswers.ProtoReflect.Descriptor instead. func (*TeamAnswers) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{73} + return file_main_proto_rawDescGZIP(), []int{75} } func (x *TeamAnswers) GetTeam() *Team { @@ -3917,7 +4013,7 @@ type UpdateScenarioReq struct { func (x *UpdateScenarioReq) Reset() { *x = UpdateScenarioReq{} - mi := &file_main_proto_msgTypes[74] + mi := &file_main_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3929,7 +4025,7 @@ func (x *UpdateScenarioReq) String() string { func (*UpdateScenarioReq) ProtoMessage() {} func (x *UpdateScenarioReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[74] + mi := &file_main_proto_msgTypes[76] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3942,7 +4038,7 @@ func (x *UpdateScenarioReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScenarioReq.ProtoReflect.Descriptor instead. func (*UpdateScenarioReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{74} + return file_main_proto_rawDescGZIP(), []int{76} } func (x *UpdateScenarioReq) GetID() int32 { @@ -3981,7 +4077,7 @@ type UpdateScenarioRsp struct { func (x *UpdateScenarioRsp) Reset() { *x = UpdateScenarioRsp{} - mi := &file_main_proto_msgTypes[75] + mi := &file_main_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3993,7 +4089,7 @@ func (x *UpdateScenarioRsp) String() string { func (*UpdateScenarioRsp) ProtoMessage() {} func (x *UpdateScenarioRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[75] + mi := &file_main_proto_msgTypes[77] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4006,7 +4102,7 @@ func (x *UpdateScenarioRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScenarioRsp.ProtoReflect.Descriptor instead. func (*UpdateScenarioRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{75} + return file_main_proto_rawDescGZIP(), []int{77} } type PublicScenarioReq struct { @@ -4018,7 +4114,7 @@ type PublicScenarioReq struct { func (x *PublicScenarioReq) Reset() { *x = PublicScenarioReq{} - mi := &file_main_proto_msgTypes[76] + mi := &file_main_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4030,7 +4126,7 @@ func (x *PublicScenarioReq) String() string { func (*PublicScenarioReq) ProtoMessage() {} func (x *PublicScenarioReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[76] + mi := &file_main_proto_msgTypes[78] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4043,7 +4139,7 @@ func (x *PublicScenarioReq) ProtoReflect() protoreflect.Message { // Deprecated: Use PublicScenarioReq.ProtoReflect.Descriptor instead. func (*PublicScenarioReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{76} + return file_main_proto_rawDescGZIP(), []int{78} } func (x *PublicScenarioReq) GetID() int32 { @@ -4061,7 +4157,7 @@ type PublicScenarioRsp struct { func (x *PublicScenarioRsp) Reset() { *x = PublicScenarioRsp{} - mi := &file_main_proto_msgTypes[77] + mi := &file_main_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4073,7 +4169,7 @@ func (x *PublicScenarioRsp) String() string { func (*PublicScenarioRsp) ProtoMessage() {} func (x *PublicScenarioRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[77] + mi := &file_main_proto_msgTypes[79] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4086,7 +4182,7 @@ func (x *PublicScenarioRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use PublicScenarioRsp.ProtoReflect.Descriptor instead. func (*PublicScenarioRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{77} + return file_main_proto_rawDescGZIP(), []int{79} } type DraftScenarioReq struct { @@ -4098,7 +4194,7 @@ type DraftScenarioReq struct { func (x *DraftScenarioReq) Reset() { *x = DraftScenarioReq{} - mi := &file_main_proto_msgTypes[78] + mi := &file_main_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4110,7 +4206,7 @@ func (x *DraftScenarioReq) String() string { func (*DraftScenarioReq) ProtoMessage() {} func (x *DraftScenarioReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[78] + mi := &file_main_proto_msgTypes[80] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4123,7 +4219,7 @@ func (x *DraftScenarioReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DraftScenarioReq.ProtoReflect.Descriptor instead. func (*DraftScenarioReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{78} + return file_main_proto_rawDescGZIP(), []int{80} } func (x *DraftScenarioReq) GetID() int32 { @@ -4141,7 +4237,7 @@ type DraftScenarioRsp struct { func (x *DraftScenarioRsp) Reset() { *x = DraftScenarioRsp{} - mi := &file_main_proto_msgTypes[79] + mi := &file_main_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4153,7 +4249,7 @@ func (x *DraftScenarioRsp) String() string { func (*DraftScenarioRsp) ProtoMessage() {} func (x *DraftScenarioRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[79] + mi := &file_main_proto_msgTypes[81] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4166,7 +4262,7 @@ func (x *DraftScenarioRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use DraftScenarioRsp.ProtoReflect.Descriptor instead. func (*DraftScenarioRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{79} + return file_main_proto_rawDescGZIP(), []int{81} } type DeleteScenarioReq struct { @@ -4178,7 +4274,7 @@ type DeleteScenarioReq struct { func (x *DeleteScenarioReq) Reset() { *x = DeleteScenarioReq{} - mi := &file_main_proto_msgTypes[80] + mi := &file_main_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4190,7 +4286,7 @@ func (x *DeleteScenarioReq) String() string { func (*DeleteScenarioReq) ProtoMessage() {} func (x *DeleteScenarioReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[80] + mi := &file_main_proto_msgTypes[82] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4203,7 +4299,7 @@ func (x *DeleteScenarioReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteScenarioReq.ProtoReflect.Descriptor instead. func (*DeleteScenarioReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{80} + return file_main_proto_rawDescGZIP(), []int{82} } func (x *DeleteScenarioReq) GetID() int32 { @@ -4221,7 +4317,7 @@ type DeleteScenarioRsp struct { func (x *DeleteScenarioRsp) Reset() { *x = DeleteScenarioRsp{} - mi := &file_main_proto_msgTypes[81] + mi := &file_main_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4233,7 +4329,7 @@ func (x *DeleteScenarioRsp) String() string { func (*DeleteScenarioRsp) ProtoMessage() {} func (x *DeleteScenarioRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[81] + mi := &file_main_proto_msgTypes[83] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4246,7 +4342,7 @@ func (x *DeleteScenarioRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteScenarioRsp.ProtoReflect.Descriptor instead. func (*DeleteScenarioRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{81} + return file_main_proto_rawDescGZIP(), []int{83} } type AddScenarioPlaceReq struct { @@ -4259,7 +4355,7 @@ type AddScenarioPlaceReq struct { func (x *AddScenarioPlaceReq) Reset() { *x = AddScenarioPlaceReq{} - mi := &file_main_proto_msgTypes[82] + mi := &file_main_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4271,7 +4367,7 @@ func (x *AddScenarioPlaceReq) String() string { func (*AddScenarioPlaceReq) ProtoMessage() {} func (x *AddScenarioPlaceReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[82] + mi := &file_main_proto_msgTypes[84] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4284,7 +4380,7 @@ func (x *AddScenarioPlaceReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AddScenarioPlaceReq.ProtoReflect.Descriptor instead. func (*AddScenarioPlaceReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{82} + return file_main_proto_rawDescGZIP(), []int{84} } func (x *AddScenarioPlaceReq) GetID() int32 { @@ -4309,7 +4405,7 @@ type AddScenarioPlaceRsp struct { func (x *AddScenarioPlaceRsp) Reset() { *x = AddScenarioPlaceRsp{} - mi := &file_main_proto_msgTypes[83] + mi := &file_main_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4321,7 +4417,7 @@ func (x *AddScenarioPlaceRsp) String() string { func (*AddScenarioPlaceRsp) ProtoMessage() {} func (x *AddScenarioPlaceRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[83] + mi := &file_main_proto_msgTypes[85] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4334,7 +4430,7 @@ func (x *AddScenarioPlaceRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use AddScenarioPlaceRsp.ProtoReflect.Descriptor instead. func (*AddScenarioPlaceRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{83} + return file_main_proto_rawDescGZIP(), []int{85} } type UpdateScenarioPlaceReq struct { @@ -4348,7 +4444,7 @@ type UpdateScenarioPlaceReq struct { func (x *UpdateScenarioPlaceReq) Reset() { *x = UpdateScenarioPlaceReq{} - mi := &file_main_proto_msgTypes[84] + mi := &file_main_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4360,7 +4456,7 @@ func (x *UpdateScenarioPlaceReq) String() string { func (*UpdateScenarioPlaceReq) ProtoMessage() {} func (x *UpdateScenarioPlaceReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[84] + mi := &file_main_proto_msgTypes[86] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4373,7 +4469,7 @@ func (x *UpdateScenarioPlaceReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScenarioPlaceReq.ProtoReflect.Descriptor instead. func (*UpdateScenarioPlaceReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{84} + return file_main_proto_rawDescGZIP(), []int{86} } func (x *UpdateScenarioPlaceReq) GetID() int32 { @@ -4405,7 +4501,7 @@ type UpdateScenarioPlaceRsp struct { func (x *UpdateScenarioPlaceRsp) Reset() { *x = UpdateScenarioPlaceRsp{} - mi := &file_main_proto_msgTypes[85] + mi := &file_main_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4417,7 +4513,7 @@ func (x *UpdateScenarioPlaceRsp) String() string { func (*UpdateScenarioPlaceRsp) ProtoMessage() {} func (x *UpdateScenarioPlaceRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[85] + mi := &file_main_proto_msgTypes[87] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4430,7 +4526,7 @@ func (x *UpdateScenarioPlaceRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScenarioPlaceRsp.ProtoReflect.Descriptor instead. func (*UpdateScenarioPlaceRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{85} + return file_main_proto_rawDescGZIP(), []int{87} } type DeleteScenarioPlaceReq struct { @@ -4443,7 +4539,7 @@ type DeleteScenarioPlaceReq struct { func (x *DeleteScenarioPlaceReq) Reset() { *x = DeleteScenarioPlaceReq{} - mi := &file_main_proto_msgTypes[86] + mi := &file_main_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4455,7 +4551,7 @@ func (x *DeleteScenarioPlaceReq) String() string { func (*DeleteScenarioPlaceReq) ProtoMessage() {} func (x *DeleteScenarioPlaceReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[86] + mi := &file_main_proto_msgTypes[88] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4468,7 +4564,7 @@ func (x *DeleteScenarioPlaceReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteScenarioPlaceReq.ProtoReflect.Descriptor instead. func (*DeleteScenarioPlaceReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{86} + return file_main_proto_rawDescGZIP(), []int{88} } func (x *DeleteScenarioPlaceReq) GetID() int32 { @@ -4493,7 +4589,7 @@ type DeleteScenarioPlaceRsp struct { func (x *DeleteScenarioPlaceRsp) Reset() { *x = DeleteScenarioPlaceRsp{} - mi := &file_main_proto_msgTypes[87] + mi := &file_main_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4505,7 +4601,7 @@ func (x *DeleteScenarioPlaceRsp) String() string { func (*DeleteScenarioPlaceRsp) ProtoMessage() {} func (x *DeleteScenarioPlaceRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[87] + mi := &file_main_proto_msgTypes[89] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4518,7 +4614,7 @@ func (x *DeleteScenarioPlaceRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteScenarioPlaceRsp.ProtoReflect.Descriptor instead. func (*DeleteScenarioPlaceRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{87} + return file_main_proto_rawDescGZIP(), []int{89} } type UpdateScenarioConclusionReq struct { @@ -4531,7 +4627,7 @@ type UpdateScenarioConclusionReq struct { func (x *UpdateScenarioConclusionReq) Reset() { *x = UpdateScenarioConclusionReq{} - mi := &file_main_proto_msgTypes[88] + mi := &file_main_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4543,7 +4639,7 @@ func (x *UpdateScenarioConclusionReq) String() string { func (*UpdateScenarioConclusionReq) ProtoMessage() {} func (x *UpdateScenarioConclusionReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[88] + mi := &file_main_proto_msgTypes[90] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4556,7 +4652,7 @@ func (x *UpdateScenarioConclusionReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScenarioConclusionReq.ProtoReflect.Descriptor instead. func (*UpdateScenarioConclusionReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{88} + return file_main_proto_rawDescGZIP(), []int{90} } func (x *UpdateScenarioConclusionReq) GetID() int32 { @@ -4581,7 +4677,7 @@ type UpdateScenarioConclusionRsp struct { func (x *UpdateScenarioConclusionRsp) Reset() { *x = UpdateScenarioConclusionRsp{} - mi := &file_main_proto_msgTypes[89] + mi := &file_main_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4593,7 +4689,7 @@ func (x *UpdateScenarioConclusionRsp) String() string { func (*UpdateScenarioConclusionRsp) ProtoMessage() {} func (x *UpdateScenarioConclusionRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[89] + mi := &file_main_proto_msgTypes[91] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4606,7 +4702,7 @@ func (x *UpdateScenarioConclusionRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScenarioConclusionRsp.ProtoReflect.Descriptor instead. func (*UpdateScenarioConclusionRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{89} + return file_main_proto_rawDescGZIP(), []int{91} } type UpdateScenarioIntroReq struct { @@ -4619,7 +4715,7 @@ type UpdateScenarioIntroReq struct { func (x *UpdateScenarioIntroReq) Reset() { *x = UpdateScenarioIntroReq{} - mi := &file_main_proto_msgTypes[90] + mi := &file_main_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4631,7 +4727,7 @@ func (x *UpdateScenarioIntroReq) String() string { func (*UpdateScenarioIntroReq) ProtoMessage() {} func (x *UpdateScenarioIntroReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[90] + mi := &file_main_proto_msgTypes[92] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4644,7 +4740,7 @@ func (x *UpdateScenarioIntroReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScenarioIntroReq.ProtoReflect.Descriptor instead. func (*UpdateScenarioIntroReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{90} + return file_main_proto_rawDescGZIP(), []int{92} } func (x *UpdateScenarioIntroReq) GetID() int32 { @@ -4669,7 +4765,7 @@ type UpdateScenarioIntroRsp struct { func (x *UpdateScenarioIntroRsp) Reset() { *x = UpdateScenarioIntroRsp{} - mi := &file_main_proto_msgTypes[91] + mi := &file_main_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4681,7 +4777,7 @@ func (x *UpdateScenarioIntroRsp) String() string { func (*UpdateScenarioIntroRsp) ProtoMessage() {} func (x *UpdateScenarioIntroRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[91] + mi := &file_main_proto_msgTypes[93] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4694,7 +4790,7 @@ func (x *UpdateScenarioIntroRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScenarioIntroRsp.ProtoReflect.Descriptor instead. func (*UpdateScenarioIntroRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{91} + return file_main_proto_rawDescGZIP(), []int{93} } type AddScenarioQuestionReq struct { @@ -4707,7 +4803,7 @@ type AddScenarioQuestionReq struct { func (x *AddScenarioQuestionReq) Reset() { *x = AddScenarioQuestionReq{} - mi := &file_main_proto_msgTypes[92] + mi := &file_main_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4719,7 +4815,7 @@ func (x *AddScenarioQuestionReq) String() string { func (*AddScenarioQuestionReq) ProtoMessage() {} func (x *AddScenarioQuestionReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[92] + mi := &file_main_proto_msgTypes[94] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4732,7 +4828,7 @@ func (x *AddScenarioQuestionReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AddScenarioQuestionReq.ProtoReflect.Descriptor instead. func (*AddScenarioQuestionReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{92} + return file_main_proto_rawDescGZIP(), []int{94} } func (x *AddScenarioQuestionReq) GetID() int32 { @@ -4757,7 +4853,7 @@ type AddScenarioQuestionRsp struct { func (x *AddScenarioQuestionRsp) Reset() { *x = AddScenarioQuestionRsp{} - mi := &file_main_proto_msgTypes[93] + mi := &file_main_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4769,7 +4865,7 @@ func (x *AddScenarioQuestionRsp) String() string { func (*AddScenarioQuestionRsp) ProtoMessage() {} func (x *AddScenarioQuestionRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[93] + mi := &file_main_proto_msgTypes[95] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4782,7 +4878,7 @@ func (x *AddScenarioQuestionRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use AddScenarioQuestionRsp.ProtoReflect.Descriptor instead. func (*AddScenarioQuestionRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{93} + return file_main_proto_rawDescGZIP(), []int{95} } type UpdateScenarioQuestionReq struct { @@ -4796,7 +4892,7 @@ type UpdateScenarioQuestionReq struct { func (x *UpdateScenarioQuestionReq) Reset() { *x = UpdateScenarioQuestionReq{} - mi := &file_main_proto_msgTypes[94] + mi := &file_main_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4808,7 +4904,7 @@ func (x *UpdateScenarioQuestionReq) String() string { func (*UpdateScenarioQuestionReq) ProtoMessage() {} func (x *UpdateScenarioQuestionReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[94] + mi := &file_main_proto_msgTypes[96] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4821,7 +4917,7 @@ func (x *UpdateScenarioQuestionReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScenarioQuestionReq.ProtoReflect.Descriptor instead. func (*UpdateScenarioQuestionReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{94} + return file_main_proto_rawDescGZIP(), []int{96} } func (x *UpdateScenarioQuestionReq) GetID() int32 { @@ -4853,7 +4949,7 @@ type UpdateScenarioQuestionRsp struct { func (x *UpdateScenarioQuestionRsp) Reset() { *x = UpdateScenarioQuestionRsp{} - mi := &file_main_proto_msgTypes[95] + mi := &file_main_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4865,7 +4961,7 @@ func (x *UpdateScenarioQuestionRsp) String() string { func (*UpdateScenarioQuestionRsp) ProtoMessage() {} func (x *UpdateScenarioQuestionRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[95] + mi := &file_main_proto_msgTypes[97] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4878,7 +4974,7 @@ func (x *UpdateScenarioQuestionRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScenarioQuestionRsp.ProtoReflect.Descriptor instead. func (*UpdateScenarioQuestionRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{95} + return file_main_proto_rawDescGZIP(), []int{97} } type DeleteScenarioQuestionReq struct { @@ -4891,7 +4987,7 @@ type DeleteScenarioQuestionReq struct { func (x *DeleteScenarioQuestionReq) Reset() { *x = DeleteScenarioQuestionReq{} - mi := &file_main_proto_msgTypes[96] + mi := &file_main_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4903,7 +4999,7 @@ func (x *DeleteScenarioQuestionReq) String() string { func (*DeleteScenarioQuestionReq) ProtoMessage() {} func (x *DeleteScenarioQuestionReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[96] + mi := &file_main_proto_msgTypes[98] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4916,7 +5012,7 @@ func (x *DeleteScenarioQuestionReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteScenarioQuestionReq.ProtoReflect.Descriptor instead. func (*DeleteScenarioQuestionReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{96} + return file_main_proto_rawDescGZIP(), []int{98} } func (x *DeleteScenarioQuestionReq) GetID() int32 { @@ -4941,7 +5037,7 @@ type DeleteScenarioQuestionRsp struct { func (x *DeleteScenarioQuestionRsp) Reset() { *x = DeleteScenarioQuestionRsp{} - mi := &file_main_proto_msgTypes[97] + mi := &file_main_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4953,7 +5049,7 @@ func (x *DeleteScenarioQuestionRsp) String() string { func (*DeleteScenarioQuestionRsp) ProtoMessage() {} func (x *DeleteScenarioQuestionRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[97] + mi := &file_main_proto_msgTypes[99] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4966,7 +5062,7 @@ func (x *DeleteScenarioQuestionRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteScenarioQuestionRsp.ProtoReflect.Descriptor instead. func (*DeleteScenarioQuestionRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{97} + return file_main_proto_rawDescGZIP(), []int{99} } type DownloadScenarioArchiveReq struct { @@ -4978,7 +5074,7 @@ type DownloadScenarioArchiveReq struct { func (x *DownloadScenarioArchiveReq) Reset() { *x = DownloadScenarioArchiveReq{} - mi := &file_main_proto_msgTypes[98] + mi := &file_main_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4990,7 +5086,7 @@ func (x *DownloadScenarioArchiveReq) String() string { func (*DownloadScenarioArchiveReq) ProtoMessage() {} func (x *DownloadScenarioArchiveReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[98] + mi := &file_main_proto_msgTypes[100] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5003,7 +5099,7 @@ func (x *DownloadScenarioArchiveReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DownloadScenarioArchiveReq.ProtoReflect.Descriptor instead. func (*DownloadScenarioArchiveReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{98} + return file_main_proto_rawDescGZIP(), []int{100} } func (x *DownloadScenarioArchiveReq) GetID() int32 { @@ -5022,7 +5118,7 @@ type UploadScenarioArchiveRsp struct { func (x *UploadScenarioArchiveRsp) Reset() { *x = UploadScenarioArchiveRsp{} - mi := &file_main_proto_msgTypes[99] + mi := &file_main_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5034,7 +5130,7 @@ func (x *UploadScenarioArchiveRsp) String() string { func (*UploadScenarioArchiveRsp) ProtoMessage() {} func (x *UploadScenarioArchiveRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[99] + mi := &file_main_proto_msgTypes[101] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5047,7 +5143,7 @@ func (x *UploadScenarioArchiveRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use UploadScenarioArchiveRsp.ProtoReflect.Descriptor instead. func (*UploadScenarioArchiveRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{99} + return file_main_proto_rawDescGZIP(), []int{101} } func (x *UploadScenarioArchiveRsp) GetID() int32 { @@ -5071,7 +5167,7 @@ type AddGameReq struct { func (x *AddGameReq) Reset() { *x = AddGameReq{} - mi := &file_main_proto_msgTypes[100] + mi := &file_main_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5083,7 +5179,7 @@ func (x *AddGameReq) String() string { func (*AddGameReq) ProtoMessage() {} func (x *AddGameReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[100] + mi := &file_main_proto_msgTypes[102] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5096,7 +5192,7 @@ func (x *AddGameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AddGameReq.ProtoReflect.Descriptor instead. func (*AddGameReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{100} + return file_main_proto_rawDescGZIP(), []int{102} } func (x *AddGameReq) GetName() string { @@ -5150,7 +5246,7 @@ type AddGameRsp struct { func (x *AddGameRsp) Reset() { *x = AddGameRsp{} - mi := &file_main_proto_msgTypes[101] + mi := &file_main_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5162,7 +5258,7 @@ func (x *AddGameRsp) String() string { func (*AddGameRsp) ProtoMessage() {} func (x *AddGameRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[101] + mi := &file_main_proto_msgTypes[103] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5175,7 +5271,7 @@ func (x *AddGameRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use AddGameRsp.ProtoReflect.Descriptor instead. func (*AddGameRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{101} + return file_main_proto_rawDescGZIP(), []int{103} } func (x *AddGameRsp) GetID() int32 { @@ -5193,7 +5289,7 @@ type GetGamesReq struct { func (x *GetGamesReq) Reset() { *x = GetGamesReq{} - mi := &file_main_proto_msgTypes[102] + mi := &file_main_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5205,7 +5301,7 @@ func (x *GetGamesReq) String() string { func (*GetGamesReq) ProtoMessage() {} func (x *GetGamesReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[102] + mi := &file_main_proto_msgTypes[104] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5218,7 +5314,7 @@ func (x *GetGamesReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGamesReq.ProtoReflect.Descriptor instead. func (*GetGamesReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{102} + return file_main_proto_rawDescGZIP(), []int{104} } type GetGamesRsp struct { @@ -5230,7 +5326,7 @@ type GetGamesRsp struct { func (x *GetGamesRsp) Reset() { *x = GetGamesRsp{} - mi := &file_main_proto_msgTypes[103] + mi := &file_main_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5242,7 +5338,7 @@ func (x *GetGamesRsp) String() string { func (*GetGamesRsp) ProtoMessage() {} func (x *GetGamesRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[103] + mi := &file_main_proto_msgTypes[105] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5255,7 +5351,7 @@ func (x *GetGamesRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGamesRsp.ProtoReflect.Descriptor instead. func (*GetGamesRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{103} + return file_main_proto_rawDescGZIP(), []int{105} } func (x *GetGamesRsp) GetGames() []*Game { @@ -5285,7 +5381,7 @@ type Game struct { func (x *Game) Reset() { *x = Game{} - mi := &file_main_proto_msgTypes[104] + mi := &file_main_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5297,7 +5393,7 @@ func (x *Game) String() string { func (*Game) ProtoMessage() {} func (x *Game) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[104] + mi := &file_main_proto_msgTypes[106] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5310,7 +5406,7 @@ func (x *Game) ProtoReflect() protoreflect.Message { // Deprecated: Use Game.ProtoReflect.Descriptor instead. func (*Game) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{104} + return file_main_proto_rawDescGZIP(), []int{106} } func (x *Game) GetID() int32 { @@ -5413,7 +5509,7 @@ type GameExport struct { func (x *GameExport) Reset() { *x = GameExport{} - mi := &file_main_proto_msgTypes[105] + mi := &file_main_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5425,7 +5521,7 @@ func (x *GameExport) String() string { func (*GameExport) ProtoMessage() {} func (x *GameExport) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[105] + mi := &file_main_proto_msgTypes[107] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5438,7 +5534,7 @@ func (x *GameExport) ProtoReflect() protoreflect.Message { // Deprecated: Use GameExport.ProtoReflect.Descriptor instead. func (*GameExport) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{105} + return file_main_proto_rawDescGZIP(), []int{107} } func (x *GameExport) GetID() string { @@ -5494,7 +5590,7 @@ type GameImportRsp struct { func (x *GameImportRsp) Reset() { *x = GameImportRsp{} - mi := &file_main_proto_msgTypes[106] + mi := &file_main_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5506,7 +5602,7 @@ func (x *GameImportRsp) String() string { func (*GameImportRsp) ProtoMessage() {} func (x *GameImportRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[106] + mi := &file_main_proto_msgTypes[108] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5519,7 +5615,7 @@ func (x *GameImportRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GameImportRsp.ProtoReflect.Descriptor instead. func (*GameImportRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{106} + return file_main_proto_rawDescGZIP(), []int{108} } func (x *GameImportRsp) GetGameID() int32 { @@ -5552,7 +5648,7 @@ type StartGameExportReq struct { func (x *StartGameExportReq) Reset() { *x = StartGameExportReq{} - mi := &file_main_proto_msgTypes[107] + mi := &file_main_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5564,7 +5660,7 @@ func (x *StartGameExportReq) String() string { func (*StartGameExportReq) ProtoMessage() {} func (x *StartGameExportReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[107] + mi := &file_main_proto_msgTypes[109] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5577,7 +5673,7 @@ func (x *StartGameExportReq) ProtoReflect() protoreflect.Message { // Deprecated: Use StartGameExportReq.ProtoReflect.Descriptor instead. func (*StartGameExportReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{107} + return file_main_proto_rawDescGZIP(), []int{109} } func (x *StartGameExportReq) GetID() int32 { @@ -5596,7 +5692,7 @@ type GetGameExportReq struct { func (x *GetGameExportReq) Reset() { *x = GetGameExportReq{} - mi := &file_main_proto_msgTypes[108] + mi := &file_main_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5608,7 +5704,7 @@ func (x *GetGameExportReq) String() string { func (*GetGameExportReq) ProtoMessage() {} func (x *GetGameExportReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[108] + mi := &file_main_proto_msgTypes[110] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5621,7 +5717,7 @@ func (x *GetGameExportReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameExportReq.ProtoReflect.Descriptor instead. func (*GetGameExportReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{108} + return file_main_proto_rawDescGZIP(), []int{110} } func (x *GetGameExportReq) GetID() int32 { @@ -5641,7 +5737,7 @@ type ResetGameLocalModeReq struct { func (x *ResetGameLocalModeReq) Reset() { *x = ResetGameLocalModeReq{} - mi := &file_main_proto_msgTypes[109] + mi := &file_main_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5653,7 +5749,7 @@ func (x *ResetGameLocalModeReq) String() string { func (*ResetGameLocalModeReq) ProtoMessage() {} func (x *ResetGameLocalModeReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[109] + mi := &file_main_proto_msgTypes[111] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5666,7 +5762,7 @@ func (x *ResetGameLocalModeReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ResetGameLocalModeReq.ProtoReflect.Descriptor instead. func (*ResetGameLocalModeReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{109} + return file_main_proto_rawDescGZIP(), []int{111} } func (x *ResetGameLocalModeReq) GetID() int32 { @@ -5691,7 +5787,7 @@ type ResetGameLocalModeRsp struct { func (x *ResetGameLocalModeRsp) Reset() { *x = ResetGameLocalModeRsp{} - mi := &file_main_proto_msgTypes[110] + mi := &file_main_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5703,7 +5799,7 @@ func (x *ResetGameLocalModeRsp) String() string { func (*ResetGameLocalModeRsp) ProtoMessage() {} func (x *ResetGameLocalModeRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[110] + mi := &file_main_proto_msgTypes[112] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5716,7 +5812,7 @@ func (x *ResetGameLocalModeRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use ResetGameLocalModeRsp.ProtoReflect.Descriptor instead. func (*ResetGameLocalModeRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{110} + return file_main_proto_rawDescGZIP(), []int{112} } type GameExportRsp struct { @@ -5728,7 +5824,7 @@ type GameExportRsp struct { func (x *GameExportRsp) Reset() { *x = GameExportRsp{} - mi := &file_main_proto_msgTypes[111] + mi := &file_main_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5740,7 +5836,7 @@ func (x *GameExportRsp) String() string { func (*GameExportRsp) ProtoMessage() {} func (x *GameExportRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[111] + mi := &file_main_proto_msgTypes[113] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5753,7 +5849,7 @@ func (x *GameExportRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GameExportRsp.ProtoReflect.Descriptor instead. func (*GameExportRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{111} + return file_main_proto_rawDescGZIP(), []int{113} } func (x *GameExportRsp) GetExport() *GameExport { @@ -5792,7 +5888,7 @@ type ScreenState struct { func (x *ScreenState) Reset() { *x = ScreenState{} - mi := &file_main_proto_msgTypes[112] + mi := &file_main_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5804,7 +5900,7 @@ func (x *ScreenState) String() string { func (*ScreenState) ProtoMessage() {} func (x *ScreenState) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[112] + mi := &file_main_proto_msgTypes[114] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5817,7 +5913,7 @@ func (x *ScreenState) ProtoReflect() protoreflect.Message { // Deprecated: Use ScreenState.ProtoReflect.Descriptor instead. func (*ScreenState) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{112} + return file_main_proto_rawDescGZIP(), []int{114} } func (x *ScreenState) GetID() string { @@ -5975,7 +6071,7 @@ type CreateScreenSessionReq struct { func (x *CreateScreenSessionReq) Reset() { *x = CreateScreenSessionReq{} - mi := &file_main_proto_msgTypes[113] + mi := &file_main_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5987,7 +6083,7 @@ func (x *CreateScreenSessionReq) String() string { func (*CreateScreenSessionReq) ProtoMessage() {} func (x *CreateScreenSessionReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[113] + mi := &file_main_proto_msgTypes[115] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6000,7 +6096,7 @@ func (x *CreateScreenSessionReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateScreenSessionReq.ProtoReflect.Descriptor instead. func (*CreateScreenSessionReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{113} + return file_main_proto_rawDescGZIP(), []int{115} } type CreateScreenSessionRsp struct { @@ -6013,7 +6109,7 @@ type CreateScreenSessionRsp struct { func (x *CreateScreenSessionRsp) Reset() { *x = CreateScreenSessionRsp{} - mi := &file_main_proto_msgTypes[114] + mi := &file_main_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6025,7 +6121,7 @@ func (x *CreateScreenSessionRsp) String() string { func (*CreateScreenSessionRsp) ProtoMessage() {} func (x *CreateScreenSessionRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[114] + mi := &file_main_proto_msgTypes[116] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6038,7 +6134,7 @@ func (x *CreateScreenSessionRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateScreenSessionRsp.ProtoReflect.Descriptor instead. func (*CreateScreenSessionRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{114} + return file_main_proto_rawDescGZIP(), []int{116} } func (x *CreateScreenSessionRsp) GetScreenID() string { @@ -6065,7 +6161,7 @@ type GetScreenStateReq struct { func (x *GetScreenStateReq) Reset() { *x = GetScreenStateReq{} - mi := &file_main_proto_msgTypes[115] + mi := &file_main_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6077,7 +6173,7 @@ func (x *GetScreenStateReq) String() string { func (*GetScreenStateReq) ProtoMessage() {} func (x *GetScreenStateReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[115] + mi := &file_main_proto_msgTypes[117] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6090,7 +6186,7 @@ func (x *GetScreenStateReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetScreenStateReq.ProtoReflect.Descriptor instead. func (*GetScreenStateReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{115} + return file_main_proto_rawDescGZIP(), []int{117} } func (x *GetScreenStateReq) GetScreenID() string { @@ -6116,7 +6212,7 @@ type GetScreenStateRsp struct { func (x *GetScreenStateRsp) Reset() { *x = GetScreenStateRsp{} - mi := &file_main_proto_msgTypes[116] + mi := &file_main_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6128,7 +6224,7 @@ func (x *GetScreenStateRsp) String() string { func (*GetScreenStateRsp) ProtoMessage() {} func (x *GetScreenStateRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[116] + mi := &file_main_proto_msgTypes[118] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6141,7 +6237,7 @@ func (x *GetScreenStateRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetScreenStateRsp.ProtoReflect.Descriptor instead. func (*GetScreenStateRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{116} + return file_main_proto_rawDescGZIP(), []int{118} } func (x *GetScreenStateRsp) GetState() *ScreenState { @@ -6160,7 +6256,7 @@ type GetGameScreensReq struct { func (x *GetGameScreensReq) Reset() { *x = GetGameScreensReq{} - mi := &file_main_proto_msgTypes[117] + mi := &file_main_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6172,7 +6268,7 @@ func (x *GetGameScreensReq) String() string { func (*GetGameScreensReq) ProtoMessage() {} func (x *GetGameScreensReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[117] + mi := &file_main_proto_msgTypes[119] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6185,7 +6281,7 @@ func (x *GetGameScreensReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameScreensReq.ProtoReflect.Descriptor instead. func (*GetGameScreensReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{117} + return file_main_proto_rawDescGZIP(), []int{119} } func (x *GetGameScreensReq) GetGameID() int32 { @@ -6204,7 +6300,7 @@ type GetGameScreensRsp struct { func (x *GetGameScreensRsp) Reset() { *x = GetGameScreensRsp{} - mi := &file_main_proto_msgTypes[118] + mi := &file_main_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6216,7 +6312,7 @@ func (x *GetGameScreensRsp) String() string { func (*GetGameScreensRsp) ProtoMessage() {} func (x *GetGameScreensRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[118] + mi := &file_main_proto_msgTypes[120] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6229,7 +6325,7 @@ func (x *GetGameScreensRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameScreensRsp.ProtoReflect.Descriptor instead. func (*GetGameScreensRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{118} + return file_main_proto_rawDescGZIP(), []int{120} } func (x *GetGameScreensRsp) GetScreens() []*ScreenState { @@ -6254,7 +6350,7 @@ type MusicState struct { func (x *MusicState) Reset() { *x = MusicState{} - mi := &file_main_proto_msgTypes[119] + mi := &file_main_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6266,7 +6362,7 @@ func (x *MusicState) String() string { func (*MusicState) ProtoMessage() {} func (x *MusicState) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[119] + mi := &file_main_proto_msgTypes[121] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6279,7 +6375,7 @@ func (x *MusicState) ProtoReflect() protoreflect.Message { // Deprecated: Use MusicState.ProtoReflect.Descriptor instead. func (*MusicState) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{119} + return file_main_proto_rawDescGZIP(), []int{121} } func (x *MusicState) GetPlaylist() *Playlist { @@ -6340,7 +6436,7 @@ type GetGameMusicReq struct { func (x *GetGameMusicReq) Reset() { *x = GetGameMusicReq{} - mi := &file_main_proto_msgTypes[120] + mi := &file_main_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6352,7 +6448,7 @@ func (x *GetGameMusicReq) String() string { func (*GetGameMusicReq) ProtoMessage() {} func (x *GetGameMusicReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[120] + mi := &file_main_proto_msgTypes[122] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6365,7 +6461,7 @@ func (x *GetGameMusicReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameMusicReq.ProtoReflect.Descriptor instead. func (*GetGameMusicReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{120} + return file_main_proto_rawDescGZIP(), []int{122} } func (x *GetGameMusicReq) GetGameID() int32 { @@ -6387,7 +6483,7 @@ type GetGameMusicRsp struct { func (x *GetGameMusicRsp) Reset() { *x = GetGameMusicRsp{} - mi := &file_main_proto_msgTypes[121] + mi := &file_main_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6399,7 +6495,7 @@ func (x *GetGameMusicRsp) String() string { func (*GetGameMusicRsp) ProtoMessage() {} func (x *GetGameMusicRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[121] + mi := &file_main_proto_msgTypes[123] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6412,7 +6508,7 @@ func (x *GetGameMusicRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameMusicRsp.ProtoReflect.Descriptor instead. func (*GetGameMusicRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{121} + return file_main_proto_rawDescGZIP(), []int{123} } func (x *GetGameMusicRsp) GetPlaylists() []*Playlist { @@ -6458,7 +6554,7 @@ type SetGameMusicReq struct { func (x *SetGameMusicReq) Reset() { *x = SetGameMusicReq{} - mi := &file_main_proto_msgTypes[122] + mi := &file_main_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6470,7 +6566,7 @@ func (x *SetGameMusicReq) String() string { func (*SetGameMusicReq) ProtoMessage() {} func (x *SetGameMusicReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[122] + mi := &file_main_proto_msgTypes[124] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6483,7 +6579,7 @@ func (x *SetGameMusicReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SetGameMusicReq.ProtoReflect.Descriptor instead. func (*SetGameMusicReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{122} + return file_main_proto_rawDescGZIP(), []int{124} } func (x *SetGameMusicReq) GetGameID() int32 { @@ -6544,7 +6640,7 @@ type SetGameMusicRsp struct { func (x *SetGameMusicRsp) Reset() { *x = SetGameMusicRsp{} - mi := &file_main_proto_msgTypes[123] + mi := &file_main_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6556,7 +6652,7 @@ func (x *SetGameMusicRsp) String() string { func (*SetGameMusicRsp) ProtoMessage() {} func (x *SetGameMusicRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[123] + mi := &file_main_proto_msgTypes[125] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6569,7 +6665,7 @@ func (x *SetGameMusicRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use SetGameMusicRsp.ProtoReflect.Descriptor instead. func (*SetGameMusicRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{123} + return file_main_proto_rawDescGZIP(), []int{125} } func (x *SetGameMusicRsp) GetState() *MusicState { @@ -6589,7 +6685,7 @@ type AdvanceScreenMusicReq struct { func (x *AdvanceScreenMusicReq) Reset() { *x = AdvanceScreenMusicReq{} - mi := &file_main_proto_msgTypes[124] + mi := &file_main_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6601,7 +6697,7 @@ func (x *AdvanceScreenMusicReq) String() string { func (*AdvanceScreenMusicReq) ProtoMessage() {} func (x *AdvanceScreenMusicReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[124] + mi := &file_main_proto_msgTypes[126] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6614,7 +6710,7 @@ func (x *AdvanceScreenMusicReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AdvanceScreenMusicReq.ProtoReflect.Descriptor instead. func (*AdvanceScreenMusicReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{124} + return file_main_proto_rawDescGZIP(), []int{126} } func (x *AdvanceScreenMusicReq) GetScreenID() string { @@ -6640,7 +6736,7 @@ type AdvanceScreenMusicRsp struct { func (x *AdvanceScreenMusicRsp) Reset() { *x = AdvanceScreenMusicRsp{} - mi := &file_main_proto_msgTypes[125] + mi := &file_main_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6652,7 +6748,7 @@ func (x *AdvanceScreenMusicRsp) String() string { func (*AdvanceScreenMusicRsp) ProtoMessage() {} func (x *AdvanceScreenMusicRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[125] + mi := &file_main_proto_msgTypes[127] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6665,7 +6761,7 @@ func (x *AdvanceScreenMusicRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use AdvanceScreenMusicRsp.ProtoReflect.Descriptor instead. func (*AdvanceScreenMusicRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{125} + return file_main_proto_rawDescGZIP(), []int{127} } func (x *AdvanceScreenMusicRsp) GetState() *MusicState { @@ -6676,17 +6772,18 @@ func (x *AdvanceScreenMusicRsp) GetState() *MusicState { } type BindScreenReq 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=accessToken,proto3" json:"accessToken,omitempty"` - GameID int32 `protobuf:"varint,3,opt,name=gameID,proto3" json:"gameID,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + 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=accessToken,proto3" json:"accessToken,omitempty"` + GameID int32 `protobuf:"varint,3,opt,name=gameID,proto3" json:"gameID,omitempty"` + InitializeAudio bool `protobuf:"varint,4,opt,name=initializeAudio,proto3" json:"initializeAudio,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *BindScreenReq) Reset() { *x = BindScreenReq{} - mi := &file_main_proto_msgTypes[126] + mi := &file_main_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6698,7 +6795,7 @@ func (x *BindScreenReq) String() string { func (*BindScreenReq) ProtoMessage() {} func (x *BindScreenReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[126] + mi := &file_main_proto_msgTypes[128] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6711,7 +6808,7 @@ func (x *BindScreenReq) ProtoReflect() protoreflect.Message { // Deprecated: Use BindScreenReq.ProtoReflect.Descriptor instead. func (*BindScreenReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{126} + return file_main_proto_rawDescGZIP(), []int{128} } func (x *BindScreenReq) GetScreenID() string { @@ -6735,6 +6832,13 @@ func (x *BindScreenReq) GetGameID() int32 { return 0 } +func (x *BindScreenReq) GetInitializeAudio() bool { + if x != nil { + return x.InitializeAudio + } + return false +} + type BindScreenRsp struct { state protoimpl.MessageState `protogen:"open.v1"` State *ScreenState `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"` @@ -6744,7 +6848,7 @@ type BindScreenRsp struct { func (x *BindScreenRsp) Reset() { *x = BindScreenRsp{} - mi := &file_main_proto_msgTypes[127] + mi := &file_main_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6756,7 +6860,7 @@ func (x *BindScreenRsp) String() string { func (*BindScreenRsp) ProtoMessage() {} func (x *BindScreenRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[127] + mi := &file_main_proto_msgTypes[129] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6769,7 +6873,7 @@ func (x *BindScreenRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use BindScreenRsp.ProtoReflect.Descriptor instead. func (*BindScreenRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{127} + return file_main_proto_rawDescGZIP(), []int{129} } func (x *BindScreenRsp) GetState() *ScreenState { @@ -6788,7 +6892,7 @@ type UnbindScreenReq struct { func (x *UnbindScreenReq) Reset() { *x = UnbindScreenReq{} - mi := &file_main_proto_msgTypes[128] + mi := &file_main_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6800,7 +6904,7 @@ func (x *UnbindScreenReq) String() string { func (*UnbindScreenReq) ProtoMessage() {} func (x *UnbindScreenReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[128] + mi := &file_main_proto_msgTypes[130] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6813,7 +6917,7 @@ func (x *UnbindScreenReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UnbindScreenReq.ProtoReflect.Descriptor instead. func (*UnbindScreenReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{128} + return file_main_proto_rawDescGZIP(), []int{130} } func (x *UnbindScreenReq) GetScreenID() string { @@ -6831,7 +6935,7 @@ type UnbindScreenRsp struct { func (x *UnbindScreenRsp) Reset() { *x = UnbindScreenRsp{} - mi := &file_main_proto_msgTypes[129] + mi := &file_main_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6843,7 +6947,7 @@ func (x *UnbindScreenRsp) String() string { func (*UnbindScreenRsp) ProtoMessage() {} func (x *UnbindScreenRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[129] + mi := &file_main_proto_msgTypes[131] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6856,7 +6960,7 @@ func (x *UnbindScreenRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use UnbindScreenRsp.ProtoReflect.Descriptor instead. func (*UnbindScreenRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{129} + return file_main_proto_rawDescGZIP(), []int{131} } type SetScreenSoundReq struct { @@ -6869,7 +6973,7 @@ type SetScreenSoundReq struct { func (x *SetScreenSoundReq) Reset() { *x = SetScreenSoundReq{} - mi := &file_main_proto_msgTypes[130] + mi := &file_main_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6881,7 +6985,7 @@ func (x *SetScreenSoundReq) String() string { func (*SetScreenSoundReq) ProtoMessage() {} func (x *SetScreenSoundReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[130] + mi := &file_main_proto_msgTypes[132] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6894,7 +6998,7 @@ func (x *SetScreenSoundReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SetScreenSoundReq.ProtoReflect.Descriptor instead. func (*SetScreenSoundReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{130} + return file_main_proto_rawDescGZIP(), []int{132} } func (x *SetScreenSoundReq) GetScreenID() string { @@ -6919,7 +7023,7 @@ type SetScreenSoundRsp struct { func (x *SetScreenSoundRsp) Reset() { *x = SetScreenSoundRsp{} - mi := &file_main_proto_msgTypes[131] + mi := &file_main_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6931,7 +7035,7 @@ func (x *SetScreenSoundRsp) String() string { func (*SetScreenSoundRsp) ProtoMessage() {} func (x *SetScreenSoundRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[131] + mi := &file_main_proto_msgTypes[133] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6944,7 +7048,7 @@ func (x *SetScreenSoundRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use SetScreenSoundRsp.ProtoReflect.Descriptor instead. func (*SetScreenSoundRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{131} + return file_main_proto_rawDescGZIP(), []int{133} } type MapItem struct { @@ -6963,7 +7067,7 @@ type MapItem struct { func (x *MapItem) Reset() { *x = MapItem{} - mi := &file_main_proto_msgTypes[132] + mi := &file_main_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6975,7 +7079,7 @@ func (x *MapItem) String() string { func (*MapItem) ProtoMessage() {} func (x *MapItem) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[132] + mi := &file_main_proto_msgTypes[134] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6988,7 +7092,7 @@ func (x *MapItem) ProtoReflect() protoreflect.Message { // Deprecated: Use MapItem.ProtoReflect.Descriptor instead. func (*MapItem) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{132} + return file_main_proto_rawDescGZIP(), []int{134} } func (x *MapItem) GetKind() string { @@ -7056,7 +7160,7 @@ type GetGameMapReq struct { func (x *GetGameMapReq) Reset() { *x = GetGameMapReq{} - mi := &file_main_proto_msgTypes[133] + mi := &file_main_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7068,7 +7172,7 @@ func (x *GetGameMapReq) String() string { func (*GetGameMapReq) ProtoMessage() {} func (x *GetGameMapReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[133] + mi := &file_main_proto_msgTypes[135] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7081,7 +7185,7 @@ func (x *GetGameMapReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameMapReq.ProtoReflect.Descriptor instead. func (*GetGameMapReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{133} + return file_main_proto_rawDescGZIP(), []int{135} } func (x *GetGameMapReq) GetGameID() int32 { @@ -7100,7 +7204,7 @@ type GetGameMapRsp struct { func (x *GetGameMapRsp) Reset() { *x = GetGameMapRsp{} - mi := &file_main_proto_msgTypes[134] + mi := &file_main_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7112,7 +7216,7 @@ func (x *GetGameMapRsp) String() string { func (*GetGameMapRsp) ProtoMessage() {} func (x *GetGameMapRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[134] + mi := &file_main_proto_msgTypes[136] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7125,7 +7229,7 @@ func (x *GetGameMapRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameMapRsp.ProtoReflect.Descriptor instead. func (*GetGameMapRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{134} + return file_main_proto_rawDescGZIP(), []int{136} } func (x *GetGameMapRsp) GetItems() []*MapItem { @@ -7149,7 +7253,7 @@ type UpdateGameMapItemReq struct { func (x *UpdateGameMapItemReq) Reset() { *x = UpdateGameMapItemReq{} - mi := &file_main_proto_msgTypes[135] + mi := &file_main_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7161,7 +7265,7 @@ func (x *UpdateGameMapItemReq) String() string { func (*UpdateGameMapItemReq) ProtoMessage() {} func (x *UpdateGameMapItemReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[135] + mi := &file_main_proto_msgTypes[137] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7174,7 +7278,7 @@ func (x *UpdateGameMapItemReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateGameMapItemReq.ProtoReflect.Descriptor instead. func (*UpdateGameMapItemReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{135} + return file_main_proto_rawDescGZIP(), []int{137} } func (x *UpdateGameMapItemReq) GetGameID() int32 { @@ -7227,7 +7331,7 @@ type UpdateGameMapItemRsp struct { func (x *UpdateGameMapItemRsp) Reset() { *x = UpdateGameMapItemRsp{} - mi := &file_main_proto_msgTypes[136] + mi := &file_main_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7239,7 +7343,7 @@ func (x *UpdateGameMapItemRsp) String() string { func (*UpdateGameMapItemRsp) ProtoMessage() {} func (x *UpdateGameMapItemRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[136] + mi := &file_main_proto_msgTypes[138] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7252,7 +7356,7 @@ func (x *UpdateGameMapItemRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateGameMapItemRsp.ProtoReflect.Descriptor instead. func (*UpdateGameMapItemRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{136} + return file_main_proto_rawDescGZIP(), []int{138} } type SetScreenModeReq struct { @@ -7265,7 +7369,7 @@ type SetScreenModeReq struct { func (x *SetScreenModeReq) Reset() { *x = SetScreenModeReq{} - mi := &file_main_proto_msgTypes[137] + mi := &file_main_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7277,7 +7381,7 @@ func (x *SetScreenModeReq) String() string { func (*SetScreenModeReq) ProtoMessage() {} func (x *SetScreenModeReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[137] + mi := &file_main_proto_msgTypes[139] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7290,7 +7394,7 @@ func (x *SetScreenModeReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SetScreenModeReq.ProtoReflect.Descriptor instead. func (*SetScreenModeReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{137} + return file_main_proto_rawDescGZIP(), []int{139} } func (x *SetScreenModeReq) GetGameID() int32 { @@ -7315,7 +7419,7 @@ type SetScreenModeRsp struct { func (x *SetScreenModeRsp) Reset() { *x = SetScreenModeRsp{} - mi := &file_main_proto_msgTypes[138] + mi := &file_main_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7327,7 +7431,7 @@ func (x *SetScreenModeRsp) String() string { func (*SetScreenModeRsp) ProtoMessage() {} func (x *SetScreenModeRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[138] + mi := &file_main_proto_msgTypes[140] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7340,7 +7444,7 @@ func (x *SetScreenModeRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use SetScreenModeRsp.ProtoReflect.Descriptor instead. func (*SetScreenModeRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{138} + return file_main_proto_rawDescGZIP(), []int{140} } type SetScreenTimerReq struct { @@ -7354,7 +7458,7 @@ type SetScreenTimerReq struct { func (x *SetScreenTimerReq) Reset() { *x = SetScreenTimerReq{} - mi := &file_main_proto_msgTypes[139] + mi := &file_main_proto_msgTypes[141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7366,7 +7470,7 @@ func (x *SetScreenTimerReq) String() string { func (*SetScreenTimerReq) ProtoMessage() {} func (x *SetScreenTimerReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[139] + mi := &file_main_proto_msgTypes[141] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7379,7 +7483,7 @@ func (x *SetScreenTimerReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SetScreenTimerReq.ProtoReflect.Descriptor instead. func (*SetScreenTimerReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{139} + return file_main_proto_rawDescGZIP(), []int{141} } func (x *SetScreenTimerReq) GetGameID() int32 { @@ -7411,7 +7515,7 @@ type SetScreenTimerRsp struct { func (x *SetScreenTimerRsp) Reset() { *x = SetScreenTimerRsp{} - mi := &file_main_proto_msgTypes[140] + mi := &file_main_proto_msgTypes[142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7423,7 +7527,7 @@ func (x *SetScreenTimerRsp) String() string { func (*SetScreenTimerRsp) ProtoMessage() {} func (x *SetScreenTimerRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[140] + mi := &file_main_proto_msgTypes[142] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7436,7 +7540,7 @@ func (x *SetScreenTimerRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use SetScreenTimerRsp.ProtoReflect.Descriptor instead. func (*SetScreenTimerRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{140} + return file_main_proto_rawDescGZIP(), []int{142} } type SendScreenCommandReq struct { @@ -7451,7 +7555,7 @@ type SendScreenCommandReq struct { func (x *SendScreenCommandReq) Reset() { *x = SendScreenCommandReq{} - mi := &file_main_proto_msgTypes[141] + mi := &file_main_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7463,7 +7567,7 @@ func (x *SendScreenCommandReq) String() string { func (*SendScreenCommandReq) ProtoMessage() {} func (x *SendScreenCommandReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[141] + mi := &file_main_proto_msgTypes[143] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7476,7 +7580,7 @@ func (x *SendScreenCommandReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SendScreenCommandReq.ProtoReflect.Descriptor instead. func (*SendScreenCommandReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{141} + return file_main_proto_rawDescGZIP(), []int{143} } func (x *SendScreenCommandReq) GetGameID() int32 { @@ -7515,7 +7619,7 @@ type SendScreenCommandRsp struct { func (x *SendScreenCommandRsp) Reset() { *x = SendScreenCommandRsp{} - mi := &file_main_proto_msgTypes[142] + mi := &file_main_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7527,7 +7631,7 @@ func (x *SendScreenCommandRsp) String() string { func (*SendScreenCommandRsp) ProtoMessage() {} func (x *SendScreenCommandRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[142] + mi := &file_main_proto_msgTypes[144] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7540,7 +7644,7 @@ func (x *SendScreenCommandRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use SendScreenCommandRsp.ProtoReflect.Descriptor instead. func (*SendScreenCommandRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{142} + return file_main_proto_rawDescGZIP(), []int{144} } type ScreenPlanStep struct { @@ -7555,7 +7659,7 @@ type ScreenPlanStep struct { func (x *ScreenPlanStep) Reset() { *x = ScreenPlanStep{} - mi := &file_main_proto_msgTypes[143] + mi := &file_main_proto_msgTypes[145] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7567,7 +7671,7 @@ func (x *ScreenPlanStep) String() string { func (*ScreenPlanStep) ProtoMessage() {} func (x *ScreenPlanStep) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[143] + mi := &file_main_proto_msgTypes[145] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7580,7 +7684,7 @@ func (x *ScreenPlanStep) ProtoReflect() protoreflect.Message { // Deprecated: Use ScreenPlanStep.ProtoReflect.Descriptor instead. func (*ScreenPlanStep) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{143} + return file_main_proto_rawDescGZIP(), []int{145} } func (x *ScreenPlanStep) GetMode() ScreenMode { @@ -7621,7 +7725,7 @@ type ScreenPlan struct { func (x *ScreenPlan) Reset() { *x = ScreenPlan{} - mi := &file_main_proto_msgTypes[144] + mi := &file_main_proto_msgTypes[146] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7633,7 +7737,7 @@ func (x *ScreenPlan) String() string { func (*ScreenPlan) ProtoMessage() {} func (x *ScreenPlan) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[144] + mi := &file_main_proto_msgTypes[146] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7646,7 +7750,7 @@ func (x *ScreenPlan) ProtoReflect() protoreflect.Message { // Deprecated: Use ScreenPlan.ProtoReflect.Descriptor instead. func (*ScreenPlan) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{144} + return file_main_proto_rawDescGZIP(), []int{146} } func (x *ScreenPlan) GetSteps() []*ScreenPlanStep { @@ -7672,7 +7776,7 @@ type GetScreenPlanReq struct { func (x *GetScreenPlanReq) Reset() { *x = GetScreenPlanReq{} - mi := &file_main_proto_msgTypes[145] + mi := &file_main_proto_msgTypes[147] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7684,7 +7788,7 @@ func (x *GetScreenPlanReq) String() string { func (*GetScreenPlanReq) ProtoMessage() {} func (x *GetScreenPlanReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[145] + mi := &file_main_proto_msgTypes[147] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7697,7 +7801,7 @@ func (x *GetScreenPlanReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetScreenPlanReq.ProtoReflect.Descriptor instead. func (*GetScreenPlanReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{145} + return file_main_proto_rawDescGZIP(), []int{147} } func (x *GetScreenPlanReq) GetGameID() int32 { @@ -7716,7 +7820,7 @@ type GetScreenPlanRsp struct { func (x *GetScreenPlanRsp) Reset() { *x = GetScreenPlanRsp{} - mi := &file_main_proto_msgTypes[146] + mi := &file_main_proto_msgTypes[148] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7728,7 +7832,7 @@ func (x *GetScreenPlanRsp) String() string { func (*GetScreenPlanRsp) ProtoMessage() {} func (x *GetScreenPlanRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[146] + mi := &file_main_proto_msgTypes[148] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7741,7 +7845,7 @@ func (x *GetScreenPlanRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetScreenPlanRsp.ProtoReflect.Descriptor instead. func (*GetScreenPlanRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{146} + return file_main_proto_rawDescGZIP(), []int{148} } func (x *GetScreenPlanRsp) GetPlan() *ScreenPlan { @@ -7762,7 +7866,7 @@ type SaveScreenPlanReq struct { func (x *SaveScreenPlanReq) Reset() { *x = SaveScreenPlanReq{} - mi := &file_main_proto_msgTypes[147] + mi := &file_main_proto_msgTypes[149] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7774,7 +7878,7 @@ func (x *SaveScreenPlanReq) String() string { func (*SaveScreenPlanReq) ProtoMessage() {} func (x *SaveScreenPlanReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[147] + mi := &file_main_proto_msgTypes[149] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7787,7 +7891,7 @@ func (x *SaveScreenPlanReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SaveScreenPlanReq.ProtoReflect.Descriptor instead. func (*SaveScreenPlanReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{147} + return file_main_proto_rawDescGZIP(), []int{149} } func (x *SaveScreenPlanReq) GetGameID() int32 { @@ -7820,7 +7924,7 @@ type SaveScreenPlanRsp struct { func (x *SaveScreenPlanRsp) Reset() { *x = SaveScreenPlanRsp{} - mi := &file_main_proto_msgTypes[148] + mi := &file_main_proto_msgTypes[150] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7832,7 +7936,7 @@ func (x *SaveScreenPlanRsp) String() string { func (*SaveScreenPlanRsp) ProtoMessage() {} func (x *SaveScreenPlanRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[148] + mi := &file_main_proto_msgTypes[150] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7845,7 +7949,7 @@ func (x *SaveScreenPlanRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use SaveScreenPlanRsp.ProtoReflect.Descriptor instead. func (*SaveScreenPlanRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{148} + return file_main_proto_rawDescGZIP(), []int{150} } func (x *SaveScreenPlanRsp) GetPlan() *ScreenPlan { @@ -7865,7 +7969,7 @@ type SetScreenPlanStepReq struct { func (x *SetScreenPlanStepReq) Reset() { *x = SetScreenPlanStepReq{} - mi := &file_main_proto_msgTypes[149] + mi := &file_main_proto_msgTypes[151] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7877,7 +7981,7 @@ func (x *SetScreenPlanStepReq) String() string { func (*SetScreenPlanStepReq) ProtoMessage() {} func (x *SetScreenPlanStepReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[149] + mi := &file_main_proto_msgTypes[151] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7890,7 +7994,7 @@ func (x *SetScreenPlanStepReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SetScreenPlanStepReq.ProtoReflect.Descriptor instead. func (*SetScreenPlanStepReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{149} + return file_main_proto_rawDescGZIP(), []int{151} } func (x *SetScreenPlanStepReq) GetGameID() int32 { @@ -7916,7 +8020,7 @@ type SetScreenPlanStepRsp struct { func (x *SetScreenPlanStepRsp) Reset() { *x = SetScreenPlanStepRsp{} - mi := &file_main_proto_msgTypes[150] + mi := &file_main_proto_msgTypes[152] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7928,7 +8032,7 @@ func (x *SetScreenPlanStepRsp) String() string { func (*SetScreenPlanStepRsp) ProtoMessage() {} func (x *SetScreenPlanStepRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[150] + mi := &file_main_proto_msgTypes[152] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7941,7 +8045,7 @@ func (x *SetScreenPlanStepRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use SetScreenPlanStepRsp.ProtoReflect.Descriptor instead. func (*SetScreenPlanStepRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{150} + return file_main_proto_rawDescGZIP(), []int{152} } func (x *SetScreenPlanStepRsp) GetPlan() *ScreenPlan { @@ -7961,7 +8065,7 @@ type GetScreenResultsReq struct { func (x *GetScreenResultsReq) Reset() { *x = GetScreenResultsReq{} - mi := &file_main_proto_msgTypes[151] + mi := &file_main_proto_msgTypes[153] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7973,7 +8077,7 @@ func (x *GetScreenResultsReq) String() string { func (*GetScreenResultsReq) ProtoMessage() {} func (x *GetScreenResultsReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[151] + mi := &file_main_proto_msgTypes[153] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7986,7 +8090,7 @@ func (x *GetScreenResultsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetScreenResultsReq.ProtoReflect.Descriptor instead. func (*GetScreenResultsReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{151} + return file_main_proto_rawDescGZIP(), []int{153} } func (x *GetScreenResultsReq) GetScreenID() string { @@ -8013,7 +8117,7 @@ type GetScreenResultsRsp struct { func (x *GetScreenResultsRsp) Reset() { *x = GetScreenResultsRsp{} - mi := &file_main_proto_msgTypes[152] + mi := &file_main_proto_msgTypes[154] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8025,7 +8129,7 @@ func (x *GetScreenResultsRsp) String() string { func (*GetScreenResultsRsp) ProtoMessage() {} func (x *GetScreenResultsRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[152] + mi := &file_main_proto_msgTypes[154] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8038,7 +8142,7 @@ func (x *GetScreenResultsRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetScreenResultsRsp.ProtoReflect.Descriptor instead. func (*GetScreenResultsRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{152} + return file_main_proto_rawDescGZIP(), []int{154} } func (x *GetScreenResultsRsp) GetQuestions() []*ResultsQuestion { @@ -8065,7 +8169,7 @@ type GetParticipationReq struct { func (x *GetParticipationReq) Reset() { *x = GetParticipationReq{} - mi := &file_main_proto_msgTypes[153] + mi := &file_main_proto_msgTypes[155] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8077,7 +8181,7 @@ func (x *GetParticipationReq) String() string { func (*GetParticipationReq) ProtoMessage() {} func (x *GetParticipationReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[153] + mi := &file_main_proto_msgTypes[155] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8090,7 +8194,7 @@ func (x *GetParticipationReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetParticipationReq.ProtoReflect.Descriptor instead. func (*GetParticipationReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{153} + return file_main_proto_rawDescGZIP(), []int{155} } func (x *GetParticipationReq) GetToken() string { @@ -8112,7 +8216,7 @@ type AnswerParticipationReq struct { func (x *AnswerParticipationReq) Reset() { *x = AnswerParticipationReq{} - mi := &file_main_proto_msgTypes[154] + mi := &file_main_proto_msgTypes[156] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8124,7 +8228,7 @@ func (x *AnswerParticipationReq) String() string { func (*AnswerParticipationReq) ProtoMessage() {} func (x *AnswerParticipationReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[154] + mi := &file_main_proto_msgTypes[156] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8137,7 +8241,7 @@ func (x *AnswerParticipationReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AnswerParticipationReq.ProtoReflect.Descriptor instead. func (*AnswerParticipationReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{154} + return file_main_proto_rawDescGZIP(), []int{156} } func (x *AnswerParticipationReq) GetToken() string { @@ -8175,7 +8279,7 @@ type ParticipationRsp struct { func (x *ParticipationRsp) Reset() { *x = ParticipationRsp{} - mi := &file_main_proto_msgTypes[155] + mi := &file_main_proto_msgTypes[157] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8187,7 +8291,7 @@ func (x *ParticipationRsp) String() string { func (*ParticipationRsp) ProtoMessage() {} func (x *ParticipationRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[155] + mi := &file_main_proto_msgTypes[157] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8200,7 +8304,7 @@ func (x *ParticipationRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use ParticipationRsp.ProtoReflect.Descriptor instead. func (*ParticipationRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{155} + return file_main_proto_rawDescGZIP(), []int{157} } func (x *ParticipationRsp) GetTeamName() string { @@ -8269,7 +8373,7 @@ type Team struct { func (x *Team) Reset() { *x = Team{} - mi := &file_main_proto_msgTypes[156] + mi := &file_main_proto_msgTypes[158] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8281,7 +8385,7 @@ func (x *Team) String() string { func (*Team) ProtoMessage() {} func (x *Team) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[156] + mi := &file_main_proto_msgTypes[158] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8294,7 +8398,7 @@ func (x *Team) ProtoReflect() protoreflect.Message { // Deprecated: Use Team.ProtoReflect.Descriptor instead. func (*Team) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{156} + return file_main_proto_rawDescGZIP(), []int{158} } func (x *Team) GetID() string { @@ -8390,7 +8494,7 @@ type GetGameReq struct { func (x *GetGameReq) Reset() { *x = GetGameReq{} - mi := &file_main_proto_msgTypes[157] + mi := &file_main_proto_msgTypes[159] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8402,7 +8506,7 @@ func (x *GetGameReq) String() string { func (*GetGameReq) ProtoMessage() {} func (x *GetGameReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[157] + mi := &file_main_proto_msgTypes[159] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8415,7 +8519,7 @@ func (x *GetGameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameReq.ProtoReflect.Descriptor instead. func (*GetGameReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{157} + return file_main_proto_rawDescGZIP(), []int{159} } func (x *GetGameReq) GetID() int32 { @@ -8434,7 +8538,7 @@ type GetGameRsp struct { func (x *GetGameRsp) Reset() { *x = GetGameRsp{} - mi := &file_main_proto_msgTypes[158] + mi := &file_main_proto_msgTypes[160] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8446,7 +8550,7 @@ func (x *GetGameRsp) String() string { func (*GetGameRsp) ProtoMessage() {} func (x *GetGameRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[158] + mi := &file_main_proto_msgTypes[160] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8459,7 +8563,7 @@ func (x *GetGameRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameRsp.ProtoReflect.Descriptor instead. func (*GetGameRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{158} + return file_main_proto_rawDescGZIP(), []int{160} } func (x *GetGameRsp) GetGame() *Game { @@ -8478,7 +8582,7 @@ type GetGameAnswersReq struct { func (x *GetGameAnswersReq) Reset() { *x = GetGameAnswersReq{} - mi := &file_main_proto_msgTypes[159] + mi := &file_main_proto_msgTypes[161] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8490,7 +8594,7 @@ func (x *GetGameAnswersReq) String() string { func (*GetGameAnswersReq) ProtoMessage() {} func (x *GetGameAnswersReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[159] + mi := &file_main_proto_msgTypes[161] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8503,7 +8607,7 @@ func (x *GetGameAnswersReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameAnswersReq.ProtoReflect.Descriptor instead. func (*GetGameAnswersReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{159} + return file_main_proto_rawDescGZIP(), []int{161} } func (x *GetGameAnswersReq) GetGameID() int32 { @@ -8523,7 +8627,7 @@ type GetGameAnswersRsp struct { func (x *GetGameAnswersRsp) Reset() { *x = GetGameAnswersRsp{} - mi := &file_main_proto_msgTypes[160] + mi := &file_main_proto_msgTypes[162] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8535,7 +8639,7 @@ func (x *GetGameAnswersRsp) String() string { func (*GetGameAnswersRsp) ProtoMessage() {} func (x *GetGameAnswersRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[160] + mi := &file_main_proto_msgTypes[162] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8548,7 +8652,7 @@ func (x *GetGameAnswersRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameAnswersRsp.ProtoReflect.Descriptor instead. func (*GetGameAnswersRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{160} + return file_main_proto_rawDescGZIP(), []int{162} } func (x *GetGameAnswersRsp) GetQuestions() []*Question { @@ -8574,7 +8678,7 @@ type GetGameResultsReq struct { func (x *GetGameResultsReq) Reset() { *x = GetGameResultsReq{} - mi := &file_main_proto_msgTypes[161] + mi := &file_main_proto_msgTypes[163] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8586,7 +8690,7 @@ func (x *GetGameResultsReq) String() string { func (*GetGameResultsReq) ProtoMessage() {} func (x *GetGameResultsReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[161] + mi := &file_main_proto_msgTypes[163] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8599,7 +8703,7 @@ func (x *GetGameResultsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameResultsReq.ProtoReflect.Descriptor instead. func (*GetGameResultsReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{161} + return file_main_proto_rawDescGZIP(), []int{163} } func (x *GetGameResultsReq) GetGameID() int32 { @@ -8621,7 +8725,7 @@ type ResultsQuestion struct { func (x *ResultsQuestion) Reset() { *x = ResultsQuestion{} - mi := &file_main_proto_msgTypes[162] + mi := &file_main_proto_msgTypes[164] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8633,7 +8737,7 @@ func (x *ResultsQuestion) String() string { func (*ResultsQuestion) ProtoMessage() {} func (x *ResultsQuestion) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[162] + mi := &file_main_proto_msgTypes[164] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8646,7 +8750,7 @@ func (x *ResultsQuestion) ProtoReflect() protoreflect.Message { // Deprecated: Use ResultsQuestion.ProtoReflect.Descriptor instead. func (*ResultsQuestion) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{162} + return file_main_proto_rawDescGZIP(), []int{164} } func (x *ResultsQuestion) GetCode() string { @@ -8682,7 +8786,7 @@ type TeamResult struct { func (x *TeamResult) Reset() { *x = TeamResult{} - mi := &file_main_proto_msgTypes[163] + mi := &file_main_proto_msgTypes[165] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8694,7 +8798,7 @@ func (x *TeamResult) String() string { func (*TeamResult) ProtoMessage() {} func (x *TeamResult) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[163] + mi := &file_main_proto_msgTypes[165] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8707,7 +8811,7 @@ func (x *TeamResult) ProtoReflect() protoreflect.Message { // Deprecated: Use TeamResult.ProtoReflect.Descriptor instead. func (*TeamResult) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{163} + return file_main_proto_rawDescGZIP(), []int{165} } func (x *TeamResult) GetTeam() *Team { @@ -8755,7 +8859,7 @@ type GetGameResultsRsp struct { func (x *GetGameResultsRsp) Reset() { *x = GetGameResultsRsp{} - mi := &file_main_proto_msgTypes[164] + mi := &file_main_proto_msgTypes[166] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8767,7 +8871,7 @@ func (x *GetGameResultsRsp) String() string { func (*GetGameResultsRsp) ProtoMessage() {} func (x *GetGameResultsRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[164] + mi := &file_main_proto_msgTypes[166] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8780,7 +8884,7 @@ func (x *GetGameResultsRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameResultsRsp.ProtoReflect.Descriptor instead. func (*GetGameResultsRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{164} + return file_main_proto_rawDescGZIP(), []int{166} } func (x *GetGameResultsRsp) GetQuestions() []*ResultsQuestion { @@ -8815,7 +8919,7 @@ type GameReview struct { func (x *GameReview) Reset() { *x = GameReview{} - mi := &file_main_proto_msgTypes[165] + mi := &file_main_proto_msgTypes[167] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8827,7 +8931,7 @@ func (x *GameReview) String() string { func (*GameReview) ProtoMessage() {} func (x *GameReview) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[165] + mi := &file_main_proto_msgTypes[167] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8840,7 +8944,7 @@ func (x *GameReview) ProtoReflect() protoreflect.Message { // Deprecated: Use GameReview.ProtoReflect.Descriptor instead. func (*GameReview) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{165} + return file_main_proto_rawDescGZIP(), []int{167} } func (x *GameReview) GetID() int32 { @@ -8927,7 +9031,7 @@ type CreateGameReviewReq struct { func (x *CreateGameReviewReq) Reset() { *x = CreateGameReviewReq{} - mi := &file_main_proto_msgTypes[166] + mi := &file_main_proto_msgTypes[168] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8939,7 +9043,7 @@ func (x *CreateGameReviewReq) String() string { func (*CreateGameReviewReq) ProtoMessage() {} func (x *CreateGameReviewReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[166] + mi := &file_main_proto_msgTypes[168] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8952,7 +9056,7 @@ func (x *CreateGameReviewReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateGameReviewReq.ProtoReflect.Descriptor instead. func (*CreateGameReviewReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{166} + return file_main_proto_rawDescGZIP(), []int{168} } func (x *CreateGameReviewReq) GetGameID() int32 { @@ -9006,7 +9110,7 @@ type CreateGameReviewRsp struct { func (x *CreateGameReviewRsp) Reset() { *x = CreateGameReviewRsp{} - mi := &file_main_proto_msgTypes[167] + mi := &file_main_proto_msgTypes[169] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9018,7 +9122,7 @@ func (x *CreateGameReviewRsp) String() string { func (*CreateGameReviewRsp) ProtoMessage() {} func (x *CreateGameReviewRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[167] + mi := &file_main_proto_msgTypes[169] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9031,7 +9135,7 @@ func (x *CreateGameReviewRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateGameReviewRsp.ProtoReflect.Descriptor instead. func (*CreateGameReviewRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{167} + return file_main_proto_rawDescGZIP(), []int{169} } func (x *CreateGameReviewRsp) GetReview() *GameReview { @@ -9050,7 +9154,7 @@ type GetGameReviewsReq struct { func (x *GetGameReviewsReq) Reset() { *x = GetGameReviewsReq{} - mi := &file_main_proto_msgTypes[168] + mi := &file_main_proto_msgTypes[170] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9062,7 +9166,7 @@ func (x *GetGameReviewsReq) String() string { func (*GetGameReviewsReq) ProtoMessage() {} func (x *GetGameReviewsReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[168] + mi := &file_main_proto_msgTypes[170] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9075,7 +9179,7 @@ func (x *GetGameReviewsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameReviewsReq.ProtoReflect.Descriptor instead. func (*GetGameReviewsReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{168} + return file_main_proto_rawDescGZIP(), []int{170} } func (x *GetGameReviewsReq) GetGameID() int32 { @@ -9094,7 +9198,7 @@ type GetScenarioReviewsReq struct { func (x *GetScenarioReviewsReq) Reset() { *x = GetScenarioReviewsReq{} - mi := &file_main_proto_msgTypes[169] + mi := &file_main_proto_msgTypes[171] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9106,7 +9210,7 @@ func (x *GetScenarioReviewsReq) String() string { func (*GetScenarioReviewsReq) ProtoMessage() {} func (x *GetScenarioReviewsReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[169] + mi := &file_main_proto_msgTypes[171] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9119,7 +9223,7 @@ func (x *GetScenarioReviewsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetScenarioReviewsReq.ProtoReflect.Descriptor instead. func (*GetScenarioReviewsReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{169} + return file_main_proto_rawDescGZIP(), []int{171} } func (x *GetScenarioReviewsReq) GetScenarioID() int32 { @@ -9137,7 +9241,7 @@ type GetReviewsForModerationReq struct { func (x *GetReviewsForModerationReq) Reset() { *x = GetReviewsForModerationReq{} - mi := &file_main_proto_msgTypes[170] + mi := &file_main_proto_msgTypes[172] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9149,7 +9253,7 @@ func (x *GetReviewsForModerationReq) String() string { func (*GetReviewsForModerationReq) ProtoMessage() {} func (x *GetReviewsForModerationReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[170] + mi := &file_main_proto_msgTypes[172] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9162,7 +9266,7 @@ func (x *GetReviewsForModerationReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetReviewsForModerationReq.ProtoReflect.Descriptor instead. func (*GetReviewsForModerationReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{170} + return file_main_proto_rawDescGZIP(), []int{172} } type GetGameReviewsRsp struct { @@ -9176,7 +9280,7 @@ type GetGameReviewsRsp struct { func (x *GetGameReviewsRsp) Reset() { *x = GetGameReviewsRsp{} - mi := &file_main_proto_msgTypes[171] + mi := &file_main_proto_msgTypes[173] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9188,7 +9292,7 @@ func (x *GetGameReviewsRsp) String() string { func (*GetGameReviewsRsp) ProtoMessage() {} func (x *GetGameReviewsRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[171] + mi := &file_main_proto_msgTypes[173] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9201,7 +9305,7 @@ func (x *GetGameReviewsRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGameReviewsRsp.ProtoReflect.Descriptor instead. func (*GetGameReviewsRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{171} + return file_main_proto_rawDescGZIP(), []int{173} } func (x *GetGameReviewsRsp) GetAverageRating() float64 { @@ -9235,7 +9339,7 @@ type ModerateGameReviewReq struct { func (x *ModerateGameReviewReq) Reset() { *x = ModerateGameReviewReq{} - mi := &file_main_proto_msgTypes[172] + mi := &file_main_proto_msgTypes[174] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9247,7 +9351,7 @@ func (x *ModerateGameReviewReq) String() string { func (*ModerateGameReviewReq) ProtoMessage() {} func (x *ModerateGameReviewReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[172] + mi := &file_main_proto_msgTypes[174] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9260,7 +9364,7 @@ func (x *ModerateGameReviewReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ModerateGameReviewReq.ProtoReflect.Descriptor instead. func (*ModerateGameReviewReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{172} + return file_main_proto_rawDescGZIP(), []int{174} } func (x *ModerateGameReviewReq) GetID() int32 { @@ -9286,7 +9390,7 @@ type ModerateGameReviewRsp struct { func (x *ModerateGameReviewRsp) Reset() { *x = ModerateGameReviewRsp{} - mi := &file_main_proto_msgTypes[173] + mi := &file_main_proto_msgTypes[175] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9298,7 +9402,7 @@ func (x *ModerateGameReviewRsp) String() string { func (*ModerateGameReviewRsp) ProtoMessage() {} func (x *ModerateGameReviewRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[173] + mi := &file_main_proto_msgTypes[175] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9311,7 +9415,7 @@ func (x *ModerateGameReviewRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use ModerateGameReviewRsp.ProtoReflect.Descriptor instead. func (*ModerateGameReviewRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{173} + return file_main_proto_rawDescGZIP(), []int{175} } func (x *ModerateGameReviewRsp) GetReview() *GameReview { @@ -9336,7 +9440,7 @@ type UpdateGameReq struct { func (x *UpdateGameReq) Reset() { *x = UpdateGameReq{} - mi := &file_main_proto_msgTypes[174] + mi := &file_main_proto_msgTypes[176] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9348,7 +9452,7 @@ func (x *UpdateGameReq) String() string { func (*UpdateGameReq) ProtoMessage() {} func (x *UpdateGameReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[174] + mi := &file_main_proto_msgTypes[176] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9361,7 +9465,7 @@ func (x *UpdateGameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateGameReq.ProtoReflect.Descriptor instead. func (*UpdateGameReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{174} + return file_main_proto_rawDescGZIP(), []int{176} } func (x *UpdateGameReq) GetID() int32 { @@ -9421,7 +9525,7 @@ type UpdateGameRsp struct { func (x *UpdateGameRsp) Reset() { *x = UpdateGameRsp{} - mi := &file_main_proto_msgTypes[175] + mi := &file_main_proto_msgTypes[177] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9433,7 +9537,7 @@ func (x *UpdateGameRsp) String() string { func (*UpdateGameRsp) ProtoMessage() {} func (x *UpdateGameRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[175] + mi := &file_main_proto_msgTypes[177] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9446,7 +9550,7 @@ func (x *UpdateGameRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateGameRsp.ProtoReflect.Descriptor instead. func (*UpdateGameRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{175} + return file_main_proto_rawDescGZIP(), []int{177} } type StartGameReq struct { @@ -9458,7 +9562,7 @@ type StartGameReq struct { func (x *StartGameReq) Reset() { *x = StartGameReq{} - mi := &file_main_proto_msgTypes[176] + mi := &file_main_proto_msgTypes[178] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9470,7 +9574,7 @@ func (x *StartGameReq) String() string { func (*StartGameReq) ProtoMessage() {} func (x *StartGameReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[176] + mi := &file_main_proto_msgTypes[178] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9483,7 +9587,7 @@ func (x *StartGameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use StartGameReq.ProtoReflect.Descriptor instead. func (*StartGameReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{176} + return file_main_proto_rawDescGZIP(), []int{178} } func (x *StartGameReq) GetID() int32 { @@ -9501,7 +9605,7 @@ type StartGameRsp struct { func (x *StartGameRsp) Reset() { *x = StartGameRsp{} - mi := &file_main_proto_msgTypes[177] + mi := &file_main_proto_msgTypes[179] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9513,7 +9617,7 @@ func (x *StartGameRsp) String() string { func (*StartGameRsp) ProtoMessage() {} func (x *StartGameRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[177] + mi := &file_main_proto_msgTypes[179] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9526,7 +9630,7 @@ func (x *StartGameRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use StartGameRsp.ProtoReflect.Descriptor instead. func (*StartGameRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{177} + return file_main_proto_rawDescGZIP(), []int{179} } type PauseGameReq struct { @@ -9538,7 +9642,7 @@ type PauseGameReq struct { func (x *PauseGameReq) Reset() { *x = PauseGameReq{} - mi := &file_main_proto_msgTypes[178] + mi := &file_main_proto_msgTypes[180] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9550,7 +9654,7 @@ func (x *PauseGameReq) String() string { func (*PauseGameReq) ProtoMessage() {} func (x *PauseGameReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[178] + mi := &file_main_proto_msgTypes[180] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9563,7 +9667,7 @@ func (x *PauseGameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use PauseGameReq.ProtoReflect.Descriptor instead. func (*PauseGameReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{178} + return file_main_proto_rawDescGZIP(), []int{180} } func (x *PauseGameReq) GetID() int32 { @@ -9581,7 +9685,7 @@ type PauseGameRsp struct { func (x *PauseGameRsp) Reset() { *x = PauseGameRsp{} - mi := &file_main_proto_msgTypes[179] + mi := &file_main_proto_msgTypes[181] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9593,7 +9697,7 @@ func (x *PauseGameRsp) String() string { func (*PauseGameRsp) ProtoMessage() {} func (x *PauseGameRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[179] + mi := &file_main_proto_msgTypes[181] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9606,7 +9710,7 @@ func (x *PauseGameRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use PauseGameRsp.ProtoReflect.Descriptor instead. func (*PauseGameRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{179} + return file_main_proto_rawDescGZIP(), []int{181} } type PlayGameReq struct { @@ -9618,7 +9722,7 @@ type PlayGameReq struct { func (x *PlayGameReq) Reset() { *x = PlayGameReq{} - mi := &file_main_proto_msgTypes[180] + mi := &file_main_proto_msgTypes[182] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9630,7 +9734,7 @@ func (x *PlayGameReq) String() string { func (*PlayGameReq) ProtoMessage() {} func (x *PlayGameReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[180] + mi := &file_main_proto_msgTypes[182] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9643,7 +9747,7 @@ func (x *PlayGameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use PlayGameReq.ProtoReflect.Descriptor instead. func (*PlayGameReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{180} + return file_main_proto_rawDescGZIP(), []int{182} } func (x *PlayGameReq) GetID() int32 { @@ -9661,7 +9765,7 @@ type PlayGameRsp struct { func (x *PlayGameRsp) Reset() { *x = PlayGameRsp{} - mi := &file_main_proto_msgTypes[181] + mi := &file_main_proto_msgTypes[183] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9673,7 +9777,7 @@ func (x *PlayGameRsp) String() string { func (*PlayGameRsp) ProtoMessage() {} func (x *PlayGameRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[181] + mi := &file_main_proto_msgTypes[183] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9686,7 +9790,7 @@ func (x *PlayGameRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use PlayGameRsp.ProtoReflect.Descriptor instead. func (*PlayGameRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{181} + return file_main_proto_rawDescGZIP(), []int{183} } type FinishGameReq struct { @@ -9698,7 +9802,7 @@ type FinishGameReq struct { func (x *FinishGameReq) Reset() { *x = FinishGameReq{} - mi := &file_main_proto_msgTypes[182] + mi := &file_main_proto_msgTypes[184] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9710,7 +9814,7 @@ func (x *FinishGameReq) String() string { func (*FinishGameReq) ProtoMessage() {} func (x *FinishGameReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[182] + mi := &file_main_proto_msgTypes[184] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9723,7 +9827,7 @@ func (x *FinishGameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use FinishGameReq.ProtoReflect.Descriptor instead. func (*FinishGameReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{182} + return file_main_proto_rawDescGZIP(), []int{184} } func (x *FinishGameReq) GetID() int32 { @@ -9741,7 +9845,7 @@ type FinishGameRsp struct { func (x *FinishGameRsp) Reset() { *x = FinishGameRsp{} - mi := &file_main_proto_msgTypes[183] + mi := &file_main_proto_msgTypes[185] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9753,7 +9857,7 @@ func (x *FinishGameRsp) String() string { func (*FinishGameRsp) ProtoMessage() {} func (x *FinishGameRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[183] + mi := &file_main_proto_msgTypes[185] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9766,7 +9870,7 @@ func (x *FinishGameRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use FinishGameRsp.ProtoReflect.Descriptor instead. func (*FinishGameRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{183} + return file_main_proto_rawDescGZIP(), []int{185} } type ResetGameReq struct { @@ -9778,7 +9882,7 @@ type ResetGameReq struct { func (x *ResetGameReq) Reset() { *x = ResetGameReq{} - mi := &file_main_proto_msgTypes[184] + mi := &file_main_proto_msgTypes[186] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9790,7 +9894,7 @@ func (x *ResetGameReq) String() string { func (*ResetGameReq) ProtoMessage() {} func (x *ResetGameReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[184] + mi := &file_main_proto_msgTypes[186] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9803,7 +9907,7 @@ func (x *ResetGameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ResetGameReq.ProtoReflect.Descriptor instead. func (*ResetGameReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{184} + return file_main_proto_rawDescGZIP(), []int{186} } func (x *ResetGameReq) GetID() int32 { @@ -9821,7 +9925,7 @@ type ResetGameRsp struct { func (x *ResetGameRsp) Reset() { *x = ResetGameRsp{} - mi := &file_main_proto_msgTypes[185] + mi := &file_main_proto_msgTypes[187] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9833,7 +9937,7 @@ func (x *ResetGameRsp) String() string { func (*ResetGameRsp) ProtoMessage() {} func (x *ResetGameRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[185] + mi := &file_main_proto_msgTypes[187] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9846,7 +9950,7 @@ func (x *ResetGameRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use ResetGameRsp.ProtoReflect.Descriptor instead. func (*ResetGameRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{185} + return file_main_proto_rawDescGZIP(), []int{187} } type DeleteGameReq struct { @@ -9858,7 +9962,7 @@ type DeleteGameReq struct { func (x *DeleteGameReq) Reset() { *x = DeleteGameReq{} - mi := &file_main_proto_msgTypes[186] + mi := &file_main_proto_msgTypes[188] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9870,7 +9974,7 @@ func (x *DeleteGameReq) String() string { func (*DeleteGameReq) ProtoMessage() {} func (x *DeleteGameReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[186] + mi := &file_main_proto_msgTypes[188] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9883,7 +9987,7 @@ func (x *DeleteGameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteGameReq.ProtoReflect.Descriptor instead. func (*DeleteGameReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{186} + return file_main_proto_rawDescGZIP(), []int{188} } func (x *DeleteGameReq) GetID() int32 { @@ -9901,7 +10005,7 @@ type DeleteGameRsp struct { func (x *DeleteGameRsp) Reset() { *x = DeleteGameRsp{} - mi := &file_main_proto_msgTypes[187] + mi := &file_main_proto_msgTypes[189] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9913,7 +10017,7 @@ func (x *DeleteGameRsp) String() string { func (*DeleteGameRsp) ProtoMessage() {} func (x *DeleteGameRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[187] + mi := &file_main_proto_msgTypes[189] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9926,7 +10030,7 @@ func (x *DeleteGameRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteGameRsp.ProtoReflect.Descriptor instead. func (*DeleteGameRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{187} + return file_main_proto_rawDescGZIP(), []int{189} } type AddTeamReq struct { @@ -9941,7 +10045,7 @@ type AddTeamReq struct { func (x *AddTeamReq) Reset() { *x = AddTeamReq{} - mi := &file_main_proto_msgTypes[188] + mi := &file_main_proto_msgTypes[190] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9953,7 +10057,7 @@ func (x *AddTeamReq) String() string { func (*AddTeamReq) ProtoMessage() {} func (x *AddTeamReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[188] + mi := &file_main_proto_msgTypes[190] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9966,7 +10070,7 @@ func (x *AddTeamReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AddTeamReq.ProtoReflect.Descriptor instead. func (*AddTeamReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{188} + return file_main_proto_rawDescGZIP(), []int{190} } func (x *AddTeamReq) GetGameID() int32 { @@ -10007,7 +10111,7 @@ type AddTeamRsp struct { func (x *AddTeamRsp) Reset() { *x = AddTeamRsp{} - mi := &file_main_proto_msgTypes[189] + mi := &file_main_proto_msgTypes[191] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10019,7 +10123,7 @@ func (x *AddTeamRsp) String() string { func (*AddTeamRsp) ProtoMessage() {} func (x *AddTeamRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[189] + mi := &file_main_proto_msgTypes[191] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10032,7 +10136,7 @@ func (x *AddTeamRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use AddTeamRsp.ProtoReflect.Descriptor instead. func (*AddTeamRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{189} + return file_main_proto_rawDescGZIP(), []int{191} } func (x *AddTeamRsp) GetID() string { @@ -10059,7 +10163,7 @@ type UpdateTeamReq struct { func (x *UpdateTeamReq) Reset() { *x = UpdateTeamReq{} - mi := &file_main_proto_msgTypes[190] + mi := &file_main_proto_msgTypes[192] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10071,7 +10175,7 @@ func (x *UpdateTeamReq) String() string { func (*UpdateTeamReq) ProtoMessage() {} func (x *UpdateTeamReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[190] + mi := &file_main_proto_msgTypes[192] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10084,7 +10188,7 @@ func (x *UpdateTeamReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateTeamReq.ProtoReflect.Descriptor instead. func (*UpdateTeamReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{190} + return file_main_proto_rawDescGZIP(), []int{192} } func (x *UpdateTeamReq) GetID() string { @@ -10109,7 +10213,7 @@ type UpdateTeamRsp struct { func (x *UpdateTeamRsp) Reset() { *x = UpdateTeamRsp{} - mi := &file_main_proto_msgTypes[191] + mi := &file_main_proto_msgTypes[193] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10121,7 +10225,7 @@ func (x *UpdateTeamRsp) String() string { func (*UpdateTeamRsp) ProtoMessage() {} func (x *UpdateTeamRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[191] + mi := &file_main_proto_msgTypes[193] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10134,7 +10238,7 @@ func (x *UpdateTeamRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateTeamRsp.ProtoReflect.Descriptor instead. func (*UpdateTeamRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{191} + return file_main_proto_rawDescGZIP(), []int{193} } type DeleteTeamReq struct { @@ -10146,7 +10250,7 @@ type DeleteTeamReq struct { func (x *DeleteTeamReq) Reset() { *x = DeleteTeamReq{} - mi := &file_main_proto_msgTypes[192] + mi := &file_main_proto_msgTypes[194] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10158,7 +10262,7 @@ func (x *DeleteTeamReq) String() string { func (*DeleteTeamReq) ProtoMessage() {} func (x *DeleteTeamReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[192] + mi := &file_main_proto_msgTypes[194] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10171,7 +10275,7 @@ func (x *DeleteTeamReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteTeamReq.ProtoReflect.Descriptor instead. func (*DeleteTeamReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{192} + return file_main_proto_rawDescGZIP(), []int{194} } func (x *DeleteTeamReq) GetID() string { @@ -10189,7 +10293,7 @@ type DeleteTeamRsp struct { func (x *DeleteTeamRsp) Reset() { *x = DeleteTeamRsp{} - mi := &file_main_proto_msgTypes[193] + mi := &file_main_proto_msgTypes[195] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10201,7 +10305,7 @@ func (x *DeleteTeamRsp) String() string { func (*DeleteTeamRsp) ProtoMessage() {} func (x *DeleteTeamRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[193] + mi := &file_main_proto_msgTypes[195] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10214,7 +10318,7 @@ func (x *DeleteTeamRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteTeamRsp.ProtoReflect.Descriptor instead. func (*DeleteTeamRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{193} + return file_main_proto_rawDescGZIP(), []int{195} } type GiveTeamApplicationsReq struct { @@ -10227,7 +10331,7 @@ type GiveTeamApplicationsReq struct { func (x *GiveTeamApplicationsReq) Reset() { *x = GiveTeamApplicationsReq{} - mi := &file_main_proto_msgTypes[194] + mi := &file_main_proto_msgTypes[196] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10239,7 +10343,7 @@ func (x *GiveTeamApplicationsReq) String() string { func (*GiveTeamApplicationsReq) ProtoMessage() {} func (x *GiveTeamApplicationsReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[194] + mi := &file_main_proto_msgTypes[196] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10252,7 +10356,7 @@ func (x *GiveTeamApplicationsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GiveTeamApplicationsReq.ProtoReflect.Descriptor instead. func (*GiveTeamApplicationsReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{194} + return file_main_proto_rawDescGZIP(), []int{196} } func (x *GiveTeamApplicationsReq) GetID() string { @@ -10277,7 +10381,7 @@ type GiveTeamApplicationsRsp struct { func (x *GiveTeamApplicationsRsp) Reset() { *x = GiveTeamApplicationsRsp{} - mi := &file_main_proto_msgTypes[195] + mi := &file_main_proto_msgTypes[197] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10289,7 +10393,7 @@ func (x *GiveTeamApplicationsRsp) String() string { func (*GiveTeamApplicationsRsp) ProtoMessage() {} func (x *GiveTeamApplicationsRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[195] + mi := &file_main_proto_msgTypes[197] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10302,7 +10406,7 @@ func (x *GiveTeamApplicationsRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GiveTeamApplicationsRsp.ProtoReflect.Descriptor instead. func (*GiveTeamApplicationsRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{195} + return file_main_proto_rawDescGZIP(), []int{197} } type GetTeamStoryReq struct { @@ -10315,7 +10419,7 @@ type GetTeamStoryReq struct { func (x *GetTeamStoryReq) Reset() { *x = GetTeamStoryReq{} - mi := &file_main_proto_msgTypes[196] + mi := &file_main_proto_msgTypes[198] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10327,7 +10431,7 @@ func (x *GetTeamStoryReq) String() string { func (*GetTeamStoryReq) ProtoMessage() {} func (x *GetTeamStoryReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[196] + mi := &file_main_proto_msgTypes[198] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10340,7 +10444,7 @@ func (x *GetTeamStoryReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTeamStoryReq.ProtoReflect.Descriptor instead. func (*GetTeamStoryReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{196} + return file_main_proto_rawDescGZIP(), []int{198} } func (x *GetTeamStoryReq) GetID() string { @@ -10368,7 +10472,7 @@ type GetTeamStoryRsp struct { func (x *GetTeamStoryRsp) Reset() { *x = GetTeamStoryRsp{} - mi := &file_main_proto_msgTypes[197] + mi := &file_main_proto_msgTypes[199] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10380,7 +10484,7 @@ func (x *GetTeamStoryRsp) String() string { func (*GetTeamStoryRsp) ProtoMessage() {} func (x *GetTeamStoryRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[197] + mi := &file_main_proto_msgTypes[199] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10393,7 +10497,7 @@ func (x *GetTeamStoryRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTeamStoryRsp.ProtoReflect.Descriptor instead. func (*GetTeamStoryRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{197} + return file_main_proto_rawDescGZIP(), []int{199} } func (x *GetTeamStoryRsp) GetStory() *Story { @@ -10427,7 +10531,7 @@ type TeamAction struct { func (x *TeamAction) Reset() { *x = TeamAction{} - mi := &file_main_proto_msgTypes[198] + mi := &file_main_proto_msgTypes[200] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10439,7 +10543,7 @@ func (x *TeamAction) String() string { func (*TeamAction) ProtoMessage() {} func (x *TeamAction) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[198] + mi := &file_main_proto_msgTypes[200] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10452,7 +10556,7 @@ func (x *TeamAction) ProtoReflect() protoreflect.Message { // Deprecated: Use TeamAction.ProtoReflect.Descriptor instead. func (*TeamAction) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{198} + return file_main_proto_rawDescGZIP(), []int{200} } func (x *TeamAction) GetCode() string { @@ -10480,7 +10584,7 @@ type AddTeamActionReq struct { func (x *AddTeamActionReq) Reset() { *x = AddTeamActionReq{} - mi := &file_main_proto_msgTypes[199] + mi := &file_main_proto_msgTypes[201] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10492,7 +10596,7 @@ func (x *AddTeamActionReq) String() string { func (*AddTeamActionReq) ProtoMessage() {} func (x *AddTeamActionReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[199] + mi := &file_main_proto_msgTypes[201] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10505,7 +10609,7 @@ func (x *AddTeamActionReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AddTeamActionReq.ProtoReflect.Descriptor instead. func (*AddTeamActionReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{199} + return file_main_proto_rawDescGZIP(), []int{201} } func (x *AddTeamActionReq) GetID() string { @@ -10537,7 +10641,7 @@ type AddTeamActionRsp struct { func (x *AddTeamActionRsp) Reset() { *x = AddTeamActionRsp{} - mi := &file_main_proto_msgTypes[200] + mi := &file_main_proto_msgTypes[202] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10549,7 +10653,7 @@ func (x *AddTeamActionRsp) String() string { func (*AddTeamActionRsp) ProtoMessage() {} func (x *AddTeamActionRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[200] + mi := &file_main_proto_msgTypes[202] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10562,7 +10666,7 @@ func (x *AddTeamActionRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use AddTeamActionRsp.ProtoReflect.Descriptor instead. func (*AddTeamActionRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{200} + return file_main_proto_rawDescGZIP(), []int{202} } type DeleteLastTeamActionReq struct { @@ -10574,7 +10678,7 @@ type DeleteLastTeamActionReq struct { func (x *DeleteLastTeamActionReq) Reset() { *x = DeleteLastTeamActionReq{} - mi := &file_main_proto_msgTypes[201] + mi := &file_main_proto_msgTypes[203] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10586,7 +10690,7 @@ func (x *DeleteLastTeamActionReq) String() string { func (*DeleteLastTeamActionReq) ProtoMessage() {} func (x *DeleteLastTeamActionReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[201] + mi := &file_main_proto_msgTypes[203] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10599,7 +10703,7 @@ func (x *DeleteLastTeamActionReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteLastTeamActionReq.ProtoReflect.Descriptor instead. func (*DeleteLastTeamActionReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{201} + return file_main_proto_rawDescGZIP(), []int{203} } func (x *DeleteLastTeamActionReq) GetID() string { @@ -10617,7 +10721,7 @@ type DeleteLastTeamActionRsp struct { func (x *DeleteLastTeamActionRsp) Reset() { *x = DeleteLastTeamActionRsp{} - mi := &file_main_proto_msgTypes[202] + mi := &file_main_proto_msgTypes[204] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10629,7 +10733,7 @@ func (x *DeleteLastTeamActionRsp) String() string { func (*DeleteLastTeamActionRsp) ProtoMessage() {} func (x *DeleteLastTeamActionRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[202] + mi := &file_main_proto_msgTypes[204] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10642,7 +10746,7 @@ func (x *DeleteLastTeamActionRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteLastTeamActionRsp.ProtoReflect.Descriptor instead. func (*DeleteLastTeamActionRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{202} + return file_main_proto_rawDescGZIP(), []int{204} } type GetTeamAnswersReq struct { @@ -10655,7 +10759,7 @@ type GetTeamAnswersReq struct { func (x *GetTeamAnswersReq) Reset() { *x = GetTeamAnswersReq{} - mi := &file_main_proto_msgTypes[203] + mi := &file_main_proto_msgTypes[205] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10667,7 +10771,7 @@ func (x *GetTeamAnswersReq) String() string { func (*GetTeamAnswersReq) ProtoMessage() {} func (x *GetTeamAnswersReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[203] + mi := &file_main_proto_msgTypes[205] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10680,7 +10784,7 @@ func (x *GetTeamAnswersReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTeamAnswersReq.ProtoReflect.Descriptor instead. func (*GetTeamAnswersReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{203} + return file_main_proto_rawDescGZIP(), []int{205} } func (x *GetTeamAnswersReq) GetID() string { @@ -10706,7 +10810,7 @@ type GetTeamAnswersRsp struct { func (x *GetTeamAnswersRsp) Reset() { *x = GetTeamAnswersRsp{} - mi := &file_main_proto_msgTypes[204] + mi := &file_main_proto_msgTypes[206] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10718,7 +10822,7 @@ func (x *GetTeamAnswersRsp) String() string { func (*GetTeamAnswersRsp) ProtoMessage() {} func (x *GetTeamAnswersRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[204] + mi := &file_main_proto_msgTypes[206] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10731,7 +10835,7 @@ func (x *GetTeamAnswersRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTeamAnswersRsp.ProtoReflect.Descriptor instead. func (*GetTeamAnswersRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{204} + return file_main_proto_rawDescGZIP(), []int{206} } func (x *GetTeamAnswersRsp) GetAnswers() []*Answer { @@ -10752,7 +10856,7 @@ type SubmitTeamAnswersReq struct { func (x *SubmitTeamAnswersReq) Reset() { *x = SubmitTeamAnswersReq{} - mi := &file_main_proto_msgTypes[205] + mi := &file_main_proto_msgTypes[207] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10764,7 +10868,7 @@ func (x *SubmitTeamAnswersReq) String() string { func (*SubmitTeamAnswersReq) ProtoMessage() {} func (x *SubmitTeamAnswersReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[205] + mi := &file_main_proto_msgTypes[207] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10777,7 +10881,7 @@ func (x *SubmitTeamAnswersReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SubmitTeamAnswersReq.ProtoReflect.Descriptor instead. func (*SubmitTeamAnswersReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{205} + return file_main_proto_rawDescGZIP(), []int{207} } func (x *SubmitTeamAnswersReq) GetID() string { @@ -10809,7 +10913,7 @@ type SubmitTeamAnswersRsp struct { func (x *SubmitTeamAnswersRsp) Reset() { *x = SubmitTeamAnswersRsp{} - mi := &file_main_proto_msgTypes[206] + mi := &file_main_proto_msgTypes[208] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10821,7 +10925,7 @@ func (x *SubmitTeamAnswersRsp) String() string { func (*SubmitTeamAnswersRsp) ProtoMessage() {} func (x *SubmitTeamAnswersRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[206] + mi := &file_main_proto_msgTypes[208] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10834,7 +10938,7 @@ func (x *SubmitTeamAnswersRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use SubmitTeamAnswersRsp.ProtoReflect.Descriptor instead. func (*SubmitTeamAnswersRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{206} + return file_main_proto_rawDescGZIP(), []int{208} } type SetTeamAnswerScoreReq struct { @@ -10849,7 +10953,7 @@ type SetTeamAnswerScoreReq struct { func (x *SetTeamAnswerScoreReq) Reset() { *x = SetTeamAnswerScoreReq{} - mi := &file_main_proto_msgTypes[207] + mi := &file_main_proto_msgTypes[209] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10861,7 +10965,7 @@ func (x *SetTeamAnswerScoreReq) String() string { func (*SetTeamAnswerScoreReq) ProtoMessage() {} func (x *SetTeamAnswerScoreReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[207] + mi := &file_main_proto_msgTypes[209] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10874,7 +10978,7 @@ func (x *SetTeamAnswerScoreReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SetTeamAnswerScoreReq.ProtoReflect.Descriptor instead. func (*SetTeamAnswerScoreReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{207} + return file_main_proto_rawDescGZIP(), []int{209} } func (x *SetTeamAnswerScoreReq) GetID() string { @@ -10906,7 +11010,7 @@ type SetTeamAnswerScoreRsp struct { func (x *SetTeamAnswerScoreRsp) Reset() { *x = SetTeamAnswerScoreRsp{} - mi := &file_main_proto_msgTypes[208] + mi := &file_main_proto_msgTypes[210] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10918,7 +11022,7 @@ func (x *SetTeamAnswerScoreRsp) String() string { func (*SetTeamAnswerScoreRsp) ProtoMessage() {} func (x *SetTeamAnswerScoreRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[208] + mi := &file_main_proto_msgTypes[210] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10931,7 +11035,7 @@ func (x *SetTeamAnswerScoreRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use SetTeamAnswerScoreRsp.ProtoReflect.Descriptor instead. func (*SetTeamAnswerScoreRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{208} + return file_main_proto_rawDescGZIP(), []int{210} } type UpdateScenarioBackgroundReq struct { @@ -10944,7 +11048,7 @@ type UpdateScenarioBackgroundReq struct { func (x *UpdateScenarioBackgroundReq) Reset() { *x = UpdateScenarioBackgroundReq{} - mi := &file_main_proto_msgTypes[209] + mi := &file_main_proto_msgTypes[211] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10956,7 +11060,7 @@ func (x *UpdateScenarioBackgroundReq) String() string { func (*UpdateScenarioBackgroundReq) ProtoMessage() {} func (x *UpdateScenarioBackgroundReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[209] + mi := &file_main_proto_msgTypes[211] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10969,7 +11073,7 @@ func (x *UpdateScenarioBackgroundReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScenarioBackgroundReq.ProtoReflect.Descriptor instead. func (*UpdateScenarioBackgroundReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{209} + return file_main_proto_rawDescGZIP(), []int{211} } func (x *UpdateScenarioBackgroundReq) GetID() int32 { @@ -10994,7 +11098,7 @@ type UpdateScenarioBackgroundRsp struct { func (x *UpdateScenarioBackgroundRsp) Reset() { *x = UpdateScenarioBackgroundRsp{} - mi := &file_main_proto_msgTypes[210] + mi := &file_main_proto_msgTypes[212] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11006,7 +11110,7 @@ func (x *UpdateScenarioBackgroundRsp) String() string { func (*UpdateScenarioBackgroundRsp) ProtoMessage() {} func (x *UpdateScenarioBackgroundRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[210] + mi := &file_main_proto_msgTypes[212] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11019,7 +11123,7 @@ func (x *UpdateScenarioBackgroundRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScenarioBackgroundRsp.ProtoReflect.Descriptor instead. func (*UpdateScenarioBackgroundRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{210} + return file_main_proto_rawDescGZIP(), []int{212} } type IssueGameTicketsReq struct { @@ -11032,7 +11136,7 @@ type IssueGameTicketsReq struct { func (x *IssueGameTicketsReq) Reset() { *x = IssueGameTicketsReq{} - mi := &file_main_proto_msgTypes[211] + mi := &file_main_proto_msgTypes[213] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11044,7 +11148,7 @@ func (x *IssueGameTicketsReq) String() string { func (*IssueGameTicketsReq) ProtoMessage() {} func (x *IssueGameTicketsReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[211] + mi := &file_main_proto_msgTypes[213] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11057,7 +11161,7 @@ func (x *IssueGameTicketsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use IssueGameTicketsReq.ProtoReflect.Descriptor instead. func (*IssueGameTicketsReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{211} + return file_main_proto_rawDescGZIP(), []int{213} } func (x *IssueGameTicketsReq) GetGameID() int32 { @@ -11083,7 +11187,7 @@ type IssueGameTicketsRsp struct { func (x *IssueGameTicketsRsp) Reset() { *x = IssueGameTicketsRsp{} - mi := &file_main_proto_msgTypes[212] + mi := &file_main_proto_msgTypes[214] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11095,7 +11199,7 @@ func (x *IssueGameTicketsRsp) String() string { func (*IssueGameTicketsRsp) ProtoMessage() {} func (x *IssueGameTicketsRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[212] + mi := &file_main_proto_msgTypes[214] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11108,7 +11212,7 @@ func (x *IssueGameTicketsRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use IssueGameTicketsRsp.ProtoReflect.Descriptor instead. func (*IssueGameTicketsRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{212} + return file_main_proto_rawDescGZIP(), []int{214} } func (x *IssueGameTicketsRsp) GetTickets() []*Ticket { @@ -11128,7 +11232,7 @@ type Ticket struct { func (x *Ticket) Reset() { *x = Ticket{} - mi := &file_main_proto_msgTypes[213] + mi := &file_main_proto_msgTypes[215] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11140,7 +11244,7 @@ func (x *Ticket) String() string { func (*Ticket) ProtoMessage() {} func (x *Ticket) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[213] + mi := &file_main_proto_msgTypes[215] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11153,7 +11257,7 @@ func (x *Ticket) ProtoReflect() protoreflect.Message { // Deprecated: Use Ticket.ProtoReflect.Descriptor instead. func (*Ticket) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{213} + return file_main_proto_rawDescGZIP(), []int{215} } func (x *Ticket) GetID() int32 { @@ -11179,7 +11283,7 @@ type GetTicketReq struct { func (x *GetTicketReq) Reset() { *x = GetTicketReq{} - mi := &file_main_proto_msgTypes[214] + mi := &file_main_proto_msgTypes[216] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11191,7 +11295,7 @@ func (x *GetTicketReq) String() string { func (*GetTicketReq) ProtoMessage() {} func (x *GetTicketReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[214] + mi := &file_main_proto_msgTypes[216] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11204,7 +11308,7 @@ func (x *GetTicketReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTicketReq.ProtoReflect.Descriptor instead. func (*GetTicketReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{214} + return file_main_proto_rawDescGZIP(), []int{216} } func (x *GetTicketReq) GetToken() string { @@ -11223,7 +11327,7 @@ type GetTicketRsp struct { func (x *GetTicketRsp) Reset() { *x = GetTicketRsp{} - mi := &file_main_proto_msgTypes[215] + mi := &file_main_proto_msgTypes[217] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11235,7 +11339,7 @@ func (x *GetTicketRsp) String() string { func (*GetTicketRsp) ProtoMessage() {} func (x *GetTicketRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[215] + mi := &file_main_proto_msgTypes[217] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11248,7 +11352,7 @@ func (x *GetTicketRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTicketRsp.ProtoReflect.Descriptor instead. func (*GetTicketRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{215} + return file_main_proto_rawDescGZIP(), []int{217} } func (x *GetTicketRsp) GetTicket() *TicketPage { @@ -11267,7 +11371,7 @@ type AcceptTicketReq struct { func (x *AcceptTicketReq) Reset() { *x = AcceptTicketReq{} - mi := &file_main_proto_msgTypes[216] + mi := &file_main_proto_msgTypes[218] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11279,7 +11383,7 @@ func (x *AcceptTicketReq) String() string { func (*AcceptTicketReq) ProtoMessage() {} func (x *AcceptTicketReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[216] + mi := &file_main_proto_msgTypes[218] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11292,7 +11396,7 @@ func (x *AcceptTicketReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AcceptTicketReq.ProtoReflect.Descriptor instead. func (*AcceptTicketReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{216} + return file_main_proto_rawDescGZIP(), []int{218} } func (x *AcceptTicketReq) GetToken() string { @@ -11311,7 +11415,7 @@ type AcceptTicketRsp struct { func (x *AcceptTicketRsp) Reset() { *x = AcceptTicketRsp{} - mi := &file_main_proto_msgTypes[217] + mi := &file_main_proto_msgTypes[219] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11323,7 +11427,7 @@ func (x *AcceptTicketRsp) String() string { func (*AcceptTicketRsp) ProtoMessage() {} func (x *AcceptTicketRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[217] + mi := &file_main_proto_msgTypes[219] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11336,7 +11440,7 @@ func (x *AcceptTicketRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use AcceptTicketRsp.ProtoReflect.Descriptor instead. func (*AcceptTicketRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{217} + return file_main_proto_rawDescGZIP(), []int{219} } func (x *AcceptTicketRsp) GetTicket() *TicketPage { @@ -11362,7 +11466,7 @@ type TicketPage struct { func (x *TicketPage) Reset() { *x = TicketPage{} - mi := &file_main_proto_msgTypes[218] + mi := &file_main_proto_msgTypes[220] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11374,7 +11478,7 @@ func (x *TicketPage) String() string { func (*TicketPage) ProtoMessage() {} func (x *TicketPage) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[218] + mi := &file_main_proto_msgTypes[220] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11387,7 +11491,7 @@ func (x *TicketPage) ProtoReflect() protoreflect.Message { // Deprecated: Use TicketPage.ProtoReflect.Descriptor instead. func (*TicketPage) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{218} + return file_main_proto_rawDescGZIP(), []int{220} } func (x *TicketPage) GetID() int32 { @@ -11469,7 +11573,7 @@ type DeveloperTask struct { func (x *DeveloperTask) Reset() { *x = DeveloperTask{} - mi := &file_main_proto_msgTypes[219] + mi := &file_main_proto_msgTypes[221] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11481,7 +11585,7 @@ func (x *DeveloperTask) String() string { func (*DeveloperTask) ProtoMessage() {} func (x *DeveloperTask) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[219] + mi := &file_main_proto_msgTypes[221] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11494,7 +11598,7 @@ func (x *DeveloperTask) ProtoReflect() protoreflect.Message { // Deprecated: Use DeveloperTask.ProtoReflect.Descriptor instead. func (*DeveloperTask) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{219} + return file_main_proto_rawDescGZIP(), []int{221} } func (x *DeveloperTask) GetID() int32 { @@ -11584,7 +11688,7 @@ type TaskAssignee struct { func (x *TaskAssignee) Reset() { *x = TaskAssignee{} - mi := &file_main_proto_msgTypes[220] + mi := &file_main_proto_msgTypes[222] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11596,7 +11700,7 @@ func (x *TaskAssignee) String() string { func (*TaskAssignee) ProtoMessage() {} func (x *TaskAssignee) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[220] + mi := &file_main_proto_msgTypes[222] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11609,7 +11713,7 @@ func (x *TaskAssignee) ProtoReflect() protoreflect.Message { // Deprecated: Use TaskAssignee.ProtoReflect.Descriptor instead. func (*TaskAssignee) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{220} + return file_main_proto_rawDescGZIP(), []int{222} } func (x *TaskAssignee) GetID() int32 { @@ -11634,7 +11738,7 @@ type GetTasksReq struct { func (x *GetTasksReq) Reset() { *x = GetTasksReq{} - mi := &file_main_proto_msgTypes[221] + mi := &file_main_proto_msgTypes[223] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11646,7 +11750,7 @@ func (x *GetTasksReq) String() string { func (*GetTasksReq) ProtoMessage() {} func (x *GetTasksReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[221] + mi := &file_main_proto_msgTypes[223] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11659,7 +11763,7 @@ func (x *GetTasksReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTasksReq.ProtoReflect.Descriptor instead. func (*GetTasksReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{221} + return file_main_proto_rawDescGZIP(), []int{223} } type GetTasksRsp struct { @@ -11671,7 +11775,7 @@ type GetTasksRsp struct { func (x *GetTasksRsp) Reset() { *x = GetTasksRsp{} - mi := &file_main_proto_msgTypes[222] + mi := &file_main_proto_msgTypes[224] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11683,7 +11787,7 @@ func (x *GetTasksRsp) String() string { func (*GetTasksRsp) ProtoMessage() {} func (x *GetTasksRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[222] + mi := &file_main_proto_msgTypes[224] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11696,7 +11800,7 @@ func (x *GetTasksRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTasksRsp.ProtoReflect.Descriptor instead. func (*GetTasksRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{222} + return file_main_proto_rawDescGZIP(), []int{224} } func (x *GetTasksRsp) GetTasks() []*DeveloperTask { @@ -11714,7 +11818,7 @@ type GetTaskAssigneesReq struct { func (x *GetTaskAssigneesReq) Reset() { *x = GetTaskAssigneesReq{} - mi := &file_main_proto_msgTypes[223] + mi := &file_main_proto_msgTypes[225] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11726,7 +11830,7 @@ func (x *GetTaskAssigneesReq) String() string { func (*GetTaskAssigneesReq) ProtoMessage() {} func (x *GetTaskAssigneesReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[223] + mi := &file_main_proto_msgTypes[225] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11739,7 +11843,7 @@ func (x *GetTaskAssigneesReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTaskAssigneesReq.ProtoReflect.Descriptor instead. func (*GetTaskAssigneesReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{223} + return file_main_proto_rawDescGZIP(), []int{225} } type GetTaskAssigneesRsp struct { @@ -11751,7 +11855,7 @@ type GetTaskAssigneesRsp struct { func (x *GetTaskAssigneesRsp) Reset() { *x = GetTaskAssigneesRsp{} - mi := &file_main_proto_msgTypes[224] + mi := &file_main_proto_msgTypes[226] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11763,7 +11867,7 @@ func (x *GetTaskAssigneesRsp) String() string { func (*GetTaskAssigneesRsp) ProtoMessage() {} func (x *GetTaskAssigneesRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[224] + mi := &file_main_proto_msgTypes[226] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11776,7 +11880,7 @@ func (x *GetTaskAssigneesRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTaskAssigneesRsp.ProtoReflect.Descriptor instead. func (*GetTaskAssigneesRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{224} + return file_main_proto_rawDescGZIP(), []int{226} } func (x *GetTaskAssigneesRsp) GetAssignees() []*TaskAssignee { @@ -11799,7 +11903,7 @@ type CreateTaskReq struct { func (x *CreateTaskReq) Reset() { *x = CreateTaskReq{} - mi := &file_main_proto_msgTypes[225] + mi := &file_main_proto_msgTypes[227] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11811,7 +11915,7 @@ func (x *CreateTaskReq) String() string { func (*CreateTaskReq) ProtoMessage() {} func (x *CreateTaskReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[225] + mi := &file_main_proto_msgTypes[227] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11824,7 +11928,7 @@ func (x *CreateTaskReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateTaskReq.ProtoReflect.Descriptor instead. func (*CreateTaskReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{225} + return file_main_proto_rawDescGZIP(), []int{227} } func (x *CreateTaskReq) GetTitle() string { @@ -11877,7 +11981,7 @@ type UpdateTaskReq struct { func (x *UpdateTaskReq) Reset() { *x = UpdateTaskReq{} - mi := &file_main_proto_msgTypes[226] + mi := &file_main_proto_msgTypes[228] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11889,7 +11993,7 @@ func (x *UpdateTaskReq) String() string { func (*UpdateTaskReq) ProtoMessage() {} func (x *UpdateTaskReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[226] + mi := &file_main_proto_msgTypes[228] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11902,7 +12006,7 @@ func (x *UpdateTaskReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateTaskReq.ProtoReflect.Descriptor instead. func (*UpdateTaskReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{226} + return file_main_proto_rawDescGZIP(), []int{228} } func (x *UpdateTaskReq) GetID() int32 { @@ -11965,7 +12069,7 @@ type SetTaskStatusReq struct { func (x *SetTaskStatusReq) Reset() { *x = SetTaskStatusReq{} - mi := &file_main_proto_msgTypes[227] + mi := &file_main_proto_msgTypes[229] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11977,7 +12081,7 @@ func (x *SetTaskStatusReq) String() string { func (*SetTaskStatusReq) ProtoMessage() {} func (x *SetTaskStatusReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[227] + mi := &file_main_proto_msgTypes[229] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11990,7 +12094,7 @@ func (x *SetTaskStatusReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SetTaskStatusReq.ProtoReflect.Descriptor instead. func (*SetTaskStatusReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{227} + return file_main_proto_rawDescGZIP(), []int{229} } func (x *SetTaskStatusReq) GetID() int32 { @@ -12024,7 +12128,7 @@ type DeleteTaskReq struct { func (x *DeleteTaskReq) Reset() { *x = DeleteTaskReq{} - mi := &file_main_proto_msgTypes[228] + mi := &file_main_proto_msgTypes[230] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12036,7 +12140,7 @@ func (x *DeleteTaskReq) String() string { func (*DeleteTaskReq) ProtoMessage() {} func (x *DeleteTaskReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[228] + mi := &file_main_proto_msgTypes[230] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12049,7 +12153,7 @@ func (x *DeleteTaskReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteTaskReq.ProtoReflect.Descriptor instead. func (*DeleteTaskReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{228} + return file_main_proto_rawDescGZIP(), []int{230} } func (x *DeleteTaskReq) GetID() int32 { @@ -12075,7 +12179,7 @@ type TaskRsp struct { func (x *TaskRsp) Reset() { *x = TaskRsp{} - mi := &file_main_proto_msgTypes[229] + mi := &file_main_proto_msgTypes[231] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12087,7 +12191,7 @@ func (x *TaskRsp) String() string { func (*TaskRsp) ProtoMessage() {} func (x *TaskRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[229] + mi := &file_main_proto_msgTypes[231] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12100,7 +12204,7 @@ func (x *TaskRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use TaskRsp.ProtoReflect.Descriptor instead. func (*TaskRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{229} + return file_main_proto_rawDescGZIP(), []int{231} } func (x *TaskRsp) GetTask() *DeveloperTask { @@ -12118,7 +12222,7 @@ type DeleteTaskRsp struct { func (x *DeleteTaskRsp) Reset() { *x = DeleteTaskRsp{} - mi := &file_main_proto_msgTypes[230] + mi := &file_main_proto_msgTypes[232] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12130,7 +12234,7 @@ func (x *DeleteTaskRsp) String() string { func (*DeleteTaskRsp) ProtoMessage() {} func (x *DeleteTaskRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[230] + mi := &file_main_proto_msgTypes[232] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12143,7 +12247,7 @@ func (x *DeleteTaskRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteTaskRsp.ProtoReflect.Descriptor instead. func (*DeleteTaskRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{230} + return file_main_proto_rawDescGZIP(), []int{232} } type GameResultsPackageReq struct { @@ -12155,7 +12259,7 @@ type GameResultsPackageReq struct { func (x *GameResultsPackageReq) Reset() { *x = GameResultsPackageReq{} - mi := &file_main_proto_msgTypes[231] + mi := &file_main_proto_msgTypes[233] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12167,7 +12271,7 @@ func (x *GameResultsPackageReq) String() string { func (*GameResultsPackageReq) ProtoMessage() {} func (x *GameResultsPackageReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[231] + mi := &file_main_proto_msgTypes[233] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12180,7 +12284,7 @@ func (x *GameResultsPackageReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GameResultsPackageReq.ProtoReflect.Descriptor instead. func (*GameResultsPackageReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{231} + return file_main_proto_rawDescGZIP(), []int{233} } func (x *GameResultsPackageReq) GetID() int32 { @@ -12200,7 +12304,7 @@ type ApplyGameResultsPackageReq struct { func (x *ApplyGameResultsPackageReq) Reset() { *x = ApplyGameResultsPackageReq{} - mi := &file_main_proto_msgTypes[232] + mi := &file_main_proto_msgTypes[234] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12212,7 +12316,7 @@ func (x *ApplyGameResultsPackageReq) String() string { func (*ApplyGameResultsPackageReq) ProtoMessage() {} func (x *ApplyGameResultsPackageReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[232] + mi := &file_main_proto_msgTypes[234] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12225,7 +12329,7 @@ func (x *ApplyGameResultsPackageReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplyGameResultsPackageReq.ProtoReflect.Descriptor instead. func (*ApplyGameResultsPackageReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{232} + return file_main_proto_rawDescGZIP(), []int{234} } func (x *ApplyGameResultsPackageReq) GetID() int32 { @@ -12253,7 +12357,7 @@ type GameResultsPackageRsp struct { func (x *GameResultsPackageRsp) Reset() { *x = GameResultsPackageRsp{} - mi := &file_main_proto_msgTypes[233] + mi := &file_main_proto_msgTypes[235] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12265,7 +12369,7 @@ func (x *GameResultsPackageRsp) String() string { func (*GameResultsPackageRsp) ProtoMessage() {} func (x *GameResultsPackageRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[233] + mi := &file_main_proto_msgTypes[235] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12278,7 +12382,7 @@ func (x *GameResultsPackageRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GameResultsPackageRsp.ProtoReflect.Descriptor instead. func (*GameResultsPackageRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{233} + return file_main_proto_rawDescGZIP(), []int{235} } func (x *GameResultsPackageRsp) GetGameID() int32 { @@ -12317,7 +12421,7 @@ type DeviceHeartbeatReq struct { func (x *DeviceHeartbeatReq) Reset() { *x = DeviceHeartbeatReq{} - mi := &file_main_proto_msgTypes[234] + mi := &file_main_proto_msgTypes[236] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12329,7 +12433,7 @@ func (x *DeviceHeartbeatReq) String() string { func (*DeviceHeartbeatReq) ProtoMessage() {} func (x *DeviceHeartbeatReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[234] + mi := &file_main_proto_msgTypes[236] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12342,7 +12446,7 @@ func (x *DeviceHeartbeatReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceHeartbeatReq.ProtoReflect.Descriptor instead. func (*DeviceHeartbeatReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{234} + return file_main_proto_rawDescGZIP(), []int{236} } func (x *DeviceHeartbeatReq) GetDeviceID() string { @@ -12404,7 +12508,7 @@ type DeviceHeartbeatRsp struct { func (x *DeviceHeartbeatRsp) Reset() { *x = DeviceHeartbeatRsp{} - mi := &file_main_proto_msgTypes[235] + mi := &file_main_proto_msgTypes[237] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12416,7 +12520,7 @@ func (x *DeviceHeartbeatRsp) String() string { func (*DeviceHeartbeatRsp) ProtoMessage() {} func (x *DeviceHeartbeatRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[235] + mi := &file_main_proto_msgTypes[237] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12429,7 +12533,7 @@ func (x *DeviceHeartbeatRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceHeartbeatRsp.ProtoReflect.Descriptor instead. func (*DeviceHeartbeatRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{235} + return file_main_proto_rawDescGZIP(), []int{237} } func (x *DeviceHeartbeatRsp) GetEnabled() bool { @@ -12455,7 +12559,7 @@ type GetDevicesReq struct { func (x *GetDevicesReq) Reset() { *x = GetDevicesReq{} - mi := &file_main_proto_msgTypes[236] + mi := &file_main_proto_msgTypes[238] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12467,7 +12571,7 @@ func (x *GetDevicesReq) String() string { func (*GetDevicesReq) ProtoMessage() {} func (x *GetDevicesReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[236] + mi := &file_main_proto_msgTypes[238] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12480,7 +12584,7 @@ func (x *GetDevicesReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetDevicesReq.ProtoReflect.Descriptor instead. func (*GetDevicesReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{236} + return file_main_proto_rawDescGZIP(), []int{238} } func (x *GetDevicesReq) GetGameID() int32 { @@ -12501,7 +12605,7 @@ type GetDevicesRsp struct { func (x *GetDevicesRsp) Reset() { *x = GetDevicesRsp{} - mi := &file_main_proto_msgTypes[237] + mi := &file_main_proto_msgTypes[239] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12513,7 +12617,7 @@ func (x *GetDevicesRsp) String() string { func (*GetDevicesRsp) ProtoMessage() {} func (x *GetDevicesRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[237] + mi := &file_main_proto_msgTypes[239] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12526,7 +12630,7 @@ func (x *GetDevicesRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetDevicesRsp.ProtoReflect.Descriptor instead. func (*GetDevicesRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{237} + return file_main_proto_rawDescGZIP(), []int{239} } func (x *GetDevicesRsp) GetDevices() []*VenueDevice { @@ -12563,7 +12667,7 @@ type VenueDevice struct { func (x *VenueDevice) Reset() { *x = VenueDevice{} - mi := &file_main_proto_msgTypes[238] + mi := &file_main_proto_msgTypes[240] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12575,7 +12679,7 @@ func (x *VenueDevice) String() string { func (*VenueDevice) ProtoMessage() {} func (x *VenueDevice) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[238] + mi := &file_main_proto_msgTypes[240] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12588,7 +12692,7 @@ func (x *VenueDevice) ProtoReflect() protoreflect.Message { // Deprecated: Use VenueDevice.ProtoReflect.Descriptor instead. func (*VenueDevice) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{238} + return file_main_proto_rawDescGZIP(), []int{240} } func (x *VenueDevice) GetID() string { @@ -12644,7 +12748,7 @@ type DeviceConnection struct { func (x *DeviceConnection) Reset() { *x = DeviceConnection{} - mi := &file_main_proto_msgTypes[239] + mi := &file_main_proto_msgTypes[241] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12656,7 +12760,7 @@ func (x *DeviceConnection) String() string { func (*DeviceConnection) ProtoMessage() {} func (x *DeviceConnection) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[239] + mi := &file_main_proto_msgTypes[241] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12669,7 +12773,7 @@ func (x *DeviceConnection) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceConnection.ProtoReflect.Descriptor instead. func (*DeviceConnection) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{239} + return file_main_proto_rawDescGZIP(), []int{241} } func (x *DeviceConnection) GetID() string { @@ -12755,7 +12859,7 @@ type VenueWiFi struct { func (x *VenueWiFi) Reset() { *x = VenueWiFi{} - mi := &file_main_proto_msgTypes[240] + mi := &file_main_proto_msgTypes[242] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12767,7 +12871,7 @@ func (x *VenueWiFi) String() string { func (*VenueWiFi) ProtoMessage() {} func (x *VenueWiFi) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[240] + mi := &file_main_proto_msgTypes[242] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12780,7 +12884,7 @@ func (x *VenueWiFi) ProtoReflect() protoreflect.Message { // Deprecated: Use VenueWiFi.ProtoReflect.Descriptor instead. func (*VenueWiFi) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{240} + return file_main_proto_rawDescGZIP(), []int{242} } func (x *VenueWiFi) GetEnabled() bool { @@ -12830,7 +12934,7 @@ type WiFiClient struct { func (x *WiFiClient) Reset() { *x = WiFiClient{} - mi := &file_main_proto_msgTypes[241] + mi := &file_main_proto_msgTypes[243] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12842,7 +12946,7 @@ func (x *WiFiClient) String() string { func (*WiFiClient) ProtoMessage() {} func (x *WiFiClient) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[241] + mi := &file_main_proto_msgTypes[243] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12855,7 +12959,7 @@ func (x *WiFiClient) ProtoReflect() protoreflect.Message { // Deprecated: Use WiFiClient.ProtoReflect.Descriptor instead. func (*WiFiClient) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{241} + return file_main_proto_rawDescGZIP(), []int{243} } func (x *WiFiClient) GetIP() string { @@ -12896,7 +13000,7 @@ type TeamReceiptReq struct { func (x *TeamReceiptReq) Reset() { *x = TeamReceiptReq{} - mi := &file_main_proto_msgTypes[242] + mi := &file_main_proto_msgTypes[244] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12908,7 +13012,7 @@ func (x *TeamReceiptReq) String() string { func (*TeamReceiptReq) ProtoMessage() {} func (x *TeamReceiptReq) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[242] + mi := &file_main_proto_msgTypes[244] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12921,7 +13025,7 @@ func (x *TeamReceiptReq) ProtoReflect() protoreflect.Message { // Deprecated: Use TeamReceiptReq.ProtoReflect.Descriptor instead. func (*TeamReceiptReq) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{242} + return file_main_proto_rawDescGZIP(), []int{244} } func (x *TeamReceiptReq) GetGameID() int32 { @@ -12946,7 +13050,7 @@ type PrintTeamReceiptRsp struct { func (x *PrintTeamReceiptRsp) Reset() { *x = PrintTeamReceiptRsp{} - mi := &file_main_proto_msgTypes[243] + mi := &file_main_proto_msgTypes[245] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12958,7 +13062,7 @@ func (x *PrintTeamReceiptRsp) String() string { func (*PrintTeamReceiptRsp) ProtoMessage() {} func (x *PrintTeamReceiptRsp) ProtoReflect() protoreflect.Message { - mi := &file_main_proto_msgTypes[243] + mi := &file_main_proto_msgTypes[245] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12971,7 +13075,7 @@ func (x *PrintTeamReceiptRsp) ProtoReflect() protoreflect.Message { // Deprecated: Use PrintTeamReceiptRsp.ProtoReflect.Descriptor instead. func (*PrintTeamReceiptRsp) Descriptor() ([]byte, []int) { - return file_main_proto_rawDescGZIP(), []int{243} + return file_main_proto_rawDescGZIP(), []int{245} } var File_main_proto protoreflect.FileDescriptor @@ -13094,6 +13198,13 @@ const file_main_proto_rawDesc = "" + "\bfilename\x18\x03 \x01(\tR\bfilename\x12\x12\n" + "\x04data\x18\x04 \x01(\fR\x04data\"^\n" + "\x16UploadPlaylistTrackRsp\x12D\n" + + "\bplaylist\x18\x01 \x01(\v2(.crabs.evening_detective_server.PlaylistR\bplaylist\"V\n" + + "\x18ReorderPlaylistTracksReq\x12\x1e\n" + + "\n" + + "playlistID\x18\x01 \x01(\x05R\n" + + "playlistID\x12\x1a\n" + + "\btrackIDs\x18\x02 \x03(\x05R\btrackIDs\"`\n" + + "\x18ReorderPlaylistTracksRsp\x12D\n" + "\bplaylist\x18\x01 \x01(\v2(.crabs.evening_detective_server.PlaylistR\bplaylist\"R\n" + "\x16DeletePlaylistTrackReq\x12\x1e\n" + "\n" + @@ -13383,11 +13494,12 @@ const file_main_proto_rawDesc = "" + "\bscreenID\x18\x01 \x01(\tR\bscreenID\x12 \n" + "\vaccessToken\x18\x02 \x01(\tR\vaccessToken\"Y\n" + "\x15AdvanceScreenMusicRsp\x12@\n" + - "\x05state\x18\x01 \x01(\v2*.crabs.evening_detective_server.MusicStateR\x05state\"e\n" + + "\x05state\x18\x01 \x01(\v2*.crabs.evening_detective_server.MusicStateR\x05state\"\x8f\x01\n" + "\rBindScreenReq\x12\x1a\n" + "\bscreenID\x18\x01 \x01(\tR\bscreenID\x12 \n" + "\vaccessToken\x18\x02 \x01(\tR\vaccessToken\x12\x16\n" + - "\x06gameID\x18\x03 \x01(\x05R\x06gameID\"R\n" + + "\x06gameID\x18\x03 \x01(\x05R\x06gameID\x12(\n" + + "\x0finitializeAudio\x18\x04 \x01(\bR\x0finitializeAudio\"R\n" + "\rBindScreenRsp\x12A\n" + "\x05state\x18\x01 \x01(\v2+.crabs.evening_detective_server.ScreenStateR\x05state\"-\n" + "\x0fUnbindScreenReq\x12\x1a\n" + @@ -13849,7 +13961,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\x83\xe4\x01\n" + + "\x15MUSIC_PLAYBACK_PAUSED\x10\x032\x85\xe6\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" + @@ -13941,7 +14053,9 @@ const file_main_proto_rawDesc = "" + "\x0eDeletePlaylist\x121.crabs.evening_detective_server.DeletePlaylistReq\x1a1.crabs.evening_detective_server.DeletePlaylistRsp\"M\x92A/\n" + "\fМузыка\x12\x1fУдалить плейлист\x82\xd3\xe4\x93\x02\x15*\x13/api/playlists/{ID}\x12\xf1\x01\n" + "\x13UploadPlaylistTrack\x126.crabs.evening_detective_server.UploadPlaylistTrackReq\x1a6.crabs.evening_detective_server.UploadPlaylistTrackRsp\"j\x92A:\n" + - "\fМузыка\x12*Загрузить MP3 в плейлист\x82\xd3\xe4\x93\x02':\x01*\"\"/api/playlists/{playlistID}/tracks\x12\xf8\x01\n" + + "\fМузыка\x12*Загрузить MP3 в плейлист\x82\xd3\xe4\x93\x02':\x01*\"\"/api/playlists/{playlistID}/tracks\x12\xff\x01\n" + + "\x15ReorderPlaylistTracks\x128.crabs.evening_detective_server.ReorderPlaylistTracksReq\x1a8.crabs.evening_detective_server.ReorderPlaylistTracksRsp\"r\x92A<\n" + + "\fМузыка\x12,Изменить порядок треков\x82\xd3\xe4\x93\x02-:\x01*\x1a(/api/playlists/{playlistID}/tracks/order\x12\xf8\x01\n" + "\x13DeletePlaylistTrack\x126.crabs.evening_detective_server.DeletePlaylistTrackReq\x1a6.crabs.evening_detective_server.DeletePlaylistTrackRsp\"q\x92A:\n" + "\fМузыка\x12*Удалить MP3 из плейлиста\x82\xd3\xe4\x93\x02.*,/api/playlists/{playlistID}/tracks/{trackID}\x12\xf5\x01\n" + "\x13SetScenarioPlaylist\x126.crabs.evening_detective_server.SetScenarioPlaylistReq\x1a6.crabs.evening_detective_server.SetScenarioPlaylistRsp\"n\x92AD\n" + @@ -14156,7 +14270,7 @@ func file_main_proto_rawDescGZIP() []byte { } var file_main_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_main_proto_msgTypes = make([]protoimpl.MessageInfo, 244) +var file_main_proto_msgTypes = make([]protoimpl.MessageInfo, 246) var file_main_proto_goTypes = []any{ (ScreenMode)(0), // 0: crabs.evening_detective_server.ScreenMode (ScreenTimerState)(0), // 1: crabs.evening_detective_server.ScreenTimerState @@ -14212,206 +14326,208 @@ var file_main_proto_goTypes = []any{ (*DeletePlaylistRsp)(nil), // 51: crabs.evening_detective_server.DeletePlaylistRsp (*UploadPlaylistTrackReq)(nil), // 52: crabs.evening_detective_server.UploadPlaylistTrackReq (*UploadPlaylistTrackRsp)(nil), // 53: crabs.evening_detective_server.UploadPlaylistTrackRsp - (*DeletePlaylistTrackReq)(nil), // 54: crabs.evening_detective_server.DeletePlaylistTrackReq - (*DeletePlaylistTrackRsp)(nil), // 55: crabs.evening_detective_server.DeletePlaylistTrackRsp - (*SetScenarioPlaylistReq)(nil), // 56: crabs.evening_detective_server.SetScenarioPlaylistReq - (*SetScenarioPlaylistRsp)(nil), // 57: crabs.evening_detective_server.SetScenarioPlaylistRsp - (*AddScenarioReq)(nil), // 58: crabs.evening_detective_server.AddScenarioReq - (*AddScenarioRsp)(nil), // 59: crabs.evening_detective_server.AddScenarioRsp - (*GetMyScenariosReq)(nil), // 60: crabs.evening_detective_server.GetMyScenariosReq - (*GetMyScenariosRsp)(nil), // 61: crabs.evening_detective_server.GetMyScenariosRsp - (*GetScenariosCatalogReq)(nil), // 62: crabs.evening_detective_server.GetScenariosCatalogReq - (*GetScenariosCatalogRsp)(nil), // 63: crabs.evening_detective_server.GetScenariosCatalogRsp - (*GetScenarioReq)(nil), // 64: crabs.evening_detective_server.GetScenarioReq - (*GetScenarioRsp)(nil), // 65: crabs.evening_detective_server.GetScenarioRsp - (*Scenario)(nil), // 66: crabs.evening_detective_server.Scenario - (*Story)(nil), // 67: crabs.evening_detective_server.Story - (*Conclusion)(nil), // 68: crabs.evening_detective_server.Conclusion - (*Introduction)(nil), // 69: crabs.evening_detective_server.Introduction - (*Place)(nil), // 70: crabs.evening_detective_server.Place - (*Application)(nil), // 71: crabs.evening_detective_server.Application - (*Door)(nil), // 72: crabs.evening_detective_server.Door - (*Key)(nil), // 73: crabs.evening_detective_server.Key - (*Question)(nil), // 74: crabs.evening_detective_server.Question - (*Answer)(nil), // 75: crabs.evening_detective_server.Answer - (*AnswerScore)(nil), // 76: crabs.evening_detective_server.AnswerScore - (*TeamAnswers)(nil), // 77: crabs.evening_detective_server.TeamAnswers - (*UpdateScenarioReq)(nil), // 78: crabs.evening_detective_server.UpdateScenarioReq - (*UpdateScenarioRsp)(nil), // 79: crabs.evening_detective_server.UpdateScenarioRsp - (*PublicScenarioReq)(nil), // 80: crabs.evening_detective_server.PublicScenarioReq - (*PublicScenarioRsp)(nil), // 81: crabs.evening_detective_server.PublicScenarioRsp - (*DraftScenarioReq)(nil), // 82: crabs.evening_detective_server.DraftScenarioReq - (*DraftScenarioRsp)(nil), // 83: crabs.evening_detective_server.DraftScenarioRsp - (*DeleteScenarioReq)(nil), // 84: crabs.evening_detective_server.DeleteScenarioReq - (*DeleteScenarioRsp)(nil), // 85: crabs.evening_detective_server.DeleteScenarioRsp - (*AddScenarioPlaceReq)(nil), // 86: crabs.evening_detective_server.AddScenarioPlaceReq - (*AddScenarioPlaceRsp)(nil), // 87: crabs.evening_detective_server.AddScenarioPlaceRsp - (*UpdateScenarioPlaceReq)(nil), // 88: crabs.evening_detective_server.UpdateScenarioPlaceReq - (*UpdateScenarioPlaceRsp)(nil), // 89: crabs.evening_detective_server.UpdateScenarioPlaceRsp - (*DeleteScenarioPlaceReq)(nil), // 90: crabs.evening_detective_server.DeleteScenarioPlaceReq - (*DeleteScenarioPlaceRsp)(nil), // 91: crabs.evening_detective_server.DeleteScenarioPlaceRsp - (*UpdateScenarioConclusionReq)(nil), // 92: crabs.evening_detective_server.UpdateScenarioConclusionReq - (*UpdateScenarioConclusionRsp)(nil), // 93: crabs.evening_detective_server.UpdateScenarioConclusionRsp - (*UpdateScenarioIntroReq)(nil), // 94: crabs.evening_detective_server.UpdateScenarioIntroReq - (*UpdateScenarioIntroRsp)(nil), // 95: crabs.evening_detective_server.UpdateScenarioIntroRsp - (*AddScenarioQuestionReq)(nil), // 96: crabs.evening_detective_server.AddScenarioQuestionReq - (*AddScenarioQuestionRsp)(nil), // 97: crabs.evening_detective_server.AddScenarioQuestionRsp - (*UpdateScenarioQuestionReq)(nil), // 98: crabs.evening_detective_server.UpdateScenarioQuestionReq - (*UpdateScenarioQuestionRsp)(nil), // 99: crabs.evening_detective_server.UpdateScenarioQuestionRsp - (*DeleteScenarioQuestionReq)(nil), // 100: crabs.evening_detective_server.DeleteScenarioQuestionReq - (*DeleteScenarioQuestionRsp)(nil), // 101: crabs.evening_detective_server.DeleteScenarioQuestionRsp - (*DownloadScenarioArchiveReq)(nil), // 102: crabs.evening_detective_server.DownloadScenarioArchiveReq - (*UploadScenarioArchiveRsp)(nil), // 103: crabs.evening_detective_server.UploadScenarioArchiveRsp - (*AddGameReq)(nil), // 104: crabs.evening_detective_server.AddGameReq - (*AddGameRsp)(nil), // 105: crabs.evening_detective_server.AddGameRsp - (*GetGamesReq)(nil), // 106: crabs.evening_detective_server.GetGamesReq - (*GetGamesRsp)(nil), // 107: crabs.evening_detective_server.GetGamesRsp - (*Game)(nil), // 108: crabs.evening_detective_server.Game - (*GameExport)(nil), // 109: crabs.evening_detective_server.GameExport - (*GameImportRsp)(nil), // 110: crabs.evening_detective_server.GameImportRsp - (*StartGameExportReq)(nil), // 111: crabs.evening_detective_server.StartGameExportReq - (*GetGameExportReq)(nil), // 112: crabs.evening_detective_server.GetGameExportReq - (*ResetGameLocalModeReq)(nil), // 113: crabs.evening_detective_server.ResetGameLocalModeReq - (*ResetGameLocalModeRsp)(nil), // 114: crabs.evening_detective_server.ResetGameLocalModeRsp - (*GameExportRsp)(nil), // 115: crabs.evening_detective_server.GameExportRsp - (*ScreenState)(nil), // 116: crabs.evening_detective_server.ScreenState - (*CreateScreenSessionReq)(nil), // 117: crabs.evening_detective_server.CreateScreenSessionReq - (*CreateScreenSessionRsp)(nil), // 118: crabs.evening_detective_server.CreateScreenSessionRsp - (*GetScreenStateReq)(nil), // 119: crabs.evening_detective_server.GetScreenStateReq - (*GetScreenStateRsp)(nil), // 120: crabs.evening_detective_server.GetScreenStateRsp - (*GetGameScreensReq)(nil), // 121: crabs.evening_detective_server.GetGameScreensReq - (*GetGameScreensRsp)(nil), // 122: crabs.evening_detective_server.GetGameScreensRsp - (*MusicState)(nil), // 123: crabs.evening_detective_server.MusicState - (*GetGameMusicReq)(nil), // 124: crabs.evening_detective_server.GetGameMusicReq - (*GetGameMusicRsp)(nil), // 125: crabs.evening_detective_server.GetGameMusicRsp - (*SetGameMusicReq)(nil), // 126: crabs.evening_detective_server.SetGameMusicReq - (*SetGameMusicRsp)(nil), // 127: crabs.evening_detective_server.SetGameMusicRsp - (*AdvanceScreenMusicReq)(nil), // 128: crabs.evening_detective_server.AdvanceScreenMusicReq - (*AdvanceScreenMusicRsp)(nil), // 129: crabs.evening_detective_server.AdvanceScreenMusicRsp - (*BindScreenReq)(nil), // 130: crabs.evening_detective_server.BindScreenReq - (*BindScreenRsp)(nil), // 131: crabs.evening_detective_server.BindScreenRsp - (*UnbindScreenReq)(nil), // 132: crabs.evening_detective_server.UnbindScreenReq - (*UnbindScreenRsp)(nil), // 133: crabs.evening_detective_server.UnbindScreenRsp - (*SetScreenSoundReq)(nil), // 134: crabs.evening_detective_server.SetScreenSoundReq - (*SetScreenSoundRsp)(nil), // 135: crabs.evening_detective_server.SetScreenSoundRsp - (*MapItem)(nil), // 136: crabs.evening_detective_server.MapItem - (*GetGameMapReq)(nil), // 137: crabs.evening_detective_server.GetGameMapReq - (*GetGameMapRsp)(nil), // 138: crabs.evening_detective_server.GetGameMapRsp - (*UpdateGameMapItemReq)(nil), // 139: crabs.evening_detective_server.UpdateGameMapItemReq - (*UpdateGameMapItemRsp)(nil), // 140: crabs.evening_detective_server.UpdateGameMapItemRsp - (*SetScreenModeReq)(nil), // 141: crabs.evening_detective_server.SetScreenModeReq - (*SetScreenModeRsp)(nil), // 142: crabs.evening_detective_server.SetScreenModeRsp - (*SetScreenTimerReq)(nil), // 143: crabs.evening_detective_server.SetScreenTimerReq - (*SetScreenTimerRsp)(nil), // 144: crabs.evening_detective_server.SetScreenTimerRsp - (*SendScreenCommandReq)(nil), // 145: crabs.evening_detective_server.SendScreenCommandReq - (*SendScreenCommandRsp)(nil), // 146: crabs.evening_detective_server.SendScreenCommandRsp - (*ScreenPlanStep)(nil), // 147: crabs.evening_detective_server.ScreenPlanStep - (*ScreenPlan)(nil), // 148: crabs.evening_detective_server.ScreenPlan - (*GetScreenPlanReq)(nil), // 149: crabs.evening_detective_server.GetScreenPlanReq - (*GetScreenPlanRsp)(nil), // 150: crabs.evening_detective_server.GetScreenPlanRsp - (*SaveScreenPlanReq)(nil), // 151: crabs.evening_detective_server.SaveScreenPlanReq - (*SaveScreenPlanRsp)(nil), // 152: crabs.evening_detective_server.SaveScreenPlanRsp - (*SetScreenPlanStepReq)(nil), // 153: crabs.evening_detective_server.SetScreenPlanStepReq - (*SetScreenPlanStepRsp)(nil), // 154: crabs.evening_detective_server.SetScreenPlanStepRsp - (*GetScreenResultsReq)(nil), // 155: crabs.evening_detective_server.GetScreenResultsReq - (*GetScreenResultsRsp)(nil), // 156: crabs.evening_detective_server.GetScreenResultsRsp - (*GetParticipationReq)(nil), // 157: crabs.evening_detective_server.GetParticipationReq - (*AnswerParticipationReq)(nil), // 158: crabs.evening_detective_server.AnswerParticipationReq - (*ParticipationRsp)(nil), // 159: crabs.evening_detective_server.ParticipationRsp - (*Team)(nil), // 160: crabs.evening_detective_server.Team - (*GetGameReq)(nil), // 161: crabs.evening_detective_server.GetGameReq - (*GetGameRsp)(nil), // 162: crabs.evening_detective_server.GetGameRsp - (*GetGameAnswersReq)(nil), // 163: crabs.evening_detective_server.GetGameAnswersReq - (*GetGameAnswersRsp)(nil), // 164: crabs.evening_detective_server.GetGameAnswersRsp - (*GetGameResultsReq)(nil), // 165: crabs.evening_detective_server.GetGameResultsReq - (*ResultsQuestion)(nil), // 166: crabs.evening_detective_server.ResultsQuestion - (*TeamResult)(nil), // 167: crabs.evening_detective_server.TeamResult - (*GetGameResultsRsp)(nil), // 168: crabs.evening_detective_server.GetGameResultsRsp - (*GameReview)(nil), // 169: crabs.evening_detective_server.GameReview - (*CreateGameReviewReq)(nil), // 170: crabs.evening_detective_server.CreateGameReviewReq - (*CreateGameReviewRsp)(nil), // 171: crabs.evening_detective_server.CreateGameReviewRsp - (*GetGameReviewsReq)(nil), // 172: crabs.evening_detective_server.GetGameReviewsReq - (*GetScenarioReviewsReq)(nil), // 173: crabs.evening_detective_server.GetScenarioReviewsReq - (*GetReviewsForModerationReq)(nil), // 174: crabs.evening_detective_server.GetReviewsForModerationReq - (*GetGameReviewsRsp)(nil), // 175: crabs.evening_detective_server.GetGameReviewsRsp - (*ModerateGameReviewReq)(nil), // 176: crabs.evening_detective_server.ModerateGameReviewReq - (*ModerateGameReviewRsp)(nil), // 177: crabs.evening_detective_server.ModerateGameReviewRsp - (*UpdateGameReq)(nil), // 178: crabs.evening_detective_server.UpdateGameReq - (*UpdateGameRsp)(nil), // 179: crabs.evening_detective_server.UpdateGameRsp - (*StartGameReq)(nil), // 180: crabs.evening_detective_server.StartGameReq - (*StartGameRsp)(nil), // 181: crabs.evening_detective_server.StartGameRsp - (*PauseGameReq)(nil), // 182: crabs.evening_detective_server.PauseGameReq - (*PauseGameRsp)(nil), // 183: crabs.evening_detective_server.PauseGameRsp - (*PlayGameReq)(nil), // 184: crabs.evening_detective_server.PlayGameReq - (*PlayGameRsp)(nil), // 185: crabs.evening_detective_server.PlayGameRsp - (*FinishGameReq)(nil), // 186: crabs.evening_detective_server.FinishGameReq - (*FinishGameRsp)(nil), // 187: crabs.evening_detective_server.FinishGameRsp - (*ResetGameReq)(nil), // 188: crabs.evening_detective_server.ResetGameReq - (*ResetGameRsp)(nil), // 189: crabs.evening_detective_server.ResetGameRsp - (*DeleteGameReq)(nil), // 190: crabs.evening_detective_server.DeleteGameReq - (*DeleteGameRsp)(nil), // 191: crabs.evening_detective_server.DeleteGameRsp - (*AddTeamReq)(nil), // 192: crabs.evening_detective_server.AddTeamReq - (*AddTeamRsp)(nil), // 193: crabs.evening_detective_server.AddTeamRsp - (*UpdateTeamReq)(nil), // 194: crabs.evening_detective_server.UpdateTeamReq - (*UpdateTeamRsp)(nil), // 195: crabs.evening_detective_server.UpdateTeamRsp - (*DeleteTeamReq)(nil), // 196: crabs.evening_detective_server.DeleteTeamReq - (*DeleteTeamRsp)(nil), // 197: crabs.evening_detective_server.DeleteTeamRsp - (*GiveTeamApplicationsReq)(nil), // 198: crabs.evening_detective_server.GiveTeamApplicationsReq - (*GiveTeamApplicationsRsp)(nil), // 199: crabs.evening_detective_server.GiveTeamApplicationsRsp - (*GetTeamStoryReq)(nil), // 200: crabs.evening_detective_server.GetTeamStoryReq - (*GetTeamStoryRsp)(nil), // 201: crabs.evening_detective_server.GetTeamStoryRsp - (*TeamAction)(nil), // 202: crabs.evening_detective_server.TeamAction - (*AddTeamActionReq)(nil), // 203: crabs.evening_detective_server.AddTeamActionReq - (*AddTeamActionRsp)(nil), // 204: crabs.evening_detective_server.AddTeamActionRsp - (*DeleteLastTeamActionReq)(nil), // 205: crabs.evening_detective_server.DeleteLastTeamActionReq - (*DeleteLastTeamActionRsp)(nil), // 206: crabs.evening_detective_server.DeleteLastTeamActionRsp - (*GetTeamAnswersReq)(nil), // 207: crabs.evening_detective_server.GetTeamAnswersReq - (*GetTeamAnswersRsp)(nil), // 208: crabs.evening_detective_server.GetTeamAnswersRsp - (*SubmitTeamAnswersReq)(nil), // 209: crabs.evening_detective_server.SubmitTeamAnswersReq - (*SubmitTeamAnswersRsp)(nil), // 210: crabs.evening_detective_server.SubmitTeamAnswersRsp - (*SetTeamAnswerScoreReq)(nil), // 211: crabs.evening_detective_server.SetTeamAnswerScoreReq - (*SetTeamAnswerScoreRsp)(nil), // 212: crabs.evening_detective_server.SetTeamAnswerScoreRsp - (*UpdateScenarioBackgroundReq)(nil), // 213: crabs.evening_detective_server.UpdateScenarioBackgroundReq - (*UpdateScenarioBackgroundRsp)(nil), // 214: crabs.evening_detective_server.UpdateScenarioBackgroundRsp - (*IssueGameTicketsReq)(nil), // 215: crabs.evening_detective_server.IssueGameTicketsReq - (*IssueGameTicketsRsp)(nil), // 216: crabs.evening_detective_server.IssueGameTicketsRsp - (*Ticket)(nil), // 217: crabs.evening_detective_server.Ticket - (*GetTicketReq)(nil), // 218: crabs.evening_detective_server.GetTicketReq - (*GetTicketRsp)(nil), // 219: crabs.evening_detective_server.GetTicketRsp - (*AcceptTicketReq)(nil), // 220: crabs.evening_detective_server.AcceptTicketReq - (*AcceptTicketRsp)(nil), // 221: crabs.evening_detective_server.AcceptTicketRsp - (*TicketPage)(nil), // 222: crabs.evening_detective_server.TicketPage - (*DeveloperTask)(nil), // 223: crabs.evening_detective_server.DeveloperTask - (*TaskAssignee)(nil), // 224: crabs.evening_detective_server.TaskAssignee - (*GetTasksReq)(nil), // 225: crabs.evening_detective_server.GetTasksReq - (*GetTasksRsp)(nil), // 226: crabs.evening_detective_server.GetTasksRsp - (*GetTaskAssigneesReq)(nil), // 227: crabs.evening_detective_server.GetTaskAssigneesReq - (*GetTaskAssigneesRsp)(nil), // 228: crabs.evening_detective_server.GetTaskAssigneesRsp - (*CreateTaskReq)(nil), // 229: crabs.evening_detective_server.CreateTaskReq - (*UpdateTaskReq)(nil), // 230: crabs.evening_detective_server.UpdateTaskReq - (*SetTaskStatusReq)(nil), // 231: crabs.evening_detective_server.SetTaskStatusReq - (*DeleteTaskReq)(nil), // 232: crabs.evening_detective_server.DeleteTaskReq - (*TaskRsp)(nil), // 233: crabs.evening_detective_server.TaskRsp - (*DeleteTaskRsp)(nil), // 234: crabs.evening_detective_server.DeleteTaskRsp - (*GameResultsPackageReq)(nil), // 235: crabs.evening_detective_server.GameResultsPackageReq - (*ApplyGameResultsPackageReq)(nil), // 236: crabs.evening_detective_server.ApplyGameResultsPackageReq - (*GameResultsPackageRsp)(nil), // 237: crabs.evening_detective_server.GameResultsPackageRsp - (*DeviceHeartbeatReq)(nil), // 238: crabs.evening_detective_server.DeviceHeartbeatReq - (*DeviceHeartbeatRsp)(nil), // 239: crabs.evening_detective_server.DeviceHeartbeatRsp - (*GetDevicesReq)(nil), // 240: crabs.evening_detective_server.GetDevicesReq - (*GetDevicesRsp)(nil), // 241: crabs.evening_detective_server.GetDevicesRsp - (*VenueDevice)(nil), // 242: crabs.evening_detective_server.VenueDevice - (*DeviceConnection)(nil), // 243: crabs.evening_detective_server.DeviceConnection - (*VenueWiFi)(nil), // 244: crabs.evening_detective_server.VenueWiFi - (*WiFiClient)(nil), // 245: crabs.evening_detective_server.WiFiClient - (*TeamReceiptReq)(nil), // 246: crabs.evening_detective_server.TeamReceiptReq - (*PrintTeamReceiptRsp)(nil), // 247: crabs.evening_detective_server.PrintTeamReceiptRsp - (*timestamppb.Timestamp)(nil), // 248: google.protobuf.Timestamp - (*httpbody.HttpBody)(nil), // 249: google.api.HttpBody + (*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 } var file_main_proto_depIdxs = []int32{ 26, // 0: crabs.evening_detective_server.GetUsersRsp.users:type_name -> crabs.evening_detective_server.User - 248, // 1: crabs.evening_detective_server.User.created_at:type_name -> google.protobuf.Timestamp + 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 @@ -14419,340 +14535,343 @@ var file_main_proto_depIdxs = []int32{ 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 - 66, // 9: crabs.evening_detective_server.GetMyScenariosRsp.scenarios:type_name -> crabs.evening_detective_server.Scenario - 66, // 10: crabs.evening_detective_server.GetScenariosCatalogRsp.scenarios:type_name -> crabs.evening_detective_server.Scenario - 66, // 11: crabs.evening_detective_server.GetScenarioRsp.scenario:type_name -> crabs.evening_detective_server.Scenario - 67, // 12: crabs.evening_detective_server.Scenario.story:type_name -> crabs.evening_detective_server.Story - 26, // 13: crabs.evening_detective_server.Scenario.author:type_name -> crabs.evening_detective_server.User - 248, // 14: crabs.evening_detective_server.Scenario.updated_at:type_name -> google.protobuf.Timestamp - 248, // 15: crabs.evening_detective_server.Scenario.created_at:type_name -> google.protobuf.Timestamp - 248, // 16: crabs.evening_detective_server.Scenario.published_at:type_name -> google.protobuf.Timestamp - 70, // 17: crabs.evening_detective_server.Story.places:type_name -> crabs.evening_detective_server.Place - 69, // 18: crabs.evening_detective_server.Story.introduction:type_name -> crabs.evening_detective_server.Introduction - 74, // 19: crabs.evening_detective_server.Story.questions:type_name -> crabs.evening_detective_server.Question - 68, // 20: crabs.evening_detective_server.Story.conclusion:type_name -> crabs.evening_detective_server.Conclusion - 71, // 21: crabs.evening_detective_server.Place.applications:type_name -> crabs.evening_detective_server.Application - 72, // 22: crabs.evening_detective_server.Place.doors:type_name -> crabs.evening_detective_server.Door - 73, // 23: crabs.evening_detective_server.Place.keys:type_name -> crabs.evening_detective_server.Key - 73, // 24: crabs.evening_detective_server.Door.keys:type_name -> crabs.evening_detective_server.Key - 160, // 25: crabs.evening_detective_server.TeamAnswers.team:type_name -> crabs.evening_detective_server.Team - 76, // 26: crabs.evening_detective_server.TeamAnswers.answers:type_name -> crabs.evening_detective_server.AnswerScore - 70, // 27: crabs.evening_detective_server.AddScenarioPlaceReq.place:type_name -> crabs.evening_detective_server.Place - 70, // 28: crabs.evening_detective_server.UpdateScenarioPlaceReq.place:type_name -> crabs.evening_detective_server.Place - 68, // 29: crabs.evening_detective_server.UpdateScenarioConclusionReq.conclusion:type_name -> crabs.evening_detective_server.Conclusion - 69, // 30: crabs.evening_detective_server.UpdateScenarioIntroReq.introduction:type_name -> crabs.evening_detective_server.Introduction - 74, // 31: crabs.evening_detective_server.AddScenarioQuestionReq.question:type_name -> crabs.evening_detective_server.Question - 74, // 32: crabs.evening_detective_server.UpdateScenarioQuestionReq.question:type_name -> crabs.evening_detective_server.Question - 248, // 33: crabs.evening_detective_server.AddGameReq.start_at:type_name -> google.protobuf.Timestamp - 108, // 34: crabs.evening_detective_server.GetGamesRsp.games:type_name -> crabs.evening_detective_server.Game - 248, // 35: crabs.evening_detective_server.Game.start_at:type_name -> google.protobuf.Timestamp - 66, // 36: crabs.evening_detective_server.Game.scenario:type_name -> crabs.evening_detective_server.Scenario - 160, // 37: crabs.evening_detective_server.Game.teams:type_name -> crabs.evening_detective_server.Team - 248, // 38: crabs.evening_detective_server.Game.started_at:type_name -> google.protobuf.Timestamp - 248, // 39: crabs.evening_detective_server.Game.ended_at:type_name -> google.protobuf.Timestamp - 109, // 40: crabs.evening_detective_server.Game.export:type_name -> crabs.evening_detective_server.GameExport - 109, // 41: crabs.evening_detective_server.GameExportRsp.export:type_name -> crabs.evening_detective_server.GameExport - 0, // 42: crabs.evening_detective_server.ScreenState.mode:type_name -> crabs.evening_detective_server.ScreenMode - 2, // 43: crabs.evening_detective_server.ScreenState.command:type_name -> crabs.evening_detective_server.ScreenCommand - 1, // 44: crabs.evening_detective_server.ScreenState.timer_state:type_name -> crabs.evening_detective_server.ScreenTimerState - 123, // 45: crabs.evening_detective_server.ScreenState.music:type_name -> crabs.evening_detective_server.MusicState - 116, // 46: crabs.evening_detective_server.GetScreenStateRsp.state:type_name -> crabs.evening_detective_server.ScreenState - 116, // 47: crabs.evening_detective_server.GetGameScreensRsp.screens:type_name -> crabs.evening_detective_server.ScreenState - 43, // 48: crabs.evening_detective_server.MusicState.playlist:type_name -> crabs.evening_detective_server.Playlist - 3, // 49: crabs.evening_detective_server.MusicState.playback:type_name -> crabs.evening_detective_server.MusicPlaybackState - 43, // 50: crabs.evening_detective_server.GetGameMusicRsp.playlists:type_name -> crabs.evening_detective_server.Playlist - 123, // 51: crabs.evening_detective_server.GetGameMusicRsp.state:type_name -> crabs.evening_detective_server.MusicState - 3, // 52: crabs.evening_detective_server.SetGameMusicReq.playback:type_name -> crabs.evening_detective_server.MusicPlaybackState - 123, // 53: crabs.evening_detective_server.SetGameMusicRsp.state:type_name -> crabs.evening_detective_server.MusicState - 123, // 54: crabs.evening_detective_server.AdvanceScreenMusicRsp.state:type_name -> crabs.evening_detective_server.MusicState - 116, // 55: crabs.evening_detective_server.BindScreenRsp.state:type_name -> crabs.evening_detective_server.ScreenState - 136, // 56: crabs.evening_detective_server.GetGameMapRsp.items:type_name -> crabs.evening_detective_server.MapItem - 0, // 57: crabs.evening_detective_server.SetScreenModeReq.mode:type_name -> crabs.evening_detective_server.ScreenMode - 2, // 58: crabs.evening_detective_server.SendScreenCommandReq.command:type_name -> crabs.evening_detective_server.ScreenCommand - 0, // 59: crabs.evening_detective_server.ScreenPlanStep.mode:type_name -> crabs.evening_detective_server.ScreenMode - 147, // 60: crabs.evening_detective_server.ScreenPlan.steps:type_name -> crabs.evening_detective_server.ScreenPlanStep - 148, // 61: crabs.evening_detective_server.GetScreenPlanRsp.plan:type_name -> crabs.evening_detective_server.ScreenPlan - 147, // 62: crabs.evening_detective_server.SaveScreenPlanReq.steps:type_name -> crabs.evening_detective_server.ScreenPlanStep - 148, // 63: crabs.evening_detective_server.SaveScreenPlanRsp.plan:type_name -> crabs.evening_detective_server.ScreenPlan - 148, // 64: crabs.evening_detective_server.SetScreenPlanStepRsp.plan:type_name -> crabs.evening_detective_server.ScreenPlan - 166, // 65: crabs.evening_detective_server.GetScreenResultsRsp.questions:type_name -> crabs.evening_detective_server.ResultsQuestion - 167, // 66: crabs.evening_detective_server.GetScreenResultsRsp.teams:type_name -> crabs.evening_detective_server.TeamResult - 248, // 67: crabs.evening_detective_server.ParticipationRsp.start_at:type_name -> google.protobuf.Timestamp - 71, // 68: crabs.evening_detective_server.Team.applications:type_name -> crabs.evening_detective_server.Application - 108, // 69: crabs.evening_detective_server.GetGameRsp.game:type_name -> crabs.evening_detective_server.Game - 74, // 70: crabs.evening_detective_server.GetGameAnswersRsp.questions:type_name -> crabs.evening_detective_server.Question - 77, // 71: crabs.evening_detective_server.GetGameAnswersRsp.teams:type_name -> crabs.evening_detective_server.TeamAnswers - 160, // 72: crabs.evening_detective_server.TeamResult.team:type_name -> crabs.evening_detective_server.Team - 76, // 73: crabs.evening_detective_server.TeamResult.answers:type_name -> crabs.evening_detective_server.AnswerScore - 166, // 74: crabs.evening_detective_server.GetGameResultsRsp.questions:type_name -> crabs.evening_detective_server.ResultsQuestion - 167, // 75: crabs.evening_detective_server.GetGameResultsRsp.teams:type_name -> crabs.evening_detective_server.TeamResult - 248, // 76: crabs.evening_detective_server.GameReview.created_at:type_name -> google.protobuf.Timestamp - 169, // 77: crabs.evening_detective_server.CreateGameReviewRsp.review:type_name -> crabs.evening_detective_server.GameReview - 169, // 78: crabs.evening_detective_server.GetGameReviewsRsp.reviews:type_name -> crabs.evening_detective_server.GameReview - 169, // 79: crabs.evening_detective_server.ModerateGameReviewRsp.review:type_name -> crabs.evening_detective_server.GameReview - 248, // 80: crabs.evening_detective_server.UpdateGameReq.start_at:type_name -> google.protobuf.Timestamp - 67, // 81: crabs.evening_detective_server.GetTeamStoryRsp.story:type_name -> crabs.evening_detective_server.Story - 108, // 82: crabs.evening_detective_server.GetTeamStoryRsp.game:type_name -> crabs.evening_detective_server.Game - 202, // 83: crabs.evening_detective_server.GetTeamStoryRsp.actions:type_name -> crabs.evening_detective_server.TeamAction - 75, // 84: crabs.evening_detective_server.GetTeamAnswersRsp.answers:type_name -> crabs.evening_detective_server.Answer - 75, // 85: crabs.evening_detective_server.SubmitTeamAnswersReq.answers:type_name -> crabs.evening_detective_server.Answer - 217, // 86: crabs.evening_detective_server.IssueGameTicketsRsp.tickets:type_name -> crabs.evening_detective_server.Ticket - 222, // 87: crabs.evening_detective_server.GetTicketRsp.ticket:type_name -> crabs.evening_detective_server.TicketPage - 222, // 88: crabs.evening_detective_server.AcceptTicketRsp.ticket:type_name -> crabs.evening_detective_server.TicketPage - 248, // 89: crabs.evening_detective_server.TicketPage.start_at:type_name -> google.protobuf.Timestamp - 248, // 90: crabs.evening_detective_server.TicketPage.used_at:type_name -> google.protobuf.Timestamp - 248, // 91: crabs.evening_detective_server.DeveloperTask.createdAt:type_name -> google.protobuf.Timestamp - 248, // 92: crabs.evening_detective_server.DeveloperTask.updatedAt:type_name -> google.protobuf.Timestamp - 223, // 93: crabs.evening_detective_server.GetTasksRsp.tasks:type_name -> crabs.evening_detective_server.DeveloperTask - 224, // 94: crabs.evening_detective_server.GetTaskAssigneesRsp.assignees:type_name -> crabs.evening_detective_server.TaskAssignee - 223, // 95: crabs.evening_detective_server.TaskRsp.task:type_name -> crabs.evening_detective_server.DeveloperTask - 249, // 96: crabs.evening_detective_server.ApplyGameResultsPackageReq.package:type_name -> google.api.HttpBody - 248, // 97: crabs.evening_detective_server.DeviceHeartbeatRsp.serverTime:type_name -> google.protobuf.Timestamp - 242, // 98: crabs.evening_detective_server.GetDevicesRsp.devices:type_name -> crabs.evening_detective_server.VenueDevice - 248, // 99: crabs.evening_detective_server.GetDevicesRsp.serverTime:type_name -> google.protobuf.Timestamp - 244, // 100: crabs.evening_detective_server.GetDevicesRsp.wifi:type_name -> crabs.evening_detective_server.VenueWiFi - 248, // 101: crabs.evening_detective_server.VenueDevice.firstSeenAt:type_name -> google.protobuf.Timestamp - 248, // 102: crabs.evening_detective_server.VenueDevice.lastSeenAt:type_name -> google.protobuf.Timestamp - 243, // 103: crabs.evening_detective_server.VenueDevice.connections:type_name -> crabs.evening_detective_server.DeviceConnection - 248, // 104: crabs.evening_detective_server.DeviceConnection.firstSeenAt:type_name -> google.protobuf.Timestamp - 248, // 105: crabs.evening_detective_server.DeviceConnection.lastSeenAt:type_name -> google.protobuf.Timestamp - 248, // 106: crabs.evening_detective_server.VenueWiFi.collectedAt:type_name -> google.protobuf.Timestamp - 245, // 107: crabs.evening_detective_server.VenueWiFi.clients:type_name -> crabs.evening_detective_server.WiFiClient - 238, // 108: crabs.evening_detective_server.EveningDetectiveServer.DeviceHeartbeat:input_type -> crabs.evening_detective_server.DeviceHeartbeatReq - 240, // 109: crabs.evening_detective_server.EveningDetectiveServer.GetDevices:input_type -> crabs.evening_detective_server.GetDevicesReq - 225, // 110: crabs.evening_detective_server.EveningDetectiveServer.GetTasks:input_type -> crabs.evening_detective_server.GetTasksReq - 227, // 111: crabs.evening_detective_server.EveningDetectiveServer.GetTaskAssignees:input_type -> crabs.evening_detective_server.GetTaskAssigneesReq - 229, // 112: crabs.evening_detective_server.EveningDetectiveServer.CreateTask:input_type -> crabs.evening_detective_server.CreateTaskReq - 230, // 113: crabs.evening_detective_server.EveningDetectiveServer.UpdateTask:input_type -> crabs.evening_detective_server.UpdateTaskReq - 231, // 114: crabs.evening_detective_server.EveningDetectiveServer.SetTaskStatus:input_type -> crabs.evening_detective_server.SetTaskStatusReq - 232, // 115: crabs.evening_detective_server.EveningDetectiveServer.DeleteTask:input_type -> crabs.evening_detective_server.DeleteTaskReq - 157, // 116: crabs.evening_detective_server.EveningDetectiveServer.GetParticipation:input_type -> crabs.evening_detective_server.GetParticipationReq - 158, // 117: crabs.evening_detective_server.EveningDetectiveServer.AnswerParticipation:input_type -> crabs.evening_detective_server.AnswerParticipationReq - 4, // 118: crabs.evening_detective_server.EveningDetectiveServer.Ping:input_type -> crabs.evening_detective_server.PingReq - 6, // 119: crabs.evening_detective_server.EveningDetectiveServer.Echo:input_type -> crabs.evening_detective_server.EchoReq - 8, // 120: crabs.evening_detective_server.EveningDetectiveServer.Signup:input_type -> crabs.evening_detective_server.SignupReq - 10, // 121: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:input_type -> crabs.evening_detective_server.RefreshPasswordReq - 12, // 122: crabs.evening_detective_server.EveningDetectiveServer.Login:input_type -> crabs.evening_detective_server.LoginReq - 14, // 123: crabs.evening_detective_server.EveningDetectiveServer.Refresh:input_type -> crabs.evening_detective_server.RefreshReq - 16, // 124: crabs.evening_detective_server.EveningDetectiveServer.DeleteAccount:input_type -> crabs.evening_detective_server.DeleteAccountReq - 18, // 125: crabs.evening_detective_server.EveningDetectiveServer.GetTerms:input_type -> crabs.evening_detective_server.GetTermsReq - 20, // 126: crabs.evening_detective_server.EveningDetectiveServer.GetPrivacy:input_type -> crabs.evening_detective_server.GetPrivacyReq - 22, // 127: crabs.evening_detective_server.EveningDetectiveServer.GetConsent:input_type -> crabs.evening_detective_server.GetConsentReq - 24, // 128: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:input_type -> crabs.evening_detective_server.GetUsersReq - 27, // 129: crabs.evening_detective_server.EveningDetectiveServer.GetUserByID:input_type -> crabs.evening_detective_server.GetUserByIDReq - 29, // 130: crabs.evening_detective_server.EveningDetectiveServer.GetMe:input_type -> crabs.evening_detective_server.GetMeReq - 31, // 131: crabs.evening_detective_server.EveningDetectiveServer.ChangeUserPassword:input_type -> crabs.evening_detective_server.ChangeUserPasswordReq - 33, // 132: crabs.evening_detective_server.EveningDetectiveServer.AddUserRole:input_type -> crabs.evening_detective_server.AddUserRoleReq - 35, // 133: crabs.evening_detective_server.EveningDetectiveServer.DeleteUserRole:input_type -> crabs.evening_detective_server.DeleteUserRoleReq - 37, // 134: crabs.evening_detective_server.EveningDetectiveServer.GetPermissions:input_type -> crabs.evening_detective_server.GetPermissionsReq - 39, // 135: crabs.evening_detective_server.EveningDetectiveServer.UploadFile:input_type -> crabs.evening_detective_server.UploadFileReq - 41, // 136: crabs.evening_detective_server.EveningDetectiveServer.DownloadFile:input_type -> crabs.evening_detective_server.DownloadFileReq - 44, // 137: crabs.evening_detective_server.EveningDetectiveServer.GetPlaylists:input_type -> crabs.evening_detective_server.GetPlaylistsReq - 46, // 138: crabs.evening_detective_server.EveningDetectiveServer.CreatePlaylist:input_type -> crabs.evening_detective_server.CreatePlaylistReq - 48, // 139: crabs.evening_detective_server.EveningDetectiveServer.UpdatePlaylist:input_type -> crabs.evening_detective_server.UpdatePlaylistReq - 50, // 140: crabs.evening_detective_server.EveningDetectiveServer.DeletePlaylist:input_type -> crabs.evening_detective_server.DeletePlaylistReq - 52, // 141: crabs.evening_detective_server.EveningDetectiveServer.UploadPlaylistTrack:input_type -> crabs.evening_detective_server.UploadPlaylistTrackReq - 54, // 142: crabs.evening_detective_server.EveningDetectiveServer.DeletePlaylistTrack:input_type -> crabs.evening_detective_server.DeletePlaylistTrackReq - 56, // 143: crabs.evening_detective_server.EveningDetectiveServer.SetScenarioPlaylist:input_type -> crabs.evening_detective_server.SetScenarioPlaylistReq - 58, // 144: crabs.evening_detective_server.EveningDetectiveServer.AddScenario:input_type -> crabs.evening_detective_server.AddScenarioReq - 60, // 145: crabs.evening_detective_server.EveningDetectiveServer.GetMyScenarios:input_type -> crabs.evening_detective_server.GetMyScenariosReq - 62, // 146: crabs.evening_detective_server.EveningDetectiveServer.GetScenariosCatalog:input_type -> crabs.evening_detective_server.GetScenariosCatalogReq - 64, // 147: crabs.evening_detective_server.EveningDetectiveServer.GetFullScenario:input_type -> crabs.evening_detective_server.GetScenarioReq - 64, // 148: crabs.evening_detective_server.EveningDetectiveServer.GetScenario:input_type -> crabs.evening_detective_server.GetScenarioReq - 78, // 149: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenario:input_type -> crabs.evening_detective_server.UpdateScenarioReq - 80, // 150: crabs.evening_detective_server.EveningDetectiveServer.PublicScenario:input_type -> crabs.evening_detective_server.PublicScenarioReq - 82, // 151: crabs.evening_detective_server.EveningDetectiveServer.DraftScenario:input_type -> crabs.evening_detective_server.DraftScenarioReq - 84, // 152: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenario:input_type -> crabs.evening_detective_server.DeleteScenarioReq - 86, // 153: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioPlace:input_type -> crabs.evening_detective_server.AddScenarioPlaceReq - 88, // 154: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioPlace:input_type -> crabs.evening_detective_server.UpdateScenarioPlaceReq - 90, // 155: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioPlace:input_type -> crabs.evening_detective_server.DeleteScenarioPlaceReq - 96, // 156: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioQuestion:input_type -> crabs.evening_detective_server.AddScenarioQuestionReq - 98, // 157: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioQuestion:input_type -> crabs.evening_detective_server.UpdateScenarioQuestionReq - 100, // 158: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioQuestion:input_type -> crabs.evening_detective_server.DeleteScenarioQuestionReq - 213, // 159: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioBackground:input_type -> crabs.evening_detective_server.UpdateScenarioBackgroundReq - 94, // 160: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioIntro:input_type -> crabs.evening_detective_server.UpdateScenarioIntroReq - 92, // 161: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioConclusion:input_type -> crabs.evening_detective_server.UpdateScenarioConclusionReq - 102, // 162: crabs.evening_detective_server.EveningDetectiveServer.DownloadScenarioArchive:input_type -> crabs.evening_detective_server.DownloadScenarioArchiveReq - 249, // 163: crabs.evening_detective_server.EveningDetectiveServer.UploadScenarioArchive:input_type -> google.api.HttpBody - 104, // 164: crabs.evening_detective_server.EveningDetectiveServer.AddGame:input_type -> crabs.evening_detective_server.AddGameReq - 106, // 165: crabs.evening_detective_server.EveningDetectiveServer.GetGames:input_type -> crabs.evening_detective_server.GetGamesReq - 161, // 166: crabs.evening_detective_server.EveningDetectiveServer.GetGame:input_type -> crabs.evening_detective_server.GetGameReq - 249, // 167: crabs.evening_detective_server.EveningDetectiveServer.ImportGame:input_type -> google.api.HttpBody - 235, // 168: crabs.evening_detective_server.EveningDetectiveServer.DownloadGameResultsPackage:input_type -> crabs.evening_detective_server.GameResultsPackageReq - 236, // 169: crabs.evening_detective_server.EveningDetectiveServer.ApplyGameResultsPackage:input_type -> crabs.evening_detective_server.ApplyGameResultsPackageReq - 111, // 170: crabs.evening_detective_server.EveningDetectiveServer.StartGameExport:input_type -> crabs.evening_detective_server.StartGameExportReq - 113, // 171: crabs.evening_detective_server.EveningDetectiveServer.ResetGameLocalMode:input_type -> crabs.evening_detective_server.ResetGameLocalModeReq - 112, // 172: crabs.evening_detective_server.EveningDetectiveServer.GetGameExport:input_type -> crabs.evening_detective_server.GetGameExportReq - 215, // 173: crabs.evening_detective_server.EveningDetectiveServer.IssueGameTickets:input_type -> crabs.evening_detective_server.IssueGameTicketsReq - 218, // 174: crabs.evening_detective_server.EveningDetectiveServer.GetTicket:input_type -> crabs.evening_detective_server.GetTicketReq - 220, // 175: crabs.evening_detective_server.EveningDetectiveServer.AcceptTicket:input_type -> crabs.evening_detective_server.AcceptTicketReq - 117, // 176: crabs.evening_detective_server.EveningDetectiveServer.CreateScreenSession:input_type -> crabs.evening_detective_server.CreateScreenSessionReq - 119, // 177: crabs.evening_detective_server.EveningDetectiveServer.GetScreenState:input_type -> crabs.evening_detective_server.GetScreenStateReq - 121, // 178: crabs.evening_detective_server.EveningDetectiveServer.GetGameScreens:input_type -> crabs.evening_detective_server.GetGameScreensReq - 124, // 179: crabs.evening_detective_server.EveningDetectiveServer.GetGameMusic:input_type -> crabs.evening_detective_server.GetGameMusicReq - 126, // 180: crabs.evening_detective_server.EveningDetectiveServer.SetGameMusic:input_type -> crabs.evening_detective_server.SetGameMusicReq - 128, // 181: crabs.evening_detective_server.EveningDetectiveServer.AdvanceScreenMusic:input_type -> crabs.evening_detective_server.AdvanceScreenMusicReq - 130, // 182: crabs.evening_detective_server.EveningDetectiveServer.BindScreen:input_type -> crabs.evening_detective_server.BindScreenReq - 132, // 183: crabs.evening_detective_server.EveningDetectiveServer.UnbindScreen:input_type -> crabs.evening_detective_server.UnbindScreenReq - 134, // 184: crabs.evening_detective_server.EveningDetectiveServer.SetScreenSound:input_type -> crabs.evening_detective_server.SetScreenSoundReq - 137, // 185: crabs.evening_detective_server.EveningDetectiveServer.GetGameMap:input_type -> crabs.evening_detective_server.GetGameMapReq - 139, // 186: crabs.evening_detective_server.EveningDetectiveServer.UpdateGameMapItem:input_type -> crabs.evening_detective_server.UpdateGameMapItemReq - 141, // 187: crabs.evening_detective_server.EveningDetectiveServer.SetScreenMode:input_type -> crabs.evening_detective_server.SetScreenModeReq - 143, // 188: crabs.evening_detective_server.EveningDetectiveServer.SetScreenTimer:input_type -> crabs.evening_detective_server.SetScreenTimerReq - 145, // 189: crabs.evening_detective_server.EveningDetectiveServer.SendScreenCommand:input_type -> crabs.evening_detective_server.SendScreenCommandReq - 149, // 190: crabs.evening_detective_server.EveningDetectiveServer.GetScreenPlan:input_type -> crabs.evening_detective_server.GetScreenPlanReq - 151, // 191: crabs.evening_detective_server.EveningDetectiveServer.SaveScreenPlan:input_type -> crabs.evening_detective_server.SaveScreenPlanReq - 153, // 192: crabs.evening_detective_server.EveningDetectiveServer.SetScreenPlanStep:input_type -> crabs.evening_detective_server.SetScreenPlanStepReq - 155, // 193: crabs.evening_detective_server.EveningDetectiveServer.GetScreenResults:input_type -> crabs.evening_detective_server.GetScreenResultsReq - 161, // 194: crabs.evening_detective_server.EveningDetectiveServer.DownloadGamePrintMaterials:input_type -> crabs.evening_detective_server.GetGameReq - 246, // 195: crabs.evening_detective_server.EveningDetectiveServer.PreviewTeamReceipt:input_type -> crabs.evening_detective_server.TeamReceiptReq - 246, // 196: crabs.evening_detective_server.EveningDetectiveServer.PrintTeamReceipt:input_type -> crabs.evening_detective_server.TeamReceiptReq - 161, // 197: crabs.evening_detective_server.EveningDetectiveServer.DownloadTeamQR:input_type -> crabs.evening_detective_server.GetGameReq - 163, // 198: crabs.evening_detective_server.EveningDetectiveServer.GetGameAnswers:input_type -> crabs.evening_detective_server.GetGameAnswersReq - 165, // 199: crabs.evening_detective_server.EveningDetectiveServer.GetGameResults:input_type -> crabs.evening_detective_server.GetGameResultsReq - 170, // 200: crabs.evening_detective_server.EveningDetectiveServer.CreateGameReview:input_type -> crabs.evening_detective_server.CreateGameReviewReq - 172, // 201: crabs.evening_detective_server.EveningDetectiveServer.GetGameReviews:input_type -> crabs.evening_detective_server.GetGameReviewsReq - 173, // 202: crabs.evening_detective_server.EveningDetectiveServer.GetScenarioReviews:input_type -> crabs.evening_detective_server.GetScenarioReviewsReq - 172, // 203: crabs.evening_detective_server.EveningDetectiveServer.GetGameReviewsForModeration:input_type -> crabs.evening_detective_server.GetGameReviewsReq - 174, // 204: crabs.evening_detective_server.EveningDetectiveServer.GetReviewsForModeration:input_type -> crabs.evening_detective_server.GetReviewsForModerationReq - 176, // 205: crabs.evening_detective_server.EveningDetectiveServer.ModerateGameReview:input_type -> crabs.evening_detective_server.ModerateGameReviewReq - 178, // 206: crabs.evening_detective_server.EveningDetectiveServer.UpdateGame:input_type -> crabs.evening_detective_server.UpdateGameReq - 180, // 207: crabs.evening_detective_server.EveningDetectiveServer.StartGame:input_type -> crabs.evening_detective_server.StartGameReq - 182, // 208: crabs.evening_detective_server.EveningDetectiveServer.PauseGame:input_type -> crabs.evening_detective_server.PauseGameReq - 184, // 209: crabs.evening_detective_server.EveningDetectiveServer.PlayGame:input_type -> crabs.evening_detective_server.PlayGameReq - 186, // 210: crabs.evening_detective_server.EveningDetectiveServer.FinishGame:input_type -> crabs.evening_detective_server.FinishGameReq - 188, // 211: crabs.evening_detective_server.EveningDetectiveServer.ResetGame:input_type -> crabs.evening_detective_server.ResetGameReq - 190, // 212: crabs.evening_detective_server.EveningDetectiveServer.DeleteGame:input_type -> crabs.evening_detective_server.DeleteGameReq - 192, // 213: crabs.evening_detective_server.EveningDetectiveServer.AddTeam:input_type -> crabs.evening_detective_server.AddTeamReq - 194, // 214: crabs.evening_detective_server.EveningDetectiveServer.UpdateTeam:input_type -> crabs.evening_detective_server.UpdateTeamReq - 196, // 215: crabs.evening_detective_server.EveningDetectiveServer.DeleteTeam:input_type -> crabs.evening_detective_server.DeleteTeamReq - 198, // 216: crabs.evening_detective_server.EveningDetectiveServer.GiveTeamApplications:input_type -> crabs.evening_detective_server.GiveTeamApplicationsReq - 200, // 217: crabs.evening_detective_server.EveningDetectiveServer.GetTeamStory:input_type -> crabs.evening_detective_server.GetTeamStoryReq - 203, // 218: crabs.evening_detective_server.EveningDetectiveServer.AddTeamAction:input_type -> crabs.evening_detective_server.AddTeamActionReq - 205, // 219: crabs.evening_detective_server.EveningDetectiveServer.DeleteLastTeamAction:input_type -> crabs.evening_detective_server.DeleteLastTeamActionReq - 207, // 220: crabs.evening_detective_server.EveningDetectiveServer.GetTeamAnswers:input_type -> crabs.evening_detective_server.GetTeamAnswersReq - 209, // 221: crabs.evening_detective_server.EveningDetectiveServer.SubmitTeamAnswers:input_type -> crabs.evening_detective_server.SubmitTeamAnswersReq - 211, // 222: crabs.evening_detective_server.EveningDetectiveServer.SetTeamAnswerScore:input_type -> crabs.evening_detective_server.SetTeamAnswerScoreReq - 239, // 223: crabs.evening_detective_server.EveningDetectiveServer.DeviceHeartbeat:output_type -> crabs.evening_detective_server.DeviceHeartbeatRsp - 241, // 224: crabs.evening_detective_server.EveningDetectiveServer.GetDevices:output_type -> crabs.evening_detective_server.GetDevicesRsp - 226, // 225: crabs.evening_detective_server.EveningDetectiveServer.GetTasks:output_type -> crabs.evening_detective_server.GetTasksRsp - 228, // 226: crabs.evening_detective_server.EveningDetectiveServer.GetTaskAssignees:output_type -> crabs.evening_detective_server.GetTaskAssigneesRsp - 233, // 227: crabs.evening_detective_server.EveningDetectiveServer.CreateTask:output_type -> crabs.evening_detective_server.TaskRsp - 233, // 228: crabs.evening_detective_server.EveningDetectiveServer.UpdateTask:output_type -> crabs.evening_detective_server.TaskRsp - 233, // 229: crabs.evening_detective_server.EveningDetectiveServer.SetTaskStatus:output_type -> crabs.evening_detective_server.TaskRsp - 234, // 230: crabs.evening_detective_server.EveningDetectiveServer.DeleteTask:output_type -> crabs.evening_detective_server.DeleteTaskRsp - 159, // 231: crabs.evening_detective_server.EveningDetectiveServer.GetParticipation:output_type -> crabs.evening_detective_server.ParticipationRsp - 159, // 232: crabs.evening_detective_server.EveningDetectiveServer.AnswerParticipation:output_type -> crabs.evening_detective_server.ParticipationRsp - 5, // 233: crabs.evening_detective_server.EveningDetectiveServer.Ping:output_type -> crabs.evening_detective_server.PingRsp - 7, // 234: crabs.evening_detective_server.EveningDetectiveServer.Echo:output_type -> crabs.evening_detective_server.EchoRsp - 9, // 235: crabs.evening_detective_server.EveningDetectiveServer.Signup:output_type -> crabs.evening_detective_server.SignupRsp - 11, // 236: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:output_type -> crabs.evening_detective_server.RefreshPasswordRsp - 13, // 237: crabs.evening_detective_server.EveningDetectiveServer.Login:output_type -> crabs.evening_detective_server.LoginRsp - 15, // 238: crabs.evening_detective_server.EveningDetectiveServer.Refresh:output_type -> crabs.evening_detective_server.RefreshRsp - 17, // 239: crabs.evening_detective_server.EveningDetectiveServer.DeleteAccount:output_type -> crabs.evening_detective_server.DeleteAccountRsp - 19, // 240: crabs.evening_detective_server.EveningDetectiveServer.GetTerms:output_type -> crabs.evening_detective_server.GetTermsRsp - 21, // 241: crabs.evening_detective_server.EveningDetectiveServer.GetPrivacy:output_type -> crabs.evening_detective_server.GetPrivacyRsp - 23, // 242: crabs.evening_detective_server.EveningDetectiveServer.GetConsent:output_type -> crabs.evening_detective_server.GetConsentRsp - 25, // 243: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:output_type -> crabs.evening_detective_server.GetUsersRsp - 28, // 244: crabs.evening_detective_server.EveningDetectiveServer.GetUserByID:output_type -> crabs.evening_detective_server.GetUserByIDRsp - 30, // 245: crabs.evening_detective_server.EveningDetectiveServer.GetMe:output_type -> crabs.evening_detective_server.GetMeRsp - 32, // 246: crabs.evening_detective_server.EveningDetectiveServer.ChangeUserPassword:output_type -> crabs.evening_detective_server.ChangeUserPasswordRsp - 34, // 247: crabs.evening_detective_server.EveningDetectiveServer.AddUserRole:output_type -> crabs.evening_detective_server.AddUserRoleRsp - 36, // 248: crabs.evening_detective_server.EveningDetectiveServer.DeleteUserRole:output_type -> crabs.evening_detective_server.DeleteUserRoleRsp - 38, // 249: crabs.evening_detective_server.EveningDetectiveServer.GetPermissions:output_type -> crabs.evening_detective_server.GetPermissionsRsp - 40, // 250: crabs.evening_detective_server.EveningDetectiveServer.UploadFile:output_type -> crabs.evening_detective_server.UploadFileRsp - 249, // 251: crabs.evening_detective_server.EveningDetectiveServer.DownloadFile:output_type -> google.api.HttpBody - 45, // 252: crabs.evening_detective_server.EveningDetectiveServer.GetPlaylists:output_type -> crabs.evening_detective_server.GetPlaylistsRsp - 47, // 253: crabs.evening_detective_server.EveningDetectiveServer.CreatePlaylist:output_type -> crabs.evening_detective_server.CreatePlaylistRsp - 49, // 254: crabs.evening_detective_server.EveningDetectiveServer.UpdatePlaylist:output_type -> crabs.evening_detective_server.UpdatePlaylistRsp - 51, // 255: crabs.evening_detective_server.EveningDetectiveServer.DeletePlaylist:output_type -> crabs.evening_detective_server.DeletePlaylistRsp - 53, // 256: crabs.evening_detective_server.EveningDetectiveServer.UploadPlaylistTrack:output_type -> crabs.evening_detective_server.UploadPlaylistTrackRsp - 55, // 257: crabs.evening_detective_server.EveningDetectiveServer.DeletePlaylistTrack:output_type -> crabs.evening_detective_server.DeletePlaylistTrackRsp - 57, // 258: crabs.evening_detective_server.EveningDetectiveServer.SetScenarioPlaylist:output_type -> crabs.evening_detective_server.SetScenarioPlaylistRsp - 59, // 259: crabs.evening_detective_server.EveningDetectiveServer.AddScenario:output_type -> crabs.evening_detective_server.AddScenarioRsp - 61, // 260: crabs.evening_detective_server.EveningDetectiveServer.GetMyScenarios:output_type -> crabs.evening_detective_server.GetMyScenariosRsp - 63, // 261: crabs.evening_detective_server.EveningDetectiveServer.GetScenariosCatalog:output_type -> crabs.evening_detective_server.GetScenariosCatalogRsp - 65, // 262: crabs.evening_detective_server.EveningDetectiveServer.GetFullScenario:output_type -> crabs.evening_detective_server.GetScenarioRsp - 65, // 263: crabs.evening_detective_server.EveningDetectiveServer.GetScenario:output_type -> crabs.evening_detective_server.GetScenarioRsp - 79, // 264: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenario:output_type -> crabs.evening_detective_server.UpdateScenarioRsp - 81, // 265: crabs.evening_detective_server.EveningDetectiveServer.PublicScenario:output_type -> crabs.evening_detective_server.PublicScenarioRsp - 83, // 266: crabs.evening_detective_server.EveningDetectiveServer.DraftScenario:output_type -> crabs.evening_detective_server.DraftScenarioRsp - 85, // 267: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenario:output_type -> crabs.evening_detective_server.DeleteScenarioRsp - 87, // 268: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioPlace:output_type -> crabs.evening_detective_server.AddScenarioPlaceRsp - 89, // 269: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioPlace:output_type -> crabs.evening_detective_server.UpdateScenarioPlaceRsp - 91, // 270: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioPlace:output_type -> crabs.evening_detective_server.DeleteScenarioPlaceRsp - 97, // 271: crabs.evening_detective_server.EveningDetectiveServer.AddScenarioQuestion:output_type -> crabs.evening_detective_server.AddScenarioQuestionRsp - 99, // 272: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioQuestion:output_type -> crabs.evening_detective_server.UpdateScenarioQuestionRsp - 101, // 273: crabs.evening_detective_server.EveningDetectiveServer.DeleteScenarioQuestion:output_type -> crabs.evening_detective_server.DeleteScenarioQuestionRsp - 214, // 274: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioBackground:output_type -> crabs.evening_detective_server.UpdateScenarioBackgroundRsp - 95, // 275: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioIntro:output_type -> crabs.evening_detective_server.UpdateScenarioIntroRsp - 93, // 276: crabs.evening_detective_server.EveningDetectiveServer.UpdateScenarioConclusion:output_type -> crabs.evening_detective_server.UpdateScenarioConclusionRsp - 249, // 277: crabs.evening_detective_server.EveningDetectiveServer.DownloadScenarioArchive:output_type -> google.api.HttpBody - 103, // 278: crabs.evening_detective_server.EveningDetectiveServer.UploadScenarioArchive:output_type -> crabs.evening_detective_server.UploadScenarioArchiveRsp - 105, // 279: crabs.evening_detective_server.EveningDetectiveServer.AddGame:output_type -> crabs.evening_detective_server.AddGameRsp - 107, // 280: crabs.evening_detective_server.EveningDetectiveServer.GetGames:output_type -> crabs.evening_detective_server.GetGamesRsp - 162, // 281: crabs.evening_detective_server.EveningDetectiveServer.GetGame:output_type -> crabs.evening_detective_server.GetGameRsp - 110, // 282: crabs.evening_detective_server.EveningDetectiveServer.ImportGame:output_type -> crabs.evening_detective_server.GameImportRsp - 249, // 283: crabs.evening_detective_server.EveningDetectiveServer.DownloadGameResultsPackage:output_type -> google.api.HttpBody - 237, // 284: crabs.evening_detective_server.EveningDetectiveServer.ApplyGameResultsPackage:output_type -> crabs.evening_detective_server.GameResultsPackageRsp - 115, // 285: crabs.evening_detective_server.EveningDetectiveServer.StartGameExport:output_type -> crabs.evening_detective_server.GameExportRsp - 114, // 286: crabs.evening_detective_server.EveningDetectiveServer.ResetGameLocalMode:output_type -> crabs.evening_detective_server.ResetGameLocalModeRsp - 115, // 287: crabs.evening_detective_server.EveningDetectiveServer.GetGameExport:output_type -> crabs.evening_detective_server.GameExportRsp - 216, // 288: crabs.evening_detective_server.EveningDetectiveServer.IssueGameTickets:output_type -> crabs.evening_detective_server.IssueGameTicketsRsp - 219, // 289: crabs.evening_detective_server.EveningDetectiveServer.GetTicket:output_type -> crabs.evening_detective_server.GetTicketRsp - 221, // 290: crabs.evening_detective_server.EveningDetectiveServer.AcceptTicket:output_type -> crabs.evening_detective_server.AcceptTicketRsp - 118, // 291: crabs.evening_detective_server.EveningDetectiveServer.CreateScreenSession:output_type -> crabs.evening_detective_server.CreateScreenSessionRsp - 120, // 292: crabs.evening_detective_server.EveningDetectiveServer.GetScreenState:output_type -> crabs.evening_detective_server.GetScreenStateRsp - 122, // 293: crabs.evening_detective_server.EveningDetectiveServer.GetGameScreens:output_type -> crabs.evening_detective_server.GetGameScreensRsp - 125, // 294: crabs.evening_detective_server.EveningDetectiveServer.GetGameMusic:output_type -> crabs.evening_detective_server.GetGameMusicRsp - 127, // 295: crabs.evening_detective_server.EveningDetectiveServer.SetGameMusic:output_type -> crabs.evening_detective_server.SetGameMusicRsp - 129, // 296: crabs.evening_detective_server.EveningDetectiveServer.AdvanceScreenMusic:output_type -> crabs.evening_detective_server.AdvanceScreenMusicRsp - 131, // 297: crabs.evening_detective_server.EveningDetectiveServer.BindScreen:output_type -> crabs.evening_detective_server.BindScreenRsp - 133, // 298: crabs.evening_detective_server.EveningDetectiveServer.UnbindScreen:output_type -> crabs.evening_detective_server.UnbindScreenRsp - 135, // 299: crabs.evening_detective_server.EveningDetectiveServer.SetScreenSound:output_type -> crabs.evening_detective_server.SetScreenSoundRsp - 138, // 300: crabs.evening_detective_server.EveningDetectiveServer.GetGameMap:output_type -> crabs.evening_detective_server.GetGameMapRsp - 140, // 301: crabs.evening_detective_server.EveningDetectiveServer.UpdateGameMapItem:output_type -> crabs.evening_detective_server.UpdateGameMapItemRsp - 142, // 302: crabs.evening_detective_server.EveningDetectiveServer.SetScreenMode:output_type -> crabs.evening_detective_server.SetScreenModeRsp - 144, // 303: crabs.evening_detective_server.EveningDetectiveServer.SetScreenTimer:output_type -> crabs.evening_detective_server.SetScreenTimerRsp - 146, // 304: crabs.evening_detective_server.EveningDetectiveServer.SendScreenCommand:output_type -> crabs.evening_detective_server.SendScreenCommandRsp - 150, // 305: crabs.evening_detective_server.EveningDetectiveServer.GetScreenPlan:output_type -> crabs.evening_detective_server.GetScreenPlanRsp - 152, // 306: crabs.evening_detective_server.EveningDetectiveServer.SaveScreenPlan:output_type -> crabs.evening_detective_server.SaveScreenPlanRsp - 154, // 307: crabs.evening_detective_server.EveningDetectiveServer.SetScreenPlanStep:output_type -> crabs.evening_detective_server.SetScreenPlanStepRsp - 156, // 308: crabs.evening_detective_server.EveningDetectiveServer.GetScreenResults:output_type -> crabs.evening_detective_server.GetScreenResultsRsp - 249, // 309: crabs.evening_detective_server.EveningDetectiveServer.DownloadGamePrintMaterials:output_type -> google.api.HttpBody - 249, // 310: crabs.evening_detective_server.EveningDetectiveServer.PreviewTeamReceipt:output_type -> google.api.HttpBody - 247, // 311: crabs.evening_detective_server.EveningDetectiveServer.PrintTeamReceipt:output_type -> crabs.evening_detective_server.PrintTeamReceiptRsp - 249, // 312: crabs.evening_detective_server.EveningDetectiveServer.DownloadTeamQR:output_type -> google.api.HttpBody - 164, // 313: crabs.evening_detective_server.EveningDetectiveServer.GetGameAnswers:output_type -> crabs.evening_detective_server.GetGameAnswersRsp - 168, // 314: crabs.evening_detective_server.EveningDetectiveServer.GetGameResults:output_type -> crabs.evening_detective_server.GetGameResultsRsp - 171, // 315: crabs.evening_detective_server.EveningDetectiveServer.CreateGameReview:output_type -> crabs.evening_detective_server.CreateGameReviewRsp - 175, // 316: crabs.evening_detective_server.EveningDetectiveServer.GetGameReviews:output_type -> crabs.evening_detective_server.GetGameReviewsRsp - 175, // 317: crabs.evening_detective_server.EveningDetectiveServer.GetScenarioReviews:output_type -> crabs.evening_detective_server.GetGameReviewsRsp - 175, // 318: crabs.evening_detective_server.EveningDetectiveServer.GetGameReviewsForModeration:output_type -> crabs.evening_detective_server.GetGameReviewsRsp - 175, // 319: crabs.evening_detective_server.EveningDetectiveServer.GetReviewsForModeration:output_type -> crabs.evening_detective_server.GetGameReviewsRsp - 177, // 320: crabs.evening_detective_server.EveningDetectiveServer.ModerateGameReview:output_type -> crabs.evening_detective_server.ModerateGameReviewRsp - 179, // 321: crabs.evening_detective_server.EveningDetectiveServer.UpdateGame:output_type -> crabs.evening_detective_server.UpdateGameRsp - 181, // 322: crabs.evening_detective_server.EveningDetectiveServer.StartGame:output_type -> crabs.evening_detective_server.StartGameRsp - 183, // 323: crabs.evening_detective_server.EveningDetectiveServer.PauseGame:output_type -> crabs.evening_detective_server.PauseGameRsp - 185, // 324: crabs.evening_detective_server.EveningDetectiveServer.PlayGame:output_type -> crabs.evening_detective_server.PlayGameRsp - 187, // 325: crabs.evening_detective_server.EveningDetectiveServer.FinishGame:output_type -> crabs.evening_detective_server.FinishGameRsp - 189, // 326: crabs.evening_detective_server.EveningDetectiveServer.ResetGame:output_type -> crabs.evening_detective_server.ResetGameRsp - 191, // 327: crabs.evening_detective_server.EveningDetectiveServer.DeleteGame:output_type -> crabs.evening_detective_server.DeleteGameRsp - 193, // 328: crabs.evening_detective_server.EveningDetectiveServer.AddTeam:output_type -> crabs.evening_detective_server.AddTeamRsp - 195, // 329: crabs.evening_detective_server.EveningDetectiveServer.UpdateTeam:output_type -> crabs.evening_detective_server.UpdateTeamRsp - 197, // 330: crabs.evening_detective_server.EveningDetectiveServer.DeleteTeam:output_type -> crabs.evening_detective_server.DeleteTeamRsp - 199, // 331: crabs.evening_detective_server.EveningDetectiveServer.GiveTeamApplications:output_type -> crabs.evening_detective_server.GiveTeamApplicationsRsp - 201, // 332: crabs.evening_detective_server.EveningDetectiveServer.GetTeamStory:output_type -> crabs.evening_detective_server.GetTeamStoryRsp - 204, // 333: crabs.evening_detective_server.EveningDetectiveServer.AddTeamAction:output_type -> crabs.evening_detective_server.AddTeamActionRsp - 206, // 334: crabs.evening_detective_server.EveningDetectiveServer.DeleteLastTeamAction:output_type -> crabs.evening_detective_server.DeleteLastTeamActionRsp - 208, // 335: crabs.evening_detective_server.EveningDetectiveServer.GetTeamAnswers:output_type -> crabs.evening_detective_server.GetTeamAnswersRsp - 210, // 336: crabs.evening_detective_server.EveningDetectiveServer.SubmitTeamAnswers:output_type -> crabs.evening_detective_server.SubmitTeamAnswersRsp - 212, // 337: crabs.evening_detective_server.EveningDetectiveServer.SetTeamAnswerScore:output_type -> crabs.evening_detective_server.SetTeamAnswerScoreRsp - 223, // [223:338] is the sub-list for method output_type - 108, // [108:223] is the sub-list for method input_type - 108, // [108:108] is the sub-list for extension type_name - 108, // [108:108] is the sub-list for extension extendee - 0, // [0:108] is the sub-list for field type_name + 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 + 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 } func init() { file_main_proto_init() } @@ -14760,27 +14879,27 @@ func file_main_proto_init() { if File_main_proto != nil { return } - file_main_proto_msgTypes[62].OneofWrappers = []any{} - file_main_proto_msgTypes[72].OneofWrappers = []any{} - file_main_proto_msgTypes[104].OneofWrappers = []any{} - file_main_proto_msgTypes[112].OneofWrappers = []any{} - file_main_proto_msgTypes[207].OneofWrappers = []any{} - file_main_proto_msgTypes[218].OneofWrappers = []any{} - file_main_proto_msgTypes[219].OneofWrappers = []any{} - file_main_proto_msgTypes[225].OneofWrappers = []any{} - file_main_proto_msgTypes[226].OneofWrappers = []any{} - file_main_proto_msgTypes[234].OneofWrappers = []any{} - file_main_proto_msgTypes[235].OneofWrappers = []any{} + file_main_proto_msgTypes[64].OneofWrappers = []any{} + 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[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[239].OneofWrappers = []any{} + file_main_proto_msgTypes[237].OneofWrappers = []any{} + file_main_proto_msgTypes[238].OneofWrappers = []any{} file_main_proto_msgTypes[241].OneofWrappers = []any{} + file_main_proto_msgTypes[243].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: 244, + NumMessages: 246, NumExtensions: 0, NumServices: 1, }, diff --git a/proto/main.pb.gw.go b/proto/main.pb.gw.go index 31bba58..fb793da 100644 --- a/proto/main.pb.gw.go +++ b/proto/main.pb.gw.go @@ -1084,6 +1084,51 @@ func local_request_EveningDetectiveServer_UploadPlaylistTrack_0(ctx context.Cont return msg, metadata, err } +func request_EveningDetectiveServer_ReorderPlaylistTracks_0(ctx context.Context, marshaler runtime.Marshaler, client EveningDetectiveServerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq ReorderPlaylistTracksReq + metadata runtime.ServerMetadata + err error + ) + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } + val, ok := pathParams["playlistID"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "playlistID") + } + protoReq.PlaylistID, err = runtime.Int32(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "playlistID", err) + } + msg, err := client.ReorderPlaylistTracks(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err +} + +func local_request_EveningDetectiveServer_ReorderPlaylistTracks_0(ctx context.Context, marshaler runtime.Marshaler, server EveningDetectiveServerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq ReorderPlaylistTracksReq + metadata runtime.ServerMetadata + err error + ) + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + val, ok := pathParams["playlistID"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "playlistID") + } + protoReq.PlaylistID, err = runtime.Int32(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "playlistID", err) + } + msg, err := server.ReorderPlaylistTracks(ctx, &protoReq) + return msg, metadata, err +} + func request_EveningDetectiveServer_DeletePlaylistTrack_0(ctx context.Context, marshaler runtime.Marshaler, client EveningDetectiveServerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var ( protoReq DeletePlaylistTrackReq @@ -5177,6 +5222,26 @@ func RegisterEveningDetectiveServerHandlerServer(ctx context.Context, mux *runti } forward_EveningDetectiveServer_UploadPlaylistTrack_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) + mux.Handle(http.MethodPut, pattern_EveningDetectiveServer_ReorderPlaylistTracks_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/ReorderPlaylistTracks", runtime.WithHTTPPathPattern("/api/playlists/{playlistID}/tracks/order")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EveningDetectiveServer_ReorderPlaylistTracks_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_ReorderPlaylistTracks_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) mux.Handle(http.MethodDelete, pattern_EveningDetectiveServer_DeletePlaylistTrack_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -7415,6 +7480,23 @@ func RegisterEveningDetectiveServerHandlerClient(ctx context.Context, mux *runti } forward_EveningDetectiveServer_UploadPlaylistTrack_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) + mux.Handle(http.MethodPut, pattern_EveningDetectiveServer_ReorderPlaylistTracks_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/ReorderPlaylistTracks", runtime.WithHTTPPathPattern("/api/playlists/{playlistID}/tracks/order")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EveningDetectiveServer_ReorderPlaylistTracks_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_ReorderPlaylistTracks_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) mux.Handle(http.MethodDelete, pattern_EveningDetectiveServer_DeletePlaylistTrack_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -8830,6 +8912,7 @@ var ( pattern_EveningDetectiveServer_UpdatePlaylist_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2}, []string{"api", "playlists", "ID"}, "")) pattern_EveningDetectiveServer_DeletePlaylist_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2}, []string{"api", "playlists", "ID"}, "")) pattern_EveningDetectiveServer_UploadPlaylistTrack_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"api", "playlists", "playlistID", "tracks"}, "")) + pattern_EveningDetectiveServer_ReorderPlaylistTracks_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 2, 4}, []string{"api", "playlists", "playlistID", "tracks", "order"}, "")) pattern_EveningDetectiveServer_DeletePlaylistTrack_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "playlists", "playlistID", "tracks", "trackID"}, "")) pattern_EveningDetectiveServer_SetScenarioPlaylist_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"api", "scenarios", "ID", "playlist"}, "")) pattern_EveningDetectiveServer_AddScenario_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"api", "scenario"}, "")) @@ -8948,6 +9031,7 @@ var ( forward_EveningDetectiveServer_UpdatePlaylist_0 = runtime.ForwardResponseMessage forward_EveningDetectiveServer_DeletePlaylist_0 = runtime.ForwardResponseMessage forward_EveningDetectiveServer_UploadPlaylistTrack_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_ReorderPlaylistTracks_0 = runtime.ForwardResponseMessage forward_EveningDetectiveServer_DeletePlaylistTrack_0 = runtime.ForwardResponseMessage forward_EveningDetectiveServer_SetScenarioPlaylist_0 = runtime.ForwardResponseMessage forward_EveningDetectiveServer_AddScenario_0 = runtime.ForwardResponseMessage diff --git a/proto/main_grpc.pb.go b/proto/main_grpc.pb.go index 3d9ad93..6d81254 100644 --- a/proto/main_grpc.pb.go +++ b/proto/main_grpc.pb.go @@ -60,6 +60,7 @@ const ( EveningDetectiveServer_UpdatePlaylist_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/UpdatePlaylist" EveningDetectiveServer_DeletePlaylist_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/DeletePlaylist" EveningDetectiveServer_UploadPlaylistTrack_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/UploadPlaylistTrack" + EveningDetectiveServer_ReorderPlaylistTracks_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/ReorderPlaylistTracks" EveningDetectiveServer_DeletePlaylistTrack_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/DeletePlaylistTrack" EveningDetectiveServer_SetScenarioPlaylist_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/SetScenarioPlaylist" EveningDetectiveServer_AddScenario_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/AddScenario" @@ -183,6 +184,7 @@ type EveningDetectiveServerClient interface { UpdatePlaylist(ctx context.Context, in *UpdatePlaylistReq, opts ...grpc.CallOption) (*UpdatePlaylistRsp, error) DeletePlaylist(ctx context.Context, in *DeletePlaylistReq, opts ...grpc.CallOption) (*DeletePlaylistRsp, error) UploadPlaylistTrack(ctx context.Context, in *UploadPlaylistTrackReq, opts ...grpc.CallOption) (*UploadPlaylistTrackRsp, error) + ReorderPlaylistTracks(ctx context.Context, in *ReorderPlaylistTracksReq, opts ...grpc.CallOption) (*ReorderPlaylistTracksRsp, error) DeletePlaylistTrack(ctx context.Context, in *DeletePlaylistTrackReq, opts ...grpc.CallOption) (*DeletePlaylistTrackRsp, error) SetScenarioPlaylist(ctx context.Context, in *SetScenarioPlaylistReq, opts ...grpc.CallOption) (*SetScenarioPlaylistRsp, error) AddScenario(ctx context.Context, in *AddScenarioReq, opts ...grpc.CallOption) (*AddScenarioRsp, error) @@ -626,6 +628,16 @@ func (c *eveningDetectiveServerClient) UploadPlaylistTrack(ctx context.Context, return out, nil } +func (c *eveningDetectiveServerClient) ReorderPlaylistTracks(ctx context.Context, in *ReorderPlaylistTracksReq, opts ...grpc.CallOption) (*ReorderPlaylistTracksRsp, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ReorderPlaylistTracksRsp) + err := c.cc.Invoke(ctx, EveningDetectiveServer_ReorderPlaylistTracks_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *eveningDetectiveServerClient) DeletePlaylistTrack(ctx context.Context, in *DeletePlaylistTrackReq, opts ...grpc.CallOption) (*DeletePlaylistTrackRsp, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(DeletePlaylistTrackRsp) @@ -1476,6 +1488,7 @@ type EveningDetectiveServerServer interface { UpdatePlaylist(context.Context, *UpdatePlaylistReq) (*UpdatePlaylistRsp, error) DeletePlaylist(context.Context, *DeletePlaylistReq) (*DeletePlaylistRsp, error) UploadPlaylistTrack(context.Context, *UploadPlaylistTrackReq) (*UploadPlaylistTrackRsp, error) + ReorderPlaylistTracks(context.Context, *ReorderPlaylistTracksReq) (*ReorderPlaylistTracksRsp, error) DeletePlaylistTrack(context.Context, *DeletePlaylistTrackReq) (*DeletePlaylistTrackRsp, error) SetScenarioPlaylist(context.Context, *SetScenarioPlaylistReq) (*SetScenarioPlaylistRsp, error) AddScenario(context.Context, *AddScenarioReq) (*AddScenarioRsp, error) @@ -1681,6 +1694,9 @@ func (UnimplementedEveningDetectiveServerServer) DeletePlaylist(context.Context, func (UnimplementedEveningDetectiveServerServer) UploadPlaylistTrack(context.Context, *UploadPlaylistTrackReq) (*UploadPlaylistTrackRsp, error) { return nil, status.Error(codes.Unimplemented, "method UploadPlaylistTrack not implemented") } +func (UnimplementedEveningDetectiveServerServer) ReorderPlaylistTracks(context.Context, *ReorderPlaylistTracksReq) (*ReorderPlaylistTracksRsp, error) { + return nil, status.Error(codes.Unimplemented, "method ReorderPlaylistTracks not implemented") +} func (UnimplementedEveningDetectiveServerServer) DeletePlaylistTrack(context.Context, *DeletePlaylistTrackReq) (*DeletePlaylistTrackRsp, error) { return nil, status.Error(codes.Unimplemented, "method DeletePlaylistTrack not implemented") } @@ -2558,6 +2574,24 @@ func _EveningDetectiveServer_UploadPlaylistTrack_Handler(srv interface{}, ctx co return interceptor(ctx, in, info, handler) } +func _EveningDetectiveServer_ReorderPlaylistTracks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ReorderPlaylistTracksReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EveningDetectiveServerServer).ReorderPlaylistTracks(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EveningDetectiveServer_ReorderPlaylistTracks_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EveningDetectiveServerServer).ReorderPlaylistTracks(ctx, req.(*ReorderPlaylistTracksReq)) + } + return interceptor(ctx, in, info, handler) +} + func _EveningDetectiveServer_DeletePlaylistTrack_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(DeletePlaylistTrackReq) if err := dec(in); err != nil { @@ -4159,6 +4193,10 @@ var EveningDetectiveServer_ServiceDesc = grpc.ServiceDesc{ MethodName: "UploadPlaylistTrack", Handler: _EveningDetectiveServer_UploadPlaylistTrack_Handler, }, + { + MethodName: "ReorderPlaylistTracks", + Handler: _EveningDetectiveServer_ReorderPlaylistTracks_Handler, + }, { MethodName: "DeletePlaylistTrack", Handler: _EveningDetectiveServer_DeletePlaylistTrack_Handler,