From a0ee5962df870e39a4b23c7f402608d28727b6af Mon Sep 17 00:00:00 2001 From: zhx Date: Tue, 26 May 2026 02:39:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B9=B8=E8=BF=90=E7=A4=BC=E7=89=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/proto/activity/v1/activity.pb.go | 13 +- api/proto/activity/v1/activity.proto | 1 + api/proto/room/v1/room.pb.go | 1315 ++++++++++------- api/proto/room/v1/room.proto | 22 + .../internal/modules/luckygift/handler.go | 2 + .../mysql/initdb/001_activity_service.sql | 27 + .../internal/domain/luckygift/lucky_gift.go | 1 + .../storage/mysql/lucky_gift_repository.go | 5 + .../transport/grpc/lucky_gift_server.go | 1 + .../internal/client/user_client.go | 10 + .../transport/http/httpkit/response.go | 6 +- .../transport/http/httproutes/router.go | 4 + .../internal/transport/http/response_test.go | 182 ++- .../transport/http/userapi/handler.go | 2 + .../http/userapi/host_agency_handler.go | 185 +++ services/room-service/internal/app/app.go | 8 +- .../internal/integration/clients.go | 9 + .../internal/integration/clients_grpc.go | 18 + .../internal/room/service/gift.go | 111 ++ .../internal/room/service/lucky_gift_test.go | 110 ++ .../internal/room/service/service.go | 12 +- .../internal/service/host/service_test.go | 7 + .../internal/storage/mysql/host/queries.go | 9 +- .../internal/service/wallet/service_test.go | 25 + .../storage/mysql/resource_repository.go | 11 +- 25 files changed, 1516 insertions(+), 580 deletions(-) create mode 100644 services/gateway-service/internal/transport/http/userapi/host_agency_handler.go create mode 100644 services/room-service/internal/room/service/lucky_gift_test.go diff --git a/api/proto/activity/v1/activity.pb.go b/api/proto/activity/v1/activity.pb.go index 44e3e26b..41812c65 100644 --- a/api/proto/activity/v1/activity.pb.go +++ b/api/proto/activity/v1/activity.pb.go @@ -10705,6 +10705,7 @@ type LuckyGiftDrawResult struct { HighMultiplier bool `protobuf:"varint,18,opt,name=high_multiplier,json=highMultiplier,proto3" json:"high_multiplier,omitempty"` CreatedAtMs int64 `protobuf:"varint,19,opt,name=created_at_ms,json=createdAtMs,proto3" json:"created_at_ms,omitempty"` PoolId string `protobuf:"bytes,20,opt,name=pool_id,json=poolId,proto3" json:"pool_id,omitempty"` + MultiplierPpm int64 `protobuf:"varint,21,opt,name=multiplier_ppm,json=multiplierPpm,proto3" json:"multiplier_ppm,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -10879,6 +10880,13 @@ func (x *LuckyGiftDrawResult) GetPoolId() string { return "" } +func (x *LuckyGiftDrawResult) GetMultiplierPpm() int64 { + if x != nil { + return x.MultiplierPpm + } + return 0 +} + type ExecuteLuckyGiftDrawRequest struct { state protoimpl.MessageState `protogen:"open.v1"` LuckyGift *LuckyGiftMeta `protobuf:"bytes,1,opt,name=lucky_gift,json=luckyGift,proto3" json:"lucky_gift,omitempty"` @@ -12673,7 +12681,7 @@ const file_proto_activity_v1_activity_proto_rawDesc = "" + "\frule_version\x18\x05 \x01(\x03R\vruleVersion\x12$\n" + "\x0etarget_rtp_ppm\x18\x06 \x01(\x03R\ftargetRtpPpm\x12'\n" + "\x0fexperience_pool\x18\a \x01(\tR\x0eexperiencePool\x12\x17\n" + - "\apool_id\x18\b \x01(\tR\x06poolId\"\xce\x06\n" + + "\apool_id\x18\b \x01(\tR\x06poolId\"\xf5\x06\n" + "\x13LuckyGiftDrawResult\x12\x17\n" + "\adraw_id\x18\x01 \x01(\tR\x06drawId\x12\x1d\n" + "\n" + @@ -12696,7 +12704,8 @@ const file_proto_activity_v1_activity_proto_rawDesc = "" + "\x0estage_feedback\x18\x11 \x01(\bR\rstageFeedback\x12'\n" + "\x0fhigh_multiplier\x18\x12 \x01(\bR\x0ehighMultiplier\x12\"\n" + "\rcreated_at_ms\x18\x13 \x01(\x03R\vcreatedAtMs\x12\x17\n" + - "\apool_id\x18\x14 \x01(\tR\x06poolId\"^\n" + + "\apool_id\x18\x14 \x01(\tR\x06poolId\x12%\n" + + "\x0emultiplier_ppm\x18\x15 \x01(\x03R\rmultiplierPpm\"^\n" + "\x1bExecuteLuckyGiftDrawRequest\x12?\n" + "\n" + "lucky_gift\x18\x01 \x01(\v2 .hyapp.activity.v1.LuckyGiftMetaR\tluckyGift\"^\n" + diff --git a/api/proto/activity/v1/activity.proto b/api/proto/activity/v1/activity.proto index 11bd0c65..7fbf42ef 100644 --- a/api/proto/activity/v1/activity.proto +++ b/api/proto/activity/v1/activity.proto @@ -1218,6 +1218,7 @@ message LuckyGiftDrawResult { bool high_multiplier = 18; int64 created_at_ms = 19; string pool_id = 20; + int64 multiplier_ppm = 21; } message ExecuteLuckyGiftDrawRequest { diff --git a/api/proto/room/v1/room.pb.go b/api/proto/room/v1/room.pb.go index fc723bc9..12a43ea7 100644 --- a/api/proto/room/v1/room.pb.go +++ b/api/proto/room/v1/room.pb.go @@ -448,6 +448,179 @@ func (x *RankItem) GetUpdatedAtMs() int64 { return 0 } +// LuckyGiftDrawResult 是 SendGift 同步返回给当前送礼用户的幸运礼物抽奖表现。 +type LuckyGiftDrawResult struct { + state protoimpl.MessageState `protogen:"open.v1"` + Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` + DrawId string `protobuf:"bytes,2,opt,name=draw_id,json=drawId,proto3" json:"draw_id,omitempty"` + CommandId string `protobuf:"bytes,3,opt,name=command_id,json=commandId,proto3" json:"command_id,omitempty"` + PoolId string `protobuf:"bytes,4,opt,name=pool_id,json=poolId,proto3" json:"pool_id,omitempty"` + GiftId string `protobuf:"bytes,5,opt,name=gift_id,json=giftId,proto3" json:"gift_id,omitempty"` + RuleVersion int64 `protobuf:"varint,6,opt,name=rule_version,json=ruleVersion,proto3" json:"rule_version,omitempty"` + ExperiencePool string `protobuf:"bytes,7,opt,name=experience_pool,json=experiencePool,proto3" json:"experience_pool,omitempty"` + SelectedTierId string `protobuf:"bytes,8,opt,name=selected_tier_id,json=selectedTierId,proto3" json:"selected_tier_id,omitempty"` + MultiplierPpm int64 `protobuf:"varint,9,opt,name=multiplier_ppm,json=multiplierPpm,proto3" json:"multiplier_ppm,omitempty"` + BaseRewardCoins int64 `protobuf:"varint,10,opt,name=base_reward_coins,json=baseRewardCoins,proto3" json:"base_reward_coins,omitempty"` + RoomAtmosphereRewardCoins int64 `protobuf:"varint,11,opt,name=room_atmosphere_reward_coins,json=roomAtmosphereRewardCoins,proto3" json:"room_atmosphere_reward_coins,omitempty"` + ActivitySubsidyCoins int64 `protobuf:"varint,12,opt,name=activity_subsidy_coins,json=activitySubsidyCoins,proto3" json:"activity_subsidy_coins,omitempty"` + EffectiveRewardCoins int64 `protobuf:"varint,13,opt,name=effective_reward_coins,json=effectiveRewardCoins,proto3" json:"effective_reward_coins,omitempty"` + RewardStatus string `protobuf:"bytes,14,opt,name=reward_status,json=rewardStatus,proto3" json:"reward_status,omitempty"` + StageFeedback bool `protobuf:"varint,15,opt,name=stage_feedback,json=stageFeedback,proto3" json:"stage_feedback,omitempty"` + HighMultiplier bool `protobuf:"varint,16,opt,name=high_multiplier,json=highMultiplier,proto3" json:"high_multiplier,omitempty"` + CreatedAtMs int64 `protobuf:"varint,17,opt,name=created_at_ms,json=createdAtMs,proto3" json:"created_at_ms,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *LuckyGiftDrawResult) Reset() { + *x = LuckyGiftDrawResult{} + mi := &file_proto_room_v1_room_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LuckyGiftDrawResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LuckyGiftDrawResult) ProtoMessage() {} + +func (x *LuckyGiftDrawResult) ProtoReflect() protoreflect.Message { + mi := &file_proto_room_v1_room_proto_msgTypes[5] + 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 LuckyGiftDrawResult.ProtoReflect.Descriptor instead. +func (*LuckyGiftDrawResult) Descriptor() ([]byte, []int) { + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{5} +} + +func (x *LuckyGiftDrawResult) GetEnabled() bool { + if x != nil { + return x.Enabled + } + return false +} + +func (x *LuckyGiftDrawResult) GetDrawId() string { + if x != nil { + return x.DrawId + } + return "" +} + +func (x *LuckyGiftDrawResult) GetCommandId() string { + if x != nil { + return x.CommandId + } + return "" +} + +func (x *LuckyGiftDrawResult) GetPoolId() string { + if x != nil { + return x.PoolId + } + return "" +} + +func (x *LuckyGiftDrawResult) GetGiftId() string { + if x != nil { + return x.GiftId + } + return "" +} + +func (x *LuckyGiftDrawResult) GetRuleVersion() int64 { + if x != nil { + return x.RuleVersion + } + return 0 +} + +func (x *LuckyGiftDrawResult) GetExperiencePool() string { + if x != nil { + return x.ExperiencePool + } + return "" +} + +func (x *LuckyGiftDrawResult) GetSelectedTierId() string { + if x != nil { + return x.SelectedTierId + } + return "" +} + +func (x *LuckyGiftDrawResult) GetMultiplierPpm() int64 { + if x != nil { + return x.MultiplierPpm + } + return 0 +} + +func (x *LuckyGiftDrawResult) GetBaseRewardCoins() int64 { + if x != nil { + return x.BaseRewardCoins + } + return 0 +} + +func (x *LuckyGiftDrawResult) GetRoomAtmosphereRewardCoins() int64 { + if x != nil { + return x.RoomAtmosphereRewardCoins + } + return 0 +} + +func (x *LuckyGiftDrawResult) GetActivitySubsidyCoins() int64 { + if x != nil { + return x.ActivitySubsidyCoins + } + return 0 +} + +func (x *LuckyGiftDrawResult) GetEffectiveRewardCoins() int64 { + if x != nil { + return x.EffectiveRewardCoins + } + return 0 +} + +func (x *LuckyGiftDrawResult) GetRewardStatus() string { + if x != nil { + return x.RewardStatus + } + return "" +} + +func (x *LuckyGiftDrawResult) GetStageFeedback() bool { + if x != nil { + return x.StageFeedback + } + return false +} + +func (x *LuckyGiftDrawResult) GetHighMultiplier() bool { + if x != nil { + return x.HighMultiplier + } + return false +} + +func (x *LuckyGiftDrawResult) GetCreatedAtMs() int64 { + if x != nil { + return x.CreatedAtMs + } + return 0 +} + // RoomTreasureRewardItem 是后台配置给客户端展示的宝箱奖励候选项。 type RoomTreasureRewardItem struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -462,7 +635,7 @@ type RoomTreasureRewardItem struct { func (x *RoomTreasureRewardItem) Reset() { *x = RoomTreasureRewardItem{} - mi := &file_proto_room_v1_room_proto_msgTypes[5] + mi := &file_proto_room_v1_room_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -474,7 +647,7 @@ func (x *RoomTreasureRewardItem) String() string { func (*RoomTreasureRewardItem) ProtoMessage() {} func (x *RoomTreasureRewardItem) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[5] + mi := &file_proto_room_v1_room_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -487,7 +660,7 @@ func (x *RoomTreasureRewardItem) ProtoReflect() protoreflect.Message { // Deprecated: Use RoomTreasureRewardItem.ProtoReflect.Descriptor instead. func (*RoomTreasureRewardItem) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{5} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{6} } func (x *RoomTreasureRewardItem) GetRewardItemId() string { @@ -543,7 +716,7 @@ type RoomTreasureLevel struct { func (x *RoomTreasureLevel) Reset() { *x = RoomTreasureLevel{} - mi := &file_proto_room_v1_room_proto_msgTypes[6] + mi := &file_proto_room_v1_room_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -555,7 +728,7 @@ func (x *RoomTreasureLevel) String() string { func (*RoomTreasureLevel) ProtoMessage() {} func (x *RoomTreasureLevel) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[6] + mi := &file_proto_room_v1_room_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -568,7 +741,7 @@ func (x *RoomTreasureLevel) ProtoReflect() protoreflect.Message { // Deprecated: Use RoomTreasureLevel.ProtoReflect.Descriptor instead. func (*RoomTreasureLevel) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{6} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{7} } func (x *RoomTreasureLevel) GetLevel() int32 { @@ -651,7 +824,7 @@ type RoomTreasureRewardGrant struct { func (x *RoomTreasureRewardGrant) Reset() { *x = RoomTreasureRewardGrant{} - mi := &file_proto_room_v1_room_proto_msgTypes[7] + mi := &file_proto_room_v1_room_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -663,7 +836,7 @@ func (x *RoomTreasureRewardGrant) String() string { func (*RoomTreasureRewardGrant) ProtoMessage() {} func (x *RoomTreasureRewardGrant) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[7] + mi := &file_proto_room_v1_room_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -676,7 +849,7 @@ func (x *RoomTreasureRewardGrant) ProtoReflect() protoreflect.Message { // Deprecated: Use RoomTreasureRewardGrant.ProtoReflect.Descriptor instead. func (*RoomTreasureRewardGrant) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{7} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{8} } func (x *RoomTreasureRewardGrant) GetRewardRole() string { @@ -757,7 +930,7 @@ type RoomTreasureState struct { func (x *RoomTreasureState) Reset() { *x = RoomTreasureState{} - mi := &file_proto_room_v1_room_proto_msgTypes[8] + mi := &file_proto_room_v1_room_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -769,7 +942,7 @@ func (x *RoomTreasureState) String() string { func (*RoomTreasureState) ProtoMessage() {} func (x *RoomTreasureState) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[8] + mi := &file_proto_room_v1_room_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -782,7 +955,7 @@ func (x *RoomTreasureState) ProtoReflect() protoreflect.Message { // Deprecated: Use RoomTreasureState.ProtoReflect.Descriptor instead. func (*RoomTreasureState) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{8} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{9} } func (x *RoomTreasureState) GetCurrentLevel() int32 { @@ -893,7 +1066,7 @@ type RoomTreasureInfo struct { func (x *RoomTreasureInfo) Reset() { *x = RoomTreasureInfo{} - mi := &file_proto_room_v1_room_proto_msgTypes[9] + mi := &file_proto_room_v1_room_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -905,7 +1078,7 @@ func (x *RoomTreasureInfo) String() string { func (*RoomTreasureInfo) ProtoMessage() {} func (x *RoomTreasureInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[9] + mi := &file_proto_room_v1_room_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -918,7 +1091,7 @@ func (x *RoomTreasureInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use RoomTreasureInfo.ProtoReflect.Descriptor instead. func (*RoomTreasureInfo) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{9} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{10} } func (x *RoomTreasureInfo) GetEnabled() bool { @@ -992,7 +1165,7 @@ type RoomTreasureGiftEnergyRule struct { func (x *RoomTreasureGiftEnergyRule) Reset() { *x = RoomTreasureGiftEnergyRule{} - mi := &file_proto_room_v1_room_proto_msgTypes[10] + mi := &file_proto_room_v1_room_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1004,7 +1177,7 @@ func (x *RoomTreasureGiftEnergyRule) String() string { func (*RoomTreasureGiftEnergyRule) ProtoMessage() {} func (x *RoomTreasureGiftEnergyRule) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[10] + mi := &file_proto_room_v1_room_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1017,7 +1190,7 @@ func (x *RoomTreasureGiftEnergyRule) ProtoReflect() protoreflect.Message { // Deprecated: Use RoomTreasureGiftEnergyRule.ProtoReflect.Descriptor instead. func (*RoomTreasureGiftEnergyRule) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{10} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{11} } func (x *RoomTreasureGiftEnergyRule) GetRuleId() string { @@ -1085,7 +1258,7 @@ type AdminRoomTreasureConfig struct { func (x *AdminRoomTreasureConfig) Reset() { *x = AdminRoomTreasureConfig{} - mi := &file_proto_room_v1_room_proto_msgTypes[11] + mi := &file_proto_room_v1_room_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1097,7 +1270,7 @@ func (x *AdminRoomTreasureConfig) String() string { func (*AdminRoomTreasureConfig) ProtoMessage() {} func (x *AdminRoomTreasureConfig) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[11] + mi := &file_proto_room_v1_room_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1110,7 +1283,7 @@ func (x *AdminRoomTreasureConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use AdminRoomTreasureConfig.ProtoReflect.Descriptor instead. func (*AdminRoomTreasureConfig) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{11} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{12} } func (x *AdminRoomTreasureConfig) GetAppCode() string { @@ -1220,7 +1393,7 @@ type AdminGetRoomTreasureConfigRequest struct { func (x *AdminGetRoomTreasureConfigRequest) Reset() { *x = AdminGetRoomTreasureConfigRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[12] + mi := &file_proto_room_v1_room_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1232,7 +1405,7 @@ func (x *AdminGetRoomTreasureConfigRequest) String() string { func (*AdminGetRoomTreasureConfigRequest) ProtoMessage() {} func (x *AdminGetRoomTreasureConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[12] + mi := &file_proto_room_v1_room_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1245,7 +1418,7 @@ func (x *AdminGetRoomTreasureConfigRequest) ProtoReflect() protoreflect.Message // Deprecated: Use AdminGetRoomTreasureConfigRequest.ProtoReflect.Descriptor instead. func (*AdminGetRoomTreasureConfigRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{12} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{13} } func (x *AdminGetRoomTreasureConfigRequest) GetMeta() *RequestMeta { @@ -1265,7 +1438,7 @@ type AdminGetRoomTreasureConfigResponse struct { func (x *AdminGetRoomTreasureConfigResponse) Reset() { *x = AdminGetRoomTreasureConfigResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[13] + mi := &file_proto_room_v1_room_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1277,7 +1450,7 @@ func (x *AdminGetRoomTreasureConfigResponse) String() string { func (*AdminGetRoomTreasureConfigResponse) ProtoMessage() {} func (x *AdminGetRoomTreasureConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[13] + mi := &file_proto_room_v1_room_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1290,7 +1463,7 @@ func (x *AdminGetRoomTreasureConfigResponse) ProtoReflect() protoreflect.Message // Deprecated: Use AdminGetRoomTreasureConfigResponse.ProtoReflect.Descriptor instead. func (*AdminGetRoomTreasureConfigResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{13} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{14} } func (x *AdminGetRoomTreasureConfigResponse) GetConfig() *AdminRoomTreasureConfig { @@ -1318,7 +1491,7 @@ type AdminUpdateRoomTreasureConfigRequest struct { func (x *AdminUpdateRoomTreasureConfigRequest) Reset() { *x = AdminUpdateRoomTreasureConfigRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[14] + mi := &file_proto_room_v1_room_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1330,7 +1503,7 @@ func (x *AdminUpdateRoomTreasureConfigRequest) String() string { func (*AdminUpdateRoomTreasureConfigRequest) ProtoMessage() {} func (x *AdminUpdateRoomTreasureConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[14] + mi := &file_proto_room_v1_room_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1343,7 +1516,7 @@ func (x *AdminUpdateRoomTreasureConfigRequest) ProtoReflect() protoreflect.Messa // Deprecated: Use AdminUpdateRoomTreasureConfigRequest.ProtoReflect.Descriptor instead. func (*AdminUpdateRoomTreasureConfigRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{14} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{15} } func (x *AdminUpdateRoomTreasureConfigRequest) GetMeta() *RequestMeta { @@ -1377,7 +1550,7 @@ type AdminUpdateRoomTreasureConfigResponse struct { func (x *AdminUpdateRoomTreasureConfigResponse) Reset() { *x = AdminUpdateRoomTreasureConfigResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[15] + mi := &file_proto_room_v1_room_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1389,7 +1562,7 @@ func (x *AdminUpdateRoomTreasureConfigResponse) String() string { func (*AdminUpdateRoomTreasureConfigResponse) ProtoMessage() {} func (x *AdminUpdateRoomTreasureConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[15] + mi := &file_proto_room_v1_room_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1402,7 +1575,7 @@ func (x *AdminUpdateRoomTreasureConfigResponse) ProtoReflect() protoreflect.Mess // Deprecated: Use AdminUpdateRoomTreasureConfigResponse.ProtoReflect.Descriptor instead. func (*AdminUpdateRoomTreasureConfigResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{15} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{16} } func (x *AdminUpdateRoomTreasureConfigResponse) GetConfig() *AdminRoomTreasureConfig { @@ -1431,7 +1604,7 @@ type AdminRoomSeatConfig struct { func (x *AdminRoomSeatConfig) Reset() { *x = AdminRoomSeatConfig{} - mi := &file_proto_room_v1_room_proto_msgTypes[16] + mi := &file_proto_room_v1_room_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1443,7 +1616,7 @@ func (x *AdminRoomSeatConfig) String() string { func (*AdminRoomSeatConfig) ProtoMessage() {} func (x *AdminRoomSeatConfig) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[16] + mi := &file_proto_room_v1_room_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1456,7 +1629,7 @@ func (x *AdminRoomSeatConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use AdminRoomSeatConfig.ProtoReflect.Descriptor instead. func (*AdminRoomSeatConfig) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{16} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{17} } func (x *AdminRoomSeatConfig) GetCandidateSeatCounts() []int32 { @@ -1496,7 +1669,7 @@ type AdminGetRoomSeatConfigRequest struct { func (x *AdminGetRoomSeatConfigRequest) Reset() { *x = AdminGetRoomSeatConfigRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[17] + mi := &file_proto_room_v1_room_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1508,7 +1681,7 @@ func (x *AdminGetRoomSeatConfigRequest) String() string { func (*AdminGetRoomSeatConfigRequest) ProtoMessage() {} func (x *AdminGetRoomSeatConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[17] + mi := &file_proto_room_v1_room_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1521,7 +1694,7 @@ func (x *AdminGetRoomSeatConfigRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AdminGetRoomSeatConfigRequest.ProtoReflect.Descriptor instead. func (*AdminGetRoomSeatConfigRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{17} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{18} } func (x *AdminGetRoomSeatConfigRequest) GetMeta() *RequestMeta { @@ -1541,7 +1714,7 @@ type AdminGetRoomSeatConfigResponse struct { func (x *AdminGetRoomSeatConfigResponse) Reset() { *x = AdminGetRoomSeatConfigResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[18] + mi := &file_proto_room_v1_room_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1553,7 +1726,7 @@ func (x *AdminGetRoomSeatConfigResponse) String() string { func (*AdminGetRoomSeatConfigResponse) ProtoMessage() {} func (x *AdminGetRoomSeatConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[18] + mi := &file_proto_room_v1_room_proto_msgTypes[19] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1566,7 +1739,7 @@ func (x *AdminGetRoomSeatConfigResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AdminGetRoomSeatConfigResponse.ProtoReflect.Descriptor instead. func (*AdminGetRoomSeatConfigResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{18} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{19} } func (x *AdminGetRoomSeatConfigResponse) GetConfig() *AdminRoomSeatConfig { @@ -1594,7 +1767,7 @@ type AdminUpdateRoomSeatConfigRequest struct { func (x *AdminUpdateRoomSeatConfigRequest) Reset() { *x = AdminUpdateRoomSeatConfigRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[19] + mi := &file_proto_room_v1_room_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1606,7 +1779,7 @@ func (x *AdminUpdateRoomSeatConfigRequest) String() string { func (*AdminUpdateRoomSeatConfigRequest) ProtoMessage() {} func (x *AdminUpdateRoomSeatConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[19] + mi := &file_proto_room_v1_room_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1619,7 +1792,7 @@ func (x *AdminUpdateRoomSeatConfigRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AdminUpdateRoomSeatConfigRequest.ProtoReflect.Descriptor instead. func (*AdminUpdateRoomSeatConfigRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{19} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{20} } func (x *AdminUpdateRoomSeatConfigRequest) GetMeta() *RequestMeta { @@ -1653,7 +1826,7 @@ type AdminUpdateRoomSeatConfigResponse struct { func (x *AdminUpdateRoomSeatConfigResponse) Reset() { *x = AdminUpdateRoomSeatConfigResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[20] + mi := &file_proto_room_v1_room_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1665,7 +1838,7 @@ func (x *AdminUpdateRoomSeatConfigResponse) String() string { func (*AdminUpdateRoomSeatConfigResponse) ProtoMessage() {} func (x *AdminUpdateRoomSeatConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[20] + mi := &file_proto_room_v1_room_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1678,7 +1851,7 @@ func (x *AdminUpdateRoomSeatConfigResponse) ProtoReflect() protoreflect.Message // Deprecated: Use AdminUpdateRoomSeatConfigResponse.ProtoReflect.Descriptor instead. func (*AdminUpdateRoomSeatConfigResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{20} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{21} } func (x *AdminUpdateRoomSeatConfigResponse) GetConfig() *AdminRoomSeatConfig { @@ -1710,7 +1883,7 @@ type AdminRoomPinRoom struct { func (x *AdminRoomPinRoom) Reset() { *x = AdminRoomPinRoom{} - mi := &file_proto_room_v1_room_proto_msgTypes[21] + mi := &file_proto_room_v1_room_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1722,7 +1895,7 @@ func (x *AdminRoomPinRoom) String() string { func (*AdminRoomPinRoom) ProtoMessage() {} func (x *AdminRoomPinRoom) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[21] + mi := &file_proto_room_v1_room_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1735,7 +1908,7 @@ func (x *AdminRoomPinRoom) ProtoReflect() protoreflect.Message { // Deprecated: Use AdminRoomPinRoom.ProtoReflect.Descriptor instead. func (*AdminRoomPinRoom) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{21} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{22} } func (x *AdminRoomPinRoom) GetRoomId() string { @@ -1808,7 +1981,7 @@ type AdminRoomPin struct { func (x *AdminRoomPin) Reset() { *x = AdminRoomPin{} - mi := &file_proto_room_v1_room_proto_msgTypes[22] + mi := &file_proto_room_v1_room_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1820,7 +1993,7 @@ func (x *AdminRoomPin) String() string { func (*AdminRoomPin) ProtoMessage() {} func (x *AdminRoomPin) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[22] + mi := &file_proto_room_v1_room_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1833,7 +2006,7 @@ func (x *AdminRoomPin) ProtoReflect() protoreflect.Message { // Deprecated: Use AdminRoomPin.ProtoReflect.Descriptor instead. func (*AdminRoomPin) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{22} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{23} } func (x *AdminRoomPin) GetId() int64 { @@ -1941,7 +2114,7 @@ type AdminListRoomPinsRequest struct { func (x *AdminListRoomPinsRequest) Reset() { *x = AdminListRoomPinsRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[23] + mi := &file_proto_room_v1_room_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1953,7 +2126,7 @@ func (x *AdminListRoomPinsRequest) String() string { func (*AdminListRoomPinsRequest) ProtoMessage() {} func (x *AdminListRoomPinsRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[23] + mi := &file_proto_room_v1_room_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1966,7 +2139,7 @@ func (x *AdminListRoomPinsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AdminListRoomPinsRequest.ProtoReflect.Descriptor instead. func (*AdminListRoomPinsRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{23} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{24} } func (x *AdminListRoomPinsRequest) GetMeta() *RequestMeta { @@ -2022,7 +2195,7 @@ type AdminListRoomPinsResponse struct { func (x *AdminListRoomPinsResponse) Reset() { *x = AdminListRoomPinsResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[24] + mi := &file_proto_room_v1_room_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2034,7 +2207,7 @@ func (x *AdminListRoomPinsResponse) String() string { func (*AdminListRoomPinsResponse) ProtoMessage() {} func (x *AdminListRoomPinsResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[24] + mi := &file_proto_room_v1_room_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2047,7 +2220,7 @@ func (x *AdminListRoomPinsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AdminListRoomPinsResponse.ProtoReflect.Descriptor instead. func (*AdminListRoomPinsResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{24} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{25} } func (x *AdminListRoomPinsResponse) GetPins() []*AdminRoomPin { @@ -2084,7 +2257,7 @@ type AdminCreateRoomPinRequest struct { func (x *AdminCreateRoomPinRequest) Reset() { *x = AdminCreateRoomPinRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[25] + mi := &file_proto_room_v1_room_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2096,7 +2269,7 @@ func (x *AdminCreateRoomPinRequest) String() string { func (*AdminCreateRoomPinRequest) ProtoMessage() {} func (x *AdminCreateRoomPinRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[25] + mi := &file_proto_room_v1_room_proto_msgTypes[26] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2109,7 +2282,7 @@ func (x *AdminCreateRoomPinRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AdminCreateRoomPinRequest.ProtoReflect.Descriptor instead. func (*AdminCreateRoomPinRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{25} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{26} } func (x *AdminCreateRoomPinRequest) GetMeta() *RequestMeta { @@ -2157,7 +2330,7 @@ type AdminCreateRoomPinResponse struct { func (x *AdminCreateRoomPinResponse) Reset() { *x = AdminCreateRoomPinResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[26] + mi := &file_proto_room_v1_room_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2169,7 +2342,7 @@ func (x *AdminCreateRoomPinResponse) String() string { func (*AdminCreateRoomPinResponse) ProtoMessage() {} func (x *AdminCreateRoomPinResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[26] + mi := &file_proto_room_v1_room_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2182,7 +2355,7 @@ func (x *AdminCreateRoomPinResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AdminCreateRoomPinResponse.ProtoReflect.Descriptor instead. func (*AdminCreateRoomPinResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{26} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{27} } func (x *AdminCreateRoomPinResponse) GetPin() *AdminRoomPin { @@ -2210,7 +2383,7 @@ type AdminCancelRoomPinRequest struct { func (x *AdminCancelRoomPinRequest) Reset() { *x = AdminCancelRoomPinRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[27] + mi := &file_proto_room_v1_room_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2222,7 +2395,7 @@ func (x *AdminCancelRoomPinRequest) String() string { func (*AdminCancelRoomPinRequest) ProtoMessage() {} func (x *AdminCancelRoomPinRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[27] + mi := &file_proto_room_v1_room_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2235,7 +2408,7 @@ func (x *AdminCancelRoomPinRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AdminCancelRoomPinRequest.ProtoReflect.Descriptor instead. func (*AdminCancelRoomPinRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{27} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{28} } func (x *AdminCancelRoomPinRequest) GetMeta() *RequestMeta { @@ -2269,7 +2442,7 @@ type AdminCancelRoomPinResponse struct { func (x *AdminCancelRoomPinResponse) Reset() { *x = AdminCancelRoomPinResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[28] + mi := &file_proto_room_v1_room_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2281,7 +2454,7 @@ func (x *AdminCancelRoomPinResponse) String() string { func (*AdminCancelRoomPinResponse) ProtoMessage() {} func (x *AdminCancelRoomPinResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[28] + mi := &file_proto_room_v1_room_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2294,7 +2467,7 @@ func (x *AdminCancelRoomPinResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AdminCancelRoomPinResponse.ProtoReflect.Descriptor instead. func (*AdminCancelRoomPinResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{28} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{29} } func (x *AdminCancelRoomPinResponse) GetPin() *AdminRoomPin { @@ -2341,7 +2514,7 @@ type RoomSnapshot struct { func (x *RoomSnapshot) Reset() { *x = RoomSnapshot{} - mi := &file_proto_room_v1_room_proto_msgTypes[29] + mi := &file_proto_room_v1_room_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2353,7 +2526,7 @@ func (x *RoomSnapshot) String() string { func (*RoomSnapshot) ProtoMessage() {} func (x *RoomSnapshot) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[29] + mi := &file_proto_room_v1_room_proto_msgTypes[30] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2366,7 +2539,7 @@ func (x *RoomSnapshot) ProtoReflect() protoreflect.Message { // Deprecated: Use RoomSnapshot.ProtoReflect.Descriptor instead. func (*RoomSnapshot) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{29} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{30} } func (x *RoomSnapshot) GetRoomId() string { @@ -2528,7 +2701,7 @@ type CreateRoomRequest struct { func (x *CreateRoomRequest) Reset() { *x = CreateRoomRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[30] + mi := &file_proto_room_v1_room_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2540,7 +2713,7 @@ func (x *CreateRoomRequest) String() string { func (*CreateRoomRequest) ProtoMessage() {} func (x *CreateRoomRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[30] + mi := &file_proto_room_v1_room_proto_msgTypes[31] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2553,7 +2726,7 @@ func (x *CreateRoomRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateRoomRequest.ProtoReflect.Descriptor instead. func (*CreateRoomRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{30} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{31} } func (x *CreateRoomRequest) GetMeta() *RequestMeta { @@ -2623,7 +2796,7 @@ type CreateRoomResponse struct { func (x *CreateRoomResponse) Reset() { *x = CreateRoomResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[31] + mi := &file_proto_room_v1_room_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2635,7 +2808,7 @@ func (x *CreateRoomResponse) String() string { func (*CreateRoomResponse) ProtoMessage() {} func (x *CreateRoomResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[31] + mi := &file_proto_room_v1_room_proto_msgTypes[32] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2648,7 +2821,7 @@ func (x *CreateRoomResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateRoomResponse.ProtoReflect.Descriptor instead. func (*CreateRoomResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{31} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{32} } func (x *CreateRoomResponse) GetResult() *CommandResult { @@ -2680,7 +2853,7 @@ type UpdateRoomProfileRequest struct { func (x *UpdateRoomProfileRequest) Reset() { *x = UpdateRoomProfileRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[32] + mi := &file_proto_room_v1_room_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2692,7 +2865,7 @@ func (x *UpdateRoomProfileRequest) String() string { func (*UpdateRoomProfileRequest) ProtoMessage() {} func (x *UpdateRoomProfileRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[32] + mi := &file_proto_room_v1_room_proto_msgTypes[33] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2705,7 +2878,7 @@ func (x *UpdateRoomProfileRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateRoomProfileRequest.ProtoReflect.Descriptor instead. func (*UpdateRoomProfileRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{32} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{33} } func (x *UpdateRoomProfileRequest) GetMeta() *RequestMeta { @@ -2754,7 +2927,7 @@ type UpdateRoomProfileResponse struct { func (x *UpdateRoomProfileResponse) Reset() { *x = UpdateRoomProfileResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[33] + mi := &file_proto_room_v1_room_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2766,7 +2939,7 @@ func (x *UpdateRoomProfileResponse) String() string { func (*UpdateRoomProfileResponse) ProtoMessage() {} func (x *UpdateRoomProfileResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[33] + mi := &file_proto_room_v1_room_proto_msgTypes[34] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2779,7 +2952,7 @@ func (x *UpdateRoomProfileResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateRoomProfileResponse.ProtoReflect.Descriptor instead. func (*UpdateRoomProfileResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{33} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{34} } func (x *UpdateRoomProfileResponse) GetResult() *CommandResult { @@ -2809,7 +2982,7 @@ type JoinRoomRequest struct { func (x *JoinRoomRequest) Reset() { *x = JoinRoomRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[34] + mi := &file_proto_room_v1_room_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2821,7 +2994,7 @@ func (x *JoinRoomRequest) String() string { func (*JoinRoomRequest) ProtoMessage() {} func (x *JoinRoomRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[34] + mi := &file_proto_room_v1_room_proto_msgTypes[35] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2834,7 +3007,7 @@ func (x *JoinRoomRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use JoinRoomRequest.ProtoReflect.Descriptor instead. func (*JoinRoomRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{34} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{35} } func (x *JoinRoomRequest) GetMeta() *RequestMeta { @@ -2870,7 +3043,7 @@ type JoinRoomResponse struct { func (x *JoinRoomResponse) Reset() { *x = JoinRoomResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[35] + mi := &file_proto_room_v1_room_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2882,7 +3055,7 @@ func (x *JoinRoomResponse) String() string { func (*JoinRoomResponse) ProtoMessage() {} func (x *JoinRoomResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[35] + mi := &file_proto_room_v1_room_proto_msgTypes[36] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2895,7 +3068,7 @@ func (x *JoinRoomResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use JoinRoomResponse.ProtoReflect.Descriptor instead. func (*JoinRoomResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{35} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{36} } func (x *JoinRoomResponse) GetResult() *CommandResult { @@ -2930,7 +3103,7 @@ type RoomHeartbeatRequest struct { func (x *RoomHeartbeatRequest) Reset() { *x = RoomHeartbeatRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[36] + mi := &file_proto_room_v1_room_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2942,7 +3115,7 @@ func (x *RoomHeartbeatRequest) String() string { func (*RoomHeartbeatRequest) ProtoMessage() {} func (x *RoomHeartbeatRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[36] + mi := &file_proto_room_v1_room_proto_msgTypes[37] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2955,7 +3128,7 @@ func (x *RoomHeartbeatRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RoomHeartbeatRequest.ProtoReflect.Descriptor instead. func (*RoomHeartbeatRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{36} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{37} } func (x *RoomHeartbeatRequest) GetMeta() *RequestMeta { @@ -2977,7 +3150,7 @@ type RoomHeartbeatResponse struct { func (x *RoomHeartbeatResponse) Reset() { *x = RoomHeartbeatResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[37] + mi := &file_proto_room_v1_room_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2989,7 +3162,7 @@ func (x *RoomHeartbeatResponse) String() string { func (*RoomHeartbeatResponse) ProtoMessage() {} func (x *RoomHeartbeatResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[37] + mi := &file_proto_room_v1_room_proto_msgTypes[38] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3002,7 +3175,7 @@ func (x *RoomHeartbeatResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RoomHeartbeatResponse.ProtoReflect.Descriptor instead. func (*RoomHeartbeatResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{37} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{38} } func (x *RoomHeartbeatResponse) GetResult() *CommandResult { @@ -3036,7 +3209,7 @@ type LeaveRoomRequest struct { func (x *LeaveRoomRequest) Reset() { *x = LeaveRoomRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[38] + mi := &file_proto_room_v1_room_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3048,7 +3221,7 @@ func (x *LeaveRoomRequest) String() string { func (*LeaveRoomRequest) ProtoMessage() {} func (x *LeaveRoomRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[38] + mi := &file_proto_room_v1_room_proto_msgTypes[39] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3061,7 +3234,7 @@ func (x *LeaveRoomRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use LeaveRoomRequest.ProtoReflect.Descriptor instead. func (*LeaveRoomRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{38} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{39} } func (x *LeaveRoomRequest) GetMeta() *RequestMeta { @@ -3082,7 +3255,7 @@ type LeaveRoomResponse struct { func (x *LeaveRoomResponse) Reset() { *x = LeaveRoomResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[39] + mi := &file_proto_room_v1_room_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3094,7 +3267,7 @@ func (x *LeaveRoomResponse) String() string { func (*LeaveRoomResponse) ProtoMessage() {} func (x *LeaveRoomResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[39] + mi := &file_proto_room_v1_room_proto_msgTypes[40] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3107,7 +3280,7 @@ func (x *LeaveRoomResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use LeaveRoomResponse.ProtoReflect.Descriptor instead. func (*LeaveRoomResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{39} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{40} } func (x *LeaveRoomResponse) GetResult() *CommandResult { @@ -3135,7 +3308,7 @@ type CloseRoomRequest struct { func (x *CloseRoomRequest) Reset() { *x = CloseRoomRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[40] + mi := &file_proto_room_v1_room_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3147,7 +3320,7 @@ func (x *CloseRoomRequest) String() string { func (*CloseRoomRequest) ProtoMessage() {} func (x *CloseRoomRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[40] + mi := &file_proto_room_v1_room_proto_msgTypes[41] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3160,7 +3333,7 @@ func (x *CloseRoomRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CloseRoomRequest.ProtoReflect.Descriptor instead. func (*CloseRoomRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{40} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{41} } func (x *CloseRoomRequest) GetMeta() *RequestMeta { @@ -3188,7 +3361,7 @@ type CloseRoomResponse struct { func (x *CloseRoomResponse) Reset() { *x = CloseRoomResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[41] + mi := &file_proto_room_v1_room_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3200,7 +3373,7 @@ func (x *CloseRoomResponse) String() string { func (*CloseRoomResponse) ProtoMessage() {} func (x *CloseRoomResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[41] + mi := &file_proto_room_v1_room_proto_msgTypes[42] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3213,7 +3386,7 @@ func (x *CloseRoomResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CloseRoomResponse.ProtoReflect.Descriptor instead. func (*CloseRoomResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{41} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{42} } func (x *CloseRoomResponse) GetResult() *CommandResult { @@ -3258,7 +3431,7 @@ type AdminRoomListItem struct { func (x *AdminRoomListItem) Reset() { *x = AdminRoomListItem{} - mi := &file_proto_room_v1_room_proto_msgTypes[42] + mi := &file_proto_room_v1_room_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3270,7 +3443,7 @@ func (x *AdminRoomListItem) String() string { func (*AdminRoomListItem) ProtoMessage() {} func (x *AdminRoomListItem) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[42] + mi := &file_proto_room_v1_room_proto_msgTypes[43] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3283,7 +3456,7 @@ func (x *AdminRoomListItem) ProtoReflect() protoreflect.Message { // Deprecated: Use AdminRoomListItem.ProtoReflect.Descriptor instead. func (*AdminRoomListItem) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{42} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{43} } func (x *AdminRoomListItem) GetRoomId() string { @@ -3435,7 +3608,7 @@ type AdminListRoomsRequest struct { func (x *AdminListRoomsRequest) Reset() { *x = AdminListRoomsRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[43] + mi := &file_proto_room_v1_room_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3447,7 +3620,7 @@ func (x *AdminListRoomsRequest) String() string { func (*AdminListRoomsRequest) ProtoMessage() {} func (x *AdminListRoomsRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[43] + mi := &file_proto_room_v1_room_proto_msgTypes[44] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3460,7 +3633,7 @@ func (x *AdminListRoomsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AdminListRoomsRequest.ProtoReflect.Descriptor instead. func (*AdminListRoomsRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{43} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{44} } func (x *AdminListRoomsRequest) GetMeta() *RequestMeta { @@ -3530,7 +3703,7 @@ type AdminListRoomsResponse struct { func (x *AdminListRoomsResponse) Reset() { *x = AdminListRoomsResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[44] + mi := &file_proto_room_v1_room_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3542,7 +3715,7 @@ func (x *AdminListRoomsResponse) String() string { func (*AdminListRoomsResponse) ProtoMessage() {} func (x *AdminListRoomsResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[44] + mi := &file_proto_room_v1_room_proto_msgTypes[45] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3555,7 +3728,7 @@ func (x *AdminListRoomsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AdminListRoomsResponse.ProtoReflect.Descriptor instead. func (*AdminListRoomsResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{44} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{45} } func (x *AdminListRoomsResponse) GetRooms() []*AdminRoomListItem { @@ -3589,7 +3762,7 @@ type AdminGetRoomRequest struct { func (x *AdminGetRoomRequest) Reset() { *x = AdminGetRoomRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[45] + mi := &file_proto_room_v1_room_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3601,7 +3774,7 @@ func (x *AdminGetRoomRequest) String() string { func (*AdminGetRoomRequest) ProtoMessage() {} func (x *AdminGetRoomRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[45] + mi := &file_proto_room_v1_room_proto_msgTypes[46] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3614,7 +3787,7 @@ func (x *AdminGetRoomRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AdminGetRoomRequest.ProtoReflect.Descriptor instead. func (*AdminGetRoomRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{45} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{46} } func (x *AdminGetRoomRequest) GetMeta() *RequestMeta { @@ -3641,7 +3814,7 @@ type AdminGetRoomResponse struct { func (x *AdminGetRoomResponse) Reset() { *x = AdminGetRoomResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[46] + mi := &file_proto_room_v1_room_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3653,7 +3826,7 @@ func (x *AdminGetRoomResponse) String() string { func (*AdminGetRoomResponse) ProtoMessage() {} func (x *AdminGetRoomResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[46] + mi := &file_proto_room_v1_room_proto_msgTypes[47] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3666,7 +3839,7 @@ func (x *AdminGetRoomResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AdminGetRoomResponse.ProtoReflect.Descriptor instead. func (*AdminGetRoomResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{46} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{47} } func (x *AdminGetRoomResponse) GetRoom() *AdminRoomListItem { @@ -3701,7 +3874,7 @@ type AdminUpdateRoomRequest struct { func (x *AdminUpdateRoomRequest) Reset() { *x = AdminUpdateRoomRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[47] + mi := &file_proto_room_v1_room_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3713,7 +3886,7 @@ func (x *AdminUpdateRoomRequest) String() string { func (*AdminUpdateRoomRequest) ProtoMessage() {} func (x *AdminUpdateRoomRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[47] + mi := &file_proto_room_v1_room_proto_msgTypes[48] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3726,7 +3899,7 @@ func (x *AdminUpdateRoomRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AdminUpdateRoomRequest.ProtoReflect.Descriptor instead. func (*AdminUpdateRoomRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{47} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{48} } func (x *AdminUpdateRoomRequest) GetMeta() *RequestMeta { @@ -3809,7 +3982,7 @@ type AdminUpdateRoomResponse struct { func (x *AdminUpdateRoomResponse) Reset() { *x = AdminUpdateRoomResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[48] + mi := &file_proto_room_v1_room_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3821,7 +3994,7 @@ func (x *AdminUpdateRoomResponse) String() string { func (*AdminUpdateRoomResponse) ProtoMessage() {} func (x *AdminUpdateRoomResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[48] + mi := &file_proto_room_v1_room_proto_msgTypes[49] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3834,7 +4007,7 @@ func (x *AdminUpdateRoomResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AdminUpdateRoomResponse.ProtoReflect.Descriptor instead. func (*AdminUpdateRoomResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{48} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{49} } func (x *AdminUpdateRoomResponse) GetResult() *CommandResult { @@ -3862,7 +4035,7 @@ type AdminDeleteRoomRequest struct { func (x *AdminDeleteRoomRequest) Reset() { *x = AdminDeleteRoomRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[49] + mi := &file_proto_room_v1_room_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3874,7 +4047,7 @@ func (x *AdminDeleteRoomRequest) String() string { func (*AdminDeleteRoomRequest) ProtoMessage() {} func (x *AdminDeleteRoomRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[49] + mi := &file_proto_room_v1_room_proto_msgTypes[50] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3887,7 +4060,7 @@ func (x *AdminDeleteRoomRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AdminDeleteRoomRequest.ProtoReflect.Descriptor instead. func (*AdminDeleteRoomRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{49} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{50} } func (x *AdminDeleteRoomRequest) GetMeta() *RequestMeta { @@ -3921,7 +4094,7 @@ type AdminDeleteRoomResponse struct { func (x *AdminDeleteRoomResponse) Reset() { *x = AdminDeleteRoomResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[50] + mi := &file_proto_room_v1_room_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3933,7 +4106,7 @@ func (x *AdminDeleteRoomResponse) String() string { func (*AdminDeleteRoomResponse) ProtoMessage() {} func (x *AdminDeleteRoomResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[50] + mi := &file_proto_room_v1_room_proto_msgTypes[51] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3946,7 +4119,7 @@ func (x *AdminDeleteRoomResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AdminDeleteRoomResponse.ProtoReflect.Descriptor instead. func (*AdminDeleteRoomResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{50} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{51} } func (x *AdminDeleteRoomResponse) GetResult() *CommandResult { @@ -3974,7 +4147,7 @@ type MicUpRequest struct { func (x *MicUpRequest) Reset() { *x = MicUpRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[51] + mi := &file_proto_room_v1_room_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3986,7 +4159,7 @@ func (x *MicUpRequest) String() string { func (*MicUpRequest) ProtoMessage() {} func (x *MicUpRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[51] + mi := &file_proto_room_v1_room_proto_msgTypes[52] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3999,7 +4172,7 @@ func (x *MicUpRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use MicUpRequest.ProtoReflect.Descriptor instead. func (*MicUpRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{51} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{52} } func (x *MicUpRequest) GetMeta() *RequestMeta { @@ -4030,7 +4203,7 @@ type MicUpResponse struct { func (x *MicUpResponse) Reset() { *x = MicUpResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[52] + mi := &file_proto_room_v1_room_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4042,7 +4215,7 @@ func (x *MicUpResponse) String() string { func (*MicUpResponse) ProtoMessage() {} func (x *MicUpResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[52] + mi := &file_proto_room_v1_room_proto_msgTypes[53] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4055,7 +4228,7 @@ func (x *MicUpResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use MicUpResponse.ProtoReflect.Descriptor instead. func (*MicUpResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{52} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{53} } func (x *MicUpResponse) GetResult() *CommandResult { @@ -4106,7 +4279,7 @@ type MicDownRequest struct { func (x *MicDownRequest) Reset() { *x = MicDownRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[53] + mi := &file_proto_room_v1_room_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4118,7 +4291,7 @@ func (x *MicDownRequest) String() string { func (*MicDownRequest) ProtoMessage() {} func (x *MicDownRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[53] + mi := &file_proto_room_v1_room_proto_msgTypes[54] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4131,7 +4304,7 @@ func (x *MicDownRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use MicDownRequest.ProtoReflect.Descriptor instead. func (*MicDownRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{53} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{54} } func (x *MicDownRequest) GetMeta() *RequestMeta { @@ -4167,7 +4340,7 @@ type MicDownResponse struct { func (x *MicDownResponse) Reset() { *x = MicDownResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[54] + mi := &file_proto_room_v1_room_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4179,7 +4352,7 @@ func (x *MicDownResponse) String() string { func (*MicDownResponse) ProtoMessage() {} func (x *MicDownResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[54] + mi := &file_proto_room_v1_room_proto_msgTypes[55] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4192,7 +4365,7 @@ func (x *MicDownResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use MicDownResponse.ProtoReflect.Descriptor instead. func (*MicDownResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{54} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{55} } func (x *MicDownResponse) GetResult() *CommandResult { @@ -4228,7 +4401,7 @@ type ChangeMicSeatRequest struct { func (x *ChangeMicSeatRequest) Reset() { *x = ChangeMicSeatRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[55] + mi := &file_proto_room_v1_room_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4240,7 +4413,7 @@ func (x *ChangeMicSeatRequest) String() string { func (*ChangeMicSeatRequest) ProtoMessage() {} func (x *ChangeMicSeatRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[55] + mi := &file_proto_room_v1_room_proto_msgTypes[56] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4253,7 +4426,7 @@ func (x *ChangeMicSeatRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeMicSeatRequest.ProtoReflect.Descriptor instead. func (*ChangeMicSeatRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{55} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{56} } func (x *ChangeMicSeatRequest) GetMeta() *RequestMeta { @@ -4288,7 +4461,7 @@ type ChangeMicSeatResponse struct { func (x *ChangeMicSeatResponse) Reset() { *x = ChangeMicSeatResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[56] + mi := &file_proto_room_v1_room_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4300,7 +4473,7 @@ func (x *ChangeMicSeatResponse) String() string { func (*ChangeMicSeatResponse) ProtoMessage() {} func (x *ChangeMicSeatResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[56] + mi := &file_proto_room_v1_room_proto_msgTypes[57] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4313,7 +4486,7 @@ func (x *ChangeMicSeatResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeMicSeatResponse.ProtoReflect.Descriptor instead. func (*ChangeMicSeatResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{56} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{57} } func (x *ChangeMicSeatResponse) GetResult() *CommandResult { @@ -4347,7 +4520,7 @@ type ConfirmMicPublishingRequest struct { func (x *ConfirmMicPublishingRequest) Reset() { *x = ConfirmMicPublishingRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[57] + mi := &file_proto_room_v1_room_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4359,7 +4532,7 @@ func (x *ConfirmMicPublishingRequest) String() string { func (*ConfirmMicPublishingRequest) ProtoMessage() {} func (x *ConfirmMicPublishingRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[57] + mi := &file_proto_room_v1_room_proto_msgTypes[58] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4372,7 +4545,7 @@ func (x *ConfirmMicPublishingRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ConfirmMicPublishingRequest.ProtoReflect.Descriptor instead. func (*ConfirmMicPublishingRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{57} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{58} } func (x *ConfirmMicPublishingRequest) GetMeta() *RequestMeta { @@ -4429,7 +4602,7 @@ type ConfirmMicPublishingResponse struct { func (x *ConfirmMicPublishingResponse) Reset() { *x = ConfirmMicPublishingResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[58] + mi := &file_proto_room_v1_room_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4441,7 +4614,7 @@ func (x *ConfirmMicPublishingResponse) String() string { func (*ConfirmMicPublishingResponse) ProtoMessage() {} func (x *ConfirmMicPublishingResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[58] + mi := &file_proto_room_v1_room_proto_msgTypes[59] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4454,7 +4627,7 @@ func (x *ConfirmMicPublishingResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ConfirmMicPublishingResponse.ProtoReflect.Descriptor instead. func (*ConfirmMicPublishingResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{58} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{59} } func (x *ConfirmMicPublishingResponse) GetResult() *CommandResult { @@ -4491,7 +4664,7 @@ type SetMicMuteRequest struct { func (x *SetMicMuteRequest) Reset() { *x = SetMicMuteRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[59] + mi := &file_proto_room_v1_room_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4503,7 +4676,7 @@ func (x *SetMicMuteRequest) String() string { func (*SetMicMuteRequest) ProtoMessage() {} func (x *SetMicMuteRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[59] + mi := &file_proto_room_v1_room_proto_msgTypes[60] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4516,7 +4689,7 @@ func (x *SetMicMuteRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetMicMuteRequest.ProtoReflect.Descriptor instead. func (*SetMicMuteRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{59} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{60} } func (x *SetMicMuteRequest) GetMeta() *RequestMeta { @@ -4552,7 +4725,7 @@ type SetMicMuteResponse struct { func (x *SetMicMuteResponse) Reset() { *x = SetMicMuteResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[60] + mi := &file_proto_room_v1_room_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4564,7 +4737,7 @@ func (x *SetMicMuteResponse) String() string { func (*SetMicMuteResponse) ProtoMessage() {} func (x *SetMicMuteResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[60] + mi := &file_proto_room_v1_room_proto_msgTypes[61] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4577,7 +4750,7 @@ func (x *SetMicMuteResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SetMicMuteResponse.ProtoReflect.Descriptor instead. func (*SetMicMuteResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{60} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{61} } func (x *SetMicMuteResponse) GetResult() *CommandResult { @@ -4618,7 +4791,7 @@ type ApplyRTCEventRequest struct { func (x *ApplyRTCEventRequest) Reset() { *x = ApplyRTCEventRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[61] + mi := &file_proto_room_v1_room_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4630,7 +4803,7 @@ func (x *ApplyRTCEventRequest) String() string { func (*ApplyRTCEventRequest) ProtoMessage() {} func (x *ApplyRTCEventRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[61] + mi := &file_proto_room_v1_room_proto_msgTypes[62] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4643,7 +4816,7 @@ func (x *ApplyRTCEventRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplyRTCEventRequest.ProtoReflect.Descriptor instead. func (*ApplyRTCEventRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{61} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{62} } func (x *ApplyRTCEventRequest) GetMeta() *RequestMeta { @@ -4707,7 +4880,7 @@ type ApplyRTCEventResponse struct { func (x *ApplyRTCEventResponse) Reset() { *x = ApplyRTCEventResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[62] + mi := &file_proto_room_v1_room_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4719,7 +4892,7 @@ func (x *ApplyRTCEventResponse) String() string { func (*ApplyRTCEventResponse) ProtoMessage() {} func (x *ApplyRTCEventResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[62] + mi := &file_proto_room_v1_room_proto_msgTypes[63] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4732,7 +4905,7 @@ func (x *ApplyRTCEventResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplyRTCEventResponse.ProtoReflect.Descriptor instead. func (*ApplyRTCEventResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{62} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{63} } func (x *ApplyRTCEventResponse) GetResult() *CommandResult { @@ -4768,7 +4941,7 @@ type SetMicSeatLockRequest struct { func (x *SetMicSeatLockRequest) Reset() { *x = SetMicSeatLockRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[63] + mi := &file_proto_room_v1_room_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4780,7 +4953,7 @@ func (x *SetMicSeatLockRequest) String() string { func (*SetMicSeatLockRequest) ProtoMessage() {} func (x *SetMicSeatLockRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[63] + mi := &file_proto_room_v1_room_proto_msgTypes[64] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4793,7 +4966,7 @@ func (x *SetMicSeatLockRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetMicSeatLockRequest.ProtoReflect.Descriptor instead. func (*SetMicSeatLockRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{63} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{64} } func (x *SetMicSeatLockRequest) GetMeta() *RequestMeta { @@ -4828,7 +5001,7 @@ type SetMicSeatLockResponse struct { func (x *SetMicSeatLockResponse) Reset() { *x = SetMicSeatLockResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[64] + mi := &file_proto_room_v1_room_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4840,7 +5013,7 @@ func (x *SetMicSeatLockResponse) String() string { func (*SetMicSeatLockResponse) ProtoMessage() {} func (x *SetMicSeatLockResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[64] + mi := &file_proto_room_v1_room_proto_msgTypes[65] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4853,7 +5026,7 @@ func (x *SetMicSeatLockResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SetMicSeatLockResponse.ProtoReflect.Descriptor instead. func (*SetMicSeatLockResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{64} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{65} } func (x *SetMicSeatLockResponse) GetResult() *CommandResult { @@ -4881,7 +5054,7 @@ type SetChatEnabledRequest struct { func (x *SetChatEnabledRequest) Reset() { *x = SetChatEnabledRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[65] + mi := &file_proto_room_v1_room_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4893,7 +5066,7 @@ func (x *SetChatEnabledRequest) String() string { func (*SetChatEnabledRequest) ProtoMessage() {} func (x *SetChatEnabledRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[65] + mi := &file_proto_room_v1_room_proto_msgTypes[66] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4906,7 +5079,7 @@ func (x *SetChatEnabledRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetChatEnabledRequest.ProtoReflect.Descriptor instead. func (*SetChatEnabledRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{65} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{66} } func (x *SetChatEnabledRequest) GetMeta() *RequestMeta { @@ -4934,7 +5107,7 @@ type SetChatEnabledResponse struct { func (x *SetChatEnabledResponse) Reset() { *x = SetChatEnabledResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[66] + mi := &file_proto_room_v1_room_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4946,7 +5119,7 @@ func (x *SetChatEnabledResponse) String() string { func (*SetChatEnabledResponse) ProtoMessage() {} func (x *SetChatEnabledResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[66] + mi := &file_proto_room_v1_room_proto_msgTypes[67] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4959,7 +5132,7 @@ func (x *SetChatEnabledResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SetChatEnabledResponse.ProtoReflect.Descriptor instead. func (*SetChatEnabledResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{66} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{67} } func (x *SetChatEnabledResponse) GetResult() *CommandResult { @@ -4989,7 +5162,7 @@ type SetRoomPasswordRequest struct { func (x *SetRoomPasswordRequest) Reset() { *x = SetRoomPasswordRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[67] + mi := &file_proto_room_v1_room_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5001,7 +5174,7 @@ func (x *SetRoomPasswordRequest) String() string { func (*SetRoomPasswordRequest) ProtoMessage() {} func (x *SetRoomPasswordRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[67] + mi := &file_proto_room_v1_room_proto_msgTypes[68] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5014,7 +5187,7 @@ func (x *SetRoomPasswordRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetRoomPasswordRequest.ProtoReflect.Descriptor instead. func (*SetRoomPasswordRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{67} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{68} } func (x *SetRoomPasswordRequest) GetMeta() *RequestMeta { @@ -5049,7 +5222,7 @@ type SetRoomPasswordResponse struct { func (x *SetRoomPasswordResponse) Reset() { *x = SetRoomPasswordResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[68] + mi := &file_proto_room_v1_room_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5061,7 +5234,7 @@ func (x *SetRoomPasswordResponse) String() string { func (*SetRoomPasswordResponse) ProtoMessage() {} func (x *SetRoomPasswordResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[68] + mi := &file_proto_room_v1_room_proto_msgTypes[69] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5074,7 +5247,7 @@ func (x *SetRoomPasswordResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SetRoomPasswordResponse.ProtoReflect.Descriptor instead. func (*SetRoomPasswordResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{68} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{69} } func (x *SetRoomPasswordResponse) GetResult() *CommandResult { @@ -5103,7 +5276,7 @@ type SetRoomAdminRequest struct { func (x *SetRoomAdminRequest) Reset() { *x = SetRoomAdminRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[69] + mi := &file_proto_room_v1_room_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5115,7 +5288,7 @@ func (x *SetRoomAdminRequest) String() string { func (*SetRoomAdminRequest) ProtoMessage() {} func (x *SetRoomAdminRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[69] + mi := &file_proto_room_v1_room_proto_msgTypes[70] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5128,7 +5301,7 @@ func (x *SetRoomAdminRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetRoomAdminRequest.ProtoReflect.Descriptor instead. func (*SetRoomAdminRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{69} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{70} } func (x *SetRoomAdminRequest) GetMeta() *RequestMeta { @@ -5163,7 +5336,7 @@ type SetRoomAdminResponse struct { func (x *SetRoomAdminResponse) Reset() { *x = SetRoomAdminResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[70] + mi := &file_proto_room_v1_room_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5175,7 +5348,7 @@ func (x *SetRoomAdminResponse) String() string { func (*SetRoomAdminResponse) ProtoMessage() {} func (x *SetRoomAdminResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[70] + mi := &file_proto_room_v1_room_proto_msgTypes[71] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5188,7 +5361,7 @@ func (x *SetRoomAdminResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SetRoomAdminResponse.ProtoReflect.Descriptor instead. func (*SetRoomAdminResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{70} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{71} } func (x *SetRoomAdminResponse) GetResult() *CommandResult { @@ -5217,7 +5390,7 @@ type MuteUserRequest struct { func (x *MuteUserRequest) Reset() { *x = MuteUserRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[71] + mi := &file_proto_room_v1_room_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5229,7 +5402,7 @@ func (x *MuteUserRequest) String() string { func (*MuteUserRequest) ProtoMessage() {} func (x *MuteUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[71] + mi := &file_proto_room_v1_room_proto_msgTypes[72] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5242,7 +5415,7 @@ func (x *MuteUserRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use MuteUserRequest.ProtoReflect.Descriptor instead. func (*MuteUserRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{71} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{72} } func (x *MuteUserRequest) GetMeta() *RequestMeta { @@ -5277,7 +5450,7 @@ type MuteUserResponse struct { func (x *MuteUserResponse) Reset() { *x = MuteUserResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[72] + mi := &file_proto_room_v1_room_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5289,7 +5462,7 @@ func (x *MuteUserResponse) String() string { func (*MuteUserResponse) ProtoMessage() {} func (x *MuteUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[72] + mi := &file_proto_room_v1_room_proto_msgTypes[73] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5302,7 +5475,7 @@ func (x *MuteUserResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use MuteUserResponse.ProtoReflect.Descriptor instead. func (*MuteUserResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{72} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{73} } func (x *MuteUserResponse) GetResult() *CommandResult { @@ -5330,7 +5503,7 @@ type KickUserRequest struct { func (x *KickUserRequest) Reset() { *x = KickUserRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[73] + mi := &file_proto_room_v1_room_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5342,7 +5515,7 @@ func (x *KickUserRequest) String() string { func (*KickUserRequest) ProtoMessage() {} func (x *KickUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[73] + mi := &file_proto_room_v1_room_proto_msgTypes[74] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5355,7 +5528,7 @@ func (x *KickUserRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use KickUserRequest.ProtoReflect.Descriptor instead. func (*KickUserRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{73} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{74} } func (x *KickUserRequest) GetMeta() *RequestMeta { @@ -5387,7 +5560,7 @@ type KickUserResponse struct { func (x *KickUserResponse) Reset() { *x = KickUserResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[74] + mi := &file_proto_room_v1_room_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5399,7 +5572,7 @@ func (x *KickUserResponse) String() string { func (*KickUserResponse) ProtoMessage() {} func (x *KickUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[74] + mi := &file_proto_room_v1_room_proto_msgTypes[75] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5412,7 +5585,7 @@ func (x *KickUserResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use KickUserResponse.ProtoReflect.Descriptor instead. func (*KickUserResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{74} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{75} } func (x *KickUserResponse) GetResult() *CommandResult { @@ -5454,7 +5627,7 @@ type UnbanUserRequest struct { func (x *UnbanUserRequest) Reset() { *x = UnbanUserRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[75] + mi := &file_proto_room_v1_room_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5466,7 +5639,7 @@ func (x *UnbanUserRequest) String() string { func (*UnbanUserRequest) ProtoMessage() {} func (x *UnbanUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[75] + mi := &file_proto_room_v1_room_proto_msgTypes[76] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5479,7 +5652,7 @@ func (x *UnbanUserRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UnbanUserRequest.ProtoReflect.Descriptor instead. func (*UnbanUserRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{75} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{76} } func (x *UnbanUserRequest) GetMeta() *RequestMeta { @@ -5507,7 +5680,7 @@ type UnbanUserResponse struct { func (x *UnbanUserResponse) Reset() { *x = UnbanUserResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[76] + mi := &file_proto_room_v1_room_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5519,7 +5692,7 @@ func (x *UnbanUserResponse) String() string { func (*UnbanUserResponse) ProtoMessage() {} func (x *UnbanUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[76] + mi := &file_proto_room_v1_room_proto_msgTypes[77] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5532,7 +5705,7 @@ func (x *UnbanUserResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UnbanUserResponse.ProtoReflect.Descriptor instead. func (*UnbanUserResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{76} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{77} } func (x *UnbanUserResponse) GetResult() *CommandResult { @@ -5565,7 +5738,7 @@ type SystemEvictUserRequest struct { func (x *SystemEvictUserRequest) Reset() { *x = SystemEvictUserRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[77] + mi := &file_proto_room_v1_room_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5577,7 +5750,7 @@ func (x *SystemEvictUserRequest) String() string { func (*SystemEvictUserRequest) ProtoMessage() {} func (x *SystemEvictUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[77] + mi := &file_proto_room_v1_room_proto_msgTypes[78] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5590,7 +5763,7 @@ func (x *SystemEvictUserRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SystemEvictUserRequest.ProtoReflect.Descriptor instead. func (*SystemEvictUserRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{77} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{78} } func (x *SystemEvictUserRequest) GetMeta() *RequestMeta { @@ -5643,7 +5816,7 @@ type SystemEvictUserResponse struct { func (x *SystemEvictUserResponse) Reset() { *x = SystemEvictUserResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[78] + mi := &file_proto_room_v1_room_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5655,7 +5828,7 @@ func (x *SystemEvictUserResponse) String() string { func (*SystemEvictUserResponse) ProtoMessage() {} func (x *SystemEvictUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[78] + mi := &file_proto_room_v1_room_proto_msgTypes[79] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5668,7 +5841,7 @@ func (x *SystemEvictUserResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SystemEvictUserResponse.ProtoReflect.Descriptor instead. func (*SystemEvictUserResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{78} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{79} } func (x *SystemEvictUserResponse) GetHadCurrentRoom() bool { @@ -5731,7 +5904,7 @@ type SendGiftRequest struct { func (x *SendGiftRequest) Reset() { *x = SendGiftRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[79] + mi := &file_proto_room_v1_room_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5743,7 +5916,7 @@ func (x *SendGiftRequest) String() string { func (*SendGiftRequest) ProtoMessage() {} func (x *SendGiftRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[79] + mi := &file_proto_room_v1_room_proto_msgTypes[80] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5756,7 +5929,7 @@ func (x *SendGiftRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SendGiftRequest.ProtoReflect.Descriptor instead. func (*SendGiftRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{79} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{80} } func (x *SendGiftRequest) GetMeta() *RequestMeta { @@ -5817,13 +5990,14 @@ type SendGiftResponse struct { GiftRank []*RankItem `protobuf:"bytes,4,rep,name=gift_rank,json=giftRank,proto3" json:"gift_rank,omitempty"` Room *RoomSnapshot `protobuf:"bytes,5,opt,name=room,proto3" json:"room,omitempty"` Treasure *RoomTreasureState `protobuf:"bytes,6,opt,name=treasure,proto3" json:"treasure,omitempty"` + LuckyGift *LuckyGiftDrawResult `protobuf:"bytes,7,opt,name=lucky_gift,json=luckyGift,proto3" json:"lucky_gift,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SendGiftResponse) Reset() { *x = SendGiftResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[80] + mi := &file_proto_room_v1_room_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5835,7 +6009,7 @@ func (x *SendGiftResponse) String() string { func (*SendGiftResponse) ProtoMessage() {} func (x *SendGiftResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[80] + mi := &file_proto_room_v1_room_proto_msgTypes[81] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5848,7 +6022,7 @@ func (x *SendGiftResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SendGiftResponse.ProtoReflect.Descriptor instead. func (*SendGiftResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{80} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{81} } func (x *SendGiftResponse) GetResult() *CommandResult { @@ -5893,6 +6067,13 @@ func (x *SendGiftResponse) GetTreasure() *RoomTreasureState { return nil } +func (x *SendGiftResponse) GetLuckyGift() *LuckyGiftDrawResult { + if x != nil { + return x.LuckyGift + } + return nil +} + // CheckSpeakPermissionRequest 让腾讯云 IM 发言回调或 gateway 在公屏前同步问房间业务态。 type CheckSpeakPermissionRequest struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -5905,7 +6086,7 @@ type CheckSpeakPermissionRequest struct { func (x *CheckSpeakPermissionRequest) Reset() { *x = CheckSpeakPermissionRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[81] + mi := &file_proto_room_v1_room_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5917,7 +6098,7 @@ func (x *CheckSpeakPermissionRequest) String() string { func (*CheckSpeakPermissionRequest) ProtoMessage() {} func (x *CheckSpeakPermissionRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[81] + mi := &file_proto_room_v1_room_proto_msgTypes[82] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5930,7 +6111,7 @@ func (x *CheckSpeakPermissionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CheckSpeakPermissionRequest.ProtoReflect.Descriptor instead. func (*CheckSpeakPermissionRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{81} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{82} } func (x *CheckSpeakPermissionRequest) GetRoomId() string { @@ -5966,7 +6147,7 @@ type CheckSpeakPermissionResponse struct { func (x *CheckSpeakPermissionResponse) Reset() { *x = CheckSpeakPermissionResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[82] + mi := &file_proto_room_v1_room_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5978,7 +6159,7 @@ func (x *CheckSpeakPermissionResponse) String() string { func (*CheckSpeakPermissionResponse) ProtoMessage() {} func (x *CheckSpeakPermissionResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[82] + mi := &file_proto_room_v1_room_proto_msgTypes[83] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5991,7 +6172,7 @@ func (x *CheckSpeakPermissionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CheckSpeakPermissionResponse.ProtoReflect.Descriptor instead. func (*CheckSpeakPermissionResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{82} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{83} } func (x *CheckSpeakPermissionResponse) GetAllowed() bool { @@ -6029,7 +6210,7 @@ type VerifyRoomPresenceRequest struct { func (x *VerifyRoomPresenceRequest) Reset() { *x = VerifyRoomPresenceRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[83] + mi := &file_proto_room_v1_room_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6041,7 +6222,7 @@ func (x *VerifyRoomPresenceRequest) String() string { func (*VerifyRoomPresenceRequest) ProtoMessage() {} func (x *VerifyRoomPresenceRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[83] + mi := &file_proto_room_v1_room_proto_msgTypes[84] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6054,7 +6235,7 @@ func (x *VerifyRoomPresenceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use VerifyRoomPresenceRequest.ProtoReflect.Descriptor instead. func (*VerifyRoomPresenceRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{83} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{84} } func (x *VerifyRoomPresenceRequest) GetRoomId() string { @@ -6104,7 +6285,7 @@ type VerifyRoomPresenceResponse struct { func (x *VerifyRoomPresenceResponse) Reset() { *x = VerifyRoomPresenceResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[84] + mi := &file_proto_room_v1_room_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6116,7 +6297,7 @@ func (x *VerifyRoomPresenceResponse) String() string { func (*VerifyRoomPresenceResponse) ProtoMessage() {} func (x *VerifyRoomPresenceResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[84] + mi := &file_proto_room_v1_room_proto_msgTypes[85] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6129,7 +6310,7 @@ func (x *VerifyRoomPresenceResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use VerifyRoomPresenceResponse.ProtoReflect.Descriptor instead. func (*VerifyRoomPresenceResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{84} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{85} } func (x *VerifyRoomPresenceResponse) GetPresent() bool { @@ -6170,7 +6351,7 @@ type ListRoomsRequest struct { func (x *ListRoomsRequest) Reset() { *x = ListRoomsRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[85] + mi := &file_proto_room_v1_room_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6182,7 +6363,7 @@ func (x *ListRoomsRequest) String() string { func (*ListRoomsRequest) ProtoMessage() {} func (x *ListRoomsRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[85] + mi := &file_proto_room_v1_room_proto_msgTypes[86] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6195,7 +6376,7 @@ func (x *ListRoomsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListRoomsRequest.ProtoReflect.Descriptor instead. func (*ListRoomsRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{85} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{86} } func (x *ListRoomsRequest) GetMeta() *RequestMeta { @@ -6266,7 +6447,7 @@ type ListRoomFeedsRequest struct { func (x *ListRoomFeedsRequest) Reset() { *x = ListRoomFeedsRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[86] + mi := &file_proto_room_v1_room_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6278,7 +6459,7 @@ func (x *ListRoomFeedsRequest) String() string { func (*ListRoomFeedsRequest) ProtoMessage() {} func (x *ListRoomFeedsRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[86] + mi := &file_proto_room_v1_room_proto_msgTypes[87] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6291,7 +6472,7 @@ func (x *ListRoomFeedsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListRoomFeedsRequest.ProtoReflect.Descriptor instead. func (*ListRoomFeedsRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{86} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{87} } func (x *ListRoomFeedsRequest) GetMeta() *RequestMeta { @@ -6361,7 +6542,7 @@ type RoomFeedRelatedUser struct { func (x *RoomFeedRelatedUser) Reset() { *x = RoomFeedRelatedUser{} - mi := &file_proto_room_v1_room_proto_msgTypes[87] + mi := &file_proto_room_v1_room_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6373,7 +6554,7 @@ func (x *RoomFeedRelatedUser) String() string { func (*RoomFeedRelatedUser) ProtoMessage() {} func (x *RoomFeedRelatedUser) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[87] + mi := &file_proto_room_v1_room_proto_msgTypes[88] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6386,7 +6567,7 @@ func (x *RoomFeedRelatedUser) ProtoReflect() protoreflect.Message { // Deprecated: Use RoomFeedRelatedUser.ProtoReflect.Descriptor instead. func (*RoomFeedRelatedUser) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{87} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{88} } func (x *RoomFeedRelatedUser) GetUserId() int64 { @@ -6426,7 +6607,7 @@ type RoomListItem struct { func (x *RoomListItem) Reset() { *x = RoomListItem{} - mi := &file_proto_room_v1_room_proto_msgTypes[88] + mi := &file_proto_room_v1_room_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6438,7 +6619,7 @@ func (x *RoomListItem) String() string { func (*RoomListItem) ProtoMessage() {} func (x *RoomListItem) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[88] + mi := &file_proto_room_v1_room_proto_msgTypes[89] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6451,7 +6632,7 @@ func (x *RoomListItem) ProtoReflect() protoreflect.Message { // Deprecated: Use RoomListItem.ProtoReflect.Descriptor instead. func (*RoomListItem) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{88} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{89} } func (x *RoomListItem) GetRoomId() string { @@ -6563,7 +6744,7 @@ type ListRoomsResponse struct { func (x *ListRoomsResponse) Reset() { *x = ListRoomsResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[89] + mi := &file_proto_room_v1_room_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6575,7 +6756,7 @@ func (x *ListRoomsResponse) String() string { func (*ListRoomsResponse) ProtoMessage() {} func (x *ListRoomsResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[89] + mi := &file_proto_room_v1_room_proto_msgTypes[90] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6588,7 +6769,7 @@ func (x *ListRoomsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListRoomsResponse.ProtoReflect.Descriptor instead. func (*ListRoomsResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{89} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{90} } func (x *ListRoomsResponse) GetRooms() []*RoomListItem { @@ -6617,7 +6798,7 @@ type GetMyRoomRequest struct { func (x *GetMyRoomRequest) Reset() { *x = GetMyRoomRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[90] + mi := &file_proto_room_v1_room_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6629,7 +6810,7 @@ func (x *GetMyRoomRequest) String() string { func (*GetMyRoomRequest) ProtoMessage() {} func (x *GetMyRoomRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[90] + mi := &file_proto_room_v1_room_proto_msgTypes[91] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6642,7 +6823,7 @@ func (x *GetMyRoomRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMyRoomRequest.ProtoReflect.Descriptor instead. func (*GetMyRoomRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{90} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{91} } func (x *GetMyRoomRequest) GetMeta() *RequestMeta { @@ -6672,7 +6853,7 @@ type GetMyRoomResponse struct { func (x *GetMyRoomResponse) Reset() { *x = GetMyRoomResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[91] + mi := &file_proto_room_v1_room_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6684,7 +6865,7 @@ func (x *GetMyRoomResponse) String() string { func (*GetMyRoomResponse) ProtoMessage() {} func (x *GetMyRoomResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[91] + mi := &file_proto_room_v1_room_proto_msgTypes[92] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6697,7 +6878,7 @@ func (x *GetMyRoomResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMyRoomResponse.ProtoReflect.Descriptor instead. func (*GetMyRoomResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{91} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{92} } func (x *GetMyRoomResponse) GetHasRoom() bool { @@ -6733,7 +6914,7 @@ type GetCurrentRoomRequest struct { func (x *GetCurrentRoomRequest) Reset() { *x = GetCurrentRoomRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[92] + mi := &file_proto_room_v1_room_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6745,7 +6926,7 @@ func (x *GetCurrentRoomRequest) String() string { func (*GetCurrentRoomRequest) ProtoMessage() {} func (x *GetCurrentRoomRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[92] + mi := &file_proto_room_v1_room_proto_msgTypes[93] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6758,7 +6939,7 @@ func (x *GetCurrentRoomRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCurrentRoomRequest.ProtoReflect.Descriptor instead. func (*GetCurrentRoomRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{92} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{93} } func (x *GetCurrentRoomRequest) GetMeta() *RequestMeta { @@ -6794,7 +6975,7 @@ type GetCurrentRoomResponse struct { func (x *GetCurrentRoomResponse) Reset() { *x = GetCurrentRoomResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[93] + mi := &file_proto_room_v1_room_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6806,7 +6987,7 @@ func (x *GetCurrentRoomResponse) String() string { func (*GetCurrentRoomResponse) ProtoMessage() {} func (x *GetCurrentRoomResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[93] + mi := &file_proto_room_v1_room_proto_msgTypes[94] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6819,7 +7000,7 @@ func (x *GetCurrentRoomResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCurrentRoomResponse.ProtoReflect.Descriptor instead. func (*GetCurrentRoomResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{93} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{94} } func (x *GetCurrentRoomResponse) GetHasCurrentRoom() bool { @@ -6898,7 +7079,7 @@ type GetRoomSnapshotRequest struct { func (x *GetRoomSnapshotRequest) Reset() { *x = GetRoomSnapshotRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[94] + mi := &file_proto_room_v1_room_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6910,7 +7091,7 @@ func (x *GetRoomSnapshotRequest) String() string { func (*GetRoomSnapshotRequest) ProtoMessage() {} func (x *GetRoomSnapshotRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[94] + mi := &file_proto_room_v1_room_proto_msgTypes[95] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6923,7 +7104,7 @@ func (x *GetRoomSnapshotRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRoomSnapshotRequest.ProtoReflect.Descriptor instead. func (*GetRoomSnapshotRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{94} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{95} } func (x *GetRoomSnapshotRequest) GetMeta() *RequestMeta { @@ -6960,7 +7141,7 @@ type GetRoomSnapshotResponse struct { func (x *GetRoomSnapshotResponse) Reset() { *x = GetRoomSnapshotResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[95] + mi := &file_proto_room_v1_room_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6972,7 +7153,7 @@ func (x *GetRoomSnapshotResponse) String() string { func (*GetRoomSnapshotResponse) ProtoMessage() {} func (x *GetRoomSnapshotResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[95] + mi := &file_proto_room_v1_room_proto_msgTypes[96] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6985,7 +7166,7 @@ func (x *GetRoomSnapshotResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRoomSnapshotResponse.ProtoReflect.Descriptor instead. func (*GetRoomSnapshotResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{95} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{96} } func (x *GetRoomSnapshotResponse) GetRoom() *RoomSnapshot { @@ -7022,7 +7203,7 @@ type GetRoomTreasureRequest struct { func (x *GetRoomTreasureRequest) Reset() { *x = GetRoomTreasureRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[96] + mi := &file_proto_room_v1_room_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7034,7 +7215,7 @@ func (x *GetRoomTreasureRequest) String() string { func (*GetRoomTreasureRequest) ProtoMessage() {} func (x *GetRoomTreasureRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[96] + mi := &file_proto_room_v1_room_proto_msgTypes[97] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7047,7 +7228,7 @@ func (x *GetRoomTreasureRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRoomTreasureRequest.ProtoReflect.Descriptor instead. func (*GetRoomTreasureRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{96} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{97} } func (x *GetRoomTreasureRequest) GetMeta() *RequestMeta { @@ -7081,7 +7262,7 @@ type GetRoomTreasureResponse struct { func (x *GetRoomTreasureResponse) Reset() { *x = GetRoomTreasureResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[97] + mi := &file_proto_room_v1_room_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7093,7 +7274,7 @@ func (x *GetRoomTreasureResponse) String() string { func (*GetRoomTreasureResponse) ProtoMessage() {} func (x *GetRoomTreasureResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[97] + mi := &file_proto_room_v1_room_proto_msgTypes[98] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7106,7 +7287,7 @@ func (x *GetRoomTreasureResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRoomTreasureResponse.ProtoReflect.Descriptor instead. func (*GetRoomTreasureResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{97} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{98} } func (x *GetRoomTreasureResponse) GetTreasure() *RoomTreasureInfo { @@ -7137,7 +7318,7 @@ type ListRoomOnlineUsersRequest struct { func (x *ListRoomOnlineUsersRequest) Reset() { *x = ListRoomOnlineUsersRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[98] + mi := &file_proto_room_v1_room_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7149,7 +7330,7 @@ func (x *ListRoomOnlineUsersRequest) String() string { func (*ListRoomOnlineUsersRequest) ProtoMessage() {} func (x *ListRoomOnlineUsersRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[98] + mi := &file_proto_room_v1_room_proto_msgTypes[99] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7162,7 +7343,7 @@ func (x *ListRoomOnlineUsersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListRoomOnlineUsersRequest.ProtoReflect.Descriptor instead. func (*ListRoomOnlineUsersRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{98} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{99} } func (x *ListRoomOnlineUsersRequest) GetMeta() *RequestMeta { @@ -7213,7 +7394,7 @@ type ListRoomOnlineUsersResponse struct { func (x *ListRoomOnlineUsersResponse) Reset() { *x = ListRoomOnlineUsersResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[99] + mi := &file_proto_room_v1_room_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7225,7 +7406,7 @@ func (x *ListRoomOnlineUsersResponse) String() string { func (*ListRoomOnlineUsersResponse) ProtoMessage() {} func (x *ListRoomOnlineUsersResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[99] + mi := &file_proto_room_v1_room_proto_msgTypes[100] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7238,7 +7419,7 @@ func (x *ListRoomOnlineUsersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListRoomOnlineUsersResponse.ProtoReflect.Descriptor instead. func (*ListRoomOnlineUsersResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{99} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{100} } func (x *ListRoomOnlineUsersResponse) GetUsers() []*RoomUser { @@ -7289,7 +7470,7 @@ type FollowRoomRequest struct { func (x *FollowRoomRequest) Reset() { *x = FollowRoomRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[100] + mi := &file_proto_room_v1_room_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7301,7 +7482,7 @@ func (x *FollowRoomRequest) String() string { func (*FollowRoomRequest) ProtoMessage() {} func (x *FollowRoomRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[100] + mi := &file_proto_room_v1_room_proto_msgTypes[101] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7314,7 +7495,7 @@ func (x *FollowRoomRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use FollowRoomRequest.ProtoReflect.Descriptor instead. func (*FollowRoomRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{100} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{101} } func (x *FollowRoomRequest) GetMeta() *RequestMeta { @@ -7350,7 +7531,7 @@ type FollowRoomResponse struct { func (x *FollowRoomResponse) Reset() { *x = FollowRoomResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[101] + mi := &file_proto_room_v1_room_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7362,7 +7543,7 @@ func (x *FollowRoomResponse) String() string { func (*FollowRoomResponse) ProtoMessage() {} func (x *FollowRoomResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[101] + mi := &file_proto_room_v1_room_proto_msgTypes[102] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7375,7 +7556,7 @@ func (x *FollowRoomResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use FollowRoomResponse.ProtoReflect.Descriptor instead. func (*FollowRoomResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{101} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{102} } func (x *FollowRoomResponse) GetRoomId() string { @@ -7418,7 +7599,7 @@ type UnfollowRoomRequest struct { func (x *UnfollowRoomRequest) Reset() { *x = UnfollowRoomRequest{} - mi := &file_proto_room_v1_room_proto_msgTypes[102] + mi := &file_proto_room_v1_room_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7430,7 +7611,7 @@ func (x *UnfollowRoomRequest) String() string { func (*UnfollowRoomRequest) ProtoMessage() {} func (x *UnfollowRoomRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[102] + mi := &file_proto_room_v1_room_proto_msgTypes[103] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7443,7 +7624,7 @@ func (x *UnfollowRoomRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UnfollowRoomRequest.ProtoReflect.Descriptor instead. func (*UnfollowRoomRequest) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{102} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{103} } func (x *UnfollowRoomRequest) GetMeta() *RequestMeta { @@ -7478,7 +7659,7 @@ type UnfollowRoomResponse struct { func (x *UnfollowRoomResponse) Reset() { *x = UnfollowRoomResponse{} - mi := &file_proto_room_v1_room_proto_msgTypes[103] + mi := &file_proto_room_v1_room_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7490,7 +7671,7 @@ func (x *UnfollowRoomResponse) String() string { func (*UnfollowRoomResponse) ProtoMessage() {} func (x *UnfollowRoomResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_room_v1_room_proto_msgTypes[103] + mi := &file_proto_room_v1_room_proto_msgTypes[104] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7503,7 +7684,7 @@ func (x *UnfollowRoomResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UnfollowRoomResponse.ProtoReflect.Descriptor instead. func (*UnfollowRoomResponse) Descriptor() ([]byte, []int) { - return file_proto_room_v1_room_proto_rawDescGZIP(), []int{103} + return file_proto_room_v1_room_proto_rawDescGZIP(), []int{104} } func (x *UnfollowRoomResponse) GetRoomId() string { @@ -7573,7 +7754,27 @@ const file_proto_room_v1_room_proto_rawDesc = "" + "\x05score\x18\x02 \x01(\x03R\x05score\x12\x1d\n" + "\n" + "gift_value\x18\x03 \x01(\x03R\tgiftValue\x12\"\n" + - "\rupdated_at_ms\x18\x04 \x01(\x03R\vupdatedAtMs\"\xc0\x01\n" + + "\rupdated_at_ms\x18\x04 \x01(\x03R\vupdatedAtMs\"\xa8\x05\n" + + "\x13LuckyGiftDrawResult\x12\x18\n" + + "\aenabled\x18\x01 \x01(\bR\aenabled\x12\x17\n" + + "\adraw_id\x18\x02 \x01(\tR\x06drawId\x12\x1d\n" + + "\n" + + "command_id\x18\x03 \x01(\tR\tcommandId\x12\x17\n" + + "\apool_id\x18\x04 \x01(\tR\x06poolId\x12\x17\n" + + "\agift_id\x18\x05 \x01(\tR\x06giftId\x12!\n" + + "\frule_version\x18\x06 \x01(\x03R\vruleVersion\x12'\n" + + "\x0fexperience_pool\x18\a \x01(\tR\x0eexperiencePool\x12(\n" + + "\x10selected_tier_id\x18\b \x01(\tR\x0eselectedTierId\x12%\n" + + "\x0emultiplier_ppm\x18\t \x01(\x03R\rmultiplierPpm\x12*\n" + + "\x11base_reward_coins\x18\n" + + " \x01(\x03R\x0fbaseRewardCoins\x12?\n" + + "\x1croom_atmosphere_reward_coins\x18\v \x01(\x03R\x19roomAtmosphereRewardCoins\x124\n" + + "\x16activity_subsidy_coins\x18\f \x01(\x03R\x14activitySubsidyCoins\x124\n" + + "\x16effective_reward_coins\x18\r \x01(\x03R\x14effectiveRewardCoins\x12#\n" + + "\rreward_status\x18\x0e \x01(\tR\frewardStatus\x12%\n" + + "\x0estage_feedback\x18\x0f \x01(\bR\rstageFeedback\x12'\n" + + "\x0fhigh_multiplier\x18\x10 \x01(\bR\x0ehighMultiplier\x12\"\n" + + "\rcreated_at_ms\x18\x11 \x01(\x03R\vcreatedAtMs\"\xc0\x01\n" + "\x16RoomTreasureRewardItem\x12$\n" + "\x0ereward_item_id\x18\x01 \x01(\tR\frewardItemId\x12*\n" + "\x11resource_group_id\x18\x02 \x01(\x03R\x0fresourceGroupId\x12\x16\n" + @@ -8012,14 +8213,16 @@ const file_proto_room_v1_room_proto_rawDesc = "" + "\vtarget_type\x18\x05 \x01(\tR\n" + "targetType\x12&\n" + "\x0ftarget_user_ids\x18\x06 \x03(\x03R\rtargetUserIds\x12\x17\n" + - "\apool_id\x18\a \x01(\tR\x06poolId\"\xb8\x02\n" + + "\apool_id\x18\a \x01(\tR\x06poolId\"\xfb\x02\n" + "\x10SendGiftResponse\x124\n" + "\x06result\x18\x01 \x01(\v2\x1c.hyapp.room.v1.CommandResultR\x06result\x12,\n" + "\x12billing_receipt_id\x18\x02 \x01(\tR\x10billingReceiptId\x12\x1b\n" + "\troom_heat\x18\x03 \x01(\x03R\broomHeat\x124\n" + "\tgift_rank\x18\x04 \x03(\v2\x17.hyapp.room.v1.RankItemR\bgiftRank\x12/\n" + "\x04room\x18\x05 \x01(\v2\x1b.hyapp.room.v1.RoomSnapshotR\x04room\x12<\n" + - "\btreasure\x18\x06 \x01(\v2 .hyapp.room.v1.RoomTreasureStateR\btreasure\"j\n" + + "\btreasure\x18\x06 \x01(\v2 .hyapp.room.v1.RoomTreasureStateR\btreasure\x12A\n" + + "\n" + + "lucky_gift\x18\a \x01(\v2\".hyapp.room.v1.LuckyGiftDrawResultR\tluckyGift\"j\n" + "\x1bCheckSpeakPermissionRequest\x12\x17\n" + "\aroom_id\x18\x01 \x01(\tR\x06roomId\x12\x17\n" + "\auser_id\x18\x02 \x01(\x03R\x06userId\x12\x19\n" + @@ -8208,327 +8411,329 @@ func file_proto_room_v1_room_proto_rawDescGZIP() []byte { return file_proto_room_v1_room_proto_rawDescData } -var file_proto_room_v1_room_proto_msgTypes = make([]protoimpl.MessageInfo, 105) +var file_proto_room_v1_room_proto_msgTypes = make([]protoimpl.MessageInfo, 106) var file_proto_room_v1_room_proto_goTypes = []any{ (*RequestMeta)(nil), // 0: hyapp.room.v1.RequestMeta (*CommandResult)(nil), // 1: hyapp.room.v1.CommandResult (*RoomUser)(nil), // 2: hyapp.room.v1.RoomUser (*SeatState)(nil), // 3: hyapp.room.v1.SeatState (*RankItem)(nil), // 4: hyapp.room.v1.RankItem - (*RoomTreasureRewardItem)(nil), // 5: hyapp.room.v1.RoomTreasureRewardItem - (*RoomTreasureLevel)(nil), // 6: hyapp.room.v1.RoomTreasureLevel - (*RoomTreasureRewardGrant)(nil), // 7: hyapp.room.v1.RoomTreasureRewardGrant - (*RoomTreasureState)(nil), // 8: hyapp.room.v1.RoomTreasureState - (*RoomTreasureInfo)(nil), // 9: hyapp.room.v1.RoomTreasureInfo - (*RoomTreasureGiftEnergyRule)(nil), // 10: hyapp.room.v1.RoomTreasureGiftEnergyRule - (*AdminRoomTreasureConfig)(nil), // 11: hyapp.room.v1.AdminRoomTreasureConfig - (*AdminGetRoomTreasureConfigRequest)(nil), // 12: hyapp.room.v1.AdminGetRoomTreasureConfigRequest - (*AdminGetRoomTreasureConfigResponse)(nil), // 13: hyapp.room.v1.AdminGetRoomTreasureConfigResponse - (*AdminUpdateRoomTreasureConfigRequest)(nil), // 14: hyapp.room.v1.AdminUpdateRoomTreasureConfigRequest - (*AdminUpdateRoomTreasureConfigResponse)(nil), // 15: hyapp.room.v1.AdminUpdateRoomTreasureConfigResponse - (*AdminRoomSeatConfig)(nil), // 16: hyapp.room.v1.AdminRoomSeatConfig - (*AdminGetRoomSeatConfigRequest)(nil), // 17: hyapp.room.v1.AdminGetRoomSeatConfigRequest - (*AdminGetRoomSeatConfigResponse)(nil), // 18: hyapp.room.v1.AdminGetRoomSeatConfigResponse - (*AdminUpdateRoomSeatConfigRequest)(nil), // 19: hyapp.room.v1.AdminUpdateRoomSeatConfigRequest - (*AdminUpdateRoomSeatConfigResponse)(nil), // 20: hyapp.room.v1.AdminUpdateRoomSeatConfigResponse - (*AdminRoomPinRoom)(nil), // 21: hyapp.room.v1.AdminRoomPinRoom - (*AdminRoomPin)(nil), // 22: hyapp.room.v1.AdminRoomPin - (*AdminListRoomPinsRequest)(nil), // 23: hyapp.room.v1.AdminListRoomPinsRequest - (*AdminListRoomPinsResponse)(nil), // 24: hyapp.room.v1.AdminListRoomPinsResponse - (*AdminCreateRoomPinRequest)(nil), // 25: hyapp.room.v1.AdminCreateRoomPinRequest - (*AdminCreateRoomPinResponse)(nil), // 26: hyapp.room.v1.AdminCreateRoomPinResponse - (*AdminCancelRoomPinRequest)(nil), // 27: hyapp.room.v1.AdminCancelRoomPinRequest - (*AdminCancelRoomPinResponse)(nil), // 28: hyapp.room.v1.AdminCancelRoomPinResponse - (*RoomSnapshot)(nil), // 29: hyapp.room.v1.RoomSnapshot - (*CreateRoomRequest)(nil), // 30: hyapp.room.v1.CreateRoomRequest - (*CreateRoomResponse)(nil), // 31: hyapp.room.v1.CreateRoomResponse - (*UpdateRoomProfileRequest)(nil), // 32: hyapp.room.v1.UpdateRoomProfileRequest - (*UpdateRoomProfileResponse)(nil), // 33: hyapp.room.v1.UpdateRoomProfileResponse - (*JoinRoomRequest)(nil), // 34: hyapp.room.v1.JoinRoomRequest - (*JoinRoomResponse)(nil), // 35: hyapp.room.v1.JoinRoomResponse - (*RoomHeartbeatRequest)(nil), // 36: hyapp.room.v1.RoomHeartbeatRequest - (*RoomHeartbeatResponse)(nil), // 37: hyapp.room.v1.RoomHeartbeatResponse - (*LeaveRoomRequest)(nil), // 38: hyapp.room.v1.LeaveRoomRequest - (*LeaveRoomResponse)(nil), // 39: hyapp.room.v1.LeaveRoomResponse - (*CloseRoomRequest)(nil), // 40: hyapp.room.v1.CloseRoomRequest - (*CloseRoomResponse)(nil), // 41: hyapp.room.v1.CloseRoomResponse - (*AdminRoomListItem)(nil), // 42: hyapp.room.v1.AdminRoomListItem - (*AdminListRoomsRequest)(nil), // 43: hyapp.room.v1.AdminListRoomsRequest - (*AdminListRoomsResponse)(nil), // 44: hyapp.room.v1.AdminListRoomsResponse - (*AdminGetRoomRequest)(nil), // 45: hyapp.room.v1.AdminGetRoomRequest - (*AdminGetRoomResponse)(nil), // 46: hyapp.room.v1.AdminGetRoomResponse - (*AdminUpdateRoomRequest)(nil), // 47: hyapp.room.v1.AdminUpdateRoomRequest - (*AdminUpdateRoomResponse)(nil), // 48: hyapp.room.v1.AdminUpdateRoomResponse - (*AdminDeleteRoomRequest)(nil), // 49: hyapp.room.v1.AdminDeleteRoomRequest - (*AdminDeleteRoomResponse)(nil), // 50: hyapp.room.v1.AdminDeleteRoomResponse - (*MicUpRequest)(nil), // 51: hyapp.room.v1.MicUpRequest - (*MicUpResponse)(nil), // 52: hyapp.room.v1.MicUpResponse - (*MicDownRequest)(nil), // 53: hyapp.room.v1.MicDownRequest - (*MicDownResponse)(nil), // 54: hyapp.room.v1.MicDownResponse - (*ChangeMicSeatRequest)(nil), // 55: hyapp.room.v1.ChangeMicSeatRequest - (*ChangeMicSeatResponse)(nil), // 56: hyapp.room.v1.ChangeMicSeatResponse - (*ConfirmMicPublishingRequest)(nil), // 57: hyapp.room.v1.ConfirmMicPublishingRequest - (*ConfirmMicPublishingResponse)(nil), // 58: hyapp.room.v1.ConfirmMicPublishingResponse - (*SetMicMuteRequest)(nil), // 59: hyapp.room.v1.SetMicMuteRequest - (*SetMicMuteResponse)(nil), // 60: hyapp.room.v1.SetMicMuteResponse - (*ApplyRTCEventRequest)(nil), // 61: hyapp.room.v1.ApplyRTCEventRequest - (*ApplyRTCEventResponse)(nil), // 62: hyapp.room.v1.ApplyRTCEventResponse - (*SetMicSeatLockRequest)(nil), // 63: hyapp.room.v1.SetMicSeatLockRequest - (*SetMicSeatLockResponse)(nil), // 64: hyapp.room.v1.SetMicSeatLockResponse - (*SetChatEnabledRequest)(nil), // 65: hyapp.room.v1.SetChatEnabledRequest - (*SetChatEnabledResponse)(nil), // 66: hyapp.room.v1.SetChatEnabledResponse - (*SetRoomPasswordRequest)(nil), // 67: hyapp.room.v1.SetRoomPasswordRequest - (*SetRoomPasswordResponse)(nil), // 68: hyapp.room.v1.SetRoomPasswordResponse - (*SetRoomAdminRequest)(nil), // 69: hyapp.room.v1.SetRoomAdminRequest - (*SetRoomAdminResponse)(nil), // 70: hyapp.room.v1.SetRoomAdminResponse - (*MuteUserRequest)(nil), // 71: hyapp.room.v1.MuteUserRequest - (*MuteUserResponse)(nil), // 72: hyapp.room.v1.MuteUserResponse - (*KickUserRequest)(nil), // 73: hyapp.room.v1.KickUserRequest - (*KickUserResponse)(nil), // 74: hyapp.room.v1.KickUserResponse - (*UnbanUserRequest)(nil), // 75: hyapp.room.v1.UnbanUserRequest - (*UnbanUserResponse)(nil), // 76: hyapp.room.v1.UnbanUserResponse - (*SystemEvictUserRequest)(nil), // 77: hyapp.room.v1.SystemEvictUserRequest - (*SystemEvictUserResponse)(nil), // 78: hyapp.room.v1.SystemEvictUserResponse - (*SendGiftRequest)(nil), // 79: hyapp.room.v1.SendGiftRequest - (*SendGiftResponse)(nil), // 80: hyapp.room.v1.SendGiftResponse - (*CheckSpeakPermissionRequest)(nil), // 81: hyapp.room.v1.CheckSpeakPermissionRequest - (*CheckSpeakPermissionResponse)(nil), // 82: hyapp.room.v1.CheckSpeakPermissionResponse - (*VerifyRoomPresenceRequest)(nil), // 83: hyapp.room.v1.VerifyRoomPresenceRequest - (*VerifyRoomPresenceResponse)(nil), // 84: hyapp.room.v1.VerifyRoomPresenceResponse - (*ListRoomsRequest)(nil), // 85: hyapp.room.v1.ListRoomsRequest - (*ListRoomFeedsRequest)(nil), // 86: hyapp.room.v1.ListRoomFeedsRequest - (*RoomFeedRelatedUser)(nil), // 87: hyapp.room.v1.RoomFeedRelatedUser - (*RoomListItem)(nil), // 88: hyapp.room.v1.RoomListItem - (*ListRoomsResponse)(nil), // 89: hyapp.room.v1.ListRoomsResponse - (*GetMyRoomRequest)(nil), // 90: hyapp.room.v1.GetMyRoomRequest - (*GetMyRoomResponse)(nil), // 91: hyapp.room.v1.GetMyRoomResponse - (*GetCurrentRoomRequest)(nil), // 92: hyapp.room.v1.GetCurrentRoomRequest - (*GetCurrentRoomResponse)(nil), // 93: hyapp.room.v1.GetCurrentRoomResponse - (*GetRoomSnapshotRequest)(nil), // 94: hyapp.room.v1.GetRoomSnapshotRequest - (*GetRoomSnapshotResponse)(nil), // 95: hyapp.room.v1.GetRoomSnapshotResponse - (*GetRoomTreasureRequest)(nil), // 96: hyapp.room.v1.GetRoomTreasureRequest - (*GetRoomTreasureResponse)(nil), // 97: hyapp.room.v1.GetRoomTreasureResponse - (*ListRoomOnlineUsersRequest)(nil), // 98: hyapp.room.v1.ListRoomOnlineUsersRequest - (*ListRoomOnlineUsersResponse)(nil), // 99: hyapp.room.v1.ListRoomOnlineUsersResponse - (*FollowRoomRequest)(nil), // 100: hyapp.room.v1.FollowRoomRequest - (*FollowRoomResponse)(nil), // 101: hyapp.room.v1.FollowRoomResponse - (*UnfollowRoomRequest)(nil), // 102: hyapp.room.v1.UnfollowRoomRequest - (*UnfollowRoomResponse)(nil), // 103: hyapp.room.v1.UnfollowRoomResponse - nil, // 104: hyapp.room.v1.RoomSnapshot.RoomExtEntry + (*LuckyGiftDrawResult)(nil), // 5: hyapp.room.v1.LuckyGiftDrawResult + (*RoomTreasureRewardItem)(nil), // 6: hyapp.room.v1.RoomTreasureRewardItem + (*RoomTreasureLevel)(nil), // 7: hyapp.room.v1.RoomTreasureLevel + (*RoomTreasureRewardGrant)(nil), // 8: hyapp.room.v1.RoomTreasureRewardGrant + (*RoomTreasureState)(nil), // 9: hyapp.room.v1.RoomTreasureState + (*RoomTreasureInfo)(nil), // 10: hyapp.room.v1.RoomTreasureInfo + (*RoomTreasureGiftEnergyRule)(nil), // 11: hyapp.room.v1.RoomTreasureGiftEnergyRule + (*AdminRoomTreasureConfig)(nil), // 12: hyapp.room.v1.AdminRoomTreasureConfig + (*AdminGetRoomTreasureConfigRequest)(nil), // 13: hyapp.room.v1.AdminGetRoomTreasureConfigRequest + (*AdminGetRoomTreasureConfigResponse)(nil), // 14: hyapp.room.v1.AdminGetRoomTreasureConfigResponse + (*AdminUpdateRoomTreasureConfigRequest)(nil), // 15: hyapp.room.v1.AdminUpdateRoomTreasureConfigRequest + (*AdminUpdateRoomTreasureConfigResponse)(nil), // 16: hyapp.room.v1.AdminUpdateRoomTreasureConfigResponse + (*AdminRoomSeatConfig)(nil), // 17: hyapp.room.v1.AdminRoomSeatConfig + (*AdminGetRoomSeatConfigRequest)(nil), // 18: hyapp.room.v1.AdminGetRoomSeatConfigRequest + (*AdminGetRoomSeatConfigResponse)(nil), // 19: hyapp.room.v1.AdminGetRoomSeatConfigResponse + (*AdminUpdateRoomSeatConfigRequest)(nil), // 20: hyapp.room.v1.AdminUpdateRoomSeatConfigRequest + (*AdminUpdateRoomSeatConfigResponse)(nil), // 21: hyapp.room.v1.AdminUpdateRoomSeatConfigResponse + (*AdminRoomPinRoom)(nil), // 22: hyapp.room.v1.AdminRoomPinRoom + (*AdminRoomPin)(nil), // 23: hyapp.room.v1.AdminRoomPin + (*AdminListRoomPinsRequest)(nil), // 24: hyapp.room.v1.AdminListRoomPinsRequest + (*AdminListRoomPinsResponse)(nil), // 25: hyapp.room.v1.AdminListRoomPinsResponse + (*AdminCreateRoomPinRequest)(nil), // 26: hyapp.room.v1.AdminCreateRoomPinRequest + (*AdminCreateRoomPinResponse)(nil), // 27: hyapp.room.v1.AdminCreateRoomPinResponse + (*AdminCancelRoomPinRequest)(nil), // 28: hyapp.room.v1.AdminCancelRoomPinRequest + (*AdminCancelRoomPinResponse)(nil), // 29: hyapp.room.v1.AdminCancelRoomPinResponse + (*RoomSnapshot)(nil), // 30: hyapp.room.v1.RoomSnapshot + (*CreateRoomRequest)(nil), // 31: hyapp.room.v1.CreateRoomRequest + (*CreateRoomResponse)(nil), // 32: hyapp.room.v1.CreateRoomResponse + (*UpdateRoomProfileRequest)(nil), // 33: hyapp.room.v1.UpdateRoomProfileRequest + (*UpdateRoomProfileResponse)(nil), // 34: hyapp.room.v1.UpdateRoomProfileResponse + (*JoinRoomRequest)(nil), // 35: hyapp.room.v1.JoinRoomRequest + (*JoinRoomResponse)(nil), // 36: hyapp.room.v1.JoinRoomResponse + (*RoomHeartbeatRequest)(nil), // 37: hyapp.room.v1.RoomHeartbeatRequest + (*RoomHeartbeatResponse)(nil), // 38: hyapp.room.v1.RoomHeartbeatResponse + (*LeaveRoomRequest)(nil), // 39: hyapp.room.v1.LeaveRoomRequest + (*LeaveRoomResponse)(nil), // 40: hyapp.room.v1.LeaveRoomResponse + (*CloseRoomRequest)(nil), // 41: hyapp.room.v1.CloseRoomRequest + (*CloseRoomResponse)(nil), // 42: hyapp.room.v1.CloseRoomResponse + (*AdminRoomListItem)(nil), // 43: hyapp.room.v1.AdminRoomListItem + (*AdminListRoomsRequest)(nil), // 44: hyapp.room.v1.AdminListRoomsRequest + (*AdminListRoomsResponse)(nil), // 45: hyapp.room.v1.AdminListRoomsResponse + (*AdminGetRoomRequest)(nil), // 46: hyapp.room.v1.AdminGetRoomRequest + (*AdminGetRoomResponse)(nil), // 47: hyapp.room.v1.AdminGetRoomResponse + (*AdminUpdateRoomRequest)(nil), // 48: hyapp.room.v1.AdminUpdateRoomRequest + (*AdminUpdateRoomResponse)(nil), // 49: hyapp.room.v1.AdminUpdateRoomResponse + (*AdminDeleteRoomRequest)(nil), // 50: hyapp.room.v1.AdminDeleteRoomRequest + (*AdminDeleteRoomResponse)(nil), // 51: hyapp.room.v1.AdminDeleteRoomResponse + (*MicUpRequest)(nil), // 52: hyapp.room.v1.MicUpRequest + (*MicUpResponse)(nil), // 53: hyapp.room.v1.MicUpResponse + (*MicDownRequest)(nil), // 54: hyapp.room.v1.MicDownRequest + (*MicDownResponse)(nil), // 55: hyapp.room.v1.MicDownResponse + (*ChangeMicSeatRequest)(nil), // 56: hyapp.room.v1.ChangeMicSeatRequest + (*ChangeMicSeatResponse)(nil), // 57: hyapp.room.v1.ChangeMicSeatResponse + (*ConfirmMicPublishingRequest)(nil), // 58: hyapp.room.v1.ConfirmMicPublishingRequest + (*ConfirmMicPublishingResponse)(nil), // 59: hyapp.room.v1.ConfirmMicPublishingResponse + (*SetMicMuteRequest)(nil), // 60: hyapp.room.v1.SetMicMuteRequest + (*SetMicMuteResponse)(nil), // 61: hyapp.room.v1.SetMicMuteResponse + (*ApplyRTCEventRequest)(nil), // 62: hyapp.room.v1.ApplyRTCEventRequest + (*ApplyRTCEventResponse)(nil), // 63: hyapp.room.v1.ApplyRTCEventResponse + (*SetMicSeatLockRequest)(nil), // 64: hyapp.room.v1.SetMicSeatLockRequest + (*SetMicSeatLockResponse)(nil), // 65: hyapp.room.v1.SetMicSeatLockResponse + (*SetChatEnabledRequest)(nil), // 66: hyapp.room.v1.SetChatEnabledRequest + (*SetChatEnabledResponse)(nil), // 67: hyapp.room.v1.SetChatEnabledResponse + (*SetRoomPasswordRequest)(nil), // 68: hyapp.room.v1.SetRoomPasswordRequest + (*SetRoomPasswordResponse)(nil), // 69: hyapp.room.v1.SetRoomPasswordResponse + (*SetRoomAdminRequest)(nil), // 70: hyapp.room.v1.SetRoomAdminRequest + (*SetRoomAdminResponse)(nil), // 71: hyapp.room.v1.SetRoomAdminResponse + (*MuteUserRequest)(nil), // 72: hyapp.room.v1.MuteUserRequest + (*MuteUserResponse)(nil), // 73: hyapp.room.v1.MuteUserResponse + (*KickUserRequest)(nil), // 74: hyapp.room.v1.KickUserRequest + (*KickUserResponse)(nil), // 75: hyapp.room.v1.KickUserResponse + (*UnbanUserRequest)(nil), // 76: hyapp.room.v1.UnbanUserRequest + (*UnbanUserResponse)(nil), // 77: hyapp.room.v1.UnbanUserResponse + (*SystemEvictUserRequest)(nil), // 78: hyapp.room.v1.SystemEvictUserRequest + (*SystemEvictUserResponse)(nil), // 79: hyapp.room.v1.SystemEvictUserResponse + (*SendGiftRequest)(nil), // 80: hyapp.room.v1.SendGiftRequest + (*SendGiftResponse)(nil), // 81: hyapp.room.v1.SendGiftResponse + (*CheckSpeakPermissionRequest)(nil), // 82: hyapp.room.v1.CheckSpeakPermissionRequest + (*CheckSpeakPermissionResponse)(nil), // 83: hyapp.room.v1.CheckSpeakPermissionResponse + (*VerifyRoomPresenceRequest)(nil), // 84: hyapp.room.v1.VerifyRoomPresenceRequest + (*VerifyRoomPresenceResponse)(nil), // 85: hyapp.room.v1.VerifyRoomPresenceResponse + (*ListRoomsRequest)(nil), // 86: hyapp.room.v1.ListRoomsRequest + (*ListRoomFeedsRequest)(nil), // 87: hyapp.room.v1.ListRoomFeedsRequest + (*RoomFeedRelatedUser)(nil), // 88: hyapp.room.v1.RoomFeedRelatedUser + (*RoomListItem)(nil), // 89: hyapp.room.v1.RoomListItem + (*ListRoomsResponse)(nil), // 90: hyapp.room.v1.ListRoomsResponse + (*GetMyRoomRequest)(nil), // 91: hyapp.room.v1.GetMyRoomRequest + (*GetMyRoomResponse)(nil), // 92: hyapp.room.v1.GetMyRoomResponse + (*GetCurrentRoomRequest)(nil), // 93: hyapp.room.v1.GetCurrentRoomRequest + (*GetCurrentRoomResponse)(nil), // 94: hyapp.room.v1.GetCurrentRoomResponse + (*GetRoomSnapshotRequest)(nil), // 95: hyapp.room.v1.GetRoomSnapshotRequest + (*GetRoomSnapshotResponse)(nil), // 96: hyapp.room.v1.GetRoomSnapshotResponse + (*GetRoomTreasureRequest)(nil), // 97: hyapp.room.v1.GetRoomTreasureRequest + (*GetRoomTreasureResponse)(nil), // 98: hyapp.room.v1.GetRoomTreasureResponse + (*ListRoomOnlineUsersRequest)(nil), // 99: hyapp.room.v1.ListRoomOnlineUsersRequest + (*ListRoomOnlineUsersResponse)(nil), // 100: hyapp.room.v1.ListRoomOnlineUsersResponse + (*FollowRoomRequest)(nil), // 101: hyapp.room.v1.FollowRoomRequest + (*FollowRoomResponse)(nil), // 102: hyapp.room.v1.FollowRoomResponse + (*UnfollowRoomRequest)(nil), // 103: hyapp.room.v1.UnfollowRoomRequest + (*UnfollowRoomResponse)(nil), // 104: hyapp.room.v1.UnfollowRoomResponse + nil, // 105: hyapp.room.v1.RoomSnapshot.RoomExtEntry } var file_proto_room_v1_room_proto_depIdxs = []int32{ - 5, // 0: hyapp.room.v1.RoomTreasureLevel.in_room_rewards:type_name -> hyapp.room.v1.RoomTreasureRewardItem - 5, // 1: hyapp.room.v1.RoomTreasureLevel.top1_rewards:type_name -> hyapp.room.v1.RoomTreasureRewardItem - 5, // 2: hyapp.room.v1.RoomTreasureLevel.igniter_rewards:type_name -> hyapp.room.v1.RoomTreasureRewardItem - 7, // 3: hyapp.room.v1.RoomTreasureState.last_rewards:type_name -> hyapp.room.v1.RoomTreasureRewardGrant - 6, // 4: hyapp.room.v1.RoomTreasureInfo.levels:type_name -> hyapp.room.v1.RoomTreasureLevel - 8, // 5: hyapp.room.v1.RoomTreasureInfo.state:type_name -> hyapp.room.v1.RoomTreasureState - 6, // 6: hyapp.room.v1.AdminRoomTreasureConfig.levels:type_name -> hyapp.room.v1.RoomTreasureLevel - 10, // 7: hyapp.room.v1.AdminRoomTreasureConfig.gift_energy_rules:type_name -> hyapp.room.v1.RoomTreasureGiftEnergyRule + 6, // 0: hyapp.room.v1.RoomTreasureLevel.in_room_rewards:type_name -> hyapp.room.v1.RoomTreasureRewardItem + 6, // 1: hyapp.room.v1.RoomTreasureLevel.top1_rewards:type_name -> hyapp.room.v1.RoomTreasureRewardItem + 6, // 2: hyapp.room.v1.RoomTreasureLevel.igniter_rewards:type_name -> hyapp.room.v1.RoomTreasureRewardItem + 8, // 3: hyapp.room.v1.RoomTreasureState.last_rewards:type_name -> hyapp.room.v1.RoomTreasureRewardGrant + 7, // 4: hyapp.room.v1.RoomTreasureInfo.levels:type_name -> hyapp.room.v1.RoomTreasureLevel + 9, // 5: hyapp.room.v1.RoomTreasureInfo.state:type_name -> hyapp.room.v1.RoomTreasureState + 7, // 6: hyapp.room.v1.AdminRoomTreasureConfig.levels:type_name -> hyapp.room.v1.RoomTreasureLevel + 11, // 7: hyapp.room.v1.AdminRoomTreasureConfig.gift_energy_rules:type_name -> hyapp.room.v1.RoomTreasureGiftEnergyRule 0, // 8: hyapp.room.v1.AdminGetRoomTreasureConfigRequest.meta:type_name -> hyapp.room.v1.RequestMeta - 11, // 9: hyapp.room.v1.AdminGetRoomTreasureConfigResponse.config:type_name -> hyapp.room.v1.AdminRoomTreasureConfig + 12, // 9: hyapp.room.v1.AdminGetRoomTreasureConfigResponse.config:type_name -> hyapp.room.v1.AdminRoomTreasureConfig 0, // 10: hyapp.room.v1.AdminUpdateRoomTreasureConfigRequest.meta:type_name -> hyapp.room.v1.RequestMeta - 11, // 11: hyapp.room.v1.AdminUpdateRoomTreasureConfigRequest.config:type_name -> hyapp.room.v1.AdminRoomTreasureConfig - 11, // 12: hyapp.room.v1.AdminUpdateRoomTreasureConfigResponse.config:type_name -> hyapp.room.v1.AdminRoomTreasureConfig + 12, // 11: hyapp.room.v1.AdminUpdateRoomTreasureConfigRequest.config:type_name -> hyapp.room.v1.AdminRoomTreasureConfig + 12, // 12: hyapp.room.v1.AdminUpdateRoomTreasureConfigResponse.config:type_name -> hyapp.room.v1.AdminRoomTreasureConfig 0, // 13: hyapp.room.v1.AdminGetRoomSeatConfigRequest.meta:type_name -> hyapp.room.v1.RequestMeta - 16, // 14: hyapp.room.v1.AdminGetRoomSeatConfigResponse.config:type_name -> hyapp.room.v1.AdminRoomSeatConfig + 17, // 14: hyapp.room.v1.AdminGetRoomSeatConfigResponse.config:type_name -> hyapp.room.v1.AdminRoomSeatConfig 0, // 15: hyapp.room.v1.AdminUpdateRoomSeatConfigRequest.meta:type_name -> hyapp.room.v1.RequestMeta - 16, // 16: hyapp.room.v1.AdminUpdateRoomSeatConfigResponse.config:type_name -> hyapp.room.v1.AdminRoomSeatConfig - 21, // 17: hyapp.room.v1.AdminRoomPin.room:type_name -> hyapp.room.v1.AdminRoomPinRoom + 17, // 16: hyapp.room.v1.AdminUpdateRoomSeatConfigResponse.config:type_name -> hyapp.room.v1.AdminRoomSeatConfig + 22, // 17: hyapp.room.v1.AdminRoomPin.room:type_name -> hyapp.room.v1.AdminRoomPinRoom 0, // 18: hyapp.room.v1.AdminListRoomPinsRequest.meta:type_name -> hyapp.room.v1.RequestMeta - 22, // 19: hyapp.room.v1.AdminListRoomPinsResponse.pins:type_name -> hyapp.room.v1.AdminRoomPin + 23, // 19: hyapp.room.v1.AdminListRoomPinsResponse.pins:type_name -> hyapp.room.v1.AdminRoomPin 0, // 20: hyapp.room.v1.AdminCreateRoomPinRequest.meta:type_name -> hyapp.room.v1.RequestMeta - 22, // 21: hyapp.room.v1.AdminCreateRoomPinResponse.pin:type_name -> hyapp.room.v1.AdminRoomPin + 23, // 21: hyapp.room.v1.AdminCreateRoomPinResponse.pin:type_name -> hyapp.room.v1.AdminRoomPin 0, // 22: hyapp.room.v1.AdminCancelRoomPinRequest.meta:type_name -> hyapp.room.v1.RequestMeta - 22, // 23: hyapp.room.v1.AdminCancelRoomPinResponse.pin:type_name -> hyapp.room.v1.AdminRoomPin + 23, // 23: hyapp.room.v1.AdminCancelRoomPinResponse.pin:type_name -> hyapp.room.v1.AdminRoomPin 3, // 24: hyapp.room.v1.RoomSnapshot.mic_seats:type_name -> hyapp.room.v1.SeatState 2, // 25: hyapp.room.v1.RoomSnapshot.online_users:type_name -> hyapp.room.v1.RoomUser 4, // 26: hyapp.room.v1.RoomSnapshot.gift_rank:type_name -> hyapp.room.v1.RankItem - 104, // 27: hyapp.room.v1.RoomSnapshot.room_ext:type_name -> hyapp.room.v1.RoomSnapshot.RoomExtEntry - 8, // 28: hyapp.room.v1.RoomSnapshot.treasure:type_name -> hyapp.room.v1.RoomTreasureState + 105, // 27: hyapp.room.v1.RoomSnapshot.room_ext:type_name -> hyapp.room.v1.RoomSnapshot.RoomExtEntry + 9, // 28: hyapp.room.v1.RoomSnapshot.treasure:type_name -> hyapp.room.v1.RoomTreasureState 0, // 29: hyapp.room.v1.CreateRoomRequest.meta:type_name -> hyapp.room.v1.RequestMeta 1, // 30: hyapp.room.v1.CreateRoomResponse.result:type_name -> hyapp.room.v1.CommandResult - 29, // 31: hyapp.room.v1.CreateRoomResponse.room:type_name -> hyapp.room.v1.RoomSnapshot + 30, // 31: hyapp.room.v1.CreateRoomResponse.room:type_name -> hyapp.room.v1.RoomSnapshot 0, // 32: hyapp.room.v1.UpdateRoomProfileRequest.meta:type_name -> hyapp.room.v1.RequestMeta 1, // 33: hyapp.room.v1.UpdateRoomProfileResponse.result:type_name -> hyapp.room.v1.CommandResult - 29, // 34: hyapp.room.v1.UpdateRoomProfileResponse.room:type_name -> hyapp.room.v1.RoomSnapshot + 30, // 34: hyapp.room.v1.UpdateRoomProfileResponse.room:type_name -> hyapp.room.v1.RoomSnapshot 0, // 35: hyapp.room.v1.JoinRoomRequest.meta:type_name -> hyapp.room.v1.RequestMeta 1, // 36: hyapp.room.v1.JoinRoomResponse.result:type_name -> hyapp.room.v1.CommandResult 2, // 37: hyapp.room.v1.JoinRoomResponse.user:type_name -> hyapp.room.v1.RoomUser - 29, // 38: hyapp.room.v1.JoinRoomResponse.room:type_name -> hyapp.room.v1.RoomSnapshot + 30, // 38: hyapp.room.v1.JoinRoomResponse.room:type_name -> hyapp.room.v1.RoomSnapshot 0, // 39: hyapp.room.v1.RoomHeartbeatRequest.meta:type_name -> hyapp.room.v1.RequestMeta 1, // 40: hyapp.room.v1.RoomHeartbeatResponse.result:type_name -> hyapp.room.v1.CommandResult 2, // 41: hyapp.room.v1.RoomHeartbeatResponse.user:type_name -> hyapp.room.v1.RoomUser - 29, // 42: hyapp.room.v1.RoomHeartbeatResponse.room:type_name -> hyapp.room.v1.RoomSnapshot + 30, // 42: hyapp.room.v1.RoomHeartbeatResponse.room:type_name -> hyapp.room.v1.RoomSnapshot 0, // 43: hyapp.room.v1.LeaveRoomRequest.meta:type_name -> hyapp.room.v1.RequestMeta 1, // 44: hyapp.room.v1.LeaveRoomResponse.result:type_name -> hyapp.room.v1.CommandResult - 29, // 45: hyapp.room.v1.LeaveRoomResponse.room:type_name -> hyapp.room.v1.RoomSnapshot + 30, // 45: hyapp.room.v1.LeaveRoomResponse.room:type_name -> hyapp.room.v1.RoomSnapshot 0, // 46: hyapp.room.v1.CloseRoomRequest.meta:type_name -> hyapp.room.v1.RequestMeta 1, // 47: hyapp.room.v1.CloseRoomResponse.result:type_name -> hyapp.room.v1.CommandResult - 29, // 48: hyapp.room.v1.CloseRoomResponse.room:type_name -> hyapp.room.v1.RoomSnapshot + 30, // 48: hyapp.room.v1.CloseRoomResponse.room:type_name -> hyapp.room.v1.RoomSnapshot 0, // 49: hyapp.room.v1.AdminListRoomsRequest.meta:type_name -> hyapp.room.v1.RequestMeta - 42, // 50: hyapp.room.v1.AdminListRoomsResponse.rooms:type_name -> hyapp.room.v1.AdminRoomListItem + 43, // 50: hyapp.room.v1.AdminListRoomsResponse.rooms:type_name -> hyapp.room.v1.AdminRoomListItem 0, // 51: hyapp.room.v1.AdminGetRoomRequest.meta:type_name -> hyapp.room.v1.RequestMeta - 42, // 52: hyapp.room.v1.AdminGetRoomResponse.room:type_name -> hyapp.room.v1.AdminRoomListItem + 43, // 52: hyapp.room.v1.AdminGetRoomResponse.room:type_name -> hyapp.room.v1.AdminRoomListItem 0, // 53: hyapp.room.v1.AdminUpdateRoomRequest.meta:type_name -> hyapp.room.v1.RequestMeta 1, // 54: hyapp.room.v1.AdminUpdateRoomResponse.result:type_name -> hyapp.room.v1.CommandResult - 29, // 55: hyapp.room.v1.AdminUpdateRoomResponse.room:type_name -> hyapp.room.v1.RoomSnapshot + 30, // 55: hyapp.room.v1.AdminUpdateRoomResponse.room:type_name -> hyapp.room.v1.RoomSnapshot 0, // 56: hyapp.room.v1.AdminDeleteRoomRequest.meta:type_name -> hyapp.room.v1.RequestMeta 1, // 57: hyapp.room.v1.AdminDeleteRoomResponse.result:type_name -> hyapp.room.v1.CommandResult - 29, // 58: hyapp.room.v1.AdminDeleteRoomResponse.room:type_name -> hyapp.room.v1.RoomSnapshot + 30, // 58: hyapp.room.v1.AdminDeleteRoomResponse.room:type_name -> hyapp.room.v1.RoomSnapshot 0, // 59: hyapp.room.v1.MicUpRequest.meta:type_name -> hyapp.room.v1.RequestMeta 1, // 60: hyapp.room.v1.MicUpResponse.result:type_name -> hyapp.room.v1.CommandResult - 29, // 61: hyapp.room.v1.MicUpResponse.room:type_name -> hyapp.room.v1.RoomSnapshot + 30, // 61: hyapp.room.v1.MicUpResponse.room:type_name -> hyapp.room.v1.RoomSnapshot 0, // 62: hyapp.room.v1.MicDownRequest.meta:type_name -> hyapp.room.v1.RequestMeta 1, // 63: hyapp.room.v1.MicDownResponse.result:type_name -> hyapp.room.v1.CommandResult - 29, // 64: hyapp.room.v1.MicDownResponse.room:type_name -> hyapp.room.v1.RoomSnapshot + 30, // 64: hyapp.room.v1.MicDownResponse.room:type_name -> hyapp.room.v1.RoomSnapshot 0, // 65: hyapp.room.v1.ChangeMicSeatRequest.meta:type_name -> hyapp.room.v1.RequestMeta 1, // 66: hyapp.room.v1.ChangeMicSeatResponse.result:type_name -> hyapp.room.v1.CommandResult - 29, // 67: hyapp.room.v1.ChangeMicSeatResponse.room:type_name -> hyapp.room.v1.RoomSnapshot + 30, // 67: hyapp.room.v1.ChangeMicSeatResponse.room:type_name -> hyapp.room.v1.RoomSnapshot 0, // 68: hyapp.room.v1.ConfirmMicPublishingRequest.meta:type_name -> hyapp.room.v1.RequestMeta 1, // 69: hyapp.room.v1.ConfirmMicPublishingResponse.result:type_name -> hyapp.room.v1.CommandResult - 29, // 70: hyapp.room.v1.ConfirmMicPublishingResponse.room:type_name -> hyapp.room.v1.RoomSnapshot + 30, // 70: hyapp.room.v1.ConfirmMicPublishingResponse.room:type_name -> hyapp.room.v1.RoomSnapshot 0, // 71: hyapp.room.v1.SetMicMuteRequest.meta:type_name -> hyapp.room.v1.RequestMeta 1, // 72: hyapp.room.v1.SetMicMuteResponse.result:type_name -> hyapp.room.v1.CommandResult - 29, // 73: hyapp.room.v1.SetMicMuteResponse.room:type_name -> hyapp.room.v1.RoomSnapshot + 30, // 73: hyapp.room.v1.SetMicMuteResponse.room:type_name -> hyapp.room.v1.RoomSnapshot 0, // 74: hyapp.room.v1.ApplyRTCEventRequest.meta:type_name -> hyapp.room.v1.RequestMeta 1, // 75: hyapp.room.v1.ApplyRTCEventResponse.result:type_name -> hyapp.room.v1.CommandResult - 29, // 76: hyapp.room.v1.ApplyRTCEventResponse.room:type_name -> hyapp.room.v1.RoomSnapshot + 30, // 76: hyapp.room.v1.ApplyRTCEventResponse.room:type_name -> hyapp.room.v1.RoomSnapshot 0, // 77: hyapp.room.v1.SetMicSeatLockRequest.meta:type_name -> hyapp.room.v1.RequestMeta 1, // 78: hyapp.room.v1.SetMicSeatLockResponse.result:type_name -> hyapp.room.v1.CommandResult - 29, // 79: hyapp.room.v1.SetMicSeatLockResponse.room:type_name -> hyapp.room.v1.RoomSnapshot + 30, // 79: hyapp.room.v1.SetMicSeatLockResponse.room:type_name -> hyapp.room.v1.RoomSnapshot 0, // 80: hyapp.room.v1.SetChatEnabledRequest.meta:type_name -> hyapp.room.v1.RequestMeta 1, // 81: hyapp.room.v1.SetChatEnabledResponse.result:type_name -> hyapp.room.v1.CommandResult - 29, // 82: hyapp.room.v1.SetChatEnabledResponse.room:type_name -> hyapp.room.v1.RoomSnapshot + 30, // 82: hyapp.room.v1.SetChatEnabledResponse.room:type_name -> hyapp.room.v1.RoomSnapshot 0, // 83: hyapp.room.v1.SetRoomPasswordRequest.meta:type_name -> hyapp.room.v1.RequestMeta 1, // 84: hyapp.room.v1.SetRoomPasswordResponse.result:type_name -> hyapp.room.v1.CommandResult - 29, // 85: hyapp.room.v1.SetRoomPasswordResponse.room:type_name -> hyapp.room.v1.RoomSnapshot + 30, // 85: hyapp.room.v1.SetRoomPasswordResponse.room:type_name -> hyapp.room.v1.RoomSnapshot 0, // 86: hyapp.room.v1.SetRoomAdminRequest.meta:type_name -> hyapp.room.v1.RequestMeta 1, // 87: hyapp.room.v1.SetRoomAdminResponse.result:type_name -> hyapp.room.v1.CommandResult - 29, // 88: hyapp.room.v1.SetRoomAdminResponse.room:type_name -> hyapp.room.v1.RoomSnapshot + 30, // 88: hyapp.room.v1.SetRoomAdminResponse.room:type_name -> hyapp.room.v1.RoomSnapshot 0, // 89: hyapp.room.v1.MuteUserRequest.meta:type_name -> hyapp.room.v1.RequestMeta 1, // 90: hyapp.room.v1.MuteUserResponse.result:type_name -> hyapp.room.v1.CommandResult - 29, // 91: hyapp.room.v1.MuteUserResponse.room:type_name -> hyapp.room.v1.RoomSnapshot + 30, // 91: hyapp.room.v1.MuteUserResponse.room:type_name -> hyapp.room.v1.RoomSnapshot 0, // 92: hyapp.room.v1.KickUserRequest.meta:type_name -> hyapp.room.v1.RequestMeta 1, // 93: hyapp.room.v1.KickUserResponse.result:type_name -> hyapp.room.v1.CommandResult - 29, // 94: hyapp.room.v1.KickUserResponse.room:type_name -> hyapp.room.v1.RoomSnapshot + 30, // 94: hyapp.room.v1.KickUserResponse.room:type_name -> hyapp.room.v1.RoomSnapshot 0, // 95: hyapp.room.v1.UnbanUserRequest.meta:type_name -> hyapp.room.v1.RequestMeta 1, // 96: hyapp.room.v1.UnbanUserResponse.result:type_name -> hyapp.room.v1.CommandResult - 29, // 97: hyapp.room.v1.UnbanUserResponse.room:type_name -> hyapp.room.v1.RoomSnapshot + 30, // 97: hyapp.room.v1.UnbanUserResponse.room:type_name -> hyapp.room.v1.RoomSnapshot 0, // 98: hyapp.room.v1.SystemEvictUserRequest.meta:type_name -> hyapp.room.v1.RequestMeta 1, // 99: hyapp.room.v1.SystemEvictUserResponse.result:type_name -> hyapp.room.v1.CommandResult - 29, // 100: hyapp.room.v1.SystemEvictUserResponse.room:type_name -> hyapp.room.v1.RoomSnapshot + 30, // 100: hyapp.room.v1.SystemEvictUserResponse.room:type_name -> hyapp.room.v1.RoomSnapshot 0, // 101: hyapp.room.v1.SendGiftRequest.meta:type_name -> hyapp.room.v1.RequestMeta 1, // 102: hyapp.room.v1.SendGiftResponse.result:type_name -> hyapp.room.v1.CommandResult 4, // 103: hyapp.room.v1.SendGiftResponse.gift_rank:type_name -> hyapp.room.v1.RankItem - 29, // 104: hyapp.room.v1.SendGiftResponse.room:type_name -> hyapp.room.v1.RoomSnapshot - 8, // 105: hyapp.room.v1.SendGiftResponse.treasure:type_name -> hyapp.room.v1.RoomTreasureState - 0, // 106: hyapp.room.v1.ListRoomsRequest.meta:type_name -> hyapp.room.v1.RequestMeta - 0, // 107: hyapp.room.v1.ListRoomFeedsRequest.meta:type_name -> hyapp.room.v1.RequestMeta - 87, // 108: hyapp.room.v1.ListRoomFeedsRequest.related_users:type_name -> hyapp.room.v1.RoomFeedRelatedUser - 88, // 109: hyapp.room.v1.ListRoomsResponse.rooms:type_name -> hyapp.room.v1.RoomListItem - 0, // 110: hyapp.room.v1.GetMyRoomRequest.meta:type_name -> hyapp.room.v1.RequestMeta - 88, // 111: hyapp.room.v1.GetMyRoomResponse.room:type_name -> hyapp.room.v1.RoomListItem - 0, // 112: hyapp.room.v1.GetCurrentRoomRequest.meta:type_name -> hyapp.room.v1.RequestMeta - 0, // 113: hyapp.room.v1.GetRoomSnapshotRequest.meta:type_name -> hyapp.room.v1.RequestMeta - 29, // 114: hyapp.room.v1.GetRoomSnapshotResponse.room:type_name -> hyapp.room.v1.RoomSnapshot - 0, // 115: hyapp.room.v1.GetRoomTreasureRequest.meta:type_name -> hyapp.room.v1.RequestMeta - 9, // 116: hyapp.room.v1.GetRoomTreasureResponse.treasure:type_name -> hyapp.room.v1.RoomTreasureInfo - 0, // 117: hyapp.room.v1.ListRoomOnlineUsersRequest.meta:type_name -> hyapp.room.v1.RequestMeta - 2, // 118: hyapp.room.v1.ListRoomOnlineUsersResponse.users:type_name -> hyapp.room.v1.RoomUser - 0, // 119: hyapp.room.v1.FollowRoomRequest.meta:type_name -> hyapp.room.v1.RequestMeta - 0, // 120: hyapp.room.v1.UnfollowRoomRequest.meta:type_name -> hyapp.room.v1.RequestMeta - 30, // 121: hyapp.room.v1.RoomCommandService.CreateRoom:input_type -> hyapp.room.v1.CreateRoomRequest - 32, // 122: hyapp.room.v1.RoomCommandService.UpdateRoomProfile:input_type -> hyapp.room.v1.UpdateRoomProfileRequest - 34, // 123: hyapp.room.v1.RoomCommandService.JoinRoom:input_type -> hyapp.room.v1.JoinRoomRequest - 36, // 124: hyapp.room.v1.RoomCommandService.RoomHeartbeat:input_type -> hyapp.room.v1.RoomHeartbeatRequest - 38, // 125: hyapp.room.v1.RoomCommandService.LeaveRoom:input_type -> hyapp.room.v1.LeaveRoomRequest - 40, // 126: hyapp.room.v1.RoomCommandService.CloseRoom:input_type -> hyapp.room.v1.CloseRoomRequest - 47, // 127: hyapp.room.v1.RoomCommandService.AdminUpdateRoom:input_type -> hyapp.room.v1.AdminUpdateRoomRequest - 49, // 128: hyapp.room.v1.RoomCommandService.AdminDeleteRoom:input_type -> hyapp.room.v1.AdminDeleteRoomRequest - 14, // 129: hyapp.room.v1.RoomCommandService.AdminUpdateRoomTreasureConfig:input_type -> hyapp.room.v1.AdminUpdateRoomTreasureConfigRequest - 19, // 130: hyapp.room.v1.RoomCommandService.AdminUpdateRoomSeatConfig:input_type -> hyapp.room.v1.AdminUpdateRoomSeatConfigRequest - 25, // 131: hyapp.room.v1.RoomCommandService.AdminCreateRoomPin:input_type -> hyapp.room.v1.AdminCreateRoomPinRequest - 27, // 132: hyapp.room.v1.RoomCommandService.AdminCancelRoomPin:input_type -> hyapp.room.v1.AdminCancelRoomPinRequest - 51, // 133: hyapp.room.v1.RoomCommandService.MicUp:input_type -> hyapp.room.v1.MicUpRequest - 53, // 134: hyapp.room.v1.RoomCommandService.MicDown:input_type -> hyapp.room.v1.MicDownRequest - 55, // 135: hyapp.room.v1.RoomCommandService.ChangeMicSeat:input_type -> hyapp.room.v1.ChangeMicSeatRequest - 57, // 136: hyapp.room.v1.RoomCommandService.ConfirmMicPublishing:input_type -> hyapp.room.v1.ConfirmMicPublishingRequest - 59, // 137: hyapp.room.v1.RoomCommandService.SetMicMute:input_type -> hyapp.room.v1.SetMicMuteRequest - 61, // 138: hyapp.room.v1.RoomCommandService.ApplyRTCEvent:input_type -> hyapp.room.v1.ApplyRTCEventRequest - 63, // 139: hyapp.room.v1.RoomCommandService.SetMicSeatLock:input_type -> hyapp.room.v1.SetMicSeatLockRequest - 65, // 140: hyapp.room.v1.RoomCommandService.SetChatEnabled:input_type -> hyapp.room.v1.SetChatEnabledRequest - 67, // 141: hyapp.room.v1.RoomCommandService.SetRoomPassword:input_type -> hyapp.room.v1.SetRoomPasswordRequest - 69, // 142: hyapp.room.v1.RoomCommandService.SetRoomAdmin:input_type -> hyapp.room.v1.SetRoomAdminRequest - 71, // 143: hyapp.room.v1.RoomCommandService.MuteUser:input_type -> hyapp.room.v1.MuteUserRequest - 73, // 144: hyapp.room.v1.RoomCommandService.KickUser:input_type -> hyapp.room.v1.KickUserRequest - 75, // 145: hyapp.room.v1.RoomCommandService.UnbanUser:input_type -> hyapp.room.v1.UnbanUserRequest - 77, // 146: hyapp.room.v1.RoomCommandService.SystemEvictUser:input_type -> hyapp.room.v1.SystemEvictUserRequest - 79, // 147: hyapp.room.v1.RoomCommandService.SendGift:input_type -> hyapp.room.v1.SendGiftRequest - 100, // 148: hyapp.room.v1.RoomCommandService.FollowRoom:input_type -> hyapp.room.v1.FollowRoomRequest - 102, // 149: hyapp.room.v1.RoomCommandService.UnfollowRoom:input_type -> hyapp.room.v1.UnfollowRoomRequest - 81, // 150: hyapp.room.v1.RoomGuardService.CheckSpeakPermission:input_type -> hyapp.room.v1.CheckSpeakPermissionRequest - 83, // 151: hyapp.room.v1.RoomGuardService.VerifyRoomPresence:input_type -> hyapp.room.v1.VerifyRoomPresenceRequest - 43, // 152: hyapp.room.v1.RoomQueryService.AdminListRooms:input_type -> hyapp.room.v1.AdminListRoomsRequest - 45, // 153: hyapp.room.v1.RoomQueryService.AdminGetRoom:input_type -> hyapp.room.v1.AdminGetRoomRequest - 12, // 154: hyapp.room.v1.RoomQueryService.AdminGetRoomTreasureConfig:input_type -> hyapp.room.v1.AdminGetRoomTreasureConfigRequest - 17, // 155: hyapp.room.v1.RoomQueryService.AdminGetRoomSeatConfig:input_type -> hyapp.room.v1.AdminGetRoomSeatConfigRequest - 23, // 156: hyapp.room.v1.RoomQueryService.AdminListRoomPins:input_type -> hyapp.room.v1.AdminListRoomPinsRequest - 85, // 157: hyapp.room.v1.RoomQueryService.ListRooms:input_type -> hyapp.room.v1.ListRoomsRequest - 86, // 158: hyapp.room.v1.RoomQueryService.ListRoomFeeds:input_type -> hyapp.room.v1.ListRoomFeedsRequest - 90, // 159: hyapp.room.v1.RoomQueryService.GetMyRoom:input_type -> hyapp.room.v1.GetMyRoomRequest - 92, // 160: hyapp.room.v1.RoomQueryService.GetCurrentRoom:input_type -> hyapp.room.v1.GetCurrentRoomRequest - 94, // 161: hyapp.room.v1.RoomQueryService.GetRoomSnapshot:input_type -> hyapp.room.v1.GetRoomSnapshotRequest - 96, // 162: hyapp.room.v1.RoomQueryService.GetRoomTreasure:input_type -> hyapp.room.v1.GetRoomTreasureRequest - 98, // 163: hyapp.room.v1.RoomQueryService.ListRoomOnlineUsers:input_type -> hyapp.room.v1.ListRoomOnlineUsersRequest - 31, // 164: hyapp.room.v1.RoomCommandService.CreateRoom:output_type -> hyapp.room.v1.CreateRoomResponse - 33, // 165: hyapp.room.v1.RoomCommandService.UpdateRoomProfile:output_type -> hyapp.room.v1.UpdateRoomProfileResponse - 35, // 166: hyapp.room.v1.RoomCommandService.JoinRoom:output_type -> hyapp.room.v1.JoinRoomResponse - 37, // 167: hyapp.room.v1.RoomCommandService.RoomHeartbeat:output_type -> hyapp.room.v1.RoomHeartbeatResponse - 39, // 168: hyapp.room.v1.RoomCommandService.LeaveRoom:output_type -> hyapp.room.v1.LeaveRoomResponse - 41, // 169: hyapp.room.v1.RoomCommandService.CloseRoom:output_type -> hyapp.room.v1.CloseRoomResponse - 48, // 170: hyapp.room.v1.RoomCommandService.AdminUpdateRoom:output_type -> hyapp.room.v1.AdminUpdateRoomResponse - 50, // 171: hyapp.room.v1.RoomCommandService.AdminDeleteRoom:output_type -> hyapp.room.v1.AdminDeleteRoomResponse - 15, // 172: hyapp.room.v1.RoomCommandService.AdminUpdateRoomTreasureConfig:output_type -> hyapp.room.v1.AdminUpdateRoomTreasureConfigResponse - 20, // 173: hyapp.room.v1.RoomCommandService.AdminUpdateRoomSeatConfig:output_type -> hyapp.room.v1.AdminUpdateRoomSeatConfigResponse - 26, // 174: hyapp.room.v1.RoomCommandService.AdminCreateRoomPin:output_type -> hyapp.room.v1.AdminCreateRoomPinResponse - 28, // 175: hyapp.room.v1.RoomCommandService.AdminCancelRoomPin:output_type -> hyapp.room.v1.AdminCancelRoomPinResponse - 52, // 176: hyapp.room.v1.RoomCommandService.MicUp:output_type -> hyapp.room.v1.MicUpResponse - 54, // 177: hyapp.room.v1.RoomCommandService.MicDown:output_type -> hyapp.room.v1.MicDownResponse - 56, // 178: hyapp.room.v1.RoomCommandService.ChangeMicSeat:output_type -> hyapp.room.v1.ChangeMicSeatResponse - 58, // 179: hyapp.room.v1.RoomCommandService.ConfirmMicPublishing:output_type -> hyapp.room.v1.ConfirmMicPublishingResponse - 60, // 180: hyapp.room.v1.RoomCommandService.SetMicMute:output_type -> hyapp.room.v1.SetMicMuteResponse - 62, // 181: hyapp.room.v1.RoomCommandService.ApplyRTCEvent:output_type -> hyapp.room.v1.ApplyRTCEventResponse - 64, // 182: hyapp.room.v1.RoomCommandService.SetMicSeatLock:output_type -> hyapp.room.v1.SetMicSeatLockResponse - 66, // 183: hyapp.room.v1.RoomCommandService.SetChatEnabled:output_type -> hyapp.room.v1.SetChatEnabledResponse - 68, // 184: hyapp.room.v1.RoomCommandService.SetRoomPassword:output_type -> hyapp.room.v1.SetRoomPasswordResponse - 70, // 185: hyapp.room.v1.RoomCommandService.SetRoomAdmin:output_type -> hyapp.room.v1.SetRoomAdminResponse - 72, // 186: hyapp.room.v1.RoomCommandService.MuteUser:output_type -> hyapp.room.v1.MuteUserResponse - 74, // 187: hyapp.room.v1.RoomCommandService.KickUser:output_type -> hyapp.room.v1.KickUserResponse - 76, // 188: hyapp.room.v1.RoomCommandService.UnbanUser:output_type -> hyapp.room.v1.UnbanUserResponse - 78, // 189: hyapp.room.v1.RoomCommandService.SystemEvictUser:output_type -> hyapp.room.v1.SystemEvictUserResponse - 80, // 190: hyapp.room.v1.RoomCommandService.SendGift:output_type -> hyapp.room.v1.SendGiftResponse - 101, // 191: hyapp.room.v1.RoomCommandService.FollowRoom:output_type -> hyapp.room.v1.FollowRoomResponse - 103, // 192: hyapp.room.v1.RoomCommandService.UnfollowRoom:output_type -> hyapp.room.v1.UnfollowRoomResponse - 82, // 193: hyapp.room.v1.RoomGuardService.CheckSpeakPermission:output_type -> hyapp.room.v1.CheckSpeakPermissionResponse - 84, // 194: hyapp.room.v1.RoomGuardService.VerifyRoomPresence:output_type -> hyapp.room.v1.VerifyRoomPresenceResponse - 44, // 195: hyapp.room.v1.RoomQueryService.AdminListRooms:output_type -> hyapp.room.v1.AdminListRoomsResponse - 46, // 196: hyapp.room.v1.RoomQueryService.AdminGetRoom:output_type -> hyapp.room.v1.AdminGetRoomResponse - 13, // 197: hyapp.room.v1.RoomQueryService.AdminGetRoomTreasureConfig:output_type -> hyapp.room.v1.AdminGetRoomTreasureConfigResponse - 18, // 198: hyapp.room.v1.RoomQueryService.AdminGetRoomSeatConfig:output_type -> hyapp.room.v1.AdminGetRoomSeatConfigResponse - 24, // 199: hyapp.room.v1.RoomQueryService.AdminListRoomPins:output_type -> hyapp.room.v1.AdminListRoomPinsResponse - 89, // 200: hyapp.room.v1.RoomQueryService.ListRooms:output_type -> hyapp.room.v1.ListRoomsResponse - 89, // 201: hyapp.room.v1.RoomQueryService.ListRoomFeeds:output_type -> hyapp.room.v1.ListRoomsResponse - 91, // 202: hyapp.room.v1.RoomQueryService.GetMyRoom:output_type -> hyapp.room.v1.GetMyRoomResponse - 93, // 203: hyapp.room.v1.RoomQueryService.GetCurrentRoom:output_type -> hyapp.room.v1.GetCurrentRoomResponse - 95, // 204: hyapp.room.v1.RoomQueryService.GetRoomSnapshot:output_type -> hyapp.room.v1.GetRoomSnapshotResponse - 97, // 205: hyapp.room.v1.RoomQueryService.GetRoomTreasure:output_type -> hyapp.room.v1.GetRoomTreasureResponse - 99, // 206: hyapp.room.v1.RoomQueryService.ListRoomOnlineUsers:output_type -> hyapp.room.v1.ListRoomOnlineUsersResponse - 164, // [164:207] is the sub-list for method output_type - 121, // [121:164] is the sub-list for method input_type - 121, // [121:121] is the sub-list for extension type_name - 121, // [121:121] is the sub-list for extension extendee - 0, // [0:121] is the sub-list for field type_name + 30, // 104: hyapp.room.v1.SendGiftResponse.room:type_name -> hyapp.room.v1.RoomSnapshot + 9, // 105: hyapp.room.v1.SendGiftResponse.treasure:type_name -> hyapp.room.v1.RoomTreasureState + 5, // 106: hyapp.room.v1.SendGiftResponse.lucky_gift:type_name -> hyapp.room.v1.LuckyGiftDrawResult + 0, // 107: hyapp.room.v1.ListRoomsRequest.meta:type_name -> hyapp.room.v1.RequestMeta + 0, // 108: hyapp.room.v1.ListRoomFeedsRequest.meta:type_name -> hyapp.room.v1.RequestMeta + 88, // 109: hyapp.room.v1.ListRoomFeedsRequest.related_users:type_name -> hyapp.room.v1.RoomFeedRelatedUser + 89, // 110: hyapp.room.v1.ListRoomsResponse.rooms:type_name -> hyapp.room.v1.RoomListItem + 0, // 111: hyapp.room.v1.GetMyRoomRequest.meta:type_name -> hyapp.room.v1.RequestMeta + 89, // 112: hyapp.room.v1.GetMyRoomResponse.room:type_name -> hyapp.room.v1.RoomListItem + 0, // 113: hyapp.room.v1.GetCurrentRoomRequest.meta:type_name -> hyapp.room.v1.RequestMeta + 0, // 114: hyapp.room.v1.GetRoomSnapshotRequest.meta:type_name -> hyapp.room.v1.RequestMeta + 30, // 115: hyapp.room.v1.GetRoomSnapshotResponse.room:type_name -> hyapp.room.v1.RoomSnapshot + 0, // 116: hyapp.room.v1.GetRoomTreasureRequest.meta:type_name -> hyapp.room.v1.RequestMeta + 10, // 117: hyapp.room.v1.GetRoomTreasureResponse.treasure:type_name -> hyapp.room.v1.RoomTreasureInfo + 0, // 118: hyapp.room.v1.ListRoomOnlineUsersRequest.meta:type_name -> hyapp.room.v1.RequestMeta + 2, // 119: hyapp.room.v1.ListRoomOnlineUsersResponse.users:type_name -> hyapp.room.v1.RoomUser + 0, // 120: hyapp.room.v1.FollowRoomRequest.meta:type_name -> hyapp.room.v1.RequestMeta + 0, // 121: hyapp.room.v1.UnfollowRoomRequest.meta:type_name -> hyapp.room.v1.RequestMeta + 31, // 122: hyapp.room.v1.RoomCommandService.CreateRoom:input_type -> hyapp.room.v1.CreateRoomRequest + 33, // 123: hyapp.room.v1.RoomCommandService.UpdateRoomProfile:input_type -> hyapp.room.v1.UpdateRoomProfileRequest + 35, // 124: hyapp.room.v1.RoomCommandService.JoinRoom:input_type -> hyapp.room.v1.JoinRoomRequest + 37, // 125: hyapp.room.v1.RoomCommandService.RoomHeartbeat:input_type -> hyapp.room.v1.RoomHeartbeatRequest + 39, // 126: hyapp.room.v1.RoomCommandService.LeaveRoom:input_type -> hyapp.room.v1.LeaveRoomRequest + 41, // 127: hyapp.room.v1.RoomCommandService.CloseRoom:input_type -> hyapp.room.v1.CloseRoomRequest + 48, // 128: hyapp.room.v1.RoomCommandService.AdminUpdateRoom:input_type -> hyapp.room.v1.AdminUpdateRoomRequest + 50, // 129: hyapp.room.v1.RoomCommandService.AdminDeleteRoom:input_type -> hyapp.room.v1.AdminDeleteRoomRequest + 15, // 130: hyapp.room.v1.RoomCommandService.AdminUpdateRoomTreasureConfig:input_type -> hyapp.room.v1.AdminUpdateRoomTreasureConfigRequest + 20, // 131: hyapp.room.v1.RoomCommandService.AdminUpdateRoomSeatConfig:input_type -> hyapp.room.v1.AdminUpdateRoomSeatConfigRequest + 26, // 132: hyapp.room.v1.RoomCommandService.AdminCreateRoomPin:input_type -> hyapp.room.v1.AdminCreateRoomPinRequest + 28, // 133: hyapp.room.v1.RoomCommandService.AdminCancelRoomPin:input_type -> hyapp.room.v1.AdminCancelRoomPinRequest + 52, // 134: hyapp.room.v1.RoomCommandService.MicUp:input_type -> hyapp.room.v1.MicUpRequest + 54, // 135: hyapp.room.v1.RoomCommandService.MicDown:input_type -> hyapp.room.v1.MicDownRequest + 56, // 136: hyapp.room.v1.RoomCommandService.ChangeMicSeat:input_type -> hyapp.room.v1.ChangeMicSeatRequest + 58, // 137: hyapp.room.v1.RoomCommandService.ConfirmMicPublishing:input_type -> hyapp.room.v1.ConfirmMicPublishingRequest + 60, // 138: hyapp.room.v1.RoomCommandService.SetMicMute:input_type -> hyapp.room.v1.SetMicMuteRequest + 62, // 139: hyapp.room.v1.RoomCommandService.ApplyRTCEvent:input_type -> hyapp.room.v1.ApplyRTCEventRequest + 64, // 140: hyapp.room.v1.RoomCommandService.SetMicSeatLock:input_type -> hyapp.room.v1.SetMicSeatLockRequest + 66, // 141: hyapp.room.v1.RoomCommandService.SetChatEnabled:input_type -> hyapp.room.v1.SetChatEnabledRequest + 68, // 142: hyapp.room.v1.RoomCommandService.SetRoomPassword:input_type -> hyapp.room.v1.SetRoomPasswordRequest + 70, // 143: hyapp.room.v1.RoomCommandService.SetRoomAdmin:input_type -> hyapp.room.v1.SetRoomAdminRequest + 72, // 144: hyapp.room.v1.RoomCommandService.MuteUser:input_type -> hyapp.room.v1.MuteUserRequest + 74, // 145: hyapp.room.v1.RoomCommandService.KickUser:input_type -> hyapp.room.v1.KickUserRequest + 76, // 146: hyapp.room.v1.RoomCommandService.UnbanUser:input_type -> hyapp.room.v1.UnbanUserRequest + 78, // 147: hyapp.room.v1.RoomCommandService.SystemEvictUser:input_type -> hyapp.room.v1.SystemEvictUserRequest + 80, // 148: hyapp.room.v1.RoomCommandService.SendGift:input_type -> hyapp.room.v1.SendGiftRequest + 101, // 149: hyapp.room.v1.RoomCommandService.FollowRoom:input_type -> hyapp.room.v1.FollowRoomRequest + 103, // 150: hyapp.room.v1.RoomCommandService.UnfollowRoom:input_type -> hyapp.room.v1.UnfollowRoomRequest + 82, // 151: hyapp.room.v1.RoomGuardService.CheckSpeakPermission:input_type -> hyapp.room.v1.CheckSpeakPermissionRequest + 84, // 152: hyapp.room.v1.RoomGuardService.VerifyRoomPresence:input_type -> hyapp.room.v1.VerifyRoomPresenceRequest + 44, // 153: hyapp.room.v1.RoomQueryService.AdminListRooms:input_type -> hyapp.room.v1.AdminListRoomsRequest + 46, // 154: hyapp.room.v1.RoomQueryService.AdminGetRoom:input_type -> hyapp.room.v1.AdminGetRoomRequest + 13, // 155: hyapp.room.v1.RoomQueryService.AdminGetRoomTreasureConfig:input_type -> hyapp.room.v1.AdminGetRoomTreasureConfigRequest + 18, // 156: hyapp.room.v1.RoomQueryService.AdminGetRoomSeatConfig:input_type -> hyapp.room.v1.AdminGetRoomSeatConfigRequest + 24, // 157: hyapp.room.v1.RoomQueryService.AdminListRoomPins:input_type -> hyapp.room.v1.AdminListRoomPinsRequest + 86, // 158: hyapp.room.v1.RoomQueryService.ListRooms:input_type -> hyapp.room.v1.ListRoomsRequest + 87, // 159: hyapp.room.v1.RoomQueryService.ListRoomFeeds:input_type -> hyapp.room.v1.ListRoomFeedsRequest + 91, // 160: hyapp.room.v1.RoomQueryService.GetMyRoom:input_type -> hyapp.room.v1.GetMyRoomRequest + 93, // 161: hyapp.room.v1.RoomQueryService.GetCurrentRoom:input_type -> hyapp.room.v1.GetCurrentRoomRequest + 95, // 162: hyapp.room.v1.RoomQueryService.GetRoomSnapshot:input_type -> hyapp.room.v1.GetRoomSnapshotRequest + 97, // 163: hyapp.room.v1.RoomQueryService.GetRoomTreasure:input_type -> hyapp.room.v1.GetRoomTreasureRequest + 99, // 164: hyapp.room.v1.RoomQueryService.ListRoomOnlineUsers:input_type -> hyapp.room.v1.ListRoomOnlineUsersRequest + 32, // 165: hyapp.room.v1.RoomCommandService.CreateRoom:output_type -> hyapp.room.v1.CreateRoomResponse + 34, // 166: hyapp.room.v1.RoomCommandService.UpdateRoomProfile:output_type -> hyapp.room.v1.UpdateRoomProfileResponse + 36, // 167: hyapp.room.v1.RoomCommandService.JoinRoom:output_type -> hyapp.room.v1.JoinRoomResponse + 38, // 168: hyapp.room.v1.RoomCommandService.RoomHeartbeat:output_type -> hyapp.room.v1.RoomHeartbeatResponse + 40, // 169: hyapp.room.v1.RoomCommandService.LeaveRoom:output_type -> hyapp.room.v1.LeaveRoomResponse + 42, // 170: hyapp.room.v1.RoomCommandService.CloseRoom:output_type -> hyapp.room.v1.CloseRoomResponse + 49, // 171: hyapp.room.v1.RoomCommandService.AdminUpdateRoom:output_type -> hyapp.room.v1.AdminUpdateRoomResponse + 51, // 172: hyapp.room.v1.RoomCommandService.AdminDeleteRoom:output_type -> hyapp.room.v1.AdminDeleteRoomResponse + 16, // 173: hyapp.room.v1.RoomCommandService.AdminUpdateRoomTreasureConfig:output_type -> hyapp.room.v1.AdminUpdateRoomTreasureConfigResponse + 21, // 174: hyapp.room.v1.RoomCommandService.AdminUpdateRoomSeatConfig:output_type -> hyapp.room.v1.AdminUpdateRoomSeatConfigResponse + 27, // 175: hyapp.room.v1.RoomCommandService.AdminCreateRoomPin:output_type -> hyapp.room.v1.AdminCreateRoomPinResponse + 29, // 176: hyapp.room.v1.RoomCommandService.AdminCancelRoomPin:output_type -> hyapp.room.v1.AdminCancelRoomPinResponse + 53, // 177: hyapp.room.v1.RoomCommandService.MicUp:output_type -> hyapp.room.v1.MicUpResponse + 55, // 178: hyapp.room.v1.RoomCommandService.MicDown:output_type -> hyapp.room.v1.MicDownResponse + 57, // 179: hyapp.room.v1.RoomCommandService.ChangeMicSeat:output_type -> hyapp.room.v1.ChangeMicSeatResponse + 59, // 180: hyapp.room.v1.RoomCommandService.ConfirmMicPublishing:output_type -> hyapp.room.v1.ConfirmMicPublishingResponse + 61, // 181: hyapp.room.v1.RoomCommandService.SetMicMute:output_type -> hyapp.room.v1.SetMicMuteResponse + 63, // 182: hyapp.room.v1.RoomCommandService.ApplyRTCEvent:output_type -> hyapp.room.v1.ApplyRTCEventResponse + 65, // 183: hyapp.room.v1.RoomCommandService.SetMicSeatLock:output_type -> hyapp.room.v1.SetMicSeatLockResponse + 67, // 184: hyapp.room.v1.RoomCommandService.SetChatEnabled:output_type -> hyapp.room.v1.SetChatEnabledResponse + 69, // 185: hyapp.room.v1.RoomCommandService.SetRoomPassword:output_type -> hyapp.room.v1.SetRoomPasswordResponse + 71, // 186: hyapp.room.v1.RoomCommandService.SetRoomAdmin:output_type -> hyapp.room.v1.SetRoomAdminResponse + 73, // 187: hyapp.room.v1.RoomCommandService.MuteUser:output_type -> hyapp.room.v1.MuteUserResponse + 75, // 188: hyapp.room.v1.RoomCommandService.KickUser:output_type -> hyapp.room.v1.KickUserResponse + 77, // 189: hyapp.room.v1.RoomCommandService.UnbanUser:output_type -> hyapp.room.v1.UnbanUserResponse + 79, // 190: hyapp.room.v1.RoomCommandService.SystemEvictUser:output_type -> hyapp.room.v1.SystemEvictUserResponse + 81, // 191: hyapp.room.v1.RoomCommandService.SendGift:output_type -> hyapp.room.v1.SendGiftResponse + 102, // 192: hyapp.room.v1.RoomCommandService.FollowRoom:output_type -> hyapp.room.v1.FollowRoomResponse + 104, // 193: hyapp.room.v1.RoomCommandService.UnfollowRoom:output_type -> hyapp.room.v1.UnfollowRoomResponse + 83, // 194: hyapp.room.v1.RoomGuardService.CheckSpeakPermission:output_type -> hyapp.room.v1.CheckSpeakPermissionResponse + 85, // 195: hyapp.room.v1.RoomGuardService.VerifyRoomPresence:output_type -> hyapp.room.v1.VerifyRoomPresenceResponse + 45, // 196: hyapp.room.v1.RoomQueryService.AdminListRooms:output_type -> hyapp.room.v1.AdminListRoomsResponse + 47, // 197: hyapp.room.v1.RoomQueryService.AdminGetRoom:output_type -> hyapp.room.v1.AdminGetRoomResponse + 14, // 198: hyapp.room.v1.RoomQueryService.AdminGetRoomTreasureConfig:output_type -> hyapp.room.v1.AdminGetRoomTreasureConfigResponse + 19, // 199: hyapp.room.v1.RoomQueryService.AdminGetRoomSeatConfig:output_type -> hyapp.room.v1.AdminGetRoomSeatConfigResponse + 25, // 200: hyapp.room.v1.RoomQueryService.AdminListRoomPins:output_type -> hyapp.room.v1.AdminListRoomPinsResponse + 90, // 201: hyapp.room.v1.RoomQueryService.ListRooms:output_type -> hyapp.room.v1.ListRoomsResponse + 90, // 202: hyapp.room.v1.RoomQueryService.ListRoomFeeds:output_type -> hyapp.room.v1.ListRoomsResponse + 92, // 203: hyapp.room.v1.RoomQueryService.GetMyRoom:output_type -> hyapp.room.v1.GetMyRoomResponse + 94, // 204: hyapp.room.v1.RoomQueryService.GetCurrentRoom:output_type -> hyapp.room.v1.GetCurrentRoomResponse + 96, // 205: hyapp.room.v1.RoomQueryService.GetRoomSnapshot:output_type -> hyapp.room.v1.GetRoomSnapshotResponse + 98, // 206: hyapp.room.v1.RoomQueryService.GetRoomTreasure:output_type -> hyapp.room.v1.GetRoomTreasureResponse + 100, // 207: hyapp.room.v1.RoomQueryService.ListRoomOnlineUsers:output_type -> hyapp.room.v1.ListRoomOnlineUsersResponse + 165, // [165:208] is the sub-list for method output_type + 122, // [122:165] is the sub-list for method input_type + 122, // [122:122] is the sub-list for extension type_name + 122, // [122:122] is the sub-list for extension extendee + 0, // [0:122] is the sub-list for field type_name } func init() { file_proto_room_v1_room_proto_init() } @@ -8536,15 +8741,15 @@ func file_proto_room_v1_room_proto_init() { if File_proto_room_v1_room_proto != nil { return } - file_proto_room_v1_room_proto_msgTypes[32].OneofWrappers = []any{} - file_proto_room_v1_room_proto_msgTypes[47].OneofWrappers = []any{} + file_proto_room_v1_room_proto_msgTypes[33].OneofWrappers = []any{} + file_proto_room_v1_room_proto_msgTypes[48].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_proto_room_v1_room_proto_rawDesc), len(file_proto_room_v1_room_proto_rawDesc)), NumEnums: 0, - NumMessages: 105, + NumMessages: 106, NumExtensions: 0, NumServices: 3, }, diff --git a/api/proto/room/v1/room.proto b/api/proto/room/v1/room.proto index d5515bb8..a1c9411d 100644 --- a/api/proto/room/v1/room.proto +++ b/api/proto/room/v1/room.proto @@ -63,6 +63,27 @@ message RankItem { int64 updated_at_ms = 4; } +// LuckyGiftDrawResult 是 SendGift 同步返回给当前送礼用户的幸运礼物抽奖表现。 +message LuckyGiftDrawResult { + bool enabled = 1; + string draw_id = 2; + string command_id = 3; + string pool_id = 4; + string gift_id = 5; + int64 rule_version = 6; + string experience_pool = 7; + string selected_tier_id = 8; + int64 multiplier_ppm = 9; + int64 base_reward_coins = 10; + int64 room_atmosphere_reward_coins = 11; + int64 activity_subsidy_coins = 12; + int64 effective_reward_coins = 13; + string reward_status = 14; + bool stage_feedback = 15; + bool high_multiplier = 16; + int64 created_at_ms = 17; +} + // RoomTreasureRewardItem 是后台配置给客户端展示的宝箱奖励候选项。 message RoomTreasureRewardItem { string reward_item_id = 1; @@ -695,6 +716,7 @@ message SendGiftResponse { repeated RankItem gift_rank = 4; RoomSnapshot room = 5; RoomTreasureState treasure = 6; + LuckyGiftDrawResult lucky_gift = 7; } // CheckSpeakPermissionRequest 让腾讯云 IM 发言回调或 gateway 在公屏前同步问房间业务态。 diff --git a/server/admin/internal/modules/luckygift/handler.go b/server/admin/internal/modules/luckygift/handler.go index 83ff3b37..58137b1c 100644 --- a/server/admin/internal/modules/luckygift/handler.go +++ b/server/admin/internal/modules/luckygift/handler.go @@ -88,6 +88,7 @@ type drawDTO struct { RuleVersion int64 `json:"rule_version"` ExperiencePool string `json:"experience_pool"` SelectedTierID string `json:"selected_tier_id"` + MultiplierPPM int64 `json:"multiplier_ppm"` BaseRewardCoins int64 `json:"base_reward_coins"` RoomAtmosphereRewardCoins int64 `json:"room_atmosphere_reward_coins"` ActivitySubsidyCoins int64 `json:"activity_subsidy_coins"` @@ -346,6 +347,7 @@ func drawFromProto(draw *activityv1.LuckyGiftDrawResult) drawDTO { RuleVersion: draw.GetRuleVersion(), ExperiencePool: draw.GetExperiencePool(), SelectedTierID: draw.GetSelectedTierId(), + MultiplierPPM: draw.GetMultiplierPpm(), BaseRewardCoins: draw.GetBaseRewardCoins(), RoomAtmosphereRewardCoins: draw.GetRoomAtmosphereRewardCoins(), ActivitySubsidyCoins: draw.GetActivitySubsidyCoins(), diff --git a/services/activity-service/deploy/mysql/initdb/001_activity_service.sql b/services/activity-service/deploy/mysql/initdb/001_activity_service.sql index 20f078f8..0fdaf0b1 100644 --- a/services/activity-service/deploy/mysql/initdb/001_activity_service.sql +++ b/services/activity-service/deploy/mysql/initdb/001_activity_service.sql @@ -860,3 +860,30 @@ CREATE TABLE IF NOT EXISTS message_fanout_jobs ( UNIQUE KEY uk_message_fanout_command (app_code, command_id), KEY idx_message_fanout_status (app_code, status, next_run_at_ms, updated_at_ms) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='消息分发任务表'; + +-- 本地开发必须开箱即可验证幸运礼物链路;INSERT IGNORE 只补缺省奖池,不覆盖后台已发布规则。 +SET @lucky_seed_now_ms := 1779259000000; +SET @lucky_seed_tiers := JSON_ARRAY( + JSON_OBJECT('pool', 'novice', 'tier_id', 'novice_none', 'reward_coins', 0, 'multiplier_ppm', 0, 'weight', 0, 'high_water_only', false, 'enabled', true), + JSON_OBJECT('pool', 'novice', 'tier_id', 'novice_1x', 'reward_coins', 100, 'multiplier_ppm', 1000000, 'weight', 0, 'high_water_only', false, 'enabled', true), + JSON_OBJECT('pool', 'novice', 'tier_id', 'novice_2x', 'reward_coins', 200, 'multiplier_ppm', 2000000, 'weight', 0, 'high_water_only', false, 'enabled', true), + JSON_OBJECT('pool', 'intermediate', 'tier_id', 'intermediate_none', 'reward_coins', 0, 'multiplier_ppm', 0, 'weight', 0, 'high_water_only', false, 'enabled', true), + JSON_OBJECT('pool', 'intermediate', 'tier_id', 'intermediate_1x', 'reward_coins', 100, 'multiplier_ppm', 1000000, 'weight', 0, 'high_water_only', false, 'enabled', true), + JSON_OBJECT('pool', 'intermediate', 'tier_id', 'intermediate_2x', 'reward_coins', 200, 'multiplier_ppm', 2000000, 'weight', 0, 'high_water_only', false, 'enabled', true), + JSON_OBJECT('pool', 'advanced', 'tier_id', 'advanced_none', 'reward_coins', 0, 'multiplier_ppm', 0, 'weight', 0, 'high_water_only', false, 'enabled', true), + JSON_OBJECT('pool', 'advanced', 'tier_id', 'advanced_1x', 'reward_coins', 100, 'multiplier_ppm', 1000000, 'weight', 0, 'high_water_only', false, 'enabled', true), + JSON_OBJECT('pool', 'advanced', 'tier_id', 'advanced_2x', 'reward_coins', 200, 'multiplier_ppm', 2000000, 'weight', 0, 'high_water_only', false, 'enabled', true) +); +INSERT IGNORE INTO lucky_gift_rules ( + app_code, gift_id, enabled, rule_version, gift_price, target_rtp_ppm, pool_rate_ppm, + global_window_draws, gift_window_draws, novice_draw_limit, intermediate_draw_limit, + high_multiplier, high_water_pool_multiple, platform_pool_weight_ppm, room_pool_weight_ppm, + gift_pool_weight_ppm, initial_platform_pool, initial_gift_pool, initial_room_pool, + platform_reserve, gift_reserve, room_reserve, max_single_payout, user_hourly_payout_cap, + user_daily_payout_cap, device_daily_payout_cap, room_hourly_payout_cap, anchor_daily_payout_cap, + room_atmosphere_rate_ppm, room_atmosphere_initial, room_atmosphere_reserve, + activity_budget, activity_daily_limit, large_tier_enabled, tiers_json, + updated_by_admin_id, created_at_ms, updated_at_ms +) VALUES + ('lalu', 'lucky', true, 1, 100, 950000, 950000, 100000, 100000, 2000, 20000, 100, 2, 200000, 300000, 500000, 9500000, 23750000, 5000000, 1000000, 1000000, 100000, 50000, 3420000, 61560000, 102600000, 68400000, 1231200000, 10000, 100000, 10000, 0, 0, true, @lucky_seed_tiers, 0, @lucky_seed_now_ms, @lucky_seed_now_ms), + ('lalu', 'super_lucky', true, 1, 100, 950000, 950000, 100000, 100000, 2000, 20000, 100, 2, 200000, 300000, 500000, 9500000, 23750000, 5000000, 1000000, 1000000, 100000, 50000, 3420000, 61560000, 102600000, 68400000, 1231200000, 10000, 100000, 10000, 0, 0, true, @lucky_seed_tiers, 0, @lucky_seed_now_ms, @lucky_seed_now_ms); diff --git a/services/activity-service/internal/domain/luckygift/lucky_gift.go b/services/activity-service/internal/domain/luckygift/lucky_gift.go index ca6a8adc..64d6cd6e 100644 --- a/services/activity-service/internal/domain/luckygift/lucky_gift.go +++ b/services/activity-service/internal/domain/luckygift/lucky_gift.go @@ -112,6 +112,7 @@ type DrawResult struct { RuleVersion int64 ExperiencePool string SelectedTierID string + MultiplierPPM int64 BaseRewardCoins int64 RoomAtmosphereRewardCoins int64 ActivitySubsidyCoins int64 diff --git a/services/activity-service/internal/storage/mysql/lucky_gift_repository.go b/services/activity-service/internal/storage/mysql/lucky_gift_repository.go index bf6a5fc3..bf9b7f0d 100644 --- a/services/activity-service/internal/storage/mysql/lucky_gift_repository.go +++ b/services/activity-service/internal/storage/mysql/lucky_gift_repository.go @@ -415,6 +415,7 @@ func (r *Repository) ExecuteLuckyGiftDraw(ctx context.Context, cmd domain.DrawCo RuleVersion: config.RuleVersion, ExperiencePool: experiencePool, SelectedTierID: candidate.TierID, + MultiplierPPM: candidate.MultiplierPPM, BaseRewardCoins: candidate.BaseReward, RoomAtmosphereRewardCoins: candidate.RoomReward, ActivitySubsidyCoins: candidate.ActivityReward, @@ -604,6 +605,7 @@ func (r *Repository) ListLuckyGiftDraws(ctx context.Context, query domain.DrawQu args = append(args, limit, offset) rows, err := r.db.QueryContext(ctx, ` SELECT draw_id, command_id, pool_id, gift_id, rule_version, experience_pool, selected_tier_id, + COALESCE(JSON_UNQUOTE(JSON_EXTRACT(candidate_tiers_json, '$.multiplier_ppm')), '0'), base_reward_coins, room_atmosphere_reward_coins, activity_subsidy_coins, effective_reward_coins, COALESCE(CAST(budget_sources_json AS CHAR), ''), reward_status, rtp_window_index, gift_rtp_window_index, stage_feedback, high_multiplier, created_at_ms @@ -619,6 +621,7 @@ func (r *Repository) ListLuckyGiftDraws(ctx context.Context, query domain.DrawQu for rows.Next() { var item domain.DrawResult if err := rows.Scan(&item.DrawID, &item.CommandID, &item.PoolID, &item.GiftID, &item.RuleVersion, &item.ExperiencePool, &item.SelectedTierID, + &item.MultiplierPPM, &item.BaseRewardCoins, &item.RoomAtmosphereRewardCoins, &item.ActivitySubsidyCoins, &item.EffectiveRewardCoins, &item.BudgetSourcesJSON, &item.RewardStatus, &item.RTPWindowIndex, &item.GiftRTPWindowIndex, &item.StageFeedback, &item.HighMultiplier, &item.CreatedAtMS); err != nil { @@ -1256,6 +1259,7 @@ func (r *Repository) getLuckyDrawByCommand(ctx context.Context, tx *sql.Tx, appC } row := tx.QueryRowContext(ctx, ` SELECT draw_id, command_id, pool_id, gift_id, rule_version, experience_pool, selected_tier_id, + COALESCE(JSON_UNQUOTE(JSON_EXTRACT(candidate_tiers_json, '$.multiplier_ppm')), '0'), base_reward_coins, room_atmosphere_reward_coins, activity_subsidy_coins, effective_reward_coins, COALESCE(CAST(budget_sources_json AS CHAR), ''), reward_status, rtp_window_index, gift_rtp_window_index, stage_feedback, high_multiplier, created_at_ms @@ -1265,6 +1269,7 @@ func (r *Repository) getLuckyDrawByCommand(ctx context.Context, tx *sql.Tx, appC ) var item domain.DrawResult if err := row.Scan(&item.DrawID, &item.CommandID, &item.PoolID, &item.GiftID, &item.RuleVersion, &item.ExperiencePool, &item.SelectedTierID, + &item.MultiplierPPM, &item.BaseRewardCoins, &item.RoomAtmosphereRewardCoins, &item.ActivitySubsidyCoins, &item.EffectiveRewardCoins, &item.BudgetSourcesJSON, &item.RewardStatus, &item.RTPWindowIndex, &item.GiftRTPWindowIndex, &item.StageFeedback, &item.HighMultiplier, &item.CreatedAtMS); err != nil { diff --git a/services/activity-service/internal/transport/grpc/lucky_gift_server.go b/services/activity-service/internal/transport/grpc/lucky_gift_server.go index 5c998644..d0b85525 100644 --- a/services/activity-service/internal/transport/grpc/lucky_gift_server.go +++ b/services/activity-service/internal/transport/grpc/lucky_gift_server.go @@ -270,6 +270,7 @@ func luckyDrawResultToProto(result domain.DrawResult) *activityv1.LuckyGiftDrawR RuleVersion: result.RuleVersion, ExperiencePool: result.ExperiencePool, SelectedTierId: result.SelectedTierID, + MultiplierPpm: result.MultiplierPPM, BaseRewardCoins: result.BaseRewardCoins, RoomAtmosphereRewardCoins: result.RoomAtmosphereRewardCoins, ActivitySubsidyCoins: result.ActivitySubsidyCoins, diff --git a/services/gateway-service/internal/client/user_client.go b/services/gateway-service/internal/client/user_client.go index f3cf1645..4d69a72e 100644 --- a/services/gateway-service/internal/client/user_client.go +++ b/services/gateway-service/internal/client/user_client.go @@ -66,6 +66,8 @@ type UserCountryQueryClient interface { // UserHostClient 抽象 gateway 对 user-service host domain 身份查询能力的依赖。 type UserHostClient interface { + SearchAgencies(ctx context.Context, req *userv1.SearchAgenciesRequest) (*userv1.SearchAgenciesResponse, error) + ApplyToAgency(ctx context.Context, req *userv1.ApplyToAgencyRequest) (*userv1.ApplyToAgencyResponse, error) GetHostProfile(ctx context.Context, req *userv1.GetHostProfileRequest) (*userv1.GetHostProfileResponse, error) GetBDProfile(ctx context.Context, req *userv1.GetBDProfileRequest) (*userv1.GetBDProfileResponse, error) GetCoinSellerProfile(ctx context.Context, req *userv1.GetCoinSellerProfileRequest) (*userv1.GetCoinSellerProfileResponse, error) @@ -294,6 +296,14 @@ func (c *grpcUserCountryQueryClient) ListLoginRiskBlockedCountries(ctx context.C return c.client.ListLoginRiskBlockedCountries(ctx, req) } +func (c *grpcUserHostClient) SearchAgencies(ctx context.Context, req *userv1.SearchAgenciesRequest) (*userv1.SearchAgenciesResponse, error) { + return c.client.SearchAgencies(ctx, req) +} + +func (c *grpcUserHostClient) ApplyToAgency(ctx context.Context, req *userv1.ApplyToAgencyRequest) (*userv1.ApplyToAgencyResponse, error) { + return c.client.ApplyToAgency(ctx, req) +} + func (c *grpcUserHostClient) GetHostProfile(ctx context.Context, req *userv1.GetHostProfileRequest) (*userv1.GetHostProfileResponse, error) { return c.client.GetHostProfile(ctx, req) } diff --git a/services/gateway-service/internal/transport/http/httpkit/response.go b/services/gateway-service/internal/transport/http/httpkit/response.go index 570649a9..3b172df9 100644 --- a/services/gateway-service/internal/transport/http/httpkit/response.go +++ b/services/gateway-service/internal/transport/http/httpkit/response.go @@ -221,6 +221,10 @@ func RequireCompletedProfile(next http.HandlerFunc) http.HandlerFunc { // RoomMeta 把外部 HTTP 请求上下文转换成 room-service 命令元信息。 // request_id 只做链路追踪;command_id 必须来自客户端用户动作,gateway 只裁剪空白。 func RoomMeta(request *http.Request, roomID string, commandID string) *roomv1.RequestMeta { + sessionID := auth.SessionIDFromContext(request.Context()) + if sessionID == "" { + sessionID = idgen.New("sess") + } return &roomv1.RequestMeta{ RequestId: RequestIDFromContext(request.Context()), CommandId: strings.TrimSpace(commandID), @@ -228,7 +232,7 @@ func RoomMeta(request *http.Request, roomID string, commandID string) *roomv1.Re RoomId: roomID, AppCode: appcode.FromContext(request.Context()), GatewayNodeId: "gateway-local", - SessionId: idgen.New("sess"), + SessionId: sessionID, SentAtMs: time.Now().UnixMilli(), } } diff --git a/services/gateway-service/internal/transport/http/httproutes/router.go b/services/gateway-service/internal/transport/http/httproutes/router.go index 9842d621..6dcfea67 100644 --- a/services/gateway-service/internal/transport/http/httproutes/router.go +++ b/services/gateway-service/internal/transport/http/httproutes/router.go @@ -67,6 +67,8 @@ type UserHandlers struct { GetMyIdentity http.HandlerFunc GetMyHostIdentity http.HandlerFunc GetMyRoleSummary http.HandlerFunc + SearchHostAgencies http.HandlerFunc + ApplyToHostAgency http.HandlerFunc CompleteMyOnboarding http.HandlerFunc UpdateMyProfile http.HandlerFunc ChangeMyCountry http.HandlerFunc @@ -268,6 +270,8 @@ func (r routes) registerUserRoutes() { r.auth("/users/me/identity", "", h.GetMyIdentity) r.profile("/users/me/host-identity", "", h.GetMyHostIdentity) r.profile("/users/me/role-summary", "", h.GetMyRoleSummary) + r.profile("/host/agencies/search", http.MethodGet, h.SearchHostAgencies) + r.profile("/host/agency-applications", http.MethodPost, h.ApplyToHostAgency) r.auth("/users/me/onboarding/complete", "", h.CompleteMyOnboarding) r.profile("/users/me/profile/update", "", h.UpdateMyProfile) r.profile("/users/me/country/change", "", h.ChangeMyCountry) diff --git a/services/gateway-service/internal/transport/http/response_test.go b/services/gateway-service/internal/transport/http/response_test.go index 2943ecab..cc47a893 100644 --- a/services/gateway-service/internal/transport/http/response_test.go +++ b/services/gateway-service/internal/transport/http/response_test.go @@ -52,6 +52,7 @@ type fakeRoomClient struct { lastKick *roomv1.KickUserRequest lastUnban *roomv1.UnbanUserRequest lastGift *roomv1.SendGiftRequest + sendGiftResp *roomv1.SendGiftResponse lastFollowRoom *roomv1.FollowRoomRequest lastUnfollowRoom *roomv1.UnfollowRoomRequest createErr error @@ -219,6 +220,9 @@ func (f *fakeRoomClient) UnbanUser(_ context.Context, req *roomv1.UnbanUserReque func (f *fakeRoomClient) SendGift(_ context.Context, req *roomv1.SendGiftRequest) (*roomv1.SendGiftResponse, error) { f.lastGift = req + if f.sendGiftResp != nil { + return f.sendGiftResp, nil + } return &roomv1.SendGiftResponse{Result: &roomv1.CommandResult{Applied: true, RoomVersion: 14}}, nil } @@ -315,21 +319,27 @@ type fakeUserCountryQueryClient struct { } type fakeUserHostClient struct { - last *userv1.GetCoinSellerProfileRequest - profile *userv1.CoinSellerProfile - err error - lastHost *userv1.GetHostProfileRequest - hostProfile *userv1.HostProfile - hostErr error - lastBD *userv1.GetBDProfileRequest - bdProfile *userv1.BDProfile - bdErr error - lastRoleSummary *userv1.GetUserRoleSummaryRequest - roleSummary *userv1.UserRoleSummary - roleSummaryErr error - lastCapability *userv1.CheckBusinessCapabilityRequest - capabilityResp *userv1.CheckBusinessCapabilityResponse - capabilityErr error + lastSearchAgencies *userv1.SearchAgenciesRequest + searchAgenciesResp *userv1.SearchAgenciesResponse + searchAgenciesErr error + lastApplyAgency *userv1.ApplyToAgencyRequest + applyAgencyResp *userv1.ApplyToAgencyResponse + applyAgencyErr error + last *userv1.GetCoinSellerProfileRequest + profile *userv1.CoinSellerProfile + err error + lastHost *userv1.GetHostProfileRequest + hostProfile *userv1.HostProfile + hostErr error + lastBD *userv1.GetBDProfileRequest + bdProfile *userv1.BDProfile + bdErr error + lastRoleSummary *userv1.GetUserRoleSummaryRequest + roleSummary *userv1.UserRoleSummary + roleSummaryErr error + lastCapability *userv1.CheckBusinessCapabilityRequest + capabilityResp *userv1.CheckBusinessCapabilityResponse + capabilityErr error } type fakeWalletClient struct { @@ -903,6 +913,28 @@ func (f *fakeBroadcastClient) RemoveRegionBroadcastMember(_ context.Context, req return &activityv1.RemoveRegionBroadcastMemberResponse{GroupId: "hy_lalu_bc_r_1001", Removed: true}, nil } +func (f *fakeUserHostClient) SearchAgencies(_ context.Context, req *userv1.SearchAgenciesRequest) (*userv1.SearchAgenciesResponse, error) { + f.lastSearchAgencies = req + if f.searchAgenciesErr != nil { + return nil, f.searchAgenciesErr + } + if f.searchAgenciesResp != nil { + return f.searchAgenciesResp, nil + } + return &userv1.SearchAgenciesResponse{}, nil +} + +func (f *fakeUserHostClient) ApplyToAgency(_ context.Context, req *userv1.ApplyToAgencyRequest) (*userv1.ApplyToAgencyResponse, error) { + f.lastApplyAgency = req + if f.applyAgencyErr != nil { + return nil, f.applyAgencyErr + } + if f.applyAgencyResp != nil { + return f.applyAgencyResp, nil + } + return &userv1.ApplyToAgencyResponse{}, nil +} + func (f *fakeUserHostClient) GetHostProfile(_ context.Context, req *userv1.GetHostProfileRequest) (*userv1.GetHostProfileResponse, error) { f.lastHost = req if f.hostErr != nil { @@ -1528,6 +1560,55 @@ func TestRoomCommandsPropagateClientCommandID(t *testing.T) { } } +func TestSendGiftResponseIncludesLuckyGiftDraw(t *testing.T) { + roomClient := &fakeRoomClient{sendGiftResp: &roomv1.SendGiftResponse{ + Result: &roomv1.CommandResult{Applied: true, RoomVersion: 14, ServerTimeMs: 1_779_258_000_000}, + BillingReceiptId: "receipt-lucky", + RoomHeat: 100, + LuckyGift: &roomv1.LuckyGiftDrawResult{ + Enabled: true, + DrawId: "lucky_draw_test", + CommandId: "cmd-gift-lucky", + PoolId: "super_lucky", + GiftId: "rose", + RuleVersion: 12, + ExperiencePool: "novice", + SelectedTierId: "novice_2x", + MultiplierPpm: 2_000_000, + EffectiveRewardCoins: 200, + RewardStatus: "pending", + CreatedAtMs: 1_779_258_000_000, + }, + }} + router := NewHandlerWithClients(roomClient, nil, nil, &fakeUserProfileClient{regionID: 1001}).Routes(auth.NewVerifier("secret")) + request := httptest.NewRequest(http.MethodPost, "/api/v1/rooms/gift/send", bytes.NewReader([]byte(`{"room_id":"room-1","command_id":"cmd-gift-lucky","target_user_id":43,"gift_id":"rose","gift_count":1,"pool_id":"super_lucky"}`))) + request.Header.Set("Authorization", "Bearer "+signGatewayToken(t, "secret", 42)) + recorder := httptest.NewRecorder() + + router.ServeHTTP(recorder, request) + + if recorder.Code != http.StatusOK { + t.Fatalf("status mismatch: got %d body=%s", recorder.Code, recorder.Body.String()) + } + var envelope struct { + Code string `json:"code"` + Data struct { + LuckyGift struct { + DrawID string `json:"draw_id"` + PoolID string `json:"pool_id"` + MultiplierPPM int64 `json:"multiplier_ppm"` + EffectiveRewardCoins int64 `json:"effective_reward_coins"` + } `json:"lucky_gift"` + } `json:"data"` + } + if err := json.Unmarshal(recorder.Body.Bytes(), &envelope); err != nil { + t.Fatalf("decode response failed: %v body=%s", err, recorder.Body.String()) + } + if envelope.Code != "OK" || envelope.Data.LuckyGift.DrawID != "lucky_draw_test" || envelope.Data.LuckyGift.PoolID != "super_lucky" || envelope.Data.LuckyGift.MultiplierPPM != 2_000_000 || envelope.Data.LuckyGift.EffectiveRewardCoins != 200 { + t.Fatalf("lucky_gift response mismatch: %+v", envelope.Data.LuckyGift) + } +} + func TestJoinRoomReturnsInitialDataWithIMGroupRTCTokenAndProfiles(t *testing.T) { previousNow := roomapi.TimeNow roomapi.TimeNow = func() time.Time { return time.Unix(1_700_000_000, 0) } @@ -2513,6 +2594,77 @@ func TestGetMyHostIdentityTreatsMissingProfilesAsFalse(t *testing.T) { } } +func TestSearchHostAgenciesUsesAuthenticatedUserAndShortID(t *testing.T) { + hostClient := &fakeUserHostClient{searchAgenciesResp: &userv1.SearchAgenciesResponse{Agencies: []*userv1.Agency{ + { + AgencyId: 7001, + OwnerUserId: 901, + RegionId: 30, + Name: "Admin Seed Agency", + Status: "active", + JoinEnabled: true, + MaxHosts: 100, + CreatedAtMs: 1700000000000, + UpdatedAtMs: 1700000001000, + }, + }}} + handler := NewHandlerWithClients(&fakeRoomClient{}, nil, nil, &fakeUserProfileClient{}) + handler.SetUserHostClient(hostClient) + router := handler.Routes(auth.NewVerifier("secret")) + request := httptest.NewRequest(http.MethodGet, "/api/v1/host/agencies/search?short_id=900901&page_size=99", nil) + request.Header.Set("Authorization", "Bearer "+signGatewayToken(t, "secret", 42)) + request.Header.Set("X-Request-ID", "req-host-agency-search") + recorder := httptest.NewRecorder() + + router.ServeHTTP(recorder, request) + + if recorder.Code != http.StatusOK { + t.Fatalf("status mismatch: got %d body=%s", recorder.Code, recorder.Body.String()) + } + if hostClient.lastSearchAgencies == nil || hostClient.lastSearchAgencies.GetUserId() != 42 || hostClient.lastSearchAgencies.GetKeyword() != "900901" || hostClient.lastSearchAgencies.GetPageSize() != 20 { + t.Fatalf("host agency search request mismatch: %+v", hostClient.lastSearchAgencies) + } + var response httpkit.ResponseEnvelope + if err := json.NewDecoder(recorder.Body).Decode(&response); err != nil { + t.Fatalf("decode response failed: %v", err) + } + data := response.Data.(map[string]any) + items := data["items"].([]any) + first := items[0].(map[string]any) + if first["agency_id"] != "7001" || first["owner_user_id"] != "901" || first["name"] != "Admin Seed Agency" || data["page_size"] != float64(20) { + t.Fatalf("host agency search response mismatch: %+v", response) + } +} + +func TestApplyToHostAgencyPropagatesClientCommandID(t *testing.T) { + hostClient := &fakeUserHostClient{applyAgencyResp: &userv1.ApplyToAgencyResponse{Application: &userv1.AgencyApplication{ + ApplicationId: 8001, + CommandId: "cmd-apply-agency", + ApplicantUserId: 42, + AgencyId: 7001, + RegionId: 30, + Status: "pending", + CreatedAtMs: 1700000000000, + UpdatedAtMs: 1700000001000, + }}} + handler := NewHandlerWithClients(&fakeRoomClient{}, nil, nil, &fakeUserProfileClient{}) + handler.SetUserHostClient(hostClient) + router := handler.Routes(auth.NewVerifier("secret")) + request := httptest.NewRequest(http.MethodPost, "/api/v1/host/agency-applications", bytes.NewReader([]byte(`{"command_id":"cmd-apply-agency","agency_id":"7001"}`))) + request.Header.Set("Authorization", "Bearer "+signGatewayToken(t, "secret", 42)) + request.Header.Set("X-Request-ID", "req-host-agency-apply") + recorder := httptest.NewRecorder() + + router.ServeHTTP(recorder, request) + + if recorder.Code != http.StatusOK { + t.Fatalf("status mismatch: got %d body=%s", recorder.Code, recorder.Body.String()) + } + if hostClient.lastApplyAgency == nil || hostClient.lastApplyAgency.GetUserId() != 42 || hostClient.lastApplyAgency.GetCommandId() != "cmd-apply-agency" || hostClient.lastApplyAgency.GetAgencyId() != 7001 { + t.Fatalf("host agency apply request mismatch: %+v", hostClient.lastApplyAgency) + } +} + func TestConfirmMicPublishingForwardsSessionVersionAndEventTime(t *testing.T) { client := &fakeRoomClient{} router := NewHandler(client).Routes(auth.NewVerifier("secret")) diff --git a/services/gateway-service/internal/transport/http/userapi/handler.go b/services/gateway-service/internal/transport/http/userapi/handler.go index 003583ac..c4397cc1 100644 --- a/services/gateway-service/internal/transport/http/userapi/handler.go +++ b/services/gateway-service/internal/transport/http/userapi/handler.go @@ -48,6 +48,8 @@ func (h *Handler) UserHandlers() httproutes.UserHandlers { GetMyIdentity: h.getMyIdentity, GetMyHostIdentity: h.getMyHostIdentity, GetMyRoleSummary: h.getMyRoleSummary, + SearchHostAgencies: h.searchHostAgencies, + ApplyToHostAgency: h.applyToHostAgency, CompleteMyOnboarding: h.completeMyOnboarding, UpdateMyProfile: h.updateMyProfile, ChangeMyCountry: h.changeMyCountry, diff --git a/services/gateway-service/internal/transport/http/userapi/host_agency_handler.go b/services/gateway-service/internal/transport/http/userapi/host_agency_handler.go new file mode 100644 index 00000000..3dde2b05 --- /dev/null +++ b/services/gateway-service/internal/transport/http/userapi/host_agency_handler.go @@ -0,0 +1,185 @@ +package userapi + +import ( + "encoding/json" + "net/http" + "strconv" + "strings" + + userv1 "hyapp.local/api/proto/user/v1" + "hyapp/services/gateway-service/internal/auth" + "hyapp/services/gateway-service/internal/transport/http/httpkit" +) + +type hostAgencyData struct { + AgencyID string `json:"agency_id"` + OwnerUserID string `json:"owner_user_id"` + RegionID int64 `json:"region_id"` + ParentBDUserID string `json:"parent_bd_user_id,omitempty"` + Name string `json:"name"` + Status string `json:"status"` + JoinEnabled bool `json:"join_enabled"` + MaxHosts int32 `json:"max_hosts"` + CreatedByUserID string `json:"created_by_user_id,omitempty"` + CreatedAtMS int64 `json:"created_at_ms"` + UpdatedAtMS int64 `json:"updated_at_ms"` +} + +type hostAgencyApplicationData struct { + ApplicationID string `json:"application_id"` + CommandID string `json:"command_id"` + ApplicantUserID string `json:"applicant_user_id"` + AgencyID string `json:"agency_id"` + RegionID int64 `json:"region_id"` + Status string `json:"status"` + ReviewedByUserID string `json:"reviewed_by_user_id,omitempty"` + ReviewReason string `json:"review_reason,omitempty"` + ReviewedAtMS int64 `json:"reviewed_at_ms,omitempty"` + CreatedAtMS int64 `json:"created_at_ms"` + UpdatedAtMS int64 `json:"updated_at_ms"` +} + +func (h *Handler) searchHostAgencies(writer http.ResponseWriter, request *http.Request) { + if h.userHostClient == nil { + httpkit.WriteError(writer, request, http.StatusBadGateway, httpkit.CodeUpstreamError, "upstream service error") + return + } + keyword := strings.TrimSpace(request.URL.Query().Get("short_id")) + if keyword == "" { + keyword = strings.TrimSpace(request.URL.Query().Get("keyword")) + } + if keyword == "" { + httpkit.WriteError(writer, request, http.StatusBadRequest, httpkit.CodeInvalidArgument, "invalid argument") + return + } + pageSize, ok := httpkit.PositiveInt32Query(request, "page_size", 20) + if !ok { + httpkit.WriteError(writer, request, http.StatusBadRequest, httpkit.CodeInvalidArgument, "invalid argument") + return + } + if pageSize > 20 { + pageSize = 20 + } + resp, err := h.userHostClient.SearchAgencies(request.Context(), &userv1.SearchAgenciesRequest{ + Meta: httpkit.UserMeta(request, ""), + UserId: auth.UserIDFromContext(request.Context()), + Keyword: keyword, + PageSize: pageSize, + }) + if err != nil { + httpkit.WriteRPCError(writer, request, err) + return + } + items := make([]hostAgencyData, 0, len(resp.GetAgencies())) + for _, agency := range resp.GetAgencies() { + items = append(items, hostAgencyFromProto(agency)) + } + httpkit.WriteOK(writer, request, map[string]any{"items": items, "total": len(items), "page_size": pageSize}) +} + +func (h *Handler) applyToHostAgency(writer http.ResponseWriter, request *http.Request) { + if h.userHostClient == nil { + httpkit.WriteError(writer, request, http.StatusBadGateway, httpkit.CodeUpstreamError, "upstream service error") + return + } + var body struct { + CommandID string `json:"command_id"` + CommandIDAlt string `json:"commandId"` + AgencyID json.RawMessage `json:"agency_id"` + AgencyIDAlt json.RawMessage `json:"agencyId"` + } + if !httpkit.Decode(writer, request, &body) { + return + } + commandID := strings.TrimSpace(body.CommandID) + if commandID == "" { + commandID = strings.TrimSpace(body.CommandIDAlt) + } + agencyID, ok := firstRawInt64(body.AgencyID, body.AgencyIDAlt) + if commandID == "" || !ok || agencyID <= 0 { + httpkit.WriteError(writer, request, http.StatusBadRequest, httpkit.CodeInvalidArgument, "invalid argument") + return + } + resp, err := h.userHostClient.ApplyToAgency(request.Context(), &userv1.ApplyToAgencyRequest{ + Meta: httpkit.UserMeta(request, ""), + CommandId: commandID, + UserId: auth.UserIDFromContext(request.Context()), + AgencyId: agencyID, + }) + if err != nil { + httpkit.WriteRPCError(writer, request, err) + return + } + httpkit.WriteOK(writer, request, map[string]any{"application": hostAgencyApplicationFromProto(resp.GetApplication())}) +} + +func hostAgencyFromProto(agency *userv1.Agency) hostAgencyData { + if agency == nil { + return hostAgencyData{} + } + return hostAgencyData{ + AgencyID: int64String(agency.GetAgencyId()), + OwnerUserID: int64String(agency.GetOwnerUserId()), + RegionID: agency.GetRegionId(), + ParentBDUserID: int64String(agency.GetParentBdUserId()), + Name: agency.GetName(), + Status: agency.GetStatus(), + JoinEnabled: agency.GetJoinEnabled(), + MaxHosts: agency.GetMaxHosts(), + CreatedByUserID: int64String(agency.GetCreatedByUserId()), + CreatedAtMS: agency.GetCreatedAtMs(), + UpdatedAtMS: agency.GetUpdatedAtMs(), + } +} + +func hostAgencyApplicationFromProto(application *userv1.AgencyApplication) hostAgencyApplicationData { + if application == nil { + return hostAgencyApplicationData{} + } + return hostAgencyApplicationData{ + ApplicationID: int64String(application.GetApplicationId()), + CommandID: application.GetCommandId(), + ApplicantUserID: int64String(application.GetApplicantUserId()), + AgencyID: int64String(application.GetAgencyId()), + RegionID: application.GetRegionId(), + Status: application.GetStatus(), + ReviewedByUserID: int64String(application.GetReviewedByUserId()), + ReviewReason: application.GetReviewReason(), + ReviewedAtMS: application.GetReviewedAtMs(), + CreatedAtMS: application.GetCreatedAtMs(), + UpdatedAtMS: application.GetUpdatedAtMs(), + } +} + +func int64String(value int64) string { + if value <= 0 { + return "" + } + return strconv.FormatInt(value, 10) +} + +func firstRawInt64(values ...json.RawMessage) (int64, bool) { + for _, raw := range values { + value, ok := parseRawInt64(raw) + if ok { + return value, true + } + } + return 0, false +} + +func parseRawInt64(raw json.RawMessage) (int64, bool) { + text := strings.TrimSpace(string(raw)) + if text == "" || text == "null" { + return 0, false + } + if strings.HasPrefix(text, `"`) { + var value string + if err := json.Unmarshal(raw, &value); err != nil { + return 0, false + } + text = strings.TrimSpace(value) + } + value, err := strconv.ParseInt(text, 10, 64) + return value, err == nil +} diff --git a/services/room-service/internal/app/app.go b/services/room-service/internal/app/app.go index 18ed71bb..84f9f438 100644 --- a/services/room-service/internal/app/app.go +++ b/services/room-service/internal/app/app.go @@ -84,7 +84,7 @@ func New(cfg config.Config) (*App, error) { return nil, err } var activityConn *grpc.ClientConn - if cfg.OutboxWorker.PublishMode == config.OutboxPublishModeDirect || cfg.OutboxWorker.PublishMode == config.OutboxPublishModeDual { + if cfg.ActivityServiceAddr != "" { activityConn, err = grpc.Dial(cfg.ActivityServiceAddr, grpc.WithTransportCredentials(insecure.NewCredentials())) if err != nil { _ = walletConn.Close() @@ -189,6 +189,10 @@ func New(cfg config.Config) (*App, error) { treasureOpenScheduler = integration.NewRocketMQTreasureOpenScheduler(treasureProducer, cfg.RocketMQ.TreasureOpen.Topic) } outboxPublisher := integration.NewCompositeOutboxPublisher(outboxPublishers...) + var luckyGiftClient integration.LuckyGiftClient + if activityConn != nil { + luckyGiftClient = integration.NewGRPCLuckyGiftClient(activityConn) + } // 领域服务只依赖接口,App 层负责选择 MySQL/Redis/gRPC 具体实现。 svc := roomservice.New(roomservice.Config{ @@ -200,7 +204,7 @@ func New(cfg config.Config) (*App, error) { MicPublishTimeout: cfg.MicPublishTimeout, RTCUserRemover: rtcUserRemover, RoomTreasureOpenScheduler: treasureOpenScheduler, - }, directory, repository, integration.NewGRPCWalletClient(walletConn), roomPublisher, outboxPublisher) + }, directory, repository, integration.NewGRPCWalletClient(walletConn), roomPublisher, outboxPublisher, luckyGiftClient) if cfg.RocketMQ.TreasureOpen.Enabled { treasureConsumer, err := rocketmqx.NewConsumer(rocketMQConsumerConfig(cfg.RocketMQ, cfg.RocketMQ.TreasureOpen.ConsumerGroup, cfg.RocketMQ.TreasureOpen.ConsumerMaxReconsumeTimes)) if err != nil { diff --git a/services/room-service/internal/integration/clients.go b/services/room-service/internal/integration/clients.go index 31d1f5ab..58fd2022 100644 --- a/services/room-service/internal/integration/clients.go +++ b/services/room-service/internal/integration/clients.go @@ -4,6 +4,7 @@ package integration import ( "context" + activityv1 "hyapp.local/api/proto/activity/v1" roomeventsv1 "hyapp.local/api/proto/events/room/v1" walletv1 "hyapp.local/api/proto/wallet/v1" "hyapp/pkg/tencentim" @@ -17,6 +18,14 @@ type WalletClient interface { GrantResourceGroup(ctx context.Context, req *walletv1.GrantResourceGroupRequest) (*walletv1.ResourceGrantResponse, error) } +// LuckyGiftClient 抽象 room-service 对 activity-service 幸运礼物抽奖边界的同步依赖。 +type LuckyGiftClient interface { + // CheckLuckyGift 在扣费前确认奖池规则可用;失败时不能扣费。 + CheckLuckyGift(ctx context.Context, req *activityv1.CheckLuckyGiftRequest) (*activityv1.CheckLuckyGiftResponse, error) + // ExecuteLuckyGiftDraw 在钱包扣费成功后按 command_id 幂等落抽奖事实。 + ExecuteLuckyGiftDraw(ctx context.Context, req *activityv1.ExecuteLuckyGiftDrawRequest) (*activityv1.ExecuteLuckyGiftDrawResponse, error) +} + // RoomEventPublisher 保留腾讯云 IM 直接桥接能力;房间命令主链路不再调用它。 type RoomEventPublisher interface { // EnsureRoomGroup 确保房间在腾讯云 IM 中有对应群组。 diff --git a/services/room-service/internal/integration/clients_grpc.go b/services/room-service/internal/integration/clients_grpc.go index 546ff35b..a98832a2 100644 --- a/services/room-service/internal/integration/clients_grpc.go +++ b/services/room-service/internal/integration/clients_grpc.go @@ -5,6 +5,7 @@ import ( "context" "google.golang.org/grpc" + activityv1 "hyapp.local/api/proto/activity/v1" walletv1 "hyapp.local/api/proto/wallet/v1" ) @@ -32,3 +33,20 @@ func (c *grpcWalletClient) GrantResourceGroup(ctx context.Context, req *walletv1 // 宝箱奖励以 resource group 为后台配置单位,wallet-service 负责展开资产和权益。 return c.client.GrantResourceGroup(ctx, req) } + +type grpcLuckyGiftClient struct { + client activityv1.LuckyGiftServiceClient +} + +// NewGRPCLuckyGiftClient 用 gRPC 连接创建 activity-service 幸运礼物客户端。 +func NewGRPCLuckyGiftClient(conn *grpc.ClientConn) LuckyGiftClient { + return &grpcLuckyGiftClient{client: activityv1.NewLuckyGiftServiceClient(conn)} +} + +func (c *grpcLuckyGiftClient) CheckLuckyGift(ctx context.Context, req *activityv1.CheckLuckyGiftRequest) (*activityv1.CheckLuckyGiftResponse, error) { + return c.client.CheckLuckyGift(ctx, req) +} + +func (c *grpcLuckyGiftClient) ExecuteLuckyGiftDraw(ctx context.Context, req *activityv1.ExecuteLuckyGiftDrawRequest) (*activityv1.ExecuteLuckyGiftDrawResponse, error) { + return c.client.ExecuteLuckyGiftDraw(ctx, req) +} diff --git a/services/room-service/internal/room/service/gift.go b/services/room-service/internal/room/service/gift.go index 6c2cbecc..ca942575 100644 --- a/services/room-service/internal/room/service/gift.go +++ b/services/room-service/internal/room/service/gift.go @@ -6,6 +6,7 @@ import ( "strings" "time" + activityv1 "hyapp.local/api/proto/activity/v1" roomeventsv1 "hyapp.local/api/proto/events/room/v1" roomv1 "hyapp.local/api/proto/room/v1" walletv1 "hyapp.local/api/proto/wallet/v1" @@ -66,6 +67,26 @@ func (s *Service) SendGift(ctx context.Context, req *roomv1.SendGiftRequest) (*r if !exists { return mutationResult{}, nil, xerr.New(xerr.NotFound, "room not found") } + luckyEnabled := false + if cmd.PoolID != "" { + if s.luckyGift == nil { + return mutationResult{}, nil, xerr.New(xerr.Unavailable, "lucky gift service is not configured") + } + checkResp, err := s.luckyGift.CheckLuckyGift(ctx, &activityv1.CheckLuckyGiftRequest{ + Meta: activityMetaFromRoom(ctx, req.GetMeta()), + UserId: cmd.ActorUserID(), + RoomId: cmd.RoomID(), + GiftId: cmd.GiftID, + PoolId: cmd.PoolID, + }) + if err != nil { + return mutationResult{}, nil, err + } + if checkResp == nil || !checkResp.GetEnabled() { + return mutationResult{}, nil, xerr.New(xerr.RuleNotActive, "lucky gift rule is not active") + } + luckyEnabled = true + } treasureConfig, err := s.roomTreasureConfig(ctx) if err != nil { return mutationResult{}, nil, err @@ -98,6 +119,33 @@ func (s *Service) SendGift(ctx context.Context, req *roomv1.SendGiftRequest) (*r settledCommand.HeatValue = heatValue settledCommand.PriceVersion = billing.GetPriceVersion() settledCommand.GiftTypeCode = billing.GetGiftTypeCode() + if !luckyEnabled { + luckyEnabled = s.shouldDrawLuckyGift(cmd.PoolID, billing.GetGiftTypeCode()) + } + var luckyGift *roomv1.LuckyGiftDrawResult + if luckyEnabled { + drawResp, err := s.luckyGift.ExecuteLuckyGiftDraw(ctx, &activityv1.ExecuteLuckyGiftDrawRequest{ + LuckyGift: &activityv1.LuckyGiftMeta{ + Meta: activityMetaFromRoom(ctx, req.GetMeta()), + CommandId: cmd.ID(), + UserId: cmd.ActorUserID(), + DeviceId: luckyGiftDeviceID(cmd), + RoomId: cmd.RoomID(), + AnchorId: luckyGiftAnchorID(roomMeta), + GiftId: cmd.GiftID, + CoinSpent: billing.GetCoinSpent(), + PaidAtMs: now.UTC().UnixMilli(), + PoolId: cmd.PoolID, + }, + }) + if err != nil { + return mutationResult{}, nil, err + } + if drawResp == nil { + return mutationResult{}, nil, xerr.New(xerr.Unavailable, "lucky gift draw response is empty") + } + luckyGift = luckyGiftResultFromProto(drawResp.GetResult()) + } // 扣费成功后,Room Cell 同步更新热度和本地礼物榜。 current.Heat += heatValue @@ -167,6 +215,7 @@ func (s *Service) SendGift(ctx context.Context, req *roomv1.SendGiftRequest) (*r billingReceiptID: billing.GetBillingReceiptId(), roomHeat: current.Heat, giftRank: cloneProtoRank(current.GiftRank), + luckyGift: luckyGift, commandPayload: commandPayload, walletDebitMS: walletDebitMS, syncEvent: &tencentim.RoomEvent{ @@ -202,9 +251,71 @@ func (s *Service) SendGift(ctx context.Context, req *roomv1.SendGiftRequest) (*r GiftRank: result.giftRank, Room: result.snapshot, Treasure: result.snapshot.GetTreasure(), + LuckyGift: result.luckyGift, }, nil } +func (s *Service) shouldDrawLuckyGift(poolID string, giftTypeCode string) bool { + if s.luckyGift == nil { + return false + } + switch strings.TrimSpace(giftTypeCode) { + case "lucky", "super_lucky": + return true + default: + return strings.TrimSpace(poolID) != "" + } +} + +func activityMetaFromRoom(ctx context.Context, meta *roomv1.RequestMeta) *activityv1.RequestMeta { + return &activityv1.RequestMeta{ + RequestId: meta.GetRequestId(), + Caller: "room-service", + GatewayNodeId: meta.GetGatewayNodeId(), + SentAtMs: time.Now().UTC().UnixMilli(), + AppCode: appcode.FromContext(ctx), + } +} + +func luckyGiftDeviceID(cmd command.SendGift) string { + if value := strings.TrimSpace(cmd.SessionID); value != "" { + return value + } + return cmd.ID() +} + +func luckyGiftAnchorID(roomMeta RoomMeta) string { + if roomMeta.OwnerUserID <= 0 { + return roomMeta.RoomID + } + return fmt.Sprintf("%d", roomMeta.OwnerUserID) +} + +func luckyGiftResultFromProto(result *activityv1.LuckyGiftDrawResult) *roomv1.LuckyGiftDrawResult { + if result == nil { + return nil + } + return &roomv1.LuckyGiftDrawResult{ + Enabled: true, + DrawId: result.GetDrawId(), + CommandId: result.GetCommandId(), + PoolId: result.GetPoolId(), + GiftId: result.GetGiftId(), + RuleVersion: result.GetRuleVersion(), + ExperiencePool: result.GetExperiencePool(), + SelectedTierId: result.GetSelectedTierId(), + MultiplierPpm: result.GetMultiplierPpm(), + BaseRewardCoins: result.GetBaseRewardCoins(), + RoomAtmosphereRewardCoins: result.GetRoomAtmosphereRewardCoins(), + ActivitySubsidyCoins: result.GetActivitySubsidyCoins(), + EffectiveRewardCoins: result.GetEffectiveRewardCoins(), + RewardStatus: result.GetRewardStatus(), + StageFeedback: result.GetStageFeedback(), + HighMultiplier: result.GetHighMultiplier(), + CreatedAtMs: result.GetCreatedAtMs(), + } +} + func normalizeGiftTargetType(raw string) string { raw = strings.TrimSpace(raw) switch raw { diff --git a/services/room-service/internal/room/service/lucky_gift_test.go b/services/room-service/internal/room/service/lucky_gift_test.go new file mode 100644 index 00000000..34b4a6b6 --- /dev/null +++ b/services/room-service/internal/room/service/lucky_gift_test.go @@ -0,0 +1,110 @@ +package service_test + +import ( + "context" + "testing" + "time" + + activityv1 "hyapp.local/api/proto/activity/v1" + roomv1 "hyapp.local/api/proto/room/v1" + walletv1 "hyapp.local/api/proto/wallet/v1" + "hyapp/pkg/appcode" + "hyapp/services/room-service/internal/integration" + roomservice "hyapp/services/room-service/internal/room/service" + "hyapp/services/room-service/internal/router" + "hyapp/services/room-service/internal/testutil/mysqltest" +) + +type luckyGiftTestClient struct { + checks []*activityv1.CheckLuckyGiftRequest + draws []*activityv1.ExecuteLuckyGiftDrawRequest +} + +func (c *luckyGiftTestClient) CheckLuckyGift(_ context.Context, req *activityv1.CheckLuckyGiftRequest) (*activityv1.CheckLuckyGiftResponse, error) { + c.checks = append(c.checks, req) + return &activityv1.CheckLuckyGiftResponse{ + Enabled: true, + Reason: "enabled", + GiftId: req.GetGiftId(), + PoolId: req.GetPoolId(), + RuleVersion: 12, + ExperiencePool: "novice", + }, nil +} + +func (c *luckyGiftTestClient) ExecuteLuckyGiftDraw(_ context.Context, req *activityv1.ExecuteLuckyGiftDrawRequest) (*activityv1.ExecuteLuckyGiftDrawResponse, error) { + c.draws = append(c.draws, req) + meta := req.GetLuckyGift() + return &activityv1.ExecuteLuckyGiftDrawResponse{Result: &activityv1.LuckyGiftDrawResult{ + DrawId: "lucky_draw_test", + CommandId: meta.GetCommandId(), + PoolId: meta.GetPoolId(), + GiftId: meta.GetGiftId(), + RuleVersion: 12, + ExperiencePool: "novice", + SelectedTierId: "novice_2x", + MultiplierPpm: 2_000_000, + BaseRewardCoins: 200, + EffectiveRewardCoins: 200, + RewardStatus: "pending", + CreatedAtMs: 1_779_258_000_000, + }}, nil +} + +func TestSendGiftReturnsLuckyGiftDrawResult(t *testing.T) { + ctx := context.Background() + repository := mysqltest.NewRepository(t) + wallet := &treasureTestWallet{debits: []*walletv1.DebitGiftResponse{{ + BillingReceiptId: "receipt-lucky", + CoinSpent: 100, + GiftPointAdded: 100, + HeatValue: 100, + GiftTypeCode: "super_lucky", + }}} + luckyGift := &luckyGiftTestClient{} + svc := roomservice.New(roomservice.Config{ + NodeID: "node-lucky-test", + LeaseTTL: 10 * time.Second, + RankLimit: 20, + SnapshotEveryN: 1, + }, router.NewMemoryDirectory(), repository, wallet, integration.NewNoopRoomEventPublisher(), integration.NewNoopOutboxPublisher(), luckyGift) + + roomID := "room-lucky-gift" + ownerID := int64(101) + viewerID := int64(202) + createTreasureRoom(t, ctx, svc, roomID, ownerID, 9001) + joinTreasureRoom(t, ctx, svc, roomID, viewerID) + + resp, err := svc.SendGift(ctx, &roomv1.SendGiftRequest{ + Meta: &roomv1.RequestMeta{ + RequestId: "req-lucky", + CommandId: "cmd-lucky", + ActorUserId: ownerID, + RoomId: roomID, + SessionId: "device-session-1", + AppCode: appcode.Default, + SentAtMs: time.Date(2026, 5, 20, 12, 0, 0, 0, time.UTC).UnixMilli(), + }, + TargetType: "user", + TargetUserId: viewerID, + GiftId: "rose", + GiftCount: 1, + PoolId: "super_lucky", + }) + if err != nil { + t.Fatalf("send lucky gift failed: %v", err) + } + if resp.GetLuckyGift().GetDrawId() != "lucky_draw_test" || resp.GetLuckyGift().GetMultiplierPpm() != 2_000_000 || resp.GetLuckyGift().GetEffectiveRewardCoins() != 200 { + t.Fatalf("lucky gift result mismatch: %+v", resp.GetLuckyGift()) + } + if len(luckyGift.checks) != 1 || luckyGift.checks[0].GetPoolId() != "super_lucky" || luckyGift.checks[0].GetGiftId() != "rose" { + t.Fatalf("lucky check request mismatch: %+v", luckyGift.checks) + } + if len(luckyGift.draws) != 1 { + t.Fatalf("expected one lucky draw, got %d", len(luckyGift.draws)) + } + drawMeta := luckyGift.draws[0].GetLuckyGift() + if drawMeta.GetCommandId() != "cmd-lucky" || drawMeta.GetCoinSpent() != 100 || drawMeta.GetDeviceId() != "device-session-1" || drawMeta.GetAnchorId() != "101" { + t.Fatalf("lucky draw meta mismatch: %+v", drawMeta) + } +} diff --git a/services/room-service/internal/room/service/service.go b/services/room-service/internal/room/service/service.go index 0f8b9998..8d88e991 100644 --- a/services/room-service/internal/room/service/service.go +++ b/services/room-service/internal/room/service/service.go @@ -60,6 +60,8 @@ type Service struct { repository Repository // wallet 是 SendGift 的同步扣费依赖,扣费失败不能进入 Room Cell 状态变更。 wallet integration.WalletClient + // luckyGift 是幸运礼物同步检查和抽奖依赖;未配置时幸运礼物按未启用处理。 + luckyGift integration.LuckyGiftClient // syncPublisher 是 room-service 到腾讯云 IM 的低时延房间系统事件桥。 syncPublisher integration.RoomEventPublisher // outboxPublisher 是补偿 worker 对外部消费者的异步投递抽象。 @@ -97,6 +99,8 @@ type mutationResult struct { roomHeat int64 // giftRank 是 SendGift 后的本地礼物榜投影。 giftRank []*roomv1.RankItem + // luckyGift 是扣费成功后同步执行的幸运礼物抽奖结果;普通礼物保持 nil。 + luckyGift *roomv1.LuckyGiftDrawResult // commandPayload 允许少数命令把外部依赖的结算快照写入 command log,用于恢复。 commandPayload []byte // syncEvent 标记该命令存在腾讯云 IM 房间消息形态;实际投递只由 outbox worker 异步执行。 @@ -117,7 +121,7 @@ type mutationResult struct { } // New 初始化 room-service 领域服务。 -func New(cfg Config, directory router.Directory, repository Repository, wallet integration.WalletClient, syncPublisher integration.RoomEventPublisher, outboxPublisher integration.OutboxPublisher) *Service { +func New(cfg Config, directory router.Directory, repository Repository, wallet integration.WalletClient, syncPublisher integration.RoomEventPublisher, outboxPublisher integration.OutboxPublisher, luckyGift ...integration.LuckyGiftClient) *Service { usedClock := cfg.Clock if usedClock == nil { // 生产默认系统时钟,测试可注入固定时钟保证断言稳定。 @@ -148,6 +152,11 @@ func New(cfg Config, directory router.Directory, repository Repository, wallet i micPublishTimeout = 15 * time.Second } + var luckyGiftClient integration.LuckyGiftClient + if len(luckyGift) > 0 { + luckyGiftClient = luckyGift[0] + } + return &Service{ nodeID: cfg.NodeID, leaseTTL: cfg.LeaseTTL, @@ -159,6 +168,7 @@ func New(cfg Config, directory router.Directory, repository Repository, wallet i directory: directory, repository: repository, wallet: wallet, + luckyGift: luckyGiftClient, syncPublisher: syncPublisher, outboxPublisher: outboxPublisher, roomTreasureOpenScheduler: cfg.RoomTreasureOpenScheduler, diff --git a/services/user-service/internal/service/host/service_test.go b/services/user-service/internal/service/host/service_test.go index 89feef1e..e4d11e53 100644 --- a/services/user-service/internal/service/host/service_test.go +++ b/services/user-service/internal/service/host/service_test.go @@ -400,6 +400,13 @@ func TestAdminCreateAgencyControlsAppSearch(t *testing.T) { if len(agencies) != 1 || agencies[0].AgencyID != created.Agency.AgencyID { t.Fatalf("created agency should be searchable: %+v", agencies) } + agencies, err = svc.SearchAgencies(ctx, 902, displayID(901), 20) + if err != nil { + t.Fatalf("SearchAgencies by owner display id failed: %v", err) + } + if len(agencies) != 1 || agencies[0].AgencyID != created.Agency.AgencyID { + t.Fatalf("created agency should be searchable by owner display id: %+v", agencies) + } disabledJoin, err := svc.SetAgencyJoinEnabled(ctx, hostservice.SetAgencyJoinEnabledInput{ CommandID: "admin-disable-agency-join-901", diff --git a/services/user-service/internal/storage/mysql/host/queries.go b/services/user-service/internal/storage/mysql/host/queries.go index d4a38b9f..cc6c4208 100644 --- a/services/user-service/internal/storage/mysql/host/queries.go +++ b/services/user-service/internal/storage/mysql/host/queries.go @@ -30,8 +30,13 @@ func (r *Repository) SearchAgencies(ctx context.Context, command hostservice.Sea `, agencyColumns) args := []any{appcode.FromContext(ctx), regionID, hostdomain.AgencyStatusActive} if strings.TrimSpace(command.Keyword) != "" { - query += " AND name LIKE ?" - args = append(args, "%"+strings.TrimSpace(command.Keyword)+"%") + keyword := strings.TrimSpace(command.Keyword) + query += ` AND (name LIKE ? OR owner_user_id IN ( + SELECT user_id + FROM users + WHERE app_code = ? AND current_display_user_id = ? + ))` + args = append(args, "%"+keyword+"%", appcode.FromContext(ctx), keyword) } query += " ORDER BY created_at_ms DESC, agency_id DESC LIMIT ?" args = append(args, command.PageSize) diff --git a/services/wallet-service/internal/service/wallet/service_test.go b/services/wallet-service/internal/service/wallet/service_test.go index 4f173ba9..96b31a5b 100644 --- a/services/wallet-service/internal/service/wallet/service_test.go +++ b/services/wallet-service/internal/service/wallet/service_test.go @@ -1417,6 +1417,31 @@ func TestManagerCenterResourceGrantFiltersAndRechecksSwitch(t *testing.T) { } } +func TestCreateResourceRejectsDuplicateResourceCodeAsConflict(t *testing.T) { + repository := mysqltest.NewRepository(t) + svc := walletservice.New(repository) + ctx := context.Background() + + command := resourcedomain.ResourceCommand{ + ResourceCode: "duplicate_badge", + ResourceType: resourcedomain.TypeBadge, + Name: "Duplicate Badge", + Status: resourcedomain.StatusActive, + Grantable: true, + ManagerGrantEnabled: true, + GrantStrategy: resourcedomain.GrantStrategySetActiveFlag, + UsageScopes: []string{"profile"}, + OperatorUserID: 90001, + } + if _, err := svc.CreateResource(ctx, command); err != nil { + t.Fatalf("first CreateResource failed: %v", err) + } + command.Name = "Duplicate Badge Again" + if _, err := svc.CreateResource(ctx, command); !xerr.IsCode(err, xerr.Conflict) { + t.Fatalf("duplicate resource_code should be conflict, got %v", err) + } +} + // TestManagerCenterCannotGrantResourceGroup 固定首版经理中心只允许单资源赠送。 func TestManagerCenterCannotGrantResourceGroup(t *testing.T) { repository := mysqltest.NewRepository(t) diff --git a/services/wallet-service/internal/storage/mysql/resource_repository.go b/services/wallet-service/internal/storage/mysql/resource_repository.go index 542a0f90..6718bd1a 100644 --- a/services/wallet-service/internal/storage/mysql/resource_repository.go +++ b/services/wallet-service/internal/storage/mysql/resource_repository.go @@ -146,7 +146,7 @@ func (r *Repository) CreateResource(ctx context.Context, command resourcedomain. nowMs, ) if err != nil { - return resourcedomain.Resource{}, err + return resourcedomain.Resource{}, mapResourceWriteError(err) } resourceID, err := result.LastInsertId() if err != nil { @@ -225,7 +225,7 @@ func (r *Repository) UpdateResource(ctx context.Context, command resourcedomain. command.ResourceID, ) if err != nil { - return resourcedomain.Resource{}, err + return resourcedomain.Resource{}, mapResourceWriteError(err) } if affected, err := result.RowsAffected(); err != nil { return resourcedomain.Resource{}, err @@ -2215,6 +2215,13 @@ func resourceOffset(page int32, pageSize int32) int32 { return (page - 1) * pageSize } +func mapResourceWriteError(err error) error { + if isMySQLDuplicateError(err) { + return xerr.New(xerr.Conflict, "resource_code already exists") + } + return err +} + func normalizeResourceCommand(command resourcedomain.ResourceCommand) resourcedomain.ResourceCommand { command.ResourceCode = strings.TrimSpace(command.ResourceCode) command.ResourceType = resourcedomain.NormalizeResourceType(command.ResourceType)