syntax = "proto2";

package RankResult;

//option optimize_for = LITE_RUNTIME;

option java_package = "com.miaole.live.protocol.response";
option java_outer_classname = "RankResult";

import "MedalResult.proto";

message RankList {
  repeated RankInfo list = 1;
}

message RankInfo {
  optional int32 rank = 1; //本次排名
  optional int64 preRank = 2; //上次排名
  optional string id = 3; //ID(玩家ID 或 公会ID 等等)
  optional string name = 4; //名称 (玩家名 或 公会名)
  optional int64 logoTime = 5; //logo修改时间
  optional int32 rankScore = 6; //排名评分
}

//直播排行列表数据
message LiveRankList {
  repeated LiveRankInfo list = 1;
  optional int32 totalRank = 2; //排行榜总值
  optional LiveRankInfo myRankInfo = 3;//我的排名信息
  repeated LiveRankInfo myRoomRankInfo = 4;//我的房间排名信息
}

//直播排行数据
message LiveRankInfo {
  optional int32 rank = 1; //本次排名
  optional string userId = 2; //ID(玩家ID 或 公会ID 等等)
  optional double rankScore = 3; //排名评分
  optional bool isLive = 4; // 是否开播
  optional int64 rankScorel = 5; // 排名评分的int64类型
  // 小程序接口添加，供进房使用
  optional string roomId = 6;// 开播时需要将房间id加上
  optional string bindUnionLiveRoomId = 7;// 若是公会直播间，需要将公会直播间的房间ID也加上
  optional string userName = 8; // 用户昵称
  optional string headUrl = 9; // 头像路径
  optional int32 funLevel = 10;// 财富等级
  optional int32 vipLevel = 11;// vip等级
  optional bool isAnonymous = 12;//是否匿名
  optional bool isWarriorCloak = 13; //是否开启勇者斗篷
  optional string virtualRoleImageUrl = 14;//用户的虚拟形象uri(不含域名) 未创建虚拟用户时为空
  optional bool roleImageOverTime = 15;//用户的虚拟形象是否过期
  optional int32 virtualRoleSex = 16;// 用户的虚拟形象性别

  optional int32 vipType = 17; //VIP类型  30:月度会员 90:季度会员 180:半年度会员 360:年度会员
  optional int32 charmLevel = 18;// 魅力等级
  optional int32 level = 19;// 平台等级
  optional int32 nobleId = 20;//当前贵族ID 0 为没有贵族
  optional int32 sex = 21;// 性别
  optional int32 age = 22;// 年龄
  optional string countryIcon = 23;//国旗图标emoji
  
  optional int32 partyLevel = 24;// 酒吧贵气等级

  optional string rankItemName = 25;// 排行榜项名称 用户昵称/房间名称
  optional string rankItemIcon = 26;// 排行榜项图标 用户头像/房间封面图
}

// 宠物排行列表数据
message PetRankList {
  optional string userId = 1; // 本人id
  optional int32 rank = 2; // 本人名次
  optional double rankScore = 3; // 本人分数
  repeated PetRankInfo list = 4;
}

// 宠物信息数据
message PetRankInfo {
  optional int32 rank = 1; // 名次
  optional string userId = 2; // 用户id
  optional double rankScore = 3; // 分数
  optional bool hasPet = 4; //是否领养宠物
}

// 直播间终极土豪广播
message LiveRoomTotalTyrantBroadcast {
  optional string userId = 1; // 终极土豪用户id
  optional string nickName = 2; // 终极土豪用户昵称
  optional string headUrl = 3; // 终极土豪用户头像
  optional int32 vip = 4; // 终极土豪用户vip等级
  optional int32 sex = 5; // 终极土豪用户性别
  optional int32 funLevel = 6; // 终极土豪用户财富等级
}

//娱乐公会排行列表数据
message FunTypeUnionRankList {
  repeated FunTypeUnionRankInfo list = 1;
}

//娱乐公会排行数据
message FunTypeUnionRankInfo {
  optional int32 rank = 1; //本次排名
  optional string userId = 2; //用户Id
  optional double rankScore = 3; //排名评分
}
//活动头像框广播
message ActivityHeadFrameBroadcat {
  repeated HeadFrameBroadcatItem items = 1;
}
//活动头像框广播项
message HeadFrameBroadcatItem {
  optional string userId = 1; //用户Id
  optional string headFrameId = 2; //头像框id
}
//
message HeartBeatValueRankingList{
  repeated HeartBeatValueRankingInfo list = 1;
}

message HeartBeatValueRankingInfo{
  optional int32 rank = 1; //本次排名
  optional string userId = 2; //用户Id
  optional string heartbeatValue = 3; //分数
  optional int64 lastTime = 4;//最后一次 增长时间
}

// 公会人气/消费日榜排行信息
message UnionDayRankList {
  repeated UnionDayRankInfo rankInfoList = 1; // 榜单信息
}

message UnionDayRankInfo {
  optional string userId = 1; // 用户名
  optional string userName = 2; // 用户昵称
  optional string headUrl = 3; // 头像路径
  optional int32 rank = 4; // 排行名次
  optional int64 rankSocre = 5; // 排行分数
  optional int32 level = 6; // rankType为27时返回主播等级，为28时返回财富等级
  optional MedalResult.MedalInfo starMedal = 7;// 巨星之旅勋章，rankType为27时返回主播勋章，为28时返回用户勋章，可能不存在该勋章
  optional bool isVip = 8; // 主播/用户是否为VIP
  optional string roomId = 9; // 所在房间ID
  optional bool isAnonymous = 10; // 是否匿名
  optional bool isWarriorCloak = 11; //是否开启勇者斗篷
  optional bool isMysteryManUser = 12; // 是否神秘人
  optional string virtualRoleImageUrl = 13;//用户的虚拟形象uri(不含域名) 未创建虚拟用户时为空
  optional bool roleImageOverTime = 14;//用户的虚拟形象是否过期
  optional int32 virtualRoleSex = 15;// 用户的虚拟形象性别
}


//多个排行榜的前N数据结果
message MultiTopRankResult {
  repeated MultiTopRankInfo list = 1;
}

//排行榜的前N数据
message MultiTopRankInfo {
  repeated LiveRankInfo list = 1;//排行榜数据
  optional int32 rankType = 2;//排行榜类型
}