syntax = "proto2";

package LiveResult;

//option optimize_for = LITE_RUNTIME;

import "UserResult.proto";
import "MedalResult.proto";
import "LiveBgResult.proto";
import "FunRoomResult.proto";
import "CommonResult.proto";
import "UserItemsResult.proto";

option java_package = "com.miaole.live.protocol.response";
option java_outer_classname = "LiveResult";

//直播大厅主页信息
message MainData {
  repeated LiveRoomInfo recommends = 1;//推荐主播(4个)
  repeated LiveRoomInfo rooms = 2;//全部主播(4个)
  optional string url = 3;//room 封面 前缀
}

//大厅获取直播列表
message LiveRoomList {
  repeated LiveRoomInfo infos = 1;
  repeated LiveRoomRecommendSeatInfo recommendSeatList = 2;//推荐橱窗数据
  optional VideoCarouselRoomList videoCarouselRoomList =3;//推荐轮播数据

}


message LiveRoomRecommendSeatInfo {
  repeated LiveRoomInfo roomList = 1;//推荐橱窗中的房间列表
  required int32 seat = 2;//橱窗位置 从1到N
}

//大厅直播房间信息
message LiveRoomInfo {
  optional string createId = 1;//直播归属的玩家ID
  optional string roomName = 2;//直播间标题
  optional int32 logoTime = 3;//封面修改时间
  optional int32 online = 4;//在线人数
  optional string position = 5;//地标
  optional int32 liveLevel = 6;//主播等级
  optional int32 hotLevel = 7;//人气等级
  optional int32 status = 8;//直播间状态:100:开播中,150:排麦 200:回放 300:无回放
  optional string roomId = 9;//直播ID
  optional string nickName = 10;//主播昵称
  optional string unionId = 11;// 公会ID，有公会id则roomId为公会直播间id，封面、昵称为公会信息
  optional bool isUnion = 12;// 是否公会
  optional string labelType = 13;// 标签信息
  optional string bindUnionLiveRoomId = 14;// 关联公会直播间
  optional bool hadVideo = 15;// 有官方推荐视频
  optional string videoUrl = 16;// 推荐视频地址
  optional string videoBG = 17;// 推荐视频背景
  optional int32 labelAnchorType = 18;// 标签类型，1-主播标签，2-公会标签，3-视频渠道标签
  optional bool isGuardAngel = 19; //是否有守护天使标签
  optional bool isWeekStar = 20; //是否有周星标签
  optional string fightId = 21;// 对战用户Id
  optional string fightUrl = 22;// 对战用户头像
  optional string spLiveTag = 23;//专属开播标签
  optional string anchorLogo = 24; // 主播头像
  optional int32 charmLevel = 25;// 魅力等级
  optional int32 lastFightRank = 26;// 上周排名，只有前3名
  optional string roomUrl = 27;// 新直播间封面
  optional CommonResult.CuteInfo createIdCuteInfo = 28;//直播归属的玩家ID-靓号信息
  optional string anchorLabelName = 29; //  标签名称
  optional string anchorLabelImgUrl = 30; // 标签图片
  optional int32 annualGiftType = 31;//分类 年度礼物类型 0:没有 1:号角 2:火箭
  optional string roomFrame = 32;//房间框
  optional string pushUrl = 33;//房间cdn流地址
  optional int32 liveRoomType = 34;//房间分類id
  optional string location = 35;//房间开播位置
  optional int32 distance = 36;//开播位置距离用户多远 单位米
  optional bool dancing = 37;//是否在热舞中
  optional string playRtmpUrl = 38;//主播视频拉流RTMP地址
  optional string playFlvUrl = 39;//主播视频拉流FLV地址
  optional string playHfsUrl = 40;//主播视频拉流FLV地址
  optional string playWebRtcUrl = 41;//主播视频拉流HFS地址
  optional string connectMicId = 42;// 视频连麦用户Id
  optional string connectMicUrl = 43;// 视频连麦用户头像
  optional string anchorPointDiagram = 44; //房间框锚点图
  optional string thumbnail = 45; // 房间框缩略图（新）
  optional bool isPeaked = 46;// 是否巅峰对决
  optional bool isMultiConnect = 47;// 是否多人连麦中
  optional string rtcType = 48;//房间使用的RTC类型 trtc=腾讯云RTC artc=声网rtc
  optional bool isTeamPK = 49;// 是否团战pk
  optional bool isIndividualPk = 50 ; // 是否开启个人PK
  optional bool isQualifier = 51;// 是否排位赛
}

//主播列表
message LiveUserList {
  repeated LiveUserInfo infos = 1;
  optional int32 total = 2;//总数
}

//主播信息
message LiveUserInfo {
  optional string userId = 1;//主播用户Id
  optional int32 liveLevel = 2;//主播等级
  optional int64 liveExp = 3;//主播经验
  optional int32 hotLevel = 4;//人气等级
  optional int64 hotExp = 5;//人气经验
  optional int32 funLevel = 6;//娱乐等级
  optional int64 funExp = 7;//娱乐经验
  optional string headUrl = 8;//用户头像
  optional int32 follows = 9;//我的关注数
  optional int32 friends = 10;//我的粉丝数
  optional bool admin = 11;//是否场控
  optional int32 forbidTime = 12;//禁言剩余时间(s)
  optional int32 status = 13;//直播间状态:1开播中,2回放
  optional string slogan = 14;//个性签名
  optional bool myFollows = 15;//我是否已关注
  optional int32 friend = 16;//是否为好友关系[好友状态 0是自己,1是好友,2已请求,3对方已请求,4可请求加好友]
  optional int32 contribute = 17;//当前贡献
  optional int32 jobId = 18;// 职位id:EJobType
  optional bool isNewAnchor = 19;// 新主播标识，指定了房间才返回
  optional string announcement = 20;// 直播间自定义公告，指定了房间才返回
  optional bool isOpenMic = 21;// 直播间是否开通连麦，指定了房间才返回
  optional bool isMirror = 22;// 直播间是否开启镜像，指定了房间才返回
  optional bool isNewFans = 23;//是否为新粉丝
  optional bool isCloseFriend = 24;// 是否亲密好友
  optional int32 charmLevel = 25;// 魅力等级
  optional int64 charmExp = 26;// 魅力经验
  optional int64 contributeNew = 27;// 当前贡献新字段（房间榜单总值）
  optional string nickName = 28;//主播昵称
  optional CommonResult.CuteInfo userIdCuteInfo = 29;//主播用户Id-靓号信息
  optional string openLiveCity = 30;//开播城市
  optional int32 sex = 31;// 主播性别 0:未知 1:男 2:女
  optional int32 vipLv = 32;// 主播是否vip，1:是 0:不是
  optional int32 vipType = 33;// 主播VIP类型 30:月度会员 90:季度会员 180:半年度会员 360:年度会员
  optional string headStampId = 34;// 主播头像贴，头像表情id
  optional string headFrameId = 35;// 主播当前使用的头象框ID
}

message LivePushInfo {
  optional bool push = 1;//是否弹窗
  repeated string roomId = 2;//为空时跳转我的关注页,否则直接进入直播间
}

//获取家族列表
message FamilyList {
  repeated FamilyInfo list = 1;
}

//根据不同情况返回不同信息
message FamilyInfo {
  optional string familyId = 1;//家族id
  optional string familyName = 2;//家族昵称
  optional string slogan = 3;//口号
  optional string createId = 4;//族长id
  optional string familyLogo = 5;//家族头像
  optional int32 type = 6;// 家族类型
  repeated FamilyMemberInfo list = 7;//成员列表
  optional int32 unionType = 8;//公会类型 1:系统公会,2:游戏公会,3:娱乐公会,4:语音公会
}

//家族成员
message FamilyMemberInfo {
  optional string memberId = 1;//成员
  optional string merberName = 2;//昵称
  optional string logoUrl = 3;// logoUrl
  optional int32 jobId = 4;// 职位id:EJobType
  optional string jobName = 5; // 职位名称
}

//我的家族信息
message MyFamilyInfo {
  optional FamilyInfo family = 1;
  optional int32 signYears = 2;// 签约时长（年限）
  optional int32 anchorType = 3;// 主播身份
  optional int64 contractTime = 4;//签约时间
  optional bool isShowBindUnionRoomId = 5;//是否显示关联所属厅
}

//主播家族信息
message AnchorFamilyInfo {
  optional FamilyInfo family = 1; //家族信息
  optional string contacts = 2;// 真实姓名
  optional string idNumber = 3;// 身份证号
  optional string tel = 4;// 联系电话
  optional string qq = 5;// QQ
  optional int32 settleStyle = 6; //家族结算方式，1主播委托家族结算, 2主播/家族分别结算
  optional string contractStartTime = 7;//签约开始时间
  optional string contractEndTime = 8;//签约结束时间
  optional string unionRoomId = 9; //所属厅id
  optional string unionRoomCute = 10; //所属厅对应的靓号id
  optional string unionRoomName = 11; //所属厅名称
  optional bool isShowRenewButton = 12;//是否显示续约按钮
  optional int32 signStatus = 13; //状态 0 签约待审核 1 签约审核通过 2 签约审核不通过（包括审核超时）3 解约成功 4 取消申请 5 冻结 6 解冻 7 续约审核中 8 续约通过 9 续约不通过 10 解约审核中
  optional string anchorId = 14;//主播id
  optional string anchorName = 15;//主播昵称
  optional int32 unionRoomStatus = 16; //所属厅状态 -1 未申请 0待审核 1审核通过 2审核不通过
  optional int32 anchorType = 17; //主播结算方式，1主播委托家族结算（对公主播）, 2主播/家族分别结算（对私主播）
  optional bool isShowTerminate = 18; //是否显示解约按钮
}

//是否显示续约弹窗
message RenewalPopup {
     optional bool isShowRenewPopup = 1;//是否显示续约弹窗
     optional int32 renewDay = 2; //续约天数
}

//是否需要发送续约短信
message NeedRenewalSendSms {
    optional bool isNeedRenewalSendSms = 1;//是否需要发送续约短信
}

//主播状态信息
message FamilyStatusMsg {
  optional string familyId = 1;//家族id
  optional string familyName = 2;//家族昵称
  optional int32 status = 3;// 1 已加入家族 2 家族审核中 3 已超过签约时间 4 未加入家族
  optional int32 signType = 4;//签约方式，0：默认签约方式，1：邀请码签约
  optional bool showCustomSayHi = 5;//是否显示自定义打招呼栏
}

message LiveEarningData {
  repeated LiveEarningInfo list = 1;//收入明细列表
}

message LiveEarningInfo {
  optional string id = 1;//ID
  optional string userId = 2;
  optional string giftId = 3;//跟type类型 0:礼物ID 1:购买守护ID
  optional int32 giftNum = 4;//礼物数量
  optional double money = 5;//元
  optional int64 createTime = 6;//创建时间
  optional string senderId = 7;//发送者ID
  optional string senderNickName = 8;//发送者昵称
  optional int64 senderLogoTime = 9;//修改logo的时间 0为没修改过 -1为第三方头象
  optional string senderHeadUrl = 10;//发送者第三方头象
  optional string nickName = 11;//接收者昵称
  optional double ratio = 12;//分成比例
  optional int32 type = 13;//类型 0:礼物 1:守护
  optional bool isWarriorCloak = 14;//是否开启隐身斗篷
  optional bool senderIsWarriorCloak = 15;//发送者隐身斗篷状态
  optional int32 vipType = 16;//VIP类型  30:月度会员 90:季度会员 180:半年度会员 360:年度会员
  optional bool isAnonymous = 17; // 是否匿名
  optional string giftName = 18; // 礼物名称
  optional int64 realDiamond = 19;// 消费钻石数
  optional bool isLuckyBagGift = 20;// 是否福袋消费
  optional string giftNameI18n = 21; // 礼物名称国际化
}

message LiveBindExpenseInfoData{
  optional int32 expenseType = 1;//提现类型
  optional string payeeRealName = 2;//收款方名字
  optional string payeeAccount = 3;//收款方账号
  optional int64 createTime = 4;//创建时间
  optional string bankName = 5;//银行 开户行
  optional string bankAddr = 6;//银行 开行支行
  optional string idCard = 7;//身份证
}

message LiveExpenseData {
  repeated LiveExpenseInfo list = 1;//提现明细列表
  optional double expenseTotal = 2;//提现总额
}

message LiveExpenseInfo {
  optional string id = 1;//ID
  optional string orderId = 2;//订单ID
  optional string userId = 3;
  optional int32 payType = 4;//提现类型
  optional double money = 5;//元
  optional int64 createTime = 6;//创建时间
  optional bool needGetStatus = 7;//需要再请求获取状态
  optional int32 status = 8;//提现状态 -1 失败  0:系统处理中  1:支付宝处理  2:已到账
  optional string nickName = 9;//用户昵称
  optional double serviceCharge = 10; // 提现手续费
  optional double commissionPercentage = 11; //提现手续费比例
  optional string channelName = 12; // 打款渠道名称
}

//message HistoryPlannedSpeeds{
//	optional int32 status = 1; // 提现 历史进度状态
//	optional int64 date = 2; // 提现 历史进度时间
//}

message LiveExpenseInfoDetail {
  optional string userId = 1;// 用户ID
  optional string orderId = 2;//订单ID
  optional int32 payType = 3;//支付类型
  optional float money = 4;//元
  optional string payeeRealName = 5;//收款方名字
  optional string payeeAccount = 6;//收款方账号
  optional int32 status = 7;//提现状态 -1 失败  0:系统处理中  1:支付宝处理  2:已到账
  optional int64 createTime = 8;//创建时间
  optional bool needGetStatus = 9;//需要再请求获取状态
  //	repeated HistoryPlannedSpeeds list = 10; // 历史进度
  optional int64 endTime = 10;//结束时间
  optional double serviceCharge = 11;//提现手续费
  optional double commissionPercentage = 12; //提现手续费比例
  optional string channelName = 13; // 打款渠道名称
}

message LiveExpenseStatus {
  optional string orderId = 1;//订单ID
  optional int32 status = 2;//提现状态 -1 失败  0:系统处理中  1:支付宝处理  2:已到账
}

//返回房间名称与封面
message RoomNameAndLogo {
  optional string name = 1;//房间名字
  optional string roomUrl = 2;// 直播封面
  optional bool hadApplyLogo = 3;// 有待审核的封面
  optional double lng = 4; //经度
  optional double lat = 5; //纬度
  optional string location = 6; //位置名称
}

//返回结束直播后统计信息
message OverLiveTotalInfo {
  optional int32 maxOnlineCount = 1; //最大观看人数
  optional int64 diamondTotal = 2; //收到钻石
  optional int32 newFriendCount = 3; //新增关注数
  optional int32 star = 4; //巨星主播星级
  optional int32 consumerCount = 5; //送礼人数
  optional int32 watchFanCount = 6; //观看粉丝数
  optional int32 watchPeopleCount = 7; //观看人数
}

//返回关注回复信息
message FollowMsgInfo {
  optional string followMsg = 1;// 关注回复
  optional bool autoResponse = 2;//是否自动回复
}

//返回直播中的房间信息
message LivingRoomInfo {
  optional string roomId = 1;//直播房间ID
  optional string roomName = 2;//直播间标题
  optional int32 logoTime = 3;//封面修改时间
}

//返回直播间状态与回放url
message LiveRoomStatusAndReviewUrl {
  optional int32 status = 1;//直播间状态:1开播中,2回放
  optional string videoUrl = 2;//回放视频地址
  optional int32 maxOnlineCount = 3;//直播间最大在线人数
  optional int64 diamondTotal = 4;//贡献值
  optional int32 startTime = 5;//开始时间
  optional int32 duration = 6;//时长,单位秒
  optional string bindUnionLiveRoomId = 7;//绑定的公会直播间
  optional string unionId = 8;//公会直播间绑定的娱乐公会ID
  optional bool needPwd = 9;//是否需要密码(上锁)
  optional bool open = 10;//是否为开放的直播间
  optional bool isPCMode = 11;// 是否pc播放模式
  optional bool hadVideo = 12;// 有官方推荐视频
  optional int32 aspectRatioType = 13;// 屏幕比率类型，0-默认app，1-4：3，2-16:9

  optional string roomId = 14;// 房间Id

  optional bool preRoomData = 15;//是否预加载数据

  optional string rtcType = 16;//rtc类型
}

//返回直播间回放视频信息
message LiveRoomReviewInfo {
  optional string fileId = 1;//回放视频id
  optional string fileFormat = 2;//录制文件格式
  optional string videoUrl = 3;//回放视频地址
  optional int32 fileSize = 4;//文件大小
  optional int32 startTime = 5;//开始时间
  optional int32 endTime = 6;//结束时间
  optional string roomId = 7;//直播间id
  optional string roomName = 8;//直播间名称
  optional int32 logoTime = 9;//直播间封面
  optional int32 maxOnlineCount = 10;//直播间最大在线人数
  optional int64 diamondTotal = 11;//贡献值
  optional int32 duration = 12;//时长,单位秒
}

//返回直播间回放列表
message LiveRoomReviewList {
  repeated LiveRoomReviewInfo list = 1;
}

//返回指定主播直播中信息
message AnchorLivingRoomInfo {
  optional string roomId = 1;//直播房间ID
  optional string roomName = 2;//直播间标题
  optional int32 logoTime = 3;//封面修改时间
  optional int32 maxOnlineCount = 4;//直播间最大在线人数
}

//关注直播列表
message FollowRoomList {
  repeated LiveRoomInfo infos = 1;
}

//主播开播状态列表
message LiveUserStatusList {
  repeated LiveUserStatus list = 1;
}

//主播开播状态
message LiveUserStatus {
  optional string anchorId = 1;//主播ID
  optional int32 status = 2;//直播间状态:1开播中,2回放
  optional bool needPassword = 3;//是否需要密码码
}

//累计新入账元宝
message NewIngotsCount {
  optional int32 ingotsCount = 1;//累计新入账元宝总数
}

// 直播间公屏广播
message LiveScreenBroadcast {
  optional string roomId = 1;// 房间ID
  optional int32 type = 2;// 消息类型 1-升级广播 2-分享广播 3-关注广播 4-领取任务广播 5-关注厅广播 6-PK中断广播
  optional string userId = 3;// 用户ID
  optional string nickName = 4;// 用户昵称
  optional int32 funLevel = 5;// 娱乐等级
  optional int32 liveLevel = 6;// 主播等级
  optional string liveTaskId = 7;// 直播任务
}

// 直播间自定义公告广播
message LiveAnnouncementBroadcast {
  optional string announcement = 1;//直播间自定义公告
}

// 直播间是否开启连麦，广播通用
message LiveRoomIsOpenMic {
  optional bool flag = 1;// true为设置开启连麦，false为关闭连麦
}

// 直播间连麦情况，广播通用
message LiveRoomMicStatus {
  optional int32 micStatus = 1;// 直播间情况 0-可申请；1-申请中；2-已连麦；3-禁言中
}

// 直播间控麦广播
message LiveRoomControlMicBroadcast {
  optional bool flag = 1;// true为设置控麦，false为取消控麦
  optional string controlUserId = 2;// 控麦用户
  optional int32 liveTime = 3;//主播直播剩余时间
}

message LiveRoomMicList {
  repeated LiveRoomMicInfo list = 1;
  optional bool controlMic = 2;//是否控麦中
  optional int32 queueNum = 3;//排队人数
}

message  LiveRoomMicInfo {
  optional string userId = 1;
  optional int32 status = 2;//状态       0-可申请；1-申请中；2-已连麦；3-禁言中 ; 4:等待同意连麦（上麦）
  optional int32 micTime = 3;//上麦时长(秒)
  optional int32 micType = 4;//连麦类型,1：语音 2:视频
  optional bool isLive = 5;//是否为主播
  optional bool isFocus = 6;//是否已关注
  optional bool forbigmic = 7;//是否闭麦中

  optional bool anchorForbidMic = 8; // 连麦时是否被主播禁麦，PC使用
  optional string headStampId = 9; //userId的头像贴，头像表情id

  optional string nickName = 10; //用户昵称
  optional int32 sex = 11; // 姓别 0 未知 1:男 2:女
  optional string slogan = 12; //个性化签名
  optional int32 funLevel = 13; // 娱乐等级
  optional int32 liveLevel = 14;//主播等级
  optional int32 vipLv = 15; //平台VIP等级
  optional string headFrameId = 16; // 头像框ID
  optional int32 jobId = 17; // 角色id
  optional bool isWarriorCloak = 18;// 是否开启勇者斗篷
  optional string headUrl = 19; // 头像url

  optional int32 micIndex = 20;//当前位置
  optional int32 age = 21;//年龄
  
  optional UserResult.UserCloakInfo cloakInfo = 22;// 隐身斗篷信息
  optional string  haloAnimationFile = 23;// 头像光圈动画
  optional string micShadowFile = 24;// 麦位光影动画文件
}

message LiveRoomDataInfo {
  optional string micUserId = 1;//当前上麦的用户ID  （已废弃）
  optional string micAdminId = 2;//当前上麦的管理员ID
  optional int32 myMicStatus = 3;//我的连麦状态  0-可申请；1-申请中；2-已连麦；3-禁言中
  optional string controlMicId = 4;//控麦中的用户ID
  optional string unionId = 5;//所属的公会ID
  optional string liveUserId = 6;//当前在直播的用户ID
  optional int32 liveNum = 7;//主播数量
  optional bool hasPrank = 8;//是否已配置整蛊列表
  optional bool forbigmic = 9;//是否闭麦中
  optional int32 micType = 10;//当前上麦用户的上麦类型
  optional int32 luckDrawType = 11;//抽奖类型 为0时，没有开启抽奖
  optional int64 luckDrawTime = 12;//抽奖倒计时
  optional bool stopLuckDrawTime = 13;//是否要停止计时
  optional bool isOfficialChannel = 14;// 是否官频
  optional int32 applyLiveNum = 15;//申请排播数量
  optional bool prankStat = 16;//整蛊统计是否已开启
  optional int32 prank = 17;//整蛊数量
  optional int32 rescue = 18;//拯救数量
  optional int32 roomMode = 19;//房间发言模式ERoomMode，无效
  repeated string prankIds = 20;//整蛊礼物ID数组
  repeated int32 prankNums = 21;//整蛊礼物数量
  optional int32 liveTime = 22;//当前主播的直播剩余时间
  optional bool speakSwitch = 23;//锁定公屏，true=开，false=关
  optional int32 pchatMinSpend = 24;//私聊最低消费门槛
  optional string fansGroupName = 25;//当前主播的粉丝团名称
  optional int32 fansGroupCount = 26;//当前主播的粉丝团数量
  optional int64 freeGiftOverTime = 27;//免费礼物倒计时结束时间(时间戳),(取服务器当前时间-freeGiftOverTime)/1000 得到倒计时
  optional LiveBgResult.RoomSpBg spBg = 28;//背景图
  optional int32 talentTime = 29;// 公会直播间才艺时间，单位秒
  optional bool simpleMode = 30;// 简洁模式
  optional int32 anchorLiveTime = 31;// 公会直播间麦序时长，单位秒
  optional bool isApprove = 32;// 连麦是否审核
  optional string roomId = 33;// 房间ID
  optional string roomName = 34;// 房间名称
  optional CommonResult.CuteInfo unionIdCuteInfo = 35;//所属的公会ID-靓号信息
  optional bool isFocusRoom = 36 ; //是否关注公会房

  optional bool receptionRoom = 37;//是否为接待房间
  optional ReceptionData receptionData = 38;//接待房间数据(只会在接待房间时存在数据)

  optional bool myReceptionStatus = 39;//我的接待状态 false：未开启 true：已开启
  optional int32 receptionStatus = 40;//接待房间状态 0:未接待 1：接待中 2:已关闭（对主播）
  optional string receptionRoomId = 41;//接待房间ID（对主播）
  optional string presenterId = 42;//主持人ID（对主播）
  optional string presenterNickName = 43;//主持人昵称（对主播）
  optional string receptionChatGroupId = 44;//接待房间聊天群组ID
  optional int32 presenterNum = 45;//主持人数量

  optional string roomCuteNumber = 46;//房间靓号ID

  optional LiveRoomWindowsInfo videoWindowsInfo = 47;//视频橱窗数据

  repeated MicSimpleInfo micInfoList = 48;//当前连麦简易数据
  
  optional string micAdminHaloAnimationFile = 49;// 当前上麦的管理员的头像光圈动画
  optional string micAdminMicShadowFile = 50;// 当前上麦的管理员的麦位光影动画文件
}

message UpdateLiveRoomDataBroadcast {
  optional bool dataType = 1;//
}

//更新整蛊的数据
message UpdatePrankDataBroadcast {
  optional bool prankStat = 1;//整蛊统计是否已开启
  optional int32 prank = 2;//整蛊数量
  optional int32 rescue = 3;//拯救数量
  repeated string prankIds = 4;//整蛊礼物ID数组
  repeated int32 prankNums = 5;//整蛊礼物数量
}

// 直播间管理员上/下麦广播
message LiveRoomManagerMicBroadcast {
  optional bool flag = 1;// true为上麦，false为下麦
  optional string managerId = 2;// 上麦管理员
}

// 直播间麦序时长
message LiveMicTime {
  optional int32 micTime = 1;// 麦序时长，单位秒
}

message LiveRoomLiveList {
  repeated string liveList = 1;//直播列表用户ID
  optional string liveUserId = 2;//当前直播中的用户ID
  optional int32 liveTime = 3;// 直播时长
  optional string inviteLiveUserId = 4;//当前要抱上播的主播用户ID
  optional bool liveForbigmic = 5;//当前主播是否闭麦中
  repeated LevelMedalInfo levelMedalInfos = 6;// 直播列表用户的主播等级以及勋章
  optional LevelMedalInfo liveLevelMedalInfo = 7; // 当前直播中的主播的等级及勋章
  optional int32 anchorLiveTime = 8;// 公会直播间麦序时长，单位秒
  repeated string liveHeadStampList = 9; //直播列表用户id对应的头像贴
}

// 公会直播间可选主播列表
message UnionLiveRoomAnchors {
  repeated string anchorList = 1;//主播列表
}

// 直播间送礼物广播通知（达到指定钻石数）
message LiveRoomSendGiftBroadcast {
  optional string fromUserId = 1;// 送礼用户Id
  optional string fromNickName = 2;// 送礼用户昵称
  optional string toUserId = 3;// 接收用户Id
  optional string toNickName = 4;// 接收用户昵称
  optional string giftId = 5;//赠送的礼物ID
  optional int32 giftNum = 6;//赠送的礼物数量
  optional int32 type = 7;// 广播类型，0为全频道广播，1为房间广播
  optional int32 income = 8;// 当前房间收益，如果非主播，返回-1，前端不处理
  optional int32 fromFunlevel = 9;// 送礼用户娱乐等级
  optional int32 fromLiveLevel = 10;// 送礼用户直播等级
  optional int32 toFunlevel = 11;// 接收用户娱乐等级
  optional int32 toLiveLevel = 12;// 接收用户直播等级
  optional int32 fromJobId = 13;// 送礼用户角色，公会直播间才有效，默认-1代表不处理
  optional int32 toJobId = 14;// 接收用户角色，公会直播间才有效，默认-1代表不处理
  optional string fansGroupName = 15;//发送者粉丝团名字
  optional string toFansGroupName = 16;//接收者的粉丝团名字
  optional string roomId = 17;//房间ID
  optional int32 groupNum = 18;// 礼物分组数量，默认1
  optional int32 funType = 19;//频道分类
  optional string luckyGiftId = 20;//福袋活动开出礼物id
  // 当为相亲模式中的麦位用户收到礼物时设置以下值
  optional int64 miaiScores = 21; // 相亲模式的分值
  optional int32 hatLevel = 22; // 相亲模式的帽子等级，0为没帽子
  optional int32 spGiftType = 23; // 特殊礼物所属类型（有对应的公频气泡）,1-圣诞星光礼袋
  // 新增魅力等级信息
  optional int32 fromCharmLevel = 24;// 送礼用户魅力等级
  optional int32 toCharmLevel = 25;// 接收用户魅力等级
  optional int32 totalGiftDiamond = 26;//礼物总价值(钻石)
  optional int32 roomType = 27;//房间类型

  optional int32 fromUserLogoTime = 28; // 送礼用户头像
  optional string fromUserThirdUrl = 29;// 送礼用户第三方头像
  optional int32 fromUserVipLv = 30; // 平台vip

  optional int32 toUserLogoTime = 31; // 收礼用户头像
  optional string toUserThirdUrl = 32; // 收礼用户第三方头像
  optional int32 toUserVipLv = 33; // 收礼用户vip信息
}

// 房间送礼物广播通知达到指定钻石数）
message LiveRoomSendGiftsBroadcast {
  optional string fromUserId = 1;// 送礼用户Id
  optional string fromNickName = 2;// 送礼用户昵称
  optional string giftId = 3;//赠送的礼物ID
  optional int32 giftNum = 4;//赠送的礼物数量
  optional int32 type = 5;// 广播类型，0为全频道广播，1为房间广播
  optional int32 income = 6;// 当前房间收益，如果非主播，返回-1，前端不处理
  optional int32 fromFunlevel = 7;// 送礼用户娱乐等级
  optional int32 fromLiveLevel = 8;// 送礼用户直播等级
  optional int32 fromJobId = 9;// 送礼用户角色，公会直播间才有效，默认-1代表不处理
  optional string fansGroupName = 10;//发送者粉丝团名字
  optional string roomId = 11;//房间ID
  repeated LiveRoomGiftReceiverInfo receiverInfos = 12;//房间礼物接收者数据数组
  optional int32 groupNum = 13;//礼物分组数量，默认1
  optional int32 funType = 19;//频道分类
  repeated FunRoomResult.MiaiMicInfo miaiMicInfos = 20; // 相亲语音房的麦位信息
  optional int32 totalGiftDiamond = 21;//礼物总价值(钻石)

  optional int32 fromUserlogoTime = 22;// 送礼用户头像
  optional string fromUserThirdUrl = 23;// 送礼用户第三方昵称
  optional int32 fromUserVipLv = 24; //平台vip
  optional int32 giftCombo = 26; // 礼物连击数量
  optional bool sendAllMic = 27;//判断是否送全麦
  optional string luckyGiftId = 28;//福袋活动开出礼物id
  optional int32 spGiftType = 29; // 特殊礼物所属类型（有对应的公频气泡）,1-圣诞星光礼袋

  optional string bubbleName = 30; // 气泡资源名称,存在值时，前端根据名字自动匹配上后缀,并进行展示
  optional string msgTemplate = 31; // 展示的文案模板,如 [1] 给 [2] 幸运助力，触发了[3][4]x[5]，助力闪耀超星赛。
  optional bool isWarriorCloak = 32;// 是否开启勇者斗篷
  optional bool isAnonymous = 33; // 是否匿名
  // [1]:使用送礼者昵称替换
  // [2]:使用收礼者昵称替换
  // [3]:使用礼物名称替换
  // [4]:使用礼物icon替换
  // [5]:使用礼物数量替换,注意!!!数量 = giftNum * groupNum
  optional bool isCustomGift = 34; //是否定制礼物
  optional CustomGiftModule customGiftModule = 35;//定制礼物部位信息
  optional GiftConfigInfo giftConfigInfo = 36;
  optional string loveTemplateId = 37; //520告白情书模板id
  optional int64 sendTime = 38; //送礼时间
  optional string templateCustomGiftData = 39;//模板定制礼物数据
  optional int32 giftComboEffectId = 40;//礼物连击特效id
  optional bool hasGiftEffect = 41;//是否拥有礼物特效
  optional string graffitiPointData = 42; // 涂鸦礼物描点数据
  optional string extTips = 43;//公屏扩展提示,拼接到原有的公屏礼物提示后
  optional int32 superPlayerLevel = 44; // 超级大玩咖等级
  optional int32 scope = 45; //范围
  optional bool hasAwaken = 46; //礼物是否已觉醒（已觉醒播放礼物觉醒动画）
  optional int32 fromPartyLevel = 47;// 送礼用户酒吧贵气等级
  optional UserItemsResult.comboEffectInfo comboEffectInfo = 48; // 连击特效资源信息
  optional int32 luckyGiftPoolType = 49;// 幸运礼物奖池模式，1:分组奖池(默认),2:唯一奖池
}

message CustomGiftModule{
  optional string suit = 1;// 套装
  optional string color = 2;// 颜色
  optional string sticker = 3;// 贴纸
  optional string wing = 4;// 机翼
  optional string ejector = 5;// 喷射器
  optional string jetflame = 6;// 喷射火焰
  optional string flybg = 7;// 升空背景
  optional string pic = 8;// 图片
  optional string name = 9;//名称
}

//房间礼物接收者数据
message LiveRoomGiftReceiverInfo {
  optional string toUserId = 1;// 接收用户Id
  optional string toNickName = 2;// 接收用户昵称
  optional int32 toFunlevel = 3;// 接收用户娱乐等级
  optional int32 toLiveLevel = 4;// 接收用户直播等级
  optional int32 toJobId = 5;// 接收用户角色，公会直播间才有效，默认-1代表不处理
  optional string toFansGroupName = 7;//接收者的粉丝团名字
  optional int32 toUserVipLv = 8; // 接收用户vip 大于一个无需设置这个值
  optional string toUserThirdUrl = 9; // 接收用户头像 接收人大于一个为默认，等于一个为用户实际头像
  optional bool isWarriorCloak = 10;//是否开启勇者斗篷
  optional bool isFanClub = 11;  // 是否粉丝团粉丝用户送礼
  optional int32 giftCombo = 12; // 礼物连击数量
  optional int32 totalGiftDiamond = 13;//礼物总价值(钻石)
  optional int32 toPartyLevel = 14;// 接收用户酒吧贵气等级
  optional int32 totalLuckyGiftCoin = 15;// 幸运礼物获取的总金币数量
}

// 直播间是否开启镜像广播通知
message LiveRoomIsMirrorBroadcast {
  optional string userId = 1;// 设置用户Id
  optional bool flag = 2;// true为设置开启镜像，false为关闭镜像
}

// 主播兑换钻石记录列表
message LiveExchangeData {
  repeated LiveExchangeInfo list = 1;//主播兑换钻石列表
}

message LiveExchangeInfo {
  optional string id = 1;//ID
  optional string orderId = 2;//订单ID
  optional string userId = 3;
  optional double money = 4;//元
  optional int32 diamond = 5;//钻石
  optional int64 createTime = 6;//创建时间
}

//
message LiveRoomLuckyDrawBroadcast {
  optional bool stop = 1;//是否停止计时
}

message UpdateLiveRoomLiveListBroadcast {
  optional string roomId = 1;//房间ID
  optional string memberId = 2;//要移动的主播
  optional bool up = 3;//上移还是下移
}

// 用户可选娱乐公会信息列表
message UnionChannelInfos {
  repeated UnionChannelInfo list = 1;// 公会列表
  optional string familyId = 2;// 家族ID
}

// 娱乐公会信息
message UnionChannelInfo {
  optional string unionId = 1;// 公会ID
  optional string unionName = 2;// 公会名称
  optional string logoUrl = 3;// 公会图标
  optional bool isMember = 4;// 是否公会成员
  repeated ChannelRoomInfo rooms = 5;// 公会频道列表
  optional int32 jobId = 6;// 职位id
  optional CommonResult.CuteInfo unionIdCuteInfo = 7;// 公会ID-靓号信息
}

// 公会直播间信息
message ChannelRoomInfo {
  optional string roomId = 1;// 房间ID
  optional string roomName = 2;// 房间名称
  optional string unionId = 3;// 公会ID
  optional bool needPwd = 4;//是否需要密码(上锁)
  optional int32 liveStatus = 5;//开播状态  100=开播中;150=排麦;200=回放;300=视频房代表无有效回放（对应PLAYBACK）
  optional bool receptionRoom = 6;//是否招待厅

}


//更新房间发言模式通知
message UpdateRoomModeBroadcast {
  optional int32 roomMode = 1;//房间发言模式ERoomMode
}

// 直播间送弹幕广播通知
message LiveRoomSendBarrageBroadcast {
  optional string fromUserId = 1;// 送礼用户Id
  optional string fromNickName = 2;// 送礼用户昵称
  optional string barrage = 3;// 弹幕
  optional int32 fromFunlevel = 4;// 送礼用户娱乐等级
  optional int32 fromLiveLevel = 5;// 送礼用户直播等级
  optional int32 income = 6;// 当前房间收益
}

// 直播间送礼物批量广播
message LiveRoomSendGiftBatchBroadcast {
  repeated LiveRoomSendGiftBroadcast list = 1;// 送礼记录列表
}

//游客发言开关-锁定公屏 广播通知
message SpeakSwitchBroadcast {
  optional bool speakSwitch = 1;// true为开 false为关
}

// 公会主持人控制主播麦 广播通知
message CompereControlAnchorMicBroadcast {
  optional string roomId = 1;// 房间ID
  optional bool mic = 2;// mic状态 true为打开，false为关闭
}

//获得粉丝团数据 
message FansGroupData {
  optional string fansGroupName = 1;//粉丝团名字
  optional int64 fansGroupCount = 2;//粉丝团数量
  repeated FansGroupInfo list = 3;//前3个粉丝
  optional int64 myOvertime = 4;//我在这个粉丝团的过期时间
  optional string anchorName = 5;//主播昵称
  optional string anchorHeadUrl = 6;//主播头像
  optional int64 fansGroupCountFilter = 7;//粉丝团数量，过滤开启斗篷和隐身用户
}

//获得粉丝团成员列表
message FansGroupList {
  repeated FansGroupInfo list = 1;
  optional int64 myIndex = 2;//我当前的排名
  optional bool isAnchor = 3; // 当前用户是否是主播
}

message FansGroupInfo {
  optional UserResult.UserBase baseVo = 1;//用户基础数据
  optional int32 contribute = 2;//人气
  optional int32 buyFansMaxDay = 3;//购买守护团的最大天数30,180,360
  optional bool isWarriorCloak = 4; //是否开启勇者斗篷或者隐身购买的守护，用户房间内过滤
  optional bool userIsWarriorCloak = 5; //是否隐身购买的守护，主播自己看的榜单过滤
  optional int32 showType = 6; // 是否展示 （0-展示 1-隐藏）
}

//从自己加入的粉丝团中移除某个粉丝团主播ID
message RemoveFansGroupBroadcast {
  optional string liveUserId = 1;//主播ID
}

message S2CSeekFriendSquare{
  optional string roomId = 1;//
  optional string talk = 2;//聊天内容
  optional int64 sendTime = 3;//上传时间,超过当前系统时间的话，表示还没有超过15分钟
  optional int32  roomNum = 4;
  optional string  userId = 5;
}

//好友广场结果
message SeekFriendSquareLstRet{
  repeated S2CSeekFriendSquare lst = 1;
}

// 工会房主播等级列表
message LiveRoomAnchorsLevelList {
  repeated AnchorsLevel anchorsLevelList = 1;//直播列表用户
}
message AnchorsLevel{
  optional string userId = 1;
  optional int32 receivedMoney = 2;
  optional int32 requireMoney = 3;
  optional int32 level = 4;
  optional bool isCurrentAnchor = 5;
  optional string nickName = 6;// 昵称
  optional string headUrl = 7;// 头像
  optional int32 funlevel = 8; // 娱乐等级
  optional int32 livelevel = 9; // 主播等级
  optional int32 starLevel = 10; // 巨星之旅等级
  optional int32 charmLevel = 11;// 魅力等级
}
// 个人直播间主播段位等级
message LiveRoomAnchorLevelInfo{
  optional int32 receivedMoney = 1; // 当前收到礼物金额
  optional int32 requireMoney = 2;  // 下一段位所需礼物金额
  optional int32 level = 3;       // 当前段位
}

// 关注的主播信息，分为开播以及未开播两种
message MyFollowAnchorInfoList {
  repeated FollowAnchorInfo anchorList = 1;
  optional int32 livingType = 2; // 开播(1)或未开播(2)
}

// 某一类(开播与否)的主播信息
message FollowAnchorInfo {
  optional string anchorId = 1; // 主播Id
  optional string roomTitle = 2; // 直播间标题
  optional string anchorName = 3; // 主播名称
  optional string anchorLogo = 4; // 主播头像路径

  // status 为1时存在以下属性
  optional string roomId = 5; // 房间号
  optional int32 roomType = 6; // 房间类型，4直播房间 6公会直播间 7语音房 8公会语音频道
  // status 为2时存在以下属性
  optional string closeTime = 7; // 上次关播时间

  optional string id = 8; // 关注数据的唯一id（分页用，对应请求里面的lastId）
}

message AnchorLevelsBroadCast {
  optional string anchorId = 1; // 主播Id
  optional int32 receivedMoney = 2; // 主播收到礼物
  optional int32 requeridMoney = 3; // 升级需要的礼物
  optional int32 level = 4; // 主播等级
}

// 小程序中某用户关注的所有主播信息
message MyAllFollowAnchorInfoList {
  repeated MyAllFollowAnchorInfo anchorInfo = 1;
}

//该用户所有的关注的主播信息
message MyAllFollowAnchorInfo {
  optional string roomId = 1; // 房间ID
  optional string anchorName = 2; // 主播名称
  optional string roomTitle = 3; // 直播间标题
  optional int32 roomType = 4; // 房间类型
  optional int32 roomStatus = 5; // 开播与否，1为开播，2为下播
  optional string operateTime = 6; // 开播时为开播时间，下播时为下播时间
  optional int32 logoTime = 7; // 开播时为房间封面，下播时为用户头像

  // 下播时需返回的信息
  optional string headUrl = 8; // 第三方头像路径
  // 开播中需要的信息
  optional int32 onlinePeople = 9; // 在线人数
  // 公会主播开播时需要公会id
  optional string unionId = 10; // 公会ID
  optional string userId = 11; // 用户ID
}

//我的守护数据
message MyFansDataResult {
  repeated MyFansDataVo list = 1;//守护用户列表
}

//我的守护信息数据
message MyFansDataVo {
  optional string anchorId = 1;//主播ID
  optional int32 buyFansMaxDay = 2;//购买守护团的最大天数30,180,360
  optional string fansGroupName = 3;// 守护团名字
  optional int64 remainTime = 4;// 有效剩余时间(秒)
}

// 可选对战好友列表
message SelectedFightFriendList {
  repeated SelectedFightFriendVo list = 1;
}

// 对战好友信息
message SelectedFightFriendVo {
  optional string userId = 1; // 用户ID
  optional string headUrl = 2;// 用户头像url
  optional string nickName = 3;// 用户昵称
}

// 等级以及勋章列表
message LevelMedalInfo {
  optional int32 anchorLevel = 1; // 主播等级
  optional MedalResult.MedalInfo starMedal = 2; // 主播巨星之旅勋章
}

// 邀战动作广播
message InviteActionBroadcast {
  optional string inviterId = 1;// 邀请者Id
  optional string inviterName = 2;// 邀请者昵称
  optional string inviteeId = 3;// 被邀请者Id
  optional string inviteeName = 4;// 被邀请者昵称
  optional int32 type = 5;// 消息类型，0-邀战；1-取消；2-同意；3-拒绝；4-准备中；5-对战中；9-网络问题，断开；10-邀战超时
  optional int32 duration = 6;// 对战时长，单位秒
  optional bool isRandom = 7;// 是否随机
  optional string title = 8;// 邀战标题（过程玩法）
  optional string content = 9;// 邀战内容（惩罚内容）
  optional string inviterHeadUrl = 10;// 邀请者头像
  optional string inviteeHeadUrl = 11;// 被邀请头像
  optional int32 waitFightDuration = 12;// 等待应答时长，单位秒
  optional bool isPeaked = 13;// 是否巅峰对决
  optional string inviterRtcType = 14;// 邀请者房间RTC类型
  optional string pkId = 15;// pkid
  optional bool isQualifier = 16;// 是否排位赛
  optional string revengePkId = 17;// 排位赛复仇pkid
}

// 对战特殊玩法广播
message FightSpecialBroadcast {
  optional string userId = 1;// 发起人Id
  optional string userName = 2;// 发起人昵称
  optional string secondId = 3;// 对方Id
  optional string secondName = 4;// 对方昵称
  optional string thirdId = 5;// 我方Id
  optional string thirdName = 6;// 我方昵称
  optional int32 type = 7;// 消息类型，1-盘TA；2-查房
  optional string inquireGift = 8;// 盘TA礼物Id
  optional bool userIsVip = 9;// 发起人是否vip
  optional bool secondIsVip = 10;// 对方是否vip
  optional bool isWarriorCloak = 11;// 是否开启勇者斗篷
}

// 对战排行信息（广播通用）
message FightRankInfo {
  optional string roomId = 1;// 房间Id
  optional int32 total = 2;// 对战分数
  optional bool isChange = 3;// 头三名是否变化
  repeated FightRankUserInfo userInfos = 4;// 对战排行用户列表

  // 斩杀相关数据
  optional int32 killMomentStatus = 5; // -1 没开启斩杀 0 未开始 1 激活中 2 未激活 3 已退出
  optional int32 remainSecondToEnterKillMoment = 6; // 进入斩杀时刻的剩余秒数，大于0时显示
  optional int32 pkLeadValue = 7;   // 激活斩杀状态所需的PK差值
  optional int32 remainSecondToSuccessKill = 8; // 斩杀成功剩余秒数
  optional int32 targetPkValue = 9; // 对方的PK分数

  // 道具buffer相关数据
  optional string propName = 10;  // 道具名称 小血瓶/大血瓶
  optional int32 propCountDown = 11; // 道具剩余时间,秒
  optional string bufferText = 12; // 道具增益比率:20%,30%
}

// 对战排行用户信息
message FightRankUserInfo {
  optional string userId = 1;// 用户id
  optional string userUrl = 2;// 用户头像
  optional string userName = 3;// 用户昵称
  optional int32 funLevel = 4;//娱乐等级
  optional int32 score = 5;// 分数
  optional bool isWarriorCloak = 6;
}

// 对战胜负信息广播
message FightWinInfoBroadcast {
  optional string userId = 1;// 我方Id
  optional int32 total = 2;// 我方总分数
  optional string fightId = 3;// 对战方Id
  optional int32 fightTotal = 4;// 对战方总分数
  optional int32 type = 5;// 消息类型 ，6-惩罚中（对战结束通知），7-退出对战通知，8-对方逃跑通知
  optional int32 countDown = 6;// 惩罚倒计时，只有消息类型为6，才有值
  repeated FightRankUserInfo userInfos = 7;// 对战排行用户列表
  optional int32 pkKillMomentEnd = 8; // 斩杀结束 0 否 1是，当上面的type = 7时，有效
  optional string pkId = 9;// pkid
  optional bool isQualifier = 10;// 是否排位赛
  optional string revengePkId = 11;// 排位赛复仇pkid
}

// 对战逃跑广播
message FleeFightBroadcast {
  optional string userId = 1;// 发起人Id
  optional string fightId = 2;// 对战方Id
}

// 对战直播间数据
message LiveRoomFightDataInfo {
  optional string roomId = 1;// 房间Id;
  optional string inviterId = 2;// 邀请者Id
  optional string inviterName = 3;// 邀请者昵称
  optional string inviteeId = 4;// 被邀请者Id
  optional string inviteeName = 5;// 被邀请者昵称
  optional int32 type = 6;// 消息类型，0-邀战；5-对战中；6-惩罚中
  optional int32 duration = 7;// 对战时长，单位秒
  optional bool isRandom = 8;// 是否随机
  optional string title = 9;// 邀战标题
  optional string content = 10;// 邀战内容
  optional string inquireGift = 11;// 盘TA礼物Id
  repeated FightRankInfo list = 12;// 对战排行用户列表
  optional int32 inviterStreakCount = 13;// 邀请者连胜次数，大于1或小于-1，才需要显示
  optional int32 inviteeStreakCount = 14;// 被邀请者连胜次数，大于1或小于-1，才需要显示
  optional string inviterAvatar = 15;// 邀请者头像
  optional string inviteeAvatar = 16;// 被邀请者头像
  optional int32 pkKillMomentEnd = 17; // 斩杀结束 0 否 1是，当上面的type = 7时，有效
  optional string otherSideRoomId = 18; // pk时对方的房间id
  optional int32 voiceStatus = 19; // 对方声音源状态，0-关闭声音源 1-开启声音源
  optional bool isPeaked = 20;// 是否巅峰对决
  optional int64 occupyRemainTime = 21;// 攻占玩法，有效剩余时间(秒)
  optional string pkId = 22;// pkid
  optional bool isQualifier = 23;// 是否排位赛
  optional string revengePkId = 24;// 排位赛复仇pkid
}

// 对战心跳广播
message FightHeartBeatBroadcast {
  optional int32 type = 1;// 消息类型，5-对战中；6-惩罚中
  optional int32 duration = 2;// 对战倒计时，单位秒
  optional string inviterId = 3;// 邀请者Id
  optional int32 inviterTotal = 4;// 邀请者对战分数
  optional string inviteeId = 5;// 被邀请者Id
  optional int32 inviteeTotal = 6;// 被邀请者对战分数
  optional string roomId = 7; // 对方的房间id
  optional int32 voiceStatus = 8; // 开关状态， 0-关闭声音源 1-开启声音源
  optional string pkId = 9;// pkid
  optional bool isQualifier = 10;// 是否排位赛
  optional string revengePkId = 11;// 排位赛复仇pkid
}

// 主播修改私聊限制广播
message PrivateMinChatSpendBroadcast {
  optional int32 minChatSpend = 1; // 新的最低消费
}

// PC端欢迎语信息列表，最多三条
message PCRoomWelcomeWordLists {
  repeated string infos = 1; // 欢迎语信息
}

// 公会直播间才艺表演时间广播通知
message TalentTimeBroadcast {
  optional string roomId = 1;// 房间id
  optional int32 talentTime = 2;// 才艺表演时长，单位秒，0代表关闭
}

// 主播对战信息，广播通用
message AnchorFightInfo {
  optional string anchorId = 1;// 主播id
  optional int32 dayCount = 2;// 本日场次
  optional int32 monthWinCount = 3;// 本月胜利场次
  optional int32 monthCount = 4;// 本月场次
  optional int32 anchorStreakCount = 5;// 主播连胜次数，大于1或小于-1，才需要显示
  optional int32 fightMonthLevel = 6;// pk段位
  optional int32 fightMonthScore = 7;// pk月积分
  optional int32 fightMonthRank = 8;// pk月排名
  optional int32 fightWeekScore = 9;// pk周积分
  optional int32 fightWeekRank = 10;// pk周排名
  optional int32 lastFightRank = 11;// 上周排名，只有前3名
}

// 所有对战中房间列表
message AllFightRoomList {
  repeated FightRoomInfo list = 1;// 对战房间列表
}

// 对战房间信息
message FightRoomInfo {
  optional string inviterRoomId = 1;// 邀请者房间Id;
  optional string inviterId = 2;// 邀请者Id
  optional string inviterName = 3;// 邀请者昵称
  optional string inviterAvatar = 4;// 邀请者头像
  optional int32 inviterMonthLevel = 5;// 邀请者段位
  optional string inviteeRoomId = 6;// 被邀请者房间Id;
  optional string inviteeId = 7;// 被邀请者Id
  optional string inviteeName = 8;// 被邀请者昵称
  optional string inviteeAvatar = 9;// 被邀请者头像
  optional int32 inviteeMonthLevel = 10;// 被邀请者段位
}

// 主播修改房间屏幕比率广播
message RoomAspectRatioTypeBroadcast {
  optional int32 aspectRatioType = 1; // 新的屏幕比率
}

//// 查询房间在线的人结果
//message searchRoomUserResult {
//	optional string targetId = 1; // 公会房时为
//	optional int32 logotime = 2; //
//	optional string name = 3; //
//	optional string thirdUrl = 4; // 
//}

// 公会视频房详情
message UnionVideoRoomDetail {
  optional string roomId = 1;// 房间id
  optional string roomName = 2;// 房间名字
  optional bool needPwd = 3;// 是否需要密码(上锁)
  optional bool approve = 4;// 是否排麦审核
  optional bool open = 5;// 是否游客可进
  optional bool vistorChannel = 6;// 是否接待频道
  optional int32 micTime = 7;// 连麦序时长(秒)
  optional int32 pchatMinSpend = 8;// 私聊最低消费门槛
  optional bool speakSwitch = 9;// 是否锁屏
  optional int32 anchorMicTime = 10;// 主播排麦时长（秒）
  optional string roomIdCute = 11;// 房间id-靓号
}

// 对战找不到对手广播
message FightRandomFailBroadcast {
  optional int32 inviteOverTime = 1;// 邀战超时时间，单位秒
}

// 公会视频房主播列表
message UnionVideoRoomAnchorInfos {
  repeated UnionVideoRoomAnchorInfo list = 1;
}

// 公会视频房主播信息
message UnionVideoRoomAnchorInfo {
  optional string userId = 1; // 用户ID
  optional string headUrl = 2;// 用户头像url
  optional string nickName = 3;// 用户昵称
}

//房间是否有用户有守护符广播
message IsExistGuardBroadcast {
  optional bool status = 1; // 是否有守护符状态
}

// 使用守护符视频房全服广播
message UserGuardBroadcast {
  optional string useName = 1;// 使用者的名字
  optional string propName = 2;// 道具名称
  optional string anchorName = 3;// 主播名称
  optional int32 streakCount = 4;// 连胜次数
  optional string giftId = 5;// 礼物ID
  optional string text = 6;// 文本
  optional string resourceName = 7;// 资源名
  optional string userId = 8;// 使用者ID
  optional int32 type = 9;// -1：失败方，1：胜方
}

// 视频房pk宝箱
message LivePkBoxInfo{
  repeated LivePkBoxDetail box = 1;
}

message LivePkBoxDetail{
  optional string pkId = 1; // PK场次ID
  optional string boxLogId = 2; // 宝箱ID
  optional string roomId = 3; // 房间ID
  optional int32 countDown = 4; // 剩余倒计时
  optional int32 boxLevel = 5; // 宝箱等级
}

// 开启宝箱的响应
message LiveOpenPkBoxResult{
  optional int32 boxLevel = 1;// 宝箱等级
  optional string boxName = 2;// 宝箱名称
  optional string giftId = 3; // 礼物ID
  optional string giftName = 4; // 礼物名称
  optional string nickname = 5; // 用户昵称
}

//单流推流数据
message SinglePushUrlResult{
  optional string pushUrl = 1;//推流地址(这里不返回，暂时不用)
  optional string streamId = 2;//单流ID
  optional string mainStreamId = 3;//主流ID
  optional bool pushSignle = 4;//是否需要推单流
  optional string mixStreamId = 5;//主流ID（混流）
  optional string singleStreamId = 6;//次流ID（动态封面不混流）
}

// pk道具广播
message PkPropMessageBroadcast{
  repeated PkPropMessage message = 1; // 消息列表
}

message PkPropMessage{
  optional string giftId = 1; // 道具id
  optional string message = 2; // 消息：：神秘人携带xxx
}

// 主播Pk青少年模式信息
message AnchorPkYouthModeInfo {
	optional bool isYouthMode = 1;// 是否在青少年模式时段，只有true后面字段才有用
	optional int32 surplusJoinCount = 2;// 剩余可参与次数
	optional string pkYouthModeHour = 3; // pkId青少年模式时段，20-22
	optional int32 pkYouthModeJoinCount = 4;// pk青少年模式每日可参与次数
}

// 邀请连麦动作广播
message InviteConnectMicBroadcast {
  optional string inviterId = 1;// 邀请者Id
  optional string inviterName = 2;// 邀请者昵称
  optional string inviterHeadUrl = 3;// 邀请者头像
  optional string inviteeId = 4;// 被邀请者Id
  optional string inviteeName = 5;// 被邀请者昵称
  optional string inviteeHeadUrl = 6;// 被邀请头像
  optional int32 type = 7;// 消息类型，0-邀请连麦；1-取消邀请；2-同意邀请；3-拒绝邀请；4-准备中；5-连麦中；7-退出；9-网络问题，断开；10-邀请超时
  optional int32 duration = 8;// 对战时长，单位秒
  optional bool isRandom = 9;// 是否随机
  optional int32 waitDuration = 10;// 等待应答时长，单位秒
}

// 视频直播间热舞状态广播
message LiveRoomDanceStatusBroadcast {
  optional bool dancing = 1;// 是否在热舞中
}

// 巅峰白名单信息
message PeakedPkInfo {
  repeated SelectedFightFriendVo list = 1;// 白名单列表
  repeated SelectedFightFriendVo friendList = 2;// 好友列表
}

// 巅峰整蛊菜单信息
message PeakedPkPrankInfo {
  optional string prank = 1;// 本轮选中的惩罚
  repeated string prankList = 2;// 整蛊列表
  optional bool selectable = 3;// 能否选择（巅峰pk发起人）
}

// 选择巅峰整蛊公屏广播
message ChoosePeakedPkPrankBroadcast {
  optional string userId = 1;// 用户ID
  optional string nickName = 2;// 用户昵称
  optional string prank = 3;// 本轮选中的惩罚
}

// 多人连麦配置
message MultiConnectMicConfig {
  repeated int32 joinCount = 1;// 可选人数
  repeated int32 timeDuration = 2;// 可选连麦时长，单位秒（展示要转成分钟）
  repeated MultiConnectMicGameInfo games = 3;// 可选玩法
}

// 多人连麦玩法信息
message MultiConnectMicGameInfo {
  optional string gameId = 1;// 玩法id
  optional string gameName = 2;// 玩法名称
  optional string gameLogo = 3;// 玩法图片
  optional string gameDesc = 4;// 玩法描述
  optional string gameUrl = 5;// 玩法跳转页，有即可跳转到对应说明页
  optional string gameDefaultTitle = 6;// 玩法默认主题
}

// 多人连麦基础信息
message MultiConnectMicBaseInfo {
  optional string inviterId = 1;// 邀请者Id
  optional string inviterName = 2;// 邀请者昵称
  optional string inviterHeadUrl = 3;// 邀请者头像
  optional int32 joinCount = 4;// 连麦人数
  optional int32 duration = 5;// 连麦时长，单位秒
  optional string gameTitle = 6;// 玩法主题
  optional MultiConnectMicGameInfo gameInfo = 7;// 玩法信息
  optional int32 state = 8;// 多人连麦状态，1-邀请中，2-准备连麦时（5s），3-连麦中，4-才艺展示
  optional int32 leftTime = 9; // 当前阶段剩余时间，单位秒
}

// 多人连麦信息（广播通用）
message MultiConnectMicDataInfo {
  optional MultiConnectMicBaseInfo baseInfo = 1;// 多人连麦基础信息
  repeated MultiConnectMicUserInfo micInfos = 2;// 连麦列表
  optional MultiConnectMicDrumFlowerBoomBroadcast boomInfo = 3;// 只有在cmd请求，并且连麦中，玩法是击鼓传花才返回
}

// 连麦成员信息
message MultiConnectMicUserInfo {
  optional string userId = 1;// 用户id
  optional string userName = 2;// 用户昵称
  optional string userUrl = 3;// 用户头像
  optional int64 score = 4;// 连麦中获取分数
  optional int64 boomScore = 5;// 击鼓传花玩法炸弹分
  optional int32 micSeq = 6;// 麦位序号，-1代表随机邀请，-2代表好友邀请
  optional int32 boomState = 7;// 击鼓传花结果类型，1-避雷王，2-吃瓜群众，3-踩雷王
  optional int32 voiceStatus = 8; // 对方声音源状态，0-关闭声音源 1-开启声音源，-1代表本房
}

// 邀请多人连麦动作广播
message InviteMultiConnectMicBroadcast {
  optional MultiConnectMicBaseInfo baseInfo = 1;// 多人连麦基础信息
  optional string targetId = 2;// 目标id（受邀者/退出人）
  optional string targetName = 3;// 被邀请者昵称
  optional string targetHeadUrl = 4;// 被邀请头像
  optional int32 type = 5;// 消息类型，1-召唤邀请，2-好友邀请，3-参与成功，4-参与失败，5-拒绝参与，6-退出连麦，7-主动解散（只剩一人/未成团发起人退出），8-超时解散，9-结束解散，10-邀请超时，11-成团
  optional int32 waitDuration = 6;// 等待应答时长，单位秒（type=1/2才有值）
}

// 多人连麦中分数（含炸弹变化）变化通知
message MultiConnectMicScoreChangeBroadcast {
  optional string userId = 1;// 用户id
  optional int32 type = 2;// 分数类型，1-连麦中获得分数，2-击鼓传花玩法炸弹分
  optional int64 score = 3;// 分数
}

// 多人连麦击鼓传花玩法炸弹广播
message MultiConnectMicDrumFlowerBoomBroadcast {
  optional int32 boom = 1;// 炸弹类型（爆炸累计分）
  optional string userId = 2;// 炸弹当前主播
  optional int32 leftTime = 3;// 炸弹剩余时间，单位秒
  optional int32 lastBoom = 4;// 上轮炸弹爆炸分（只有爆炸才有值）
  optional string lastBoomUserId = 5;// 上轮炸弹爆炸主播（只有爆炸才有值）
  optional int64 currScore = 6;// 当前炸弹累计值
  optional int64 scoreLimit = 7;// 当前炸弹转移所需累计值（0不是刚开始，送任意礼物可转移）
}

// 多人连麦击鼓传花玩法结果广播
message MultiConnectMicDrumFlowerResultBroadcast {
  optional int32 state = 1;// 结果类型，1-避雷王，2-吃瓜群众，3-踩雷王
  optional int64 score = 2;// 连麦中获取分数
  optional int64 boomScore = 3;// 击鼓传花玩法炸弹分
  repeated FightRankUserInfo userInfos = 4;// 对战排行用户列表
}

//热度卡广播 返回广播：
message HeatCardBroadcast {
  //使用人Id
  optional string userId = 1;
  //昵称
  optional string  nickName = 2;
  //房间名称
  optional string  roomName = 3;
  //是否开启隐身斗篷
  optional bool isWarriorCloak = 4;
  //计算好的热度
  optional double value = 5;
  //是否使用 true: 使用 false: 热度卡过期
  optional bool isUse = 6;
  //是否匿名送礼
  optional bool isAnonymous = 7;

}

// 主播整蛊卡接待开关
message PrankCardSwitch {
  optional bool flag = 1;//true为开启，false为关闭
  optional bool isWhite = 2;//是否在整蛊卡白名单中
}

// 使用道具，拓展errorresult
message useItemErrorInfo  {
  optional string errorCode = 1;
  optional string description = 2;
  optional string errorValues = 3; //拓展字段
}

//整蛊卡使用广播 返回广播：LiveResult.PrankCardBroadcast
message PrankCardBroadcast {
  //使用人Id
  optional string userId = 1;
  //昵称
  optional string  nickName = 2;
  //整蛊项目名称
  optional string  prankName = 3;
  //是否开启隐身斗篷
  optional bool isWarriorCloak = 4;
  //是否匿名送礼
  optional bool isAnonymous = 5;

}

//我的 - 直播明细
message MyLiveDetails {
  repeated VideoLiveDetails info = 1;
}

//个人视频房直播明细
message VideoLiveDetails {
  optional double liveEarn = 1; //直播收益（单位：元）
  optional int64 liveTime = 2; //开播时长（单位：毫秒）
  optional int32 watchPeopleCount = 3; //观看人数
  optional int32 consumerCount = 4; //送礼人数
  optional int32 addFanCount = 5; //新增关注
  optional string liveDay = 6; //直播日期
  optional int32 watchFanCount = 7; //观看粉丝数
}

//个人视频房用户消费明细
message VideoLiveConsumeDetailsList {
  repeated VideoLiveConsumeDetails info = 1;
}

message VideoLiveConsumeDetails {
  optional string userId = 1; // 用户ID
  optional string nickname = 2; // 用户昵称
  optional string headUrl = 3; // 用户头像
  optional double consumeMoney = 4; // 用户送礼金额（单位：分）
  optional bool isWarriorCloak = 5;//是否开启隐身斗篷
}

message GiftConfigInfo {
  optional int32 showTab = 1;
  repeated GiftBoxGifts giftBoxGiftInfos = 2;
  optional string giftName = 3;
  optional string animationName = 4;
  optional int32 giftType = 5;
  optional int32 showArea = 6;
  optional double duration = 7;
  optional int32 price = 8;
  optional double animScaleRate = 9;
  optional string vibrationFrequency = 10;
  optional string broadcastAnimationName = 11;
  optional int64 alterDateTime = 12;
  optional string broadcastBgAndAnimationName = 13;
  optional string giftNameI18n = 14;//国际化礼物名称
}

message GiftBoxGifts {
  optional string giftId = 1;
  optional string giftName = 2;
  optional string giftNameI18n = 3;//国际化礼物名称
}

//接待房间数据
message ReceptionData {
  optional int32 liveMode = 1;//接待房间主持开播模式 0：视频 1：语音
  repeated ReceptionAnchor anchorList = 2;//展示中的接待主播数据列表
  optional int32 width = 3;//整个画布的宽度
  optional int32 height = 4;//整个画布的高度
  optional string streamId = 5;//接待房的流ID(合流机器人ID)
  optional string clickAnchorId = 6;//当前放大画面的主播ID
}

//接待中的主播数据
message ReceptionAnchor {
  optional int32 status = 1;//主播状态 0：未添加主播 1：邀请中等待主播同意 2：正在连接，精彩马上呈现 3：接待中
  optional string anchorId = 2;//主播Id
  optional string nickName = 3;//主播昵称
  optional bool voiceStatus = 4;//是否开启声音
  optional int32 positionX = 5;//在视频中的x坐标
  optional int32 positionY = 6;//在视频中的y坐标
  optional int32 width = 7;//视频的宽度
  optional int32 height = 8;//视频的高度
  optional int32 inviteOverTime = 9;//邀请剩余时间（秒）status=1时有效
  optional string headUrl = 10;//主播头像地址
  optional int32 nobleId = 11;//贵族ID
  optional int32 funLevel = 12;//财富等级
  optional int32 isFocus = 13;//是否关注
  optional int32 jobId = 14;//jobId
  optional int32 sex = 15;//性别类型
  optional int32 anchorLevel = 16;//主播等级
  optional int32 maskTime = 17;//遮罩时间
}

//公会厅新排麦厨窗数据
message LiveRoomWindowsInfo {
  optional int32 videoType = 1;//视频窗口类型 1：1人窗 2：2人窗 3：3人窗 4：四人窗 6：6人窗
  repeated VideoWindowsData windowsDatas = 2;//各个厨窗数据
  optional bool viewPopularity = 3;//是否显示人气值
}


//厨窗数据
message VideoWindowsData {
  optional int32 index = 1;//厨窗位置1-6
  optional int32 status = 2;//厨窗状态 0：空闲 1:主播候场 2:主播连接中|主播出镜中
  optional string statusDesc = 3;//厨窗状态描述 跟随状态 0：虚位以待 1:主播候场，5秒后精彩马上呈现  2:主播连接中|主播出镜中 前端判断，主播没有流时为连接中，有流则显示流，不用显示文字
  optional bool lock = 4;//是否上锁
  optional string anchorId = 5;//主播ID
  optional string anchorName = 6;//主播昵称
  optional bool voiceStatus = 7;//主播声音状态 false为闭麦
  optional string anchorHeadUrl = 8;//主播头象URL
  optional int32 micTime = 9;//麦序倒计时时间(秒)
  optional int32 micTimeStatus = 10;//0 倒计时 1:长驻
  optional int32 aspectRatioType = 11;//屏幕比率类型，0-默认app，1-4：3，2-16:9 ...待补充
  optional int32 popularity = 12;//人气值
  optional int64 popularityLastTime = 13;//人气值最后一次 增长时间
}


message LiveRoomQueueResult {
  repeated LiveRoomQueueInfo queueList = 1;
}


message LiveRoomQueueInfo {
  optional string anchorId = 1;//主播ID
  optional string anchorName = 2;//主播昵称
  optional bool live = 3;//是否开播中
  optional bool voiceStatus = 4;//主播声音状态 false为闭麦
  optional int32 micTimeStatus = 5;//0 倒计时 1:长驻
  optional int32 micTime = 6;//麦序倒计时时间(秒)
  optional int32 index = 7;//厨窗位置1-6
}

//简单麦位数据
message MicSimpleInfo {
  optional string userId = 1;//连麦用户ID
  optional string nickName = 2;//连麦用户昵称
  optional string headUrl = 3;//连麦用户头像
  optional string headFrameId = 4;//连麦用户头像框
  optional string haloAnimationFile = 5;//连麦用户说话光影
  optional string micShadowFile = 6;//连麦用户麦位光圈
}


message LiveRoomMicResult {
  repeated LiveRoomMicData micDatas = 1;
  optional bool controlMic = 2;//是否控麦中
  optional int32 myStatus = 3;//我的状态  0-可申请；1-申请中；2-已连麦；3-禁言中 ; 4:等待同意连麦（上麦）
  optional int32 queueNum = 4;//排队人数
}

message  LiveRoomMicData {
  optional int32 micIndex = 1;//当前位置
  optional int32 micTime = 2;//上麦时长(秒)
  optional bool lock = 3;//是否上锁
  optional string userId = 4;
  optional string nickName = 5; //用户昵称
  optional int32 sex = 6; // 姓别 0 未知 1:男 2:女
  optional string headFrameId = 7; // 头像框ID
  optional bool isWarriorCloak = 8;// 是否开启勇者斗篷
  optional string headUrl = 9; // 头像url
  optional bool forbigmic = 10;//是否禁麦中
  optional bool anchorForbidMic = 11; // 连麦时是否被主播禁麦，PC使用
  optional string haloAnimationFile = 12;//头像光圈动画
  optional bool micStatus = 13; //麦克风状态 true开麦，false闭麦
  optional string micShadowFile = 14; //麦位光影动画文件
  
  optional UserResult.UserCloakInfo cloakInfo = 15;// 隐身斗篷信息
}



//大厅获取视频房轮播位列表
message VideoCarouselRoomList {
  repeated LiveRoomInfo topList = 1;//顶部轮播位列表
  repeated LiveRoomInfo middleList = 2;//中间部轮播位列表
  optional int32 showType = 3; // 显示位置类型 0不显示 1 顶部  2中间
  optional string title = 4; // 轮播位推荐标题
}

//橱窗人气值关开信息
message WindowsPopularityTimeInfo {
  optional bool open = 1;//是否开启
  optional int64 timeMs = 2;//当前选择的时间（毫秒
  optional int64 overTimeMs = 3;//人气值剩余时间（毫秒）
  repeated TimeTypeInfo timeTypes = 4;//可选的时间类型
}

message TimeTypeInfo {
  optional int64 timeMs = 1;//可选的时间（毫秒）
  optional string timeTypeDesc = 2;//可选的时间类型描述
}

// 语音房多麦位赠送礼物广播
message VoiceRoomSendMicGiftsBroadcast {
  optional string fromUserId = 1;// 送礼用户Id
  optional string fromNickName = 2;// 送礼用户昵称
  optional string giftId = 3;//赠送的礼物ID
  optional int32 giftNum = 4;//赠送的礼物数量
  optional int32 type = 5;// 广播类型，0为全频道广播，1为房间广播
  optional int32 income = 6;// 当前房间收益，如果非主播，返回-1，前端不处理
  optional int32 fromFunlevel = 7;// 送礼用户娱乐等级
  optional int32 fromLiveLevel = 8;// 送礼用户直播等级
  optional int32 fromJobId = 9;// 送礼用户角色，公会直播间才有效，默认-1代表不处理
  optional string fansGroupName = 10;//发送者粉丝团名字
  optional string roomId = 11;//房间ID
  repeated LiveRoomGiftReceiverInfo receiverInfos = 12;//房间礼物接收者数据数组
  optional int32 groupNum = 13;//礼物分组数量，默认1
  optional int32 funType = 19;//频道分类
  optional int32 totalGiftDiamond = 21;//礼物总价值(钻石)

  optional int32 fromUserlogoTime = 22;// 送礼用户头像
  optional string fromUserThirdUrl = 23;// 送礼用户第三方昵称
  optional int32 fromUserVipLv = 24; //平台vip
  optional bool sendAllMic = 27;//判断是否送全麦

  optional string msgTemplate = 31; // 展示的文案模板,如 [1] 给 [2] 幸运助力，触发了[3][4]x[5]，助力闪耀超星赛。
  optional bool isAnonymous = 33; // 是否匿名
  // [1]:使用送礼者昵称替换
  // [2]:使用收礼者昵称替换
  // [3]:使用礼物名称替换
  // [4]:使用礼物icon替换
  // [5]:使用礼物数量替换,注意!!!数量 = giftNum * groupNum
  optional GiftConfigInfo giftConfigInfo = 36;
  optional int64 sendTime = 38; //送礼时间
}

// 开启排位赛心跳通知广播
message openQualifierFightBroadcast {
  optional int64 startTime = 1; // 开启pk排位赛时间
  optional int64 endTime = 2; // 结束pk排位赛时间
  optional string anchorMsg = 3;// 主播展示提示
  optional string userMsg = 4;// 用户展示提示
  optional bool isOpen = 5;// 是否开启
  optional int64 currTime = 6;// 系统时间
}

// 排位赛结果广播
message QualifierFightResultBroadcast {
  optional string pkId = 1;// pkId
  optional string anchorId = 2;// 主播Id
  optional string anchorName = 3; // 主播名称
  optional int32 pkTotalScore = 4;// 主播本场总积分
  optional int32 isWinOrlose = 5;// 1：胜利，0：平局，-1：失败
  repeated RankUserInfo userInfos = 6;// 用户信息列表
  optional int32 pkKillMomentEnd = 7;// 斩杀结束
  optional bool isShowAward = 8;// 是否展示pk排位奖励
  optional string revengePkId = 9;// 排位赛复仇pkId
}

message RankUserInfo {
  optional string userId = 1; // 用户ID
  optional string userName = 2; // 用户昵称
  optional string headUrl = 3; // 头像
  optional bool isAddStar = 4; // 是否加星
}

// 排位赛段位变化广播
message QualifierFightRankChangeBroadcast {
  optional string userId = 1; // 用户ID
  optional string rankId = 2; // 段位ID
  optional string rankLevel = 3; // 段位等级
}

// 排位赛个人升段广播 (升段才发)
message QualifierFightUpgradeHigherRankBroadcast {
  optional string userId = 1; // 用户ID
  optional string rankId = 2; // 段位ID
  optional int32 type = 3; // 跳转类型 1-正常 2-可以到段位商店
  optional string rankLevel = 4; // 段位等级
}

// 排位赛惩罚加时广播
message addQualifierPkPunishmentTimeBroadcast {
  optional string pkId = 1;// pkId
  optional string userId = 2;// 用户Id
  optional string nickName = 3;// 用户昵称
  optional string headUrl = 4;// 用户头像
  optional int32 addTime = 5;// 加时时长，单位秒
  optional int32 leftTime = 6; // 当前阶段剩余时间，单位秒
}

// 排位赛差1颗星升段广播
message QualifierFightOneStarLeftBroadcast {
  optional string pkId = 1; // pkId
  optional string userId = 2; // 用户ID
  optional string currentRankDetailName = 3; // 用户当前段位名称
  optional string nextRankDetailName = 4; // 用户下一个段位名称
}