syntax = "proto2";

package BagResult;

//option optimize_for = LITE_RUNTIME;

option java_package = "com.miaole.live.protocol.response";
option java_outer_classname = "BagResult";

//玩家钱包数据
message Wallet {
  optional double blackBean = 1; //v币
  optional double diamond = 2; //钻石
  /*optional double redBean = 3; //红豆
  optional int32 coin = 4; //金币
  optional int32 ingots = 5; // 元宝*/
}

//包裹礼物列表
message GiftList {
  repeated GoodsInfo goods = 1;// 用户包裹礼物列表
}

//道具列表
message PropList {
  repeated GoodsInfo goods = 1;// 用户道具列表
}

//包裹列表
message PackageList {
  repeated GoodsInfo goods = 1;// 用户包裹列表
}

//纪念卡礼物列表
message SouvenirCardGiftList {
  repeated SouvenirCardGiftInfo souvenirCardGiftInfo = 1;// 纪念卡礼物列表
}


//贵族礼物列表
message NobleGiftList {
  repeated NobleGiftInfo nobleGiftInfo = 1;// 贵族礼物列表
}

//玩家当前的座驾列表
message CarList {
  repeated GoodsInfo goods = 1;
  optional string useCarId = 2; //使用中的坐驾ID
}

message GoodsInfo {
  optional string goodsId = 1; //物品ID
  optional int32 num = 2; //物品数量
  optional int64 remainTime = 3; //有效剩余时间(毫秒)
  optional int64 updateTime = 4; //创建或续期时间
  optional int32 goodsType = 5; //物品类型 1-礼物;2-座驾;3-宝箱;4-藏宝图
  optional int32 status = 6; //使用状态 0 未使用 1 使用中
  optional int64 price = 7; //礼物钻石价值
  optional string goodsName = 8; //物品名称
  optional int32 labelId = 9; //标签id
  optional bool isGiftWall = 10; //是否是礼物墙礼物
  optional string luckyBagScope = 11; //福袋助力箱提示范围
  optional string goodsNameI18n = 12; //物品名称
}

//纪念卡礼物
message SouvenirCardGiftInfo {
  optional int64 id = 1; //id
  optional string giftId = 2; //物品ID
  optional int32 giftType = 3; //礼物类型
  optional int32 giftFamily = 4; //礼物科目
  optional string giftName = 5; //礼物名称
  optional int32 price = 6; //价格
  optional int32 giftLabelId = 7; //礼物标签ID
  optional int64 labelStartTime = 8; //标签开始时间
  optional int64 labelEndTime = 9; //标签结束时间
  optional int32 giftWallCategory = 10; //礼物墙分类
  optional int32 sendTimeInterval = 11; //送礼时间间隔
}

//贵族礼物
message NobleGiftInfo {

  optional string giftId = 1; //物品ID
  optional bool isLock = 2; // 是否锁定：true-锁定；false-解锁
  optional int32 nobleType = 3; //贵族类型，1-青铜 2-白银 3-黄金 4-铂金 5-砖石 6-九五至尊 7-定制九五至尊 200-神贵族
  optional string nobleName = 4;//贵族名称
  optional int32 diamonds = 5; //钻石
  optional string desc = 6; //描述
  optional int32 intimacy= 7;//亲密值
  optional int32 wealthExp = 8;//财富经验
  optional int32 unlockNum = 9;//解锁同类型礼物数量

}


//贵族礼物详情
message NobleGiftDetail {

  optional string giftId = 1; //物品ID
  optional string giftIcon = 2; //物品url
  optional string desc = 3; //描述
  optional string overTime = 4; // 到期时间
  optional int32 btnState = 5; // 按钮状态（1-立即开通 2-续费）

}

//获得奖品通知
message GainAwardNoticBroadcast {
  optional string title = 1; //奖品标题
  repeated string rewardName = 2; //奖品名
  repeated int32 rewardNum = 3; //奖品数量
  optional int32 type = 4; //奖励类型
}

// 元宝商品库存列表
message IngotsShopRemainList {
  repeated IngotsShopRemainInfo list = 1;
}

// 元宝商品库存信息
message IngotsShopRemainInfo {
  optional string goodsId = 1; // 元宝商品Id
  optional int32 remain = 2; // 库存
}
//送礼物下单结果信息
message RewardGiftOrderVO {
  optional string orderId = 1; //订单id
  optional string sourceType = 2; //数据源类型（6：送礼物,51:盖章）
}

message FreeGiftDataInfo {
  optional string freeGiftId = 1;//免费礼物ID
  optional int32 freeGiftNum = 2;//当前免费礼物数量
  //免费礼物倒计时结束时间(时间戳),(取服务器当前时间-freeGiftOverTime)/1000 得到倒计时
  // -1：已停止倒计时 没有可获得的礼物时，或免费礼物已经达到上限
  optional int64 freeGiftOverTime = 3;
}

// 周星礼物信息
message WeekStarGiftInfo {
  optional string giftId = 1;// 礼物id
  optional string charmId = 2;// 魅力用户id
  optional string charmName = 3;// 魅力用户名称
  optional string charmHead = 4;// 魅力用户头像
  optional string charmNum = 5;// 魅力用户数量
  optional string richId = 6;// 财富用户id
  optional string richName = 7;// 财富用户名称
  optional string richHead = 8;// 财富用户头像
  optional string richNum = 9;// 财富用户数量
}

// 周星礼物id、角标
message WeekStarGiftList {
  repeated WeekStarGift weekStarGifts = 1; //已冠名周星礼物信息
  repeated string newWeekStarGifts = 2; //新冠名周星礼物id（虚位以待）
}

//周星礼物
message WeekStarGift {
  optional string giftId = 1; //周星礼物ID
  optional bool isTitle = 2; //是否有冠名
  optional string anchorId = 3; // 主播id
  optional string anchorAvatar = 4; // 主播头像
  optional string anchorNickName = 5; // 主播昵称
  optional string userId = 6; // 用户id
  optional string userAvatar = 7; // 用户头像
  optional string userNickName = 8; // 用户昵称
  optional int64 score = 9; // 星值分数
  optional string anchorRoomId = 10; // 主播房间id
}

// 获取上周周星礼物榜首返回结果
message WeekStarInfo {
  optional string giftId = 1;// 礼物id
  optional string anchorId = 2; // 主播id
  optional string anchorAvatar = 3; // 主播头像
  optional string anchorNickName = 4; // 主播昵称
  optional string userId = 5; // 用户id
  optional string userAvatar = 6; // 用户头像
  optional string userNickName = 7; // 用户昵称
  optional int64 score = 8; // 星值分数
  optional string anchorRoomId = 9; // 主播房间id
}

// 获取定制火箭界面信息
message CustomRocketPageInfo {
  optional UserCustomRocket userCustomRocket = 1;// 用户自定义火箭信息
  optional int32 totalDiamond = 2;//用户自定义火箭价值蓝钻
  repeated CustomRocketTabConfig customRocketTabConfig = 3;//自定义火箭配置信息
}

// 用户自定义火箭信息
message UserCustomRocket {
  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;// 图片
}

// 自定义火箭配置
message CustomRocketTabConfig {
  optional string positionId = 1;// Tab ID
  optional bool isNeedUnlock = 2;// 是否需要解锁
  optional int32 unClockType = 3;// 解锁类型
  optional string unClockConfig = 4;// 解锁配置
  repeated CustomRocketModuleConfig customRocketModuleConfig = 5;//Tab组件配置
  optional string name = 6;// 名字
}

message CustomRocketModuleConfig {
  optional string positionId = 1;// 组件 ID
  optional string name = 2;// 名称
  optional string icon = 3;// 图片
  optional string diamond = 4;// 价值蓝钻数
  optional bool isNeedUnlock = 5;// 是否需要解锁
  optional int32 unClockType = 6;// 解锁类型
  optional string unClockConfig = 7;// 解锁配置
}


// 王牌礼物id、角标
message TrumpGiftList {
  repeated TrumpGift trumpGifts = 1; //王牌礼物
}

//王牌礼物
message TrumpGift {
  optional string giftId = 1; //王牌礼物ID
  optional bool isTitle = 2; //是否有冠名
}

// 获取礼物王牌榜首返回结果
message TrumpInfo {
  optional string giftId = 1;// 礼物id
  optional string anchorId = 2; // 主播id
  optional string anchorAvatar = 3; // 主播头像
  optional string anchorNickName = 4; // 主播昵称
  optional string userId = 5; // 用户id
  optional string userAvatar = 6; // 用户头像
  optional string userNickName = 7; // 用户昵称
  optional int64 score = 8; // 分数
  optional int64 rank = 9; // 排名
}


// 荣耀连击礼物id
message ComboGiftList {
  repeated string giftId = 1; //礼物id
}

// 荣耀连击返回结果
message ComboInfo {
  optional int64 comboCount = 1;// 连击数
  optional int32 status = 2;// 是否解锁，0未解锁，1已解锁
  optional int64 comboComplete = 3;// 达标值
  optional double percentage = 4;// 进度百分比
  optional string activityUrl = 5;// 活动链接
}

// 使用福袋助力箱结果(返回跳转的tab、giftId)
message LuckBagHelpBoxInfo {
  optional int32 tabVideoIndex = 1;// 跳转目标视频房tabIndex
  optional string giftId = 2; // 跳转目标礼物id
  optional int32 tabVoiceIndex = 3;// 跳转目标语音房tabIndex
}

// 送福袋产出结果通知，只通知送礼人（已屏蔽）
message SendLuckyBagResultBroadcast {
  optional string luckyBagId = 1;// 福袋id
  optional int32 joinCount = 2;// 送礼次数
  repeated LuckyBagPopGift popGifts = 3;// 产出礼物信息列表
}

// 福袋产出礼物信息
message LuckyBagPopGift {
  optional string giftId = 1;// 礼物id
  optional string giftName = 2;// 礼物名称
  optional int64 giftPrice = 3;// 礼物钻石价值
  optional int32 giftNum = 4;// 礼物数量
  optional bool isHighLight = 5;// 是否高亮
  optional string giftNameI18n = 6;// 国际化礼物名称
}

// pk玩法礼物(嘲讽/攻占)广播
message SendPKGameGiftBroadcast {
  optional string userId = 1;// 发起人Id
  optional string userName = 2;// 发起人昵称
  optional string roomId = 3;// 我方房间id
  optional string roomName = 4;// 我方房间昵称
  optional string fightRoomId = 5;// 对方房间id
  optional string fightRoomName = 6;// 对方房间昵称  
  optional int32 gameType = 7;// 玩法类型（1：嘲讽，2：攻占）
  optional int64 remainTime = 8;// 攻占玩法，有效剩余时间(秒)，只有gameType=2才有值
  optional bool isWarriorCloak = 9;//是否开启隐身斗篷
}

// 冠名礼物列表
message GiftNamingInfo {
  repeated GiftNamingDetail giftNamingDetail = 1;   // 冠名礼物信息
}

// 冠名礼物信息
message GiftNamingDetail {
  optional string userId = 1;       // 冠名用户ID
  optional string userName = 2;     // 冠名用户昵称
  optional string giftId = 3;       // 冠名礼物ID
  optional string userHeadUrl = 4;  // 冠名用户头像
  optional string title = 5;        // 冠名礼物title
}

// 冠名礼物广播
message GiftNamingBroadcast {
  optional GiftNamingInfo giftNamingInfo = 1;   // 冠名礼物信息
}


// 高甜时刻礼物id
message HighSweetGiftList {
  repeated string giftId = 1; //礼物id
}

// 高甜时刻返回结果
message HighSweetInfo {
  optional int64 highSweetCount = 1;// 进度数
  optional int32 status = 2;// 是否解锁，0未解锁，1已解锁
  optional int64 comboComplete = 3;// 达标值
  optional double percentage = 4;// 进度百分比
  optional string activityUrl = 5;// 活动链接
}
//获取礼物樱桃庄园关系绑定信息
message CherryGardenBindInfo{
  optional string anchorId = 1;       // 主播ID
  optional string anchorNickName = 2;     // 主播昵称
  optional string anchorHeadUrl = 3;       // 主播头像
  optional string userId = 4;       // 用户id
  optional string userNickName = 5;     // 用户昵称
  optional string userHeadUrl = 6;       // 用户头像
}

// 送福袋产出结果新通知，只通知送礼人（与旧消息内容一致，免旧包问题）
message SendLuckyBagResultNewBroadcast {
  optional string luckyBagId = 1;// 福袋id
  optional int32 joinCount = 2;// 送礼次数
  repeated LuckyBagPopGift popGifts = 3;// 产出礼物信息列表
  optional bool isInLuckyBagExpTime = 4;// 福袋是否认产出经验
}

// 氛围礼物特效广播
message AtmosphereGiftEventBroadcast {
  repeated AtmosphereGiftEvent events = 1;// 氛围礼物特效事件列表，按时间展示顺序
}

// 氛围礼物特效事件
message AtmosphereGiftEvent {
  optional string sendUserId = 1;// 送礼人ID
  optional string receiverId = 2;// 收礼人ID
  optional string roomId = 3;// 房间ID
  optional int64 sendTime = 4;// 送礼时间
  optional int64 overTime = 5;// 过期时间
  optional string giftId = 6;// 礼物ID
  optional string animation = 7;// 氛围动效
  optional string effect = 8;// 氛围横幅
  optional string effectStr = 9;// 氛围文案
  repeated string strParam = 10;// 替换文本（送礼用户名/收礼用户名/礼物名）
  optional int32 showTime = 11;// 动效展示时间时长，单位秒
  optional int32 showScope = 12;// 动效展示范围，1-本房，2-全房，3-全服（暂定3种）
  optional int64 remainTime = 13; //有效剩余时间，单位毫秒

  optional int32 showType = 14;// 呈现方式 空或者0-普通 1-CP
  optional string sendUserName = 15;// 送礼人昵称
  optional string sendUserHeadUrl = 16;// 送礼人头像
  optional string receiverName = 17;// 收礼人昵称
  optional string receiverHeadUrl = 18;// 收礼人头像

}

// 寻龙礼物详情
message HuntGiftDetail {
  optional string giftId = 1;// 礼物id
  optional string giftName = 2;// 礼物名称
  optional int32 currentNum = 3;// 当前充值金额
  optional int32 diffNum = 4;// 达成差值
  optional int32 completeNum = 5;// 累计充值需达成金额
  optional int64 unlockDuration = 6;// 解锁有效时长（秒）
  optional int32 renewalAmount = 7;// 续费金额（单笔充值续期条件）
  optional int32 extendDays = 8;// 延长天数（续期天数）
  optional int32 useDuration = 9;// 礼物使用有效时长（秒）
  optional string bgImg = 10;// 背景图片
  optional int32 status = 11;// 0、未解锁未充值 1、未解锁进行中  2、已解锁
  optional string h5Url = 12;// 活动H5url

}


// 获取超级大玩咖活动礼物信息
message SuperPlayerGiftDetail {
  optional string giftId = 1;// 礼物id
  optional string title = 2;// 礼物名称
  optional string desc = 3;// 活动礼物说明
  optional int32 status = 4;// 0、未解锁已结束 1、未解锁进行中（去解锁）  2、已解锁
  optional string effectUrl = 5;// 礼物特效资源路径
  optional string jumpUrl = 6;// 活动跳转链接
}

// 用户财富等级信息
message UserFunLevelInfo {
  optional int32 level = 1;// 当前等级
  optional int64 levelExp = 2;// 当前等级经验值
  optional int64 exp = 3;// 用户当前经验值

  optional int32 nextLevel = 4;// 下一等级
  optional int64 nextExp = 5;// 下一等级经验值
  optional int64 difference = 6;// 经验差额
  optional double expRate = 7;// 经验倍率
}


message LoveDeclarationGiftDetail {
  repeated LoveDeclarationGiftAward awardList = 1;//爱的宣言礼物奖励
}

message LoveDeclarationGiftAward {
  optional string awardId = 1;
  optional string showTime = 2; // 时间
  optional string icon = 3; // 图片
  optional string badge = 4; // 角标
}

// 冠名礼物列表
message NamingGiftList {
  repeated NamingGiftDetail detailList = 1;//冠名礼物列表
}

//冠名礼物详情
message NamingGiftDetail {
  optional string giftId = 1;           // 礼物id
  optional string targetId = 2;         // 目标id
  optional string targetName = 3;       // 目标昵称
  optional string targetUrl = 4;        // 目标头像url
  optional string bgColor = 5;          // 礼物背景图片（兼容渐变用”,“拼接）
  optional int32 type = 6;              // 礼物冠名类型：1.用户；2.兄弟团
}

// 获取本周周星冠名礼物榜单信息返回结果
message ThisWeekStarGiftRankInfo {
  optional int64 toTopNum = 1; // 再送几个夺取下周冠名（为 0 表示暂居本周冠军）
  optional int64 countDown = 2; // 倒计时（单位毫秒）
}


// 获取超级大玩咖活动礼物信息
message SuperPlayerGiftDetailV2 {
  optional string giftId = 1;// 礼物id
  optional string jumpUrl = 2;// 活动跳转链接
  optional string viewDetailUrl = 3;// 查看详情链接
  repeated int32 comboBuffList = 4; //连击buff
  repeated SuperPlayerGiftBuffInfo giftBuffList = 5; //超级大玩咖礼物buff信息
}

// 超级大玩咖礼物buff信息
message SuperPlayerGiftBuffInfo {
  optional string badge = 1; // 角标
  optional int32 status = 2;// 0、未获得 1、已获得
  optional string title = 3;// 标题
  optional string desc = 4;// 活动礼物说明
  optional string imageUrl = 5;// 礼物图片路径
  optional string gifUrl = 6;// 礼物动图路径
}


// 告白礼物信息
message ConfessionGiftInfo {
  optional int32 status = 1;// 0、未解锁 1、已解锁（升级中） 2、已升级
  optional int32 currNum = 2;// 当前值
  optional int32 completeNum = 3;// 需要达成值
  optional string desc = 4; // 描述
  optional string confessionText = 5; // 我想对你说随机告白文案

}
// 获取房间倒计时
message RoomCountDownInfo {
  repeated RoomCountDownVo resultList = 1;
}
message RoomCountDownVo {
  optional string anchorId = 1;       // 主播ID
  optional string anchorNickName = 2;     // 主播昵称
  optional string anchorHeadUrl = 3;       // 主播头像
  optional string userId = 4;       // 用户id
  optional string userNickName = 5;     // 用户昵称
  optional string userHeadUrl = 6;       // 用户头像
  optional int32 countDown = 7; //倒计时
  optional int32 carType = 8; //车辆类型 1炫金劳斯莱斯, 2烈焰布加迪威龙, 3太空飞鹰, 4樱花兰博, 5阳炎机甲, 6翠影兰博
  optional int32 level = 9; //等级
  optional int32 curValue = 10; //已完成值
  optional int32 maxValue = 11; //达成总值
  optional string jumpUrl = 12;     // 半屏跳转链接
}

// 获取端午文案信息
message DuanWu2025Text {
  optional string awardText = 1; // 奖励文案
  optional string awardDay = 2; // 奖励天数文案
  optional string icon = 3; // 奖励图片
}
// 获取滚烫人生礼物信息
message ScorchingLifeGiftInfo {
  optional int32 curValue = 1; // 名气值
  optional int32 maxValue = 2; // 名气达成值
  optional int32 beGroupNumber = 3; // 成团人数
  optional int32 maxGroupNumber = 4; // 成团人数达成值
  optional string jumpUrl = 5;     // 半屏跳转链接
}

// 获取新人整蛊礼包信息
message NewcomerPrankInfo {
  optional string giftId = 1; // 整蛊新人礼包礼物ID
  optional int32 prankCardPrice = 3; // 整蛊卡价格
  optional string prankCardIcon = 4; // 整蛊卡图标
}

//获取夏日礼遇礼物获得奖励次数
message SummerBenefitsGiftInfo {
  optional string giftId = 1; // 礼物ID
  optional string awardCount = 2; // 已获得奖励次数
  optional string awardName = 3;  //可获得的奖励名称
  optional string awardIcon = 4;  //奖励icon
}


// 获取活动固定模板信息
message ActivityTaskTemplateInfo {
  optional string awardText = 1; // 奖励文案
  optional string awardDay = 2; // 奖励天数文案
  optional string icon = 3; // 奖励图片
  optional int32 taskCurrentNum = 4; // 当前活动完成次数
  optional int32 taskTotalNum = 9; // 活动上限次数
  optional string bigLabel = 5; // 大标签
  optional string smallLabel = 6; // 小标签
  optional string title = 7; // 标题
  optional string content = 8; // 内容
  optional string giftJson = 10; // 内容
  optional string jumpUrl = 11; // 跳转链接
  optional int32 jumpType = 12;// 跳转类型：1.半屏；2.全屏
  optional string viewBg = 13;// 面板图片
  optional string btnImg = 14;// 按钮图片
}

//返回活动是否结束
message ActivityOverFlagInfo {
  optional bool overFlag = 1; //活动是否结束
}
//获取固定玩法符合活动的礼物
message ActivityTaskTemplateGiftList {
  repeated string giftId = 1; // 礼物ID
}