520 lines
12 KiB
Protocol Buffer
520 lines
12 KiB
Protocol Buffer
// protoc -I=. -I=$GOPATH/src --go_out=plugins=grpc:. *.proto
|
||
syntax = "proto3";
|
||
|
||
package dtalk.group;
|
||
option go_package = "gitlab.33.cn/chat/dtalk/service/group";
|
||
|
||
// 群状态
|
||
enum GroupStatus {
|
||
GROUP_STATUS_NORMAL = 0; // 正常
|
||
GROUP_STATUS_BLOCK = 1; // 封禁
|
||
GROUP_STATUS_DISBAND = 2 ;// 解散
|
||
}
|
||
|
||
// 群类型
|
||
enum GroupType {
|
||
GROUP_TYPE_NORMAL = 0; // 普通群
|
||
GROUP_TYPE_ENT = 1; // 全员群
|
||
GROUP_TYPE_DEP = 2; // 部门群
|
||
}
|
||
|
||
// 群内加群设置
|
||
enum GroupJoinType {
|
||
GROUP_JOIN_TYPE_ANY = 0; // 无需审批(默认)
|
||
GROUP_JOIN_TYPE_ADMIN = 1; // 禁止加群,群主和管理员邀请加群
|
||
GROUP_JOIN_TYPE_APPLY = 2; // 普通人邀请需要审批,群主和管理员直接加群
|
||
}
|
||
|
||
// 群内发言设置
|
||
enum GroupMuteType {
|
||
GROUP_MUTE_TYPE_ANY = 0; // 全员可发言
|
||
GROUP_MUTE_TYPE_ADMIN = 1; // 全员禁言(除群主和管理员)
|
||
}
|
||
|
||
// 群内加好友设置
|
||
enum GroupFriendType {
|
||
GROUP_FRIEND_TYPE_ALLOW = 0; // 群内可加好友
|
||
GROUP_FRIEND_TYPE_DENY = 1; // 群内禁止加好友
|
||
}
|
||
|
||
// 群成员类型
|
||
enum GroupMemberType {
|
||
GROUP_MEMBER_TYPE_NORMAL = 0; // 群员
|
||
GROUP_MEMBER_TYPE_ADMIN = 1; // 管理员
|
||
GROUP_MEMBER_TYPE_OWNER = 2; // 群主
|
||
GROUP_MEMBER_TYPE_OTHER = 10; // 退群
|
||
}
|
||
|
||
message GroupInfo {
|
||
int64 id = 1;
|
||
string name = 2;
|
||
string avatar = 3;
|
||
}
|
||
|
||
message GroupMemberInfo {
|
||
// 成员 id
|
||
string id = 1;
|
||
// 成员在群里的名字
|
||
string name = 2;
|
||
}
|
||
|
||
message GetGroupIdsRequest{
|
||
string member_id = 1;
|
||
}
|
||
|
||
message GetGroupIdsReply {
|
||
repeated int64 group_ids = 1;
|
||
}
|
||
|
||
message CheckInGroupRequest{
|
||
string member_id = 1;
|
||
int64 group_id = 2;
|
||
}
|
||
|
||
message CheckInGroupReply {
|
||
bool is_ok = 1;
|
||
}
|
||
|
||
message GetMemberIdsRequest{
|
||
int64 group_id = 1;
|
||
}
|
||
|
||
message GetMemberIdsReply{
|
||
repeated string member_ids = 1;
|
||
}
|
||
|
||
message CheckMuteRequest {
|
||
string member_id = 1;
|
||
int64 group_id = 2;
|
||
}
|
||
|
||
message CheckMuteReply {
|
||
bool is_ok = 1;
|
||
}
|
||
|
||
// 得到加入的所有群
|
||
message GetGroupsReq {
|
||
string id = 1;
|
||
}
|
||
|
||
message GetGroupsResp {
|
||
repeated GroupInfo groups = 1;
|
||
}
|
||
|
||
// ---------------- ----------------------
|
||
|
||
message GroupBizInfo {
|
||
int64 id = 1;
|
||
string mark_id = 2;
|
||
string name = 3;
|
||
string avatar = 4;
|
||
int32 member_num = 5;
|
||
int32 member_maximum = 6;
|
||
string introduce = 7;
|
||
// 群状态,0=正常 1=封禁 2=解散
|
||
GroupStatus status = 8;
|
||
string owner_id = 9;
|
||
int64 create_time = 10;
|
||
int64 update_time = 11;
|
||
// 加群方式,0=无需审批(默认),1=禁止加群,群主和管理员邀请加群, 2=普通人邀请需要审批,群主和管理员直接加群
|
||
GroupJoinType join_type = 12;
|
||
// 禁言, 0=全员可发言, 1=全员禁言(除群主和管理员)
|
||
GroupMuteType mute_type = 13;
|
||
// 加好友限制, 0=群内可加好友,1=群内禁止加好友
|
||
GroupFriendType friend_type = 14;
|
||
// 群内当前被禁言的人数
|
||
int32 mute_num = 15;
|
||
// 群内管理员数量
|
||
int32 admin_num = 16;
|
||
string AES_key = 17;
|
||
string pub_name = 18;
|
||
// 群类型 (0: 普通群, 1: 全员群, 2: 部门群)
|
||
GroupType type = 19;
|
||
GroupMemberBizInfo owner = 20;
|
||
GroupMemberBizInfo person = 21;
|
||
repeated GroupMemberBizInfo members = 22;
|
||
}
|
||
|
||
message GroupMemberBizInfo {
|
||
int64 group_id = 1;
|
||
string id = 2;
|
||
string name = 3;
|
||
// 用户角色,0=群员,1=管理员, 2=群主,10=退群
|
||
GroupMemberType type = 4;
|
||
// 该用户被禁言结束的时间 9223372036854775807=永久禁言
|
||
int64 mute_time = 5;
|
||
int64 join_time = 6;
|
||
}
|
||
|
||
// 创建群聊
|
||
message CreateGroupReq {
|
||
string name = 1;
|
||
GroupType group_type = 2;
|
||
GroupMemberInfo owner = 3;
|
||
repeated GroupMemberInfo members = 4;
|
||
}
|
||
|
||
message CreateGroupResp {
|
||
int64 group_id = 1;
|
||
}
|
||
|
||
message InviteGroupMembersReq {
|
||
int64 group_id = 1;
|
||
string inviter_id = 2;
|
||
repeated string member_ids = 3;
|
||
}
|
||
|
||
message InviteGroupMembersResp {
|
||
}
|
||
|
||
message GroupExitReq {
|
||
int64 group_id = 1;
|
||
string person_id = 2;
|
||
}
|
||
|
||
message GroupExitResp {
|
||
}
|
||
|
||
message GroupDisbandReq {
|
||
int64 group_id = 1;
|
||
string person_id = 2;
|
||
}
|
||
|
||
message GroupDisbandResp {
|
||
}
|
||
|
||
message GroupRemoveReq {
|
||
int64 group_id = 1;
|
||
string person_id = 2;
|
||
repeated string member_ids = 3;
|
||
}
|
||
|
||
message GroupRemoveResp {
|
||
// 群当前人数
|
||
int32 member_num = 1;
|
||
// 成功被踢的成员列表
|
||
repeated string member_ids = 2;
|
||
}
|
||
|
||
message ChangeOwnerReq {
|
||
int64 group_id = 1;
|
||
string person_id = 2;
|
||
// 被转让为群主的群成员 id
|
||
string member_id = 3;
|
||
}
|
||
|
||
message ChangeOwnerResp {
|
||
}
|
||
|
||
message UpdateGroupNameReq {
|
||
int64 group_id = 1;
|
||
string person_id = 2;
|
||
string name = 3;
|
||
string public_name = 4;
|
||
}
|
||
|
||
message UpdateGroupNameResp {
|
||
}
|
||
|
||
message UpdateGroupAvatarReq {
|
||
int64 group_id = 1;
|
||
string person_id = 2;
|
||
// 群头像 url
|
||
string avatar = 3;
|
||
}
|
||
|
||
message UpdateGroupAvatarResp {
|
||
}
|
||
|
||
message UpdateGroupJoinTypeReq {
|
||
int64 group_id = 1;
|
||
string person_id = 2;
|
||
GroupJoinType group_join_type = 3;
|
||
}
|
||
|
||
message UpdateGroupJoinTypeResp {
|
||
}
|
||
|
||
message UpdateGroupFriendTypeReq {
|
||
int64 group_id = 1;
|
||
string person_id = 2;
|
||
GroupFriendType group_friend_type = 3;
|
||
}
|
||
|
||
message UpdateGroupFriendTypeResp {
|
||
}
|
||
|
||
message UpdateGroupMuteTypeReq {
|
||
int64 group_id = 1;
|
||
string person_id = 2;
|
||
GroupMuteType group_mute_type = 3;
|
||
}
|
||
|
||
message UpdateGroupMuteTypeResp {
|
||
}
|
||
|
||
message UpdateGroupMemberNameReq {
|
||
int64 group_id = 1;
|
||
string person_id = 2;
|
||
string member_name = 3;
|
||
}
|
||
|
||
message UpdateGroupMemberNameResp {
|
||
}
|
||
|
||
message SetAdminReq {
|
||
int64 group_id = 1;
|
||
string person_id = 2;
|
||
string member_id = 3;
|
||
GroupMemberType group_member_type = 4;
|
||
}
|
||
|
||
message SetAdminResp {
|
||
}
|
||
|
||
message UpdateGroupMemberMuteTimeReq {
|
||
int64 group_id = 1;
|
||
string person_id = 2;
|
||
repeated string member_ids = 3;
|
||
int64 mute_time = 4;
|
||
}
|
||
|
||
message UpdateGroupMemberMuteTimeResp {
|
||
repeated GroupMemberBizInfo members = 1;
|
||
}
|
||
|
||
message GetPriGroupInfoReq {
|
||
int64 group_id = 1;
|
||
string person_id = 2;
|
||
int32 display_num = 3;
|
||
}
|
||
|
||
message GetPriGroupInfoResp {
|
||
GroupBizInfo group = 1;
|
||
}
|
||
|
||
message GetPubGroupInfoReq {
|
||
int64 group_id = 1;
|
||
string person_id = 2;
|
||
}
|
||
|
||
message GetPubGroupInfoResp {
|
||
GroupBizInfo group = 1;
|
||
}
|
||
|
||
message GetGroupListReq {
|
||
string person_id = 1;
|
||
}
|
||
|
||
message GetGroupListResp {
|
||
repeated GroupBizInfo groups = 1;
|
||
}
|
||
|
||
message GetGroupMemberListReq {
|
||
int64 group_id = 1;
|
||
string person_id = 2;
|
||
}
|
||
|
||
message GetGroupMemberListResp {
|
||
repeated GroupMemberBizInfo members = 1;
|
||
}
|
||
|
||
message GetGroupMemberInfoReq {
|
||
int64 group_id = 1;
|
||
string person_id = 2;
|
||
string member_id = 3;
|
||
}
|
||
|
||
message GetGroupMemberInfoResp {
|
||
GroupMemberBizInfo member = 1;
|
||
}
|
||
|
||
message GetMuteListReq {
|
||
int64 group_id = 1;
|
||
string person_id = 2;
|
||
}
|
||
|
||
message GetMuteListResp {
|
||
repeated GroupMemberBizInfo members = 1;
|
||
}
|
||
|
||
// -------------- oa 远程调用 ----------------
|
||
|
||
message ForceAddMemberReq{
|
||
string member_id = 1;
|
||
int64 group_id = 2;
|
||
}
|
||
|
||
message ForceAddMemberResp{
|
||
}
|
||
|
||
message ForceAddMembersReq {
|
||
int64 group_id = 1;
|
||
repeated GroupMemberInfo members = 2;
|
||
}
|
||
|
||
message ForceAddMembersResp{
|
||
}
|
||
|
||
message ForceDeleteMemberReq{
|
||
string member_id = 1;
|
||
int64 group_id = 2;
|
||
}
|
||
|
||
message ForceDeleteMemberResp{
|
||
}
|
||
|
||
message ForceDeleteMembersReq{
|
||
int64 group_id = 1;
|
||
repeated string member_ids = 2;
|
||
}
|
||
|
||
message ForceDeleteMembersResp{
|
||
}
|
||
|
||
message GetMemberReq{
|
||
string member_id = 1;
|
||
int64 group_id = 2;
|
||
}
|
||
|
||
message GetMemberResp{
|
||
int64 groupId = 1;
|
||
string groupMemberId = 2;
|
||
string groupMemberName = 3;
|
||
int32 groupMemberType = 4;
|
||
int64 groupMemberJoinTime = 5;
|
||
int64 groupMemberUpdateTime = 6;
|
||
}
|
||
|
||
message GetGroupInfoReq {
|
||
int64 groupId = 1;
|
||
}
|
||
|
||
message GetGroupInfoResp {
|
||
int64 groupId = 1;
|
||
bool group_exist = 2;
|
||
string group_name = 3;
|
||
string group_avatar = 4;
|
||
string group_owner_id = 5;
|
||
}
|
||
|
||
message ForceDisbandGroupReq {
|
||
int64 group_id = 1;
|
||
string ope_id = 2;
|
||
}
|
||
|
||
message ForceDisbandGroupResp {
|
||
}
|
||
|
||
message ForceUpdateGroupTypeReq {
|
||
int64 group_id = 1;
|
||
int32 group_type = 2;
|
||
}
|
||
|
||
message ForceUpdateGroupTypeResp {
|
||
int64 group_id = 1;
|
||
int32 group_type = 2;
|
||
}
|
||
|
||
message ForceJoinGroupsReq {
|
||
GroupMemberInfo member = 1;
|
||
repeated int64 group_ids = 2;
|
||
}
|
||
|
||
message ForceJoinGroupsResp {
|
||
}
|
||
|
||
message ForceExitGroupsReq {
|
||
GroupMemberInfo member = 1;
|
||
repeated int64 group_ids = 2;
|
||
}
|
||
|
||
message ForceExitGroupsResp {
|
||
}
|
||
|
||
message ForceChangeOwnerReq {
|
||
int64 group_id = 1;
|
||
GroupMemberInfo member = 2;
|
||
}
|
||
|
||
message ForceChangeOwnerResp {}
|
||
|
||
service Group {
|
||
rpc GetGroupIds(GetGroupIdsRequest) returns (GetGroupIdsReply);
|
||
rpc CheckInGroup(CheckInGroupRequest) returns (CheckInGroupReply);
|
||
rpc GetMemberIds(GetMemberIdsRequest) returns (GetMemberIdsReply);
|
||
rpc CheckMute(CheckMuteRequest) returns (CheckMuteReply);
|
||
|
||
// 得到加入的所有群
|
||
rpc GetGroups(GetGroupsReq) returns (GetGroupsResp);
|
||
// 查询成员
|
||
rpc GetMember(GetMemberReq) returns (GetMemberResp);
|
||
// 查询群信息
|
||
rpc GetGroupInfo(GetGroupInfoReq) returns (GetGroupInfoResp);
|
||
|
||
// ------------- gateway -----------
|
||
|
||
// 创建群聊
|
||
rpc CreateGroup(CreateGroupReq) returns (CreateGroupResp);
|
||
// 邀请新成员
|
||
rpc InviteGroupMembers(InviteGroupMembersReq) returns (InviteGroupMembersResp);
|
||
// 退出群
|
||
rpc GroupExit(GroupExitReq) returns (GroupExitResp);
|
||
// 解散群
|
||
rpc GroupDisband(GroupDisbandReq) returns (GroupDisbandResp);
|
||
// 踢人
|
||
rpc GroupRemove(GroupRemoveReq) returns (GroupRemoveResp);
|
||
// 转让群主
|
||
rpc ChangeOwner(ChangeOwnerReq) returns (ChangeOwnerResp);
|
||
// 更新群名称
|
||
rpc UpdateGroupName(UpdateGroupNameReq) returns(UpdateGroupNameResp);
|
||
// 更新群头像
|
||
rpc UpdateGroupAvatar(UpdateGroupAvatarReq) returns (UpdateGroupAvatarResp);
|
||
// 更新加群设置
|
||
rpc UpdateGroupJoinType(UpdateGroupJoinTypeReq) returns (UpdateGroupJoinTypeResp);
|
||
// 更新群内加好友设置
|
||
rpc UpdateGroupFriendType(UpdateGroupFriendTypeReq) returns (UpdateGroupFriendTypeResp);
|
||
// 更新群内禁言设置
|
||
rpc UpdateGroupMuteType(UpdateGroupMuteTypeReq) returns (UpdateGroupMuteTypeResp);
|
||
// 更新群内昵称
|
||
rpc UpdateGroupMemberName(UpdateGroupMemberNameReq) returns (UpdateGroupMemberNameResp);
|
||
// 设置群管理员
|
||
rpc SetAdmin(SetAdminReq) returns(SetAdminResp);
|
||
// 设置群成员禁言时间
|
||
rpc UpdateGroupMemberMuteTime(UpdateGroupMemberMuteTimeReq) returns(UpdateGroupMemberMuteTimeResp);
|
||
// 查询完整群信息
|
||
rpc GetPriGroupInfo(GetPriGroupInfoReq) returns(GetPriGroupInfoResp);
|
||
// 查询群公开信息
|
||
rpc GetPubGroupInfo(GetPubGroupInfoReq) returns (GetPubGroupInfoResp);
|
||
// 查询加入的群列表
|
||
rpc GetGroupList(GetGroupListReq) returns (GetGroupListResp);
|
||
// 查询群成员列表
|
||
rpc GetGroupMemberList(GetGroupMemberListReq) returns (GetGroupMemberListResp);
|
||
// 查询群成员信息
|
||
rpc GetGroupMemberInfo(GetGroupMemberInfoReq) returns (GetGroupMemberInfoResp);
|
||
// 查询群内禁言列表
|
||
rpc GetMuteList(GetMuteListReq) returns (GetMuteListResp);
|
||
|
||
|
||
// ------------- Third Force --------------
|
||
|
||
// 更新群类型
|
||
rpc ForceUpdateGroupType(ForceUpdateGroupTypeReq) returns(ForceUpdateGroupTypeResp);
|
||
// 解散群, 强制解散
|
||
rpc ForceDisbandGroup(ForceDisbandGroupReq) returns (ForceDisbandGroupResp);
|
||
// 添加成员
|
||
rpc ForceAddMember(ForceAddMemberReq) returns (ForceAddMemberResp);
|
||
// 批量添加成员
|
||
rpc ForceAddMembers(ForceAddMembersReq) returns (ForceAddMembersResp);
|
||
// 删除成员
|
||
rpc ForceDeleteMember(ForceDeleteMemberReq) returns (ForceDeleteMemberResp);
|
||
// 批量删除成员
|
||
rpc ForceDeleteMembers(ForceDeleteMembersReq) returns (ForceDeleteMembersResp);
|
||
// 一个人加入多个群
|
||
rpc ForceJoinGroups(ForceJoinGroupsReq) returns(ForceJoinGroupsResp);
|
||
// 一个人退出多个群
|
||
rpc ForceExitGroups(ForceExitGroupsReq) returns(ForceExitGroupsResp);
|
||
// 成为群主
|
||
rpc ForceChangeOwner(ForceChangeOwnerReq) returns(ForceChangeOwnerResp);
|
||
}
|