syntax = "proto2";

package ChannelCmd;

//option optimize_for = LITE_RUNTIME;

option java_package = "com.miaole.live.protocol.request";
option java_outer_classname = "ChannelCmd";

//创建频道:成功返回RoomResult.CreateData
message createChannel {
	optional string unionId = 1;//公会ID
	optional string parentId = 2;//父级ID
	optional string name = 3;//房间名字
	optional string password = 4;//密码
	optional bool open = 5;//游客是否可进入
	optional int32 mainType = 6;// 房间类型，1-公会频道(语音房间);6-公会直播间
}

//删除频道
message deleteChannel {
	optional string unionId = 1;//公会ID
	optional string roomId = 2;//频道ID
}

//修改频道
message modifyChannel {
	optional string unionId = 1;//公会ID
	optional string roomId = 2;//群组ID
	repeated string keys = 3;//修改的key
	repeated string values = 4;//修改的值
}

//修改频道成员
message alterChannelMember {
	optional string unionId = 1;//
	optional string roomId = 2;//频道ID
	optional string userId = 3;
	optional int32 jobId = 4;//职位ID=0的时候为取消职位
}

//收藏频道(主频道)
message addLoveChannel {
	optional string channelId = 1;//主频道ID或公会ID
	optional bool add = 2;//true为添加收藏,false为取消收藏
}

//获取某个公会活跃频道(公会主页或频道页面):返回RoomResult.ChannelList
message getChannelList {/**NO_AUTH**/
	optional string unionId = 1;//
	optional int32 type = 2;//获取数据组合(见EChannelListType)
	optional int32 index = 3;//分页下标（相当于已经获取的列表条数）
	optional int32 from = 4; // 请求来源  1：公会主页 2：频道管理
}

//获取我的频道列表(创建加入申请收藏访问)
message getMyChannelList {/**NO_AUTH**/
	optional int32 type = 1;//获取数据组合(见EChannelListType)
	optional bool subChanel = 2;//获取子渠道
}

//获取排序列表(一级频道不分页):返回RoomResult.ChannelList
message getSortChannelList {
	optional string unionId = 1;//
}

//获取公会频道信息:返回RoomResult.ChannelInfo
message getChannelInfo {
	optional string unionId = 1;//
	optional string roomId = 2;//房间ID
}

//获取公会频道详情:返回RoomResult.ChannelInfo
message getChannelDetail {
	optional string unionId = 1;//
	optional string roomId = 2;//房间ID
}

//获取频道成员列表(在线):返回RoomResult.MemberList(只返回memberId,jobid)
message getChannelMembers {/**NO_AUTH**/
	optional string unionId = 1;//
	optional string roomId = 2;//房间ID
}

//查询玩家在频道里的昵称:返回RoomResult.MemberList(只返回nameCard)
message getChannelMemberName {
	optional string unionId = 1;//
	optional string roomId = 2;//房间ID
	repeated string userIds = 3;//玩家ID列表
}

//频道广播
message broadcastMsg {
	optional string unionId = 1;//
	optional string roomId = 2;//房间ID
	optional string message = 3;//
	repeated int32 memberTypes = 4;//接收对像类型:0全部,1管理员,2成员,3嘉宾临时嘉宾,4游客
	repeated string channels = 5;//接收频道Id(为空时全部)
}

//查询玩家是否频道管理员
message isChannelAdmin {
	optional string unionId = 1;//
	optional string userId = 2;//
}

//打开公告 返回: CommonResult.StringResult
message openNotice {
	optional string unionId = 1;//
	optional string roomId = 2;//房间ID
}

//一键调度
message dispatch {
	optional string unionId = 1;//
	optional string targetChannel = 2;//目标频道
	repeated string sourceChannels = 3;//源频道
}

//分享到频道
message sendShareMsg {
	optional string unionId = 1;//公会ID
	repeated string channelIds = 2;//频道ID
	optional string msgContent = 3;//消息内容
}

//麦序数据 返回 :RoomResult.RoomMicQueueInfo
message getMicQueueData {
	optional string unionId = 1;//公会ID
	optional string roomId = 2;//房间ID
	optional int32 start = 3;//队列分页开始下标(从1开始)
	optional int32 end = 4;//队列分页结束下标
	optional bool reqOtherData = 5;//请求其它数据(除了麦序列表外的数据)
}

//获得上麦数据列表 :RoomResult.RoomMicMemberList
message getMicList {
	optional string unionId = 1;//公会ID
	optional string roomId = 2;//房间ID
}

// 娱乐公会视频房获取频道列表信息，返回RoomResult.UnionChannelList
message getFunUnionChannelList {/**NO_AUTH**/
	optional string unionId = 1;//
	optional int32 type = 2;// 获取数据组合(见EChannelListType)
	optional int32 top = 3;// 获取最前几条一级频道(UNIONPAGE有用)
}