syntax = "proto2";

package FunRoomCmd;

//option optimize_for = LITE_RUNTIME;

option java_package = "com.miaole.live.protocol.request";
option java_outer_classname = "FunRoomCmd";

//开播
message start {
  optional int32 type = 1;//分类
  optional string roomName = 2;//房间名
  optional string bg = 3;//背景ID
  optional string gameId = 4;//选择的游戏
  optional string os = 5;//操作系统
  optional string zone = 6;// 区服
  optional bool isNew = 7;// 是否新包，处理相亲房问题
  optional bool isNewForVoice = 8;// 是否新包，处理语音房开播没封面时新旧包提示语
  optional string language = 9;//用户当前客户端选语言
  optional int32 micPositionType = 10;//麦位类型 9:9人麦（含大头） 20：20人麦（含大头）
}


//停播
message stop {

}

//获得最近使用的背景 返回: CommonResult.StringArrayResult
message getLatelyBg {

}

//直播间连麦列表 返回:UserResult.UserBaseList
message getRoomMicList {/**NO_AUTH**/
  optional string roomId = 1;//直播间ID
}

//直播间管理员列表 返回:UserResult.UserBaseList
message getRoomAdmins{
  optional string roomId = 1;//直播间ID
}

//添加管理员
message addRoomAdim{
  optional string roomId = 1;//直播间ID
  optional string userId = 2;//管理员ID
}

//删除管理员
message deleteRoomAdmin{
  optional string roomId = 1;//直播间ID
  optional string userId = 2;//管理员ID
}

//获得可设置为管理员的真实用户列表  返回:UserResult.UserBaseList
message getRealRoomMember4AdminList {
  optional string roomId = 1;//房间ID
  optional string lastMemberId = 2;//客户端缓存中最后一条用户ID
  optional int32 cacheSize = 3;//客户端当前缓存数据条数大小
}

// 获取开播房间信息，返回FunRoomResult.OpenLiveFunRoomInfo
message getOpenLiveFunRoomInfo {
}

//获取专属开播背景列表，返回FunRoomResult.SpBgList
message getSpBgList{

}

// 获取可选语音开播模式列表，返回FunRoomResult.FunRoomTypeList
message getFunRoomTypeList{
  //FUN_ROOM = 7;//娱乐房
  //UNION_VOICE_ROOM = 8;//公会语音频道
  optional int32 roomType = 1;//房间类型
}

// 开始相亲环节，房间发送广播FunRoomResult.MiaiStateBroadcast
message startMiaiPoint {
  optional string roomId = 1;//直播间ID
}

// 选择心动环节，房间发送广播FunRoomResult.MiaiStateBroadcast
message chooseMiaiPoint {
  optional string roomId = 1;//直播间ID
}

// 公布心动环节，房间发送广播FunRoomResult.MiaiStateBroadcast
message publishMiaiPoint {
  optional string roomId = 1;//直播间ID
}

// 浪漫告白环节，房间发送广播FunRoomResult.MiaiSpeechBroadcast
message speechMiaiPoint {
  optional string roomId = 1;//直播间ID
}

// 结束本轮相亲，房间发送广播FunRoomResult.MiaiStateBroadcast
message endMiaiPoint {
  optional string roomId = 1;//直播间ID
  optional bool isForced = 2;// 是否强退，默认false

}

// 揭晓心动对象，房间发送广播，组cp失败FunRoomResult.ChooseMiaiInfo，成功FunRoomResult.MiaiCPBroadcast
message openMiaiTarget {
  optional string roomId = 1;//房间ID
  optional string userId = 2;// 揭晓用户id
}

// 选择心动对象（用户非主播），房间发送广播，FunRoomResult.ChooseMiaiInfo
message chooseMiaiTarget {
  optional string roomId = 1;//房间ID
  optional string targetId = 2;// 目标用户id
  optional bool isChoose = 3;// 是否选择
}

// 获取相亲模式房间信息，返回FunRoomResult.MiaiDataInfo
message getMiaiDataInfo {
  optional string roomId = 1;// 语音房id
}

// 获取配对成功的CP聊天室内的图片等信息，返回FunRoomResult.MiaiCPChatInfo
message getMiaiCPChatInfo {
  optional string reviverId = 1; // CP的对象
}

// 获取礼物面板的用户列表，返回FunRoomResult.MemberList
message getRoomGiftUserList {
  optional string roomId = 1; // 房间ID
  optional int32 start = 2; //
  optional int32 end = 3; //
}

// 获取进房记录，返回 FunRoomResult.VoiceRoomEnterRoomInfo
message listEnterRoomLogs {
  optional string roomId = 1; // 房间id
  optional int64 lastId = 2; // 上个id，用于分页
}

//单流推流地址，返回 CommonResult.StringResult
message getSinglePushUrl {
  optional string roomId = 1; // 房间id
}

//获取专属开播背景列表，返回FunRoomResult.VoiceRoomNameAndLogo
message getVoiceRoomNameAndLogo {

}

//获得麦位可设置的倒计时时间（单位秒） CommonResult.IntDatas
message getMicCountDownTimeList {
 optional string roomId = 1;
}

//麦位心跳 返回 是否还在该麦位 否则重新获取数据，刷新界面 返回：CommonResult.BoolResult
message micHeartbeat {
  optional string roomId = 1;// 房间id
  optional int32 position = 2;//麦位
}

// 设置首次进入当前公会语音房
message setFirstInThisUnionVoiceRoom {
  optional string roomId = 1;// 房间id
}