syntax = "proto2";

package VoiceRoomPkCmd;

option java_package = "com.miaole.live.protocol.request";
option java_outer_classname = "VoiceRoomPkCmd";

// 设置对战开关
message setOpenFight{
  optional bool flag = 1; // true为开启，false为关闭
  optional string roomId = 2; // 房间id
  optional int32 pkMode = 3; // pk模式 1：单人pk 2：团队pk
  optional int32 duration = 4;// 对战时长，单位秒
}

// 获取对战时长列表  CommonResult.IntDatas
message listFightDuration {
  optional int32 pkMode = 1; // pk模式 1：单人pk 2：团队pk
}

// OpenFightResult
message getOpenFight{
  optional string roomId = 1; // 房间id
}

// 邀请好友对战
message inviteFight{
  optional string inviteeRoomId = 1;// 邀战对象
  optional string title = 2;// 邀战标题
  optional string content = 3;// 邀战内容
  optional int32 duration = 4;// 对战时长，单位秒
  optional string roomId = 5; // 当前房间
}

// 随机对战
message randomInviteFight{
  optional string roomId = 1; // 当前房间id
  optional int32 duration = 2;// 对战时长，单位秒
}

// 取消邀请
message cancelInvite{
  optional string inviteeRoomId = 1; // 邀请对象
  optional string roomId = 2; // 当前房间id
}

// 同意对战
message agreeInvite{
  optional string inviterRoomId = 1;// 邀请者Id
  optional string roomId = 2; // 当前房间id
}

// 拒绝对战
message refuseInvite{
  optional string inviterRoomId = 1;// 邀请者Id
  optional string roomId = 2; // 当前房间id
}

// 准备对战
message prepareInvite{
  optional string inviterRoomId = 1;// 邀请者Id
  optional string inviteeRoomId = 2;// 被邀请者Id
}

// 退出对战
message exitFight{
  optional string roomId = 1;// 当前房间Id
}

// 获取语音房pk数据
// VoiceRoomPkDataInfo
message getVoiceRoomFightData {
  optional string roomId = 1;// 直播间ID
}

// 获取可选对战好友列表
// SelectedVoicePkFriendList
message getSelectedFightFriendList {
  optional bool isParty = 1; // 是否只展示音视频，默认不是
}

// 打开宝箱
message openPkBox{
  optional string pkId = 1; // PK场次ID
  optional string boxLogId = 2; // 宝箱ID
  optional string roomId = 3; // 房间ID
  optional int32 boxLevel = 4; // 宝箱等级
}

// 进房拉取PK宝箱信息
// 返回 VoicePkBoxInfo
message getVoicePkBox{
  optional string roomId = 1; // 房间id
}

// 使用PK道具
// 道具使用广播 PkPropUseBroadcast
message usePkProp{
  optional string roomId = 1; // 当前所在房间id
  optional string propId = 2; // 道具id: pkProp_{blood|guard}_{效果}
  optional string userId = 3; // 道具使用对象 团队成员才行
}

// 获取语音房PK权限 返回：VoiceRoomPkResult.VoiceRoomPkAuthInfo
message getVoiceRoomPkAuth{

}

// 查询指定对战房间列表，返回VoiceRoomPkResult.SelectedVoicePkRooms
message getSelectedVoicePkRooms{
  optional string keyword = 1;// 查找的关键字，模糊匹配房间id/房间名称/房间靓号
  optional bool isParty = 2; // 是否只展示音视频，默认不是
}

// 新邀请好友对战
message inviteFightNew{
  optional string inviteeRoomId = 1;// 邀战对象
  optional string title = 2;// 邀战标题
  optional string content = 3;// 邀战内容
  optional int32 duration = 4;// 对战时长，单位秒
  optional string roomId = 5; // 当前房间
}

// 新随机对战
message randomInviteFightNew{
  optional string roomId = 1; // 当前房间id
  optional int32 duration = 2;// 对战时长，单位秒
  optional string content = 3;// 邀战内容（惩罚内容）
}

// 新同意对战
message agreeInviteNew{
  optional string inviterRoomId = 1;// 邀请者Id
  optional string roomId = 2; // 当前房间id
}

// 获取pk加时信息，返回VoiceRoomPkResult.PkAddTimeInfo
message getPkAddTimeInfo{
}

// 请求加时，VoiceRoomPkResult.VoicePkAddTimeBroadcast广播
message applyAddTime{
}

// 处理加时请求，VoiceRoomPkResult.VoicePkAddTimeBroadcast广播
message dealAddTime{
  optional int32 status = 1;// 处理结果，1-同意；2-拒绝
}

// 设置pk中屏蔽对方声音开关，VoiceRoomPkResult.PKClosedAdverseVoiceBroadcast广播
message setPKClosedAdverseVoice {
  optional string roomId = 1;// 房间Id（本房）
  optional bool flag = 2; // true为屏蔽，false为开放
}

// 获取对战直播间榜单信息 返回：VoiceRoomPkResult.VoiceRoomPKRankData
message getVoiceRoomPKRankData {
  optional string roomId = 1;// 房间Id
}

// 获取对战惩罚内容列表，返回：CommonResult.StringArrayResult
message listFightPunishmentContent {
}

// 音视频邀请对战，VoiceRoomPkResult.VoicePkActionBroadcast广播
message partyInviteFight {
  optional string roomId = 1; // 当前房间id
  optional string title = 2;// 邀战标题
  optional string content = 3;// 邀战内容（惩罚内容）
  optional int32 duration = 4;// 对战时长，单位秒
  optional int32 partyPKType = 5;// 音视频pk类型，1-音视频vs语音，2-音视频vs音视频
  optional bool isRandom = 6;// 是否随机，非随机需要指定邀战房间
  optional string inviteeRoomId = 7;// 邀战房间id（非随机pk时有值）
}