syntax = "proto3";
package group;
option go_package = "bsm/full/module/social/group/pb;group";
import "protobuf/blocks.proto";

// relation-关系管理:群组
service Member{
    //获取群组成员列表
    rpc Fetch(blocks.IdentRequest) returns (GroupMemberReply);

    //申请加群
    rpc DoJoin(DoJoinRequest) returns (blocks.DataStatusReply);

    //申请加群列表
    rpc JoinFetch(blocks.Empty) returns (JoinFetchReply);

    //申请加群处理
    rpc JoinDoHandle(GroupOPRequest) returns (blocks.DataStatusReply);


    //设置或取消管理员
    rpc DoSetManager(GroupOPRequest) returns (blocks.DataStatusReply);

    //踢人
    rpc DoKick(GroupOPRequest) returns (blocks.DataStatusReply);

    //退群
    rpc DoQuit(GroupOPRequest) returns (blocks.DataStatusReply);

}

message PassportInfoSimpleCard{
    string identity=1;
    string nickname=2; //昵称
    string remark_name=3; // 备注名称
    string avatar=4;
    int32 sex = 5; //性别，1为男性，2为女性
    int32 role=6;//角色，主要是群组内的角色使用
}

message PassportInfoDetailCard{
    string identity=1;
    string nickname=2; //昵称
    string remark_name=3; // 备注名称
    int32 popular=4; //是否置顶
    string avatar=5;
    string birthday = 6; //生日
    int32 sex = 7; //性别，1为男性，2为女性
    int32 province = 8; //省
    int32 city = 9; //市
    int32 area = 10; //区
    string sign = 11; //签名
    repeated string tags=12; //所属标签组
    int32 foreign_status=13; //外表的状态值,根据表不同，值的作用不同
}

message GroupMemberReply {
    int32 total=1; // 总记录数
    int64 version=2; //版本号
    repeated PassportInfoSimpleCard members=3; //成员信息
}

message DoJoinRequest{
    int64 id = 1; // 群组ID
    string identity = 2; // 群组唯一码
    string message=3;//加群留言
}

message JoinFetchReply {
    int32 total=1; // 总记录数
    repeated ApplyJoinGroupItem applys=2; //群组信息
}

message ApplyJoinGroupItem {
    string identity=1; // 唯一标识
    int64 group_id =2; // 主键
    PassportInfoDetailCard from=3;
    string message=4;
    string created_at=5; //时间
    int32 status =6; // 状态
}


message GroupOPRequest {
    string identity=1; // 唯一标识
    string group_identity=2; //群组identity
    string direction=3; //操作方式：Pass通过,Reject拒绝,Set设置,cancel取消
}


