syntax = "proto2";

package GroupCmd;

//option optimize_for = LITE_RUNTIME;

option java_package = "com.miaole.live.protocol.request";
option java_outer_classname = "GroupCmd";

//创建群组:成功返回RoomResult.CreateData
message createGroup {
	optional string unionId = 1;//公会ID
	optional string parentId = 2;//父级ID
	optional string name = 3;//房间名字
	optional string gameId = 4;//绑定的游戏id
	optional bool check = 5;//是否需要验证
	optional string logoUrl = 6;//群组logo
}

//删除群组
message deleteGroup {
	optional string unionId = 1;//公会ID
	optional string roomId = 2;//群组ID
}

//修改群组信息
message modifyGroup {
	optional string unionId = 1;//公会ID
	optional string roomId = 2;//群组ID
	repeated string keys = 3;//修改的key
	repeated string values = 4;//修改的值
}

//修改群组头像信息
message modifyGroupLogo {
	optional string unionId = 1;//公会ID
	optional string roomId = 2;//群组ID
	optional string logoUrl = 3;//群组logo
}

//修改群组成员职位信息
message alterGroupMember {
	optional string unionId = 1;//
	optional string roomId = 2;//房间ID
	optional string userId = 3;
	optional int32 jobId = 4;//职位ID=0为T出群组-1为取消管理员
}

//申请加入群组
message applyGroup {
	optional string unionId = 1;//
	optional string roomId = 2;//房间ID
}

//离开群组
message leaveGroup {
	optional string groupId = 1;//群组ID
}

//审批加入群组
message confirmGroup {
	optional string unionId = 1;//申请进入的频道所在的公会ID
	optional string roomId = 2;//申请进入的频道ID
	optional string userId = 3;//申请进入的玩家ID
	optional bool pass = 4;//是否通过
}

//获取加入群组申请列表(待审核):返回RoomResult.MemberList
message getApplyGroup {
	optional string unionId = 1;//
	optional string roomId = 2;//房间ID
}


//获取公会群组:返回RoomResult.GroupList
message getGroupList {
	optional string unionId = 1;//
	optional int32 type = 2;//获取类型:1,公会主页;2,公会管理
}

//获取公会群组信息:返回RoomResult.GroupInfo
message getGroupInfo {
	optional string unionId = 1;//
	optional string roomId = 2;//房间ID
}

//获取公会群组详情:返回RoomResult.GroupInfo
message getGroupDetail {
	optional string unionId = 1;//
	optional string roomId = 2;//房间ID
}

//获取已排序显示到公会主页的群组id(3个):返回CommonResult.StringArrayResult
message getSortGroupIds {
	optional string unionId = 1;//
}

//获取群组成员列表:返回RoomResult.MemberList
message getGroupMembers {
	optional string groupId = 1;//群组ID
	repeated string userIds = 2;//玩家ID列表(当id列表为空的时候获取全部且获取的字段类型由dataTypes的第一个决定)
	repeated int32 dataTypes = 3;//对应返回的数据字段类型
}

//获得我加入的群里列表:返回RoomResult.GroupList
message getMyGroupList {

}

//获得我的群组页面数据 :返回RoomResult.GroupInfo
message getGroupPage {
	optional string unionId = 1;//
	optional string roomId = 2;//房间ID
}

//打开公告 返回CommonResult.StringResult
message openNotice {
	optional string unionId = 1;//
	optional string roomId = 2;//房间ID
}

//修改群组成员信息 返回null
message modifyGroupMember {
	optional string unionId = 1;//公会ID
	optional string roomId = 2;//群组ID
	optional string memberId = 3;//成员ID
	//Key [MsgFlags:群成员消息免打扰设置]
	repeated string keys = 4;//修改的key
	repeated string values = 5;//修改的值
}

//记录群组聊天次数
message recordCharacterCount {
	optional string unionId = 1;//公会ID
	optional string groupId = 2;//群组ID
	optional int32 characterCount = 3;//聊天条数
}


//获得群组数据RoomResult.GruopRoomData
message getGroupRoomData {
	optional string unionId = 1;//公会ID
	optional string groupId = 2;//群组ID
}

//获得公会正在直播的用户房间列表 返回 RoomResult.UnionLiveingListResult
message getUnionLiveingList {
	optional string unionId = 1;//公会ID
	optional int32 index = 2;//分页下标
}

//获取群组成员列表:返回RoomResult.GroupMemberList
message getGroupMemberList {
	optional string groupId = 1;//群组ID
	required int32 index = 2;//分页下标
}
