workMoments

This commit is contained in:
wangchuxiao 2022-04-21 10:43:31 +08:00
parent 2e6c42c8ac
commit 62e605a443
7 changed files with 325 additions and 236 deletions

View File

@ -202,6 +202,7 @@ func GetWorkMomentByID(c *gin.Context) {
log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error())
} }
//resp.Data.WorkMoment = respPb.WorkMoment //resp.Data.WorkMoment = respPb.WorkMoment
resp.Data.WorkMoment = &apiStruct.WorkMoment{}
if err := utils.CopyStructFields(&resp.Data.WorkMoment, respPb.WorkMoment); err != nil { if err := utils.CopyStructFields(&resp.Data.WorkMoment, respPb.WorkMoment); err != nil {
log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error())
} }

View File

@ -4,28 +4,38 @@ import (
"Open_IM/pkg/common/constant" "Open_IM/pkg/common/constant"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
pbOffice "Open_IM/pkg/proto/office" pbOffice "Open_IM/pkg/proto/office"
open_im_sdk "Open_IM/pkg/proto/sdk_ws"
"Open_IM/pkg/utils" "Open_IM/pkg/utils"
"github.com/golang/protobuf/jsonpb"
"github.com/golang/protobuf/proto" "github.com/golang/protobuf/proto"
) )
func WorkMomentSendNotification(operationID, sendID, recvID string, notificationMsg *pbOffice.WorkMomentNotificationMsg) { func WorkMomentSendNotification(operationID, sendID, recvID string, notificationMsg *pbOffice.WorkMomentNotificationMsg) {
log.NewInfo(operationID, utils.GetSelfFuncName(), recvID) log.NewInfo(operationID, utils.GetSelfFuncName(), recvID)
bytes, err := proto.Marshal(notificationMsg) WorkMomentNotification(operationID, sendID, recvID, notificationMsg)
if err != nil {
log.NewError(operationID, utils.GetSelfFuncName(), "proto marshal failed", err.Error())
}
WorkMomentNotification(operationID, sendID, recvID, bytes)
} }
func WorkMomentNotification(operationID, sendID, recvID string, content []byte) { func WorkMomentNotification(operationID, sendID, recvID string, m proto.Message) {
marshaler := jsonpb.Marshaler{
OrigName: true,
EnumsAsInts: false,
EmitDefaults: false,
}
var tips open_im_sdk.TipsComm
var err error
tips.JsonDetail, _ = marshaler.MarshalToString(m)
n := &NotificationMsg{ n := &NotificationMsg{
SendID: sendID, SendID: sendID,
RecvID: recvID, RecvID: recvID,
Content: content,
MsgFrom: constant.UserMsgType, MsgFrom: constant.UserMsgType,
ContentType: constant.WorkMomentNotification, ContentType: constant.WorkMomentNotification,
SessionType: constant.UserMsgType, SessionType: constant.UserMsgType,
OperationID: operationID, OperationID: operationID,
} }
n.Content, err = proto.Marshal(m)
if err != nil {
log.NewError(operationID, utils.GetSelfFuncName(), "proto marshal falied", err.Error())
return
}
Notification(n) Notification(n)
} }

View File

@ -285,16 +285,19 @@ func (s *officeServer) CreateOneWorkMoment(_ context.Context, req *pbOffice.Crea
if err := utils.CopyStructFields(&workMoment, req.WorkMoment); err != nil { if err := utils.CopyStructFields(&workMoment, req.WorkMoment); err != nil {
log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error())
} }
workMoment.PermissionUserIDList = s.getPermissionUserIDList(req.OperationID, req.WorkMoment.PermissionGroupIDList, req.WorkMoment.PermissionUserIDList) workMoment.PermissionUserIDList = s.getPermissionUserIDList(req.OperationID, req.WorkMoment.PermissionGroupList, req.WorkMoment.PermissionUserList)
for _, userID := range req.WorkMoment.AtUserIDList { for _, user := range req.WorkMoment.AtUserList {
userName, err := imdb.GetUserNameByUserID(userID) if user.UserName == "" {
userName, err := imdb.GetUserNameByUserID(user.UserID)
if err != nil { if err != nil {
log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserNameByUserID failed", userID, err.Error()) log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserNameByUserID failed", user.UserID, err.Error())
continue continue
} }
user.UserName = userName
}
workMoment.AtUserList = append(workMoment.AtUserList, &db.AtUser{ workMoment.AtUserList = append(workMoment.AtUserList, &db.AtUser{
UserID: userID, UserID: user.UserID,
UserName: userName, UserName: user.UserName,
}) })
} }
log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "workMoment to create", workMoment) log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "workMoment to create", workMoment)
@ -306,7 +309,7 @@ func (s *officeServer) CreateOneWorkMoment(_ context.Context, req *pbOffice.Crea
} }
// send notification to at users // send notification to at users
for _, atUser := range req.WorkMoment.AtUserIDList { for _, atUser := range req.WorkMoment.AtUserList {
workMomentNotificationMsg := &pbOffice.WorkMomentNotificationMsg{ workMomentNotificationMsg := &pbOffice.WorkMomentNotificationMsg{
NotificationMsgType: constant.WorkMomentAtUserNotification, NotificationMsgType: constant.WorkMomentAtUserNotification,
WorkMomentID: workMoment.WorkMomentID, WorkMomentID: workMoment.WorkMomentID,
@ -315,23 +318,27 @@ func (s *officeServer) CreateOneWorkMoment(_ context.Context, req *pbOffice.Crea
FaceURL: createUser.FaceURL, FaceURL: createUser.FaceURL,
UserName: createUser.Nickname, UserName: createUser.Nickname,
} }
msg.WorkMomentSendNotification(req.OperationID, workMoment.UserID, atUser, workMomentNotificationMsg) msg.WorkMomentSendNotification(req.OperationID, workMoment.UserID, atUser.UserID, workMomentNotificationMsg)
} }
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String())
return resp, nil return resp, nil
} }
// count and distinct permission users // count and distinct permission users
func (s *officeServer) getPermissionUserIDList(operationID string, groupIDList, userIDList []string) []string { func (s *officeServer) getPermissionUserIDList(operationID string, groupList []*pbOffice.PermissionGroup, userList []*pbOffice.WorkMomentUser) []string {
var permissionUserIDList []string var permissionUserIDList []string
for _, groupID := range groupIDList { for _, group := range groupList {
GroupMemberIDList, err := imdb.GetGroupMemberIDListByGroupID(groupID) GroupMemberIDList, err := imdb.GetGroupMemberIDListByGroupID(group.GroupID)
if err != nil { if err != nil {
log.NewError(operationID, utils.GetSelfFuncName(), "GetGroupMemberIDListByGroupID failed", groupID, err.Error()) log.NewError(operationID, utils.GetSelfFuncName(), "GetGroupMemberIDListByGroupID failed", group, err.Error())
continue continue
} }
permissionUserIDList = append(permissionUserIDList, GroupMemberIDList...) permissionUserIDList = append(permissionUserIDList, GroupMemberIDList...)
} }
var userIDList []string
for _, user := range userList {
userIDList = append(userIDList, user.UserID)
}
permissionUserIDList = append(permissionUserIDList, userIDList...) permissionUserIDList = append(permissionUserIDList, userIDList...)
permissionUserIDList = utils.RemoveRepeatedStringInList(permissionUserIDList) permissionUserIDList = utils.RemoveRepeatedStringInList(permissionUserIDList)
return permissionUserIDList return permissionUserIDList

View File

@ -50,9 +50,9 @@ type WorkMoment struct {
Content string `json:"content"` Content string `json:"content"`
LikeUsers []*LikeUser `json:"likeUsers"` LikeUsers []*LikeUser `json:"likeUsers"`
Comments []*Comment `json:"comments"` Comments []*Comment `json:"comments"`
Permission int32 `json:"permission"` //Permission int32 `json:"permission"`
PermissionUserIDList []string `json:"permissionUserIDList"` //PermissionUserIDList []string `json:"permissionUserIDList"`
PermissionGroupIDList []string `json:"permissionGroupIDList"` //PermissionGroupIDList []string `json:"permissionGroupIDList"`
AtUserIDList []string `json:"atUserIDList"` AtUserIDList []string `json:"atUserIDList"`
CreateTime int32 `json:"createTime,omitempty"` CreateTime int32 `json:"createTime,omitempty"`
} }

View File

@ -642,7 +642,7 @@ func (d *DataBases) LikeOneWorkMoment(likeUserID, userName, workMomentID string)
log.NewDebug("", utils.GetSelfFuncName(), workMoment) log.NewDebug("", utils.GetSelfFuncName(), workMoment)
ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second)
c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cWorkMoment) c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cWorkMoment)
_, err = c.UpdateOne(ctx, bson.M{"work_moment_id": workMomentID}, bson.M{"$set": bson.M{"like_users": workMoment.LikeUserList}}) _, err = c.UpdateOne(ctx, bson.M{"work_moment_id": workMomentID}, bson.M{"$set": bson.M{"like_user_list": workMoment.LikeUserList}})
return workMoment, err return workMoment, err
} }
@ -683,42 +683,6 @@ func (d *DataBases) GetUserFriendWorkMomentsRecursion(friendIDList []string, sho
return workMomentList, nil return workMomentList, nil
} }
err = result.All(ctx, &workMomentList) err = result.All(ctx, &workMomentList)
//if len(workMomentList) == 0 {
// return workMomentList, nil
//}
//for i, workMoment := range workMomentList {
// if workMoment.IsPrivate {
// workMomentList = append(workMomentList[0:i], workMomentList[i+1:]...)
// continue
// }
//
// var isContain bool
// for _, WhoCanSeeUserID := range workMoment.WhoCanSeeUserIDList {
// if WhoCanSeeUserID == userID {
// isContain = true
// break
// }
// }
// if !isContain {
// workMomentList = append(workMomentList[0:i], workMomentList[i+1:]...)
// continue
// }
//
// for _, whoCantSeeUserID := range workMoment.WhoCantSeeUserIDList {
// if whoCantSeeUserID == userID {
// workMomentList = append(workMomentList[0:i], workMomentList[i+1:]...)
// break
// }
// }
//}
//
//if len(workMomentList) < int(pageNumber) {
// workMomentListWorkMomentList, err := d.GetUserFriendWorkMomentsRecursion(friendIDList, showNumber, pageNumber, userID)
// workMomentList = append(workMomentList, workMomentListWorkMomentList...)
// if err != nil {
// return workMomentList, err
// }
//}
return workMomentList, err return workMomentList, err
} }

View File

@ -36,7 +36,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} }
func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (m *CommonResp) String() string { return proto.CompactTextString(m) }
func (*CommonResp) ProtoMessage() {} func (*CommonResp) ProtoMessage() {}
func (*CommonResp) Descriptor() ([]byte, []int) { func (*CommonResp) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{0} return fileDescriptor_office_02f43b66ea327245, []int{0}
} }
func (m *CommonResp) XXX_Unmarshal(b []byte) error { func (m *CommonResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CommonResp.Unmarshal(m, b) return xxx_messageInfo_CommonResp.Unmarshal(m, b)
@ -82,7 +82,7 @@ func (m *TagUser) Reset() { *m = TagUser{} }
func (m *TagUser) String() string { return proto.CompactTextString(m) } func (m *TagUser) String() string { return proto.CompactTextString(m) }
func (*TagUser) ProtoMessage() {} func (*TagUser) ProtoMessage() {}
func (*TagUser) Descriptor() ([]byte, []int) { func (*TagUser) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{1} return fileDescriptor_office_02f43b66ea327245, []int{1}
} }
func (m *TagUser) XXX_Unmarshal(b []byte) error { func (m *TagUser) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TagUser.Unmarshal(m, b) return xxx_messageInfo_TagUser.Unmarshal(m, b)
@ -129,7 +129,7 @@ func (m *Tag) Reset() { *m = Tag{} }
func (m *Tag) String() string { return proto.CompactTextString(m) } func (m *Tag) String() string { return proto.CompactTextString(m) }
func (*Tag) ProtoMessage() {} func (*Tag) ProtoMessage() {}
func (*Tag) Descriptor() ([]byte, []int) { func (*Tag) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{2} return fileDescriptor_office_02f43b66ea327245, []int{2}
} }
func (m *Tag) XXX_Unmarshal(b []byte) error { func (m *Tag) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Tag.Unmarshal(m, b) return xxx_messageInfo_Tag.Unmarshal(m, b)
@ -182,7 +182,7 @@ func (m *GetUserTagsReq) Reset() { *m = GetUserTagsReq{} }
func (m *GetUserTagsReq) String() string { return proto.CompactTextString(m) } func (m *GetUserTagsReq) String() string { return proto.CompactTextString(m) }
func (*GetUserTagsReq) ProtoMessage() {} func (*GetUserTagsReq) ProtoMessage() {}
func (*GetUserTagsReq) Descriptor() ([]byte, []int) { func (*GetUserTagsReq) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{3} return fileDescriptor_office_02f43b66ea327245, []int{3}
} }
func (m *GetUserTagsReq) XXX_Unmarshal(b []byte) error { func (m *GetUserTagsReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetUserTagsReq.Unmarshal(m, b) return xxx_messageInfo_GetUserTagsReq.Unmarshal(m, b)
@ -228,7 +228,7 @@ func (m *GetUserTagsResp) Reset() { *m = GetUserTagsResp{} }
func (m *GetUserTagsResp) String() string { return proto.CompactTextString(m) } func (m *GetUserTagsResp) String() string { return proto.CompactTextString(m) }
func (*GetUserTagsResp) ProtoMessage() {} func (*GetUserTagsResp) ProtoMessage() {}
func (*GetUserTagsResp) Descriptor() ([]byte, []int) { func (*GetUserTagsResp) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{4} return fileDescriptor_office_02f43b66ea327245, []int{4}
} }
func (m *GetUserTagsResp) XXX_Unmarshal(b []byte) error { func (m *GetUserTagsResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetUserTagsResp.Unmarshal(m, b) return xxx_messageInfo_GetUserTagsResp.Unmarshal(m, b)
@ -276,7 +276,7 @@ func (m *CreateTagReq) Reset() { *m = CreateTagReq{} }
func (m *CreateTagReq) String() string { return proto.CompactTextString(m) } func (m *CreateTagReq) String() string { return proto.CompactTextString(m) }
func (*CreateTagReq) ProtoMessage() {} func (*CreateTagReq) ProtoMessage() {}
func (*CreateTagReq) Descriptor() ([]byte, []int) { func (*CreateTagReq) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{5} return fileDescriptor_office_02f43b66ea327245, []int{5}
} }
func (m *CreateTagReq) XXX_Unmarshal(b []byte) error { func (m *CreateTagReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CreateTagReq.Unmarshal(m, b) return xxx_messageInfo_CreateTagReq.Unmarshal(m, b)
@ -335,7 +335,7 @@ func (m *CreateTagResp) Reset() { *m = CreateTagResp{} }
func (m *CreateTagResp) String() string { return proto.CompactTextString(m) } func (m *CreateTagResp) String() string { return proto.CompactTextString(m) }
func (*CreateTagResp) ProtoMessage() {} func (*CreateTagResp) ProtoMessage() {}
func (*CreateTagResp) Descriptor() ([]byte, []int) { func (*CreateTagResp) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{6} return fileDescriptor_office_02f43b66ea327245, []int{6}
} }
func (m *CreateTagResp) XXX_Unmarshal(b []byte) error { func (m *CreateTagResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CreateTagResp.Unmarshal(m, b) return xxx_messageInfo_CreateTagResp.Unmarshal(m, b)
@ -375,7 +375,7 @@ func (m *DeleteTagReq) Reset() { *m = DeleteTagReq{} }
func (m *DeleteTagReq) String() string { return proto.CompactTextString(m) } func (m *DeleteTagReq) String() string { return proto.CompactTextString(m) }
func (*DeleteTagReq) ProtoMessage() {} func (*DeleteTagReq) ProtoMessage() {}
func (*DeleteTagReq) Descriptor() ([]byte, []int) { func (*DeleteTagReq) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{7} return fileDescriptor_office_02f43b66ea327245, []int{7}
} }
func (m *DeleteTagReq) XXX_Unmarshal(b []byte) error { func (m *DeleteTagReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteTagReq.Unmarshal(m, b) return xxx_messageInfo_DeleteTagReq.Unmarshal(m, b)
@ -427,7 +427,7 @@ func (m *DeleteTagResp) Reset() { *m = DeleteTagResp{} }
func (m *DeleteTagResp) String() string { return proto.CompactTextString(m) } func (m *DeleteTagResp) String() string { return proto.CompactTextString(m) }
func (*DeleteTagResp) ProtoMessage() {} func (*DeleteTagResp) ProtoMessage() {}
func (*DeleteTagResp) Descriptor() ([]byte, []int) { func (*DeleteTagResp) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{8} return fileDescriptor_office_02f43b66ea327245, []int{8}
} }
func (m *DeleteTagResp) XXX_Unmarshal(b []byte) error { func (m *DeleteTagResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteTagResp.Unmarshal(m, b) return xxx_messageInfo_DeleteTagResp.Unmarshal(m, b)
@ -470,7 +470,7 @@ func (m *SetTagReq) Reset() { *m = SetTagReq{} }
func (m *SetTagReq) String() string { return proto.CompactTextString(m) } func (m *SetTagReq) String() string { return proto.CompactTextString(m) }
func (*SetTagReq) ProtoMessage() {} func (*SetTagReq) ProtoMessage() {}
func (*SetTagReq) Descriptor() ([]byte, []int) { func (*SetTagReq) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{9} return fileDescriptor_office_02f43b66ea327245, []int{9}
} }
func (m *SetTagReq) XXX_Unmarshal(b []byte) error { func (m *SetTagReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetTagReq.Unmarshal(m, b) return xxx_messageInfo_SetTagReq.Unmarshal(m, b)
@ -543,7 +543,7 @@ func (m *SetTagResp) Reset() { *m = SetTagResp{} }
func (m *SetTagResp) String() string { return proto.CompactTextString(m) } func (m *SetTagResp) String() string { return proto.CompactTextString(m) }
func (*SetTagResp) ProtoMessage() {} func (*SetTagResp) ProtoMessage() {}
func (*SetTagResp) Descriptor() ([]byte, []int) { func (*SetTagResp) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{10} return fileDescriptor_office_02f43b66ea327245, []int{10}
} }
func (m *SetTagResp) XXX_Unmarshal(b []byte) error { func (m *SetTagResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetTagResp.Unmarshal(m, b) return xxx_messageInfo_SetTagResp.Unmarshal(m, b)
@ -587,7 +587,7 @@ func (m *SendMsg2TagReq) Reset() { *m = SendMsg2TagReq{} }
func (m *SendMsg2TagReq) String() string { return proto.CompactTextString(m) } func (m *SendMsg2TagReq) String() string { return proto.CompactTextString(m) }
func (*SendMsg2TagReq) ProtoMessage() {} func (*SendMsg2TagReq) ProtoMessage() {}
func (*SendMsg2TagReq) Descriptor() ([]byte, []int) { func (*SendMsg2TagReq) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{11} return fileDescriptor_office_02f43b66ea327245, []int{11}
} }
func (m *SendMsg2TagReq) XXX_Unmarshal(b []byte) error { func (m *SendMsg2TagReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendMsg2TagReq.Unmarshal(m, b) return xxx_messageInfo_SendMsg2TagReq.Unmarshal(m, b)
@ -667,7 +667,7 @@ func (m *SendMsg2TagResp) Reset() { *m = SendMsg2TagResp{} }
func (m *SendMsg2TagResp) String() string { return proto.CompactTextString(m) } func (m *SendMsg2TagResp) String() string { return proto.CompactTextString(m) }
func (*SendMsg2TagResp) ProtoMessage() {} func (*SendMsg2TagResp) ProtoMessage() {}
func (*SendMsg2TagResp) Descriptor() ([]byte, []int) { func (*SendMsg2TagResp) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{12} return fileDescriptor_office_02f43b66ea327245, []int{12}
} }
func (m *SendMsg2TagResp) XXX_Unmarshal(b []byte) error { func (m *SendMsg2TagResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendMsg2TagResp.Unmarshal(m, b) return xxx_messageInfo_SendMsg2TagResp.Unmarshal(m, b)
@ -707,7 +707,7 @@ func (m *GetTagSendLogsReq) Reset() { *m = GetTagSendLogsReq{} }
func (m *GetTagSendLogsReq) String() string { return proto.CompactTextString(m) } func (m *GetTagSendLogsReq) String() string { return proto.CompactTextString(m) }
func (*GetTagSendLogsReq) ProtoMessage() {} func (*GetTagSendLogsReq) ProtoMessage() {}
func (*GetTagSendLogsReq) Descriptor() ([]byte, []int) { func (*GetTagSendLogsReq) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{13} return fileDescriptor_office_02f43b66ea327245, []int{13}
} }
func (m *GetTagSendLogsReq) XXX_Unmarshal(b []byte) error { func (m *GetTagSendLogsReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetTagSendLogsReq.Unmarshal(m, b) return xxx_messageInfo_GetTagSendLogsReq.Unmarshal(m, b)
@ -761,7 +761,7 @@ func (m *TagSendLog) Reset() { *m = TagSendLog{} }
func (m *TagSendLog) String() string { return proto.CompactTextString(m) } func (m *TagSendLog) String() string { return proto.CompactTextString(m) }
func (*TagSendLog) ProtoMessage() {} func (*TagSendLog) ProtoMessage() {}
func (*TagSendLog) Descriptor() ([]byte, []int) { func (*TagSendLog) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{14} return fileDescriptor_office_02f43b66ea327245, []int{14}
} }
func (m *TagSendLog) XXX_Unmarshal(b []byte) error { func (m *TagSendLog) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TagSendLog.Unmarshal(m, b) return xxx_messageInfo_TagSendLog.Unmarshal(m, b)
@ -815,7 +815,7 @@ func (m *GetTagSendLogsResp) Reset() { *m = GetTagSendLogsResp{} }
func (m *GetTagSendLogsResp) String() string { return proto.CompactTextString(m) } func (m *GetTagSendLogsResp) String() string { return proto.CompactTextString(m) }
func (*GetTagSendLogsResp) ProtoMessage() {} func (*GetTagSendLogsResp) ProtoMessage() {}
func (*GetTagSendLogsResp) Descriptor() ([]byte, []int) { func (*GetTagSendLogsResp) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{15} return fileDescriptor_office_02f43b66ea327245, []int{15}
} }
func (m *GetTagSendLogsResp) XXX_Unmarshal(b []byte) error { func (m *GetTagSendLogsResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetTagSendLogsResp.Unmarshal(m, b) return xxx_messageInfo_GetTagSendLogsResp.Unmarshal(m, b)
@ -869,7 +869,7 @@ func (m *GetUserTagByIDReq) Reset() { *m = GetUserTagByIDReq{} }
func (m *GetUserTagByIDReq) String() string { return proto.CompactTextString(m) } func (m *GetUserTagByIDReq) String() string { return proto.CompactTextString(m) }
func (*GetUserTagByIDReq) ProtoMessage() {} func (*GetUserTagByIDReq) ProtoMessage() {}
func (*GetUserTagByIDReq) Descriptor() ([]byte, []int) { func (*GetUserTagByIDReq) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{16} return fileDescriptor_office_02f43b66ea327245, []int{16}
} }
func (m *GetUserTagByIDReq) XXX_Unmarshal(b []byte) error { func (m *GetUserTagByIDReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetUserTagByIDReq.Unmarshal(m, b) return xxx_messageInfo_GetUserTagByIDReq.Unmarshal(m, b)
@ -922,7 +922,7 @@ func (m *GetUserTagByIDResp) Reset() { *m = GetUserTagByIDResp{} }
func (m *GetUserTagByIDResp) String() string { return proto.CompactTextString(m) } func (m *GetUserTagByIDResp) String() string { return proto.CompactTextString(m) }
func (*GetUserTagByIDResp) ProtoMessage() {} func (*GetUserTagByIDResp) ProtoMessage() {}
func (*GetUserTagByIDResp) Descriptor() ([]byte, []int) { func (*GetUserTagByIDResp) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{17} return fileDescriptor_office_02f43b66ea327245, []int{17}
} }
func (m *GetUserTagByIDResp) XXX_Unmarshal(b []byte) error { func (m *GetUserTagByIDResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetUserTagByIDResp.Unmarshal(m, b) return xxx_messageInfo_GetUserTagByIDResp.Unmarshal(m, b)
@ -968,7 +968,7 @@ func (m *LikeUser) Reset() { *m = LikeUser{} }
func (m *LikeUser) String() string { return proto.CompactTextString(m) } func (m *LikeUser) String() string { return proto.CompactTextString(m) }
func (*LikeUser) ProtoMessage() {} func (*LikeUser) ProtoMessage() {}
func (*LikeUser) Descriptor() ([]byte, []int) { func (*LikeUser) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{18} return fileDescriptor_office_02f43b66ea327245, []int{18}
} }
func (m *LikeUser) XXX_Unmarshal(b []byte) error { func (m *LikeUser) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LikeUser.Unmarshal(m, b) return xxx_messageInfo_LikeUser.Unmarshal(m, b)
@ -1014,7 +1014,7 @@ func (m *NotificationUser) Reset() { *m = NotificationUser{} }
func (m *NotificationUser) String() string { return proto.CompactTextString(m) } func (m *NotificationUser) String() string { return proto.CompactTextString(m) }
func (*NotificationUser) ProtoMessage() {} func (*NotificationUser) ProtoMessage() {}
func (*NotificationUser) Descriptor() ([]byte, []int) { func (*NotificationUser) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{19} return fileDescriptor_office_02f43b66ea327245, []int{19}
} }
func (m *NotificationUser) XXX_Unmarshal(b []byte) error { func (m *NotificationUser) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NotificationUser.Unmarshal(m, b) return xxx_messageInfo_NotificationUser.Unmarshal(m, b)
@ -1066,7 +1066,7 @@ func (m *Comment) Reset() { *m = Comment{} }
func (m *Comment) String() string { return proto.CompactTextString(m) } func (m *Comment) String() string { return proto.CompactTextString(m) }
func (*Comment) ProtoMessage() {} func (*Comment) ProtoMessage() {}
func (*Comment) Descriptor() ([]byte, []int) { func (*Comment) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{20} return fileDescriptor_office_02f43b66ea327245, []int{20}
} }
func (m *Comment) XXX_Unmarshal(b []byte) error { func (m *Comment) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Comment.Unmarshal(m, b) return xxx_messageInfo_Comment.Unmarshal(m, b)
@ -1142,18 +1142,110 @@ func (m *Comment) GetCreateTime() int32 {
return 0 return 0
} }
type PermissionGroup struct {
GroupName string `protobuf:"bytes,1,opt,name=groupName" json:"groupName,omitempty"`
GroupID string `protobuf:"bytes,2,opt,name=groupID" json:"groupID,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *PermissionGroup) Reset() { *m = PermissionGroup{} }
func (m *PermissionGroup) String() string { return proto.CompactTextString(m) }
func (*PermissionGroup) ProtoMessage() {}
func (*PermissionGroup) Descriptor() ([]byte, []int) {
return fileDescriptor_office_02f43b66ea327245, []int{21}
}
func (m *PermissionGroup) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PermissionGroup.Unmarshal(m, b)
}
func (m *PermissionGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_PermissionGroup.Marshal(b, m, deterministic)
}
func (dst *PermissionGroup) XXX_Merge(src proto.Message) {
xxx_messageInfo_PermissionGroup.Merge(dst, src)
}
func (m *PermissionGroup) XXX_Size() int {
return xxx_messageInfo_PermissionGroup.Size(m)
}
func (m *PermissionGroup) XXX_DiscardUnknown() {
xxx_messageInfo_PermissionGroup.DiscardUnknown(m)
}
var xxx_messageInfo_PermissionGroup proto.InternalMessageInfo
func (m *PermissionGroup) GetGroupName() string {
if m != nil {
return m.GroupName
}
return ""
}
func (m *PermissionGroup) GetGroupID() string {
if m != nil {
return m.GroupID
}
return ""
}
type WorkMomentUser struct {
UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"`
UserName string `protobuf:"bytes,2,opt,name=userName" json:"userName,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *WorkMomentUser) Reset() { *m = WorkMomentUser{} }
func (m *WorkMomentUser) String() string { return proto.CompactTextString(m) }
func (*WorkMomentUser) ProtoMessage() {}
func (*WorkMomentUser) Descriptor() ([]byte, []int) {
return fileDescriptor_office_02f43b66ea327245, []int{22}
}
func (m *WorkMomentUser) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_WorkMomentUser.Unmarshal(m, b)
}
func (m *WorkMomentUser) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_WorkMomentUser.Marshal(b, m, deterministic)
}
func (dst *WorkMomentUser) XXX_Merge(src proto.Message) {
xxx_messageInfo_WorkMomentUser.Merge(dst, src)
}
func (m *WorkMomentUser) XXX_Size() int {
return xxx_messageInfo_WorkMomentUser.Size(m)
}
func (m *WorkMomentUser) XXX_DiscardUnknown() {
xxx_messageInfo_WorkMomentUser.DiscardUnknown(m)
}
var xxx_messageInfo_WorkMomentUser proto.InternalMessageInfo
func (m *WorkMomentUser) GetUserID() string {
if m != nil {
return m.UserID
}
return ""
}
func (m *WorkMomentUser) GetUserName() string {
if m != nil {
return m.UserName
}
return ""
}
type WorkMoment struct { type WorkMoment struct {
WorkMomentID string `protobuf:"bytes,1,opt,name=workMomentID" json:"workMomentID,omitempty"` WorkMomentID string `protobuf:"bytes,1,opt,name=workMomentID" json:"workMomentID,omitempty"`
UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"`
UserName string `protobuf:"bytes,3,opt,name=userName" json:"userName,omitempty"` UserName string `protobuf:"bytes,3,opt,name=userName" json:"userName,omitempty"`
FaceURL string `protobuf:"bytes,4,opt,name=faceURL" json:"faceURL,omitempty"` FaceURL string `protobuf:"bytes,4,opt,name=faceURL" json:"faceURL,omitempty"`
Content string `protobuf:"bytes,5,opt,name=content" json:"content,omitempty"` Content string `protobuf:"bytes,5,opt,name=content" json:"content,omitempty"`
LikeUsers []*LikeUser `protobuf:"bytes,6,rep,name=likeUsers" json:"likeUsers,omitempty"` LikeUserList []*WorkMomentUser `protobuf:"bytes,6,rep,name=likeUserList" json:"likeUserList,omitempty"`
Comments []*Comment `protobuf:"bytes,7,rep,name=comments" json:"comments,omitempty"` Comments []*Comment `protobuf:"bytes,7,rep,name=comments" json:"comments,omitempty"`
Permission int32 `protobuf:"varint,8,opt,name=permission" json:"permission,omitempty"` Permission int32 `protobuf:"varint,8,opt,name=permission" json:"permission,omitempty"`
PermissionUserIDList []string `protobuf:"bytes,9,rep,name=permissionUserIDList" json:"permissionUserIDList,omitempty"` PermissionUserList []*WorkMomentUser `protobuf:"bytes,9,rep,name=permissionUserList" json:"permissionUserList,omitempty"`
PermissionGroupIDList []string `protobuf:"bytes,10,rep,name=permissionGroupIDList" json:"permissionGroupIDList,omitempty"` PermissionGroupList []*PermissionGroup `protobuf:"bytes,10,rep,name=permissionGroupList" json:"permissionGroupList,omitempty"`
AtUserIDList []string `protobuf:"bytes,11,rep,name=atUserIDList" json:"atUserIDList,omitempty"` AtUserList []*WorkMomentUser `protobuf:"bytes,11,rep,name=atUserList" json:"atUserList,omitempty"`
CreateTime int32 `protobuf:"varint,12,opt,name=createTime" json:"createTime,omitempty"` CreateTime int32 `protobuf:"varint,12,opt,name=createTime" json:"createTime,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -1164,7 +1256,7 @@ func (m *WorkMoment) Reset() { *m = WorkMoment{} }
func (m *WorkMoment) String() string { return proto.CompactTextString(m) } func (m *WorkMoment) String() string { return proto.CompactTextString(m) }
func (*WorkMoment) ProtoMessage() {} func (*WorkMoment) ProtoMessage() {}
func (*WorkMoment) Descriptor() ([]byte, []int) { func (*WorkMoment) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{21} return fileDescriptor_office_02f43b66ea327245, []int{23}
} }
func (m *WorkMoment) XXX_Unmarshal(b []byte) error { func (m *WorkMoment) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_WorkMoment.Unmarshal(m, b) return xxx_messageInfo_WorkMoment.Unmarshal(m, b)
@ -1219,9 +1311,9 @@ func (m *WorkMoment) GetContent() string {
return "" return ""
} }
func (m *WorkMoment) GetLikeUsers() []*LikeUser { func (m *WorkMoment) GetLikeUserList() []*WorkMomentUser {
if m != nil { if m != nil {
return m.LikeUsers return m.LikeUserList
} }
return nil return nil
} }
@ -1240,23 +1332,23 @@ func (m *WorkMoment) GetPermission() int32 {
return 0 return 0
} }
func (m *WorkMoment) GetPermissionUserIDList() []string { func (m *WorkMoment) GetPermissionUserList() []*WorkMomentUser {
if m != nil { if m != nil {
return m.PermissionUserIDList return m.PermissionUserList
} }
return nil return nil
} }
func (m *WorkMoment) GetPermissionGroupIDList() []string { func (m *WorkMoment) GetPermissionGroupList() []*PermissionGroup {
if m != nil { if m != nil {
return m.PermissionGroupIDList return m.PermissionGroupList
} }
return nil return nil
} }
func (m *WorkMoment) GetAtUserIDList() []string { func (m *WorkMoment) GetAtUserList() []*WorkMomentUser {
if m != nil { if m != nil {
return m.AtUserIDList return m.AtUserList
} }
return nil return nil
} }
@ -1280,7 +1372,7 @@ func (m *CreateOneWorkMomentReq) Reset() { *m = CreateOneWorkMomentReq{}
func (m *CreateOneWorkMomentReq) String() string { return proto.CompactTextString(m) } func (m *CreateOneWorkMomentReq) String() string { return proto.CompactTextString(m) }
func (*CreateOneWorkMomentReq) ProtoMessage() {} func (*CreateOneWorkMomentReq) ProtoMessage() {}
func (*CreateOneWorkMomentReq) Descriptor() ([]byte, []int) { func (*CreateOneWorkMomentReq) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{22} return fileDescriptor_office_02f43b66ea327245, []int{24}
} }
func (m *CreateOneWorkMomentReq) XXX_Unmarshal(b []byte) error { func (m *CreateOneWorkMomentReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CreateOneWorkMomentReq.Unmarshal(m, b) return xxx_messageInfo_CreateOneWorkMomentReq.Unmarshal(m, b)
@ -1325,7 +1417,7 @@ func (m *CreateOneWorkMomentResp) Reset() { *m = CreateOneWorkMomentResp
func (m *CreateOneWorkMomentResp) String() string { return proto.CompactTextString(m) } func (m *CreateOneWorkMomentResp) String() string { return proto.CompactTextString(m) }
func (*CreateOneWorkMomentResp) ProtoMessage() {} func (*CreateOneWorkMomentResp) ProtoMessage() {}
func (*CreateOneWorkMomentResp) Descriptor() ([]byte, []int) { func (*CreateOneWorkMomentResp) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{23} return fileDescriptor_office_02f43b66ea327245, []int{25}
} }
func (m *CreateOneWorkMomentResp) XXX_Unmarshal(b []byte) error { func (m *CreateOneWorkMomentResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CreateOneWorkMomentResp.Unmarshal(m, b) return xxx_messageInfo_CreateOneWorkMomentResp.Unmarshal(m, b)
@ -1365,7 +1457,7 @@ func (m *DeleteOneWorkMomentReq) Reset() { *m = DeleteOneWorkMomentReq{}
func (m *DeleteOneWorkMomentReq) String() string { return proto.CompactTextString(m) } func (m *DeleteOneWorkMomentReq) String() string { return proto.CompactTextString(m) }
func (*DeleteOneWorkMomentReq) ProtoMessage() {} func (*DeleteOneWorkMomentReq) ProtoMessage() {}
func (*DeleteOneWorkMomentReq) Descriptor() ([]byte, []int) { func (*DeleteOneWorkMomentReq) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{24} return fileDescriptor_office_02f43b66ea327245, []int{26}
} }
func (m *DeleteOneWorkMomentReq) XXX_Unmarshal(b []byte) error { func (m *DeleteOneWorkMomentReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteOneWorkMomentReq.Unmarshal(m, b) return xxx_messageInfo_DeleteOneWorkMomentReq.Unmarshal(m, b)
@ -1417,7 +1509,7 @@ func (m *DeleteOneWorkMomentResp) Reset() { *m = DeleteOneWorkMomentResp
func (m *DeleteOneWorkMomentResp) String() string { return proto.CompactTextString(m) } func (m *DeleteOneWorkMomentResp) String() string { return proto.CompactTextString(m) }
func (*DeleteOneWorkMomentResp) ProtoMessage() {} func (*DeleteOneWorkMomentResp) ProtoMessage() {}
func (*DeleteOneWorkMomentResp) Descriptor() ([]byte, []int) { func (*DeleteOneWorkMomentResp) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{25} return fileDescriptor_office_02f43b66ea327245, []int{27}
} }
func (m *DeleteOneWorkMomentResp) XXX_Unmarshal(b []byte) error { func (m *DeleteOneWorkMomentResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteOneWorkMomentResp.Unmarshal(m, b) return xxx_messageInfo_DeleteOneWorkMomentResp.Unmarshal(m, b)
@ -1457,7 +1549,7 @@ func (m *LikeOneWorkMomentReq) Reset() { *m = LikeOneWorkMomentReq{} }
func (m *LikeOneWorkMomentReq) String() string { return proto.CompactTextString(m) } func (m *LikeOneWorkMomentReq) String() string { return proto.CompactTextString(m) }
func (*LikeOneWorkMomentReq) ProtoMessage() {} func (*LikeOneWorkMomentReq) ProtoMessage() {}
func (*LikeOneWorkMomentReq) Descriptor() ([]byte, []int) { func (*LikeOneWorkMomentReq) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{26} return fileDescriptor_office_02f43b66ea327245, []int{28}
} }
func (m *LikeOneWorkMomentReq) XXX_Unmarshal(b []byte) error { func (m *LikeOneWorkMomentReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LikeOneWorkMomentReq.Unmarshal(m, b) return xxx_messageInfo_LikeOneWorkMomentReq.Unmarshal(m, b)
@ -1509,7 +1601,7 @@ func (m *LikeOneWorkMomentResp) Reset() { *m = LikeOneWorkMomentResp{} }
func (m *LikeOneWorkMomentResp) String() string { return proto.CompactTextString(m) } func (m *LikeOneWorkMomentResp) String() string { return proto.CompactTextString(m) }
func (*LikeOneWorkMomentResp) ProtoMessage() {} func (*LikeOneWorkMomentResp) ProtoMessage() {}
func (*LikeOneWorkMomentResp) Descriptor() ([]byte, []int) { func (*LikeOneWorkMomentResp) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{27} return fileDescriptor_office_02f43b66ea327245, []int{29}
} }
func (m *LikeOneWorkMomentResp) XXX_Unmarshal(b []byte) error { func (m *LikeOneWorkMomentResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LikeOneWorkMomentResp.Unmarshal(m, b) return xxx_messageInfo_LikeOneWorkMomentResp.Unmarshal(m, b)
@ -1551,7 +1643,7 @@ func (m *CommentOneWorkMomentReq) Reset() { *m = CommentOneWorkMomentReq
func (m *CommentOneWorkMomentReq) String() string { return proto.CompactTextString(m) } func (m *CommentOneWorkMomentReq) String() string { return proto.CompactTextString(m) }
func (*CommentOneWorkMomentReq) ProtoMessage() {} func (*CommentOneWorkMomentReq) ProtoMessage() {}
func (*CommentOneWorkMomentReq) Descriptor() ([]byte, []int) { func (*CommentOneWorkMomentReq) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{28} return fileDescriptor_office_02f43b66ea327245, []int{30}
} }
func (m *CommentOneWorkMomentReq) XXX_Unmarshal(b []byte) error { func (m *CommentOneWorkMomentReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CommentOneWorkMomentReq.Unmarshal(m, b) return xxx_messageInfo_CommentOneWorkMomentReq.Unmarshal(m, b)
@ -1617,7 +1709,7 @@ func (m *CommentOneWorkMomentResp) Reset() { *m = CommentOneWorkMomentRe
func (m *CommentOneWorkMomentResp) String() string { return proto.CompactTextString(m) } func (m *CommentOneWorkMomentResp) String() string { return proto.CompactTextString(m) }
func (*CommentOneWorkMomentResp) ProtoMessage() {} func (*CommentOneWorkMomentResp) ProtoMessage() {}
func (*CommentOneWorkMomentResp) Descriptor() ([]byte, []int) { func (*CommentOneWorkMomentResp) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{29} return fileDescriptor_office_02f43b66ea327245, []int{31}
} }
func (m *CommentOneWorkMomentResp) XXX_Unmarshal(b []byte) error { func (m *CommentOneWorkMomentResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CommentOneWorkMomentResp.Unmarshal(m, b) return xxx_messageInfo_CommentOneWorkMomentResp.Unmarshal(m, b)
@ -1657,7 +1749,7 @@ func (m *GetWorkMomentByIDReq) Reset() { *m = GetWorkMomentByIDReq{} }
func (m *GetWorkMomentByIDReq) String() string { return proto.CompactTextString(m) } func (m *GetWorkMomentByIDReq) String() string { return proto.CompactTextString(m) }
func (*GetWorkMomentByIDReq) ProtoMessage() {} func (*GetWorkMomentByIDReq) ProtoMessage() {}
func (*GetWorkMomentByIDReq) Descriptor() ([]byte, []int) { func (*GetWorkMomentByIDReq) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{30} return fileDescriptor_office_02f43b66ea327245, []int{32}
} }
func (m *GetWorkMomentByIDReq) XXX_Unmarshal(b []byte) error { func (m *GetWorkMomentByIDReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetWorkMomentByIDReq.Unmarshal(m, b) return xxx_messageInfo_GetWorkMomentByIDReq.Unmarshal(m, b)
@ -1710,7 +1802,7 @@ func (m *GetWorkMomentByIDResp) Reset() { *m = GetWorkMomentByIDResp{} }
func (m *GetWorkMomentByIDResp) String() string { return proto.CompactTextString(m) } func (m *GetWorkMomentByIDResp) String() string { return proto.CompactTextString(m) }
func (*GetWorkMomentByIDResp) ProtoMessage() {} func (*GetWorkMomentByIDResp) ProtoMessage() {}
func (*GetWorkMomentByIDResp) Descriptor() ([]byte, []int) { func (*GetWorkMomentByIDResp) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{31} return fileDescriptor_office_02f43b66ea327245, []int{33}
} }
func (m *GetWorkMomentByIDResp) XXX_Unmarshal(b []byte) error { func (m *GetWorkMomentByIDResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetWorkMomentByIDResp.Unmarshal(m, b) return xxx_messageInfo_GetWorkMomentByIDResp.Unmarshal(m, b)
@ -1759,7 +1851,7 @@ func (m *ChangeWorkMomentPermissionReq) Reset() { *m = ChangeWorkMomentP
func (m *ChangeWorkMomentPermissionReq) String() string { return proto.CompactTextString(m) } func (m *ChangeWorkMomentPermissionReq) String() string { return proto.CompactTextString(m) }
func (*ChangeWorkMomentPermissionReq) ProtoMessage() {} func (*ChangeWorkMomentPermissionReq) ProtoMessage() {}
func (*ChangeWorkMomentPermissionReq) Descriptor() ([]byte, []int) { func (*ChangeWorkMomentPermissionReq) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{32} return fileDescriptor_office_02f43b66ea327245, []int{34}
} }
func (m *ChangeWorkMomentPermissionReq) XXX_Unmarshal(b []byte) error { func (m *ChangeWorkMomentPermissionReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChangeWorkMomentPermissionReq.Unmarshal(m, b) return xxx_messageInfo_ChangeWorkMomentPermissionReq.Unmarshal(m, b)
@ -1825,7 +1917,7 @@ func (m *ChangeWorkMomentPermissionResp) Reset() { *m = ChangeWorkMoment
func (m *ChangeWorkMomentPermissionResp) String() string { return proto.CompactTextString(m) } func (m *ChangeWorkMomentPermissionResp) String() string { return proto.CompactTextString(m) }
func (*ChangeWorkMomentPermissionResp) ProtoMessage() {} func (*ChangeWorkMomentPermissionResp) ProtoMessage() {}
func (*ChangeWorkMomentPermissionResp) Descriptor() ([]byte, []int) { func (*ChangeWorkMomentPermissionResp) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{33} return fileDescriptor_office_02f43b66ea327245, []int{35}
} }
func (m *ChangeWorkMomentPermissionResp) XXX_Unmarshal(b []byte) error { func (m *ChangeWorkMomentPermissionResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChangeWorkMomentPermissionResp.Unmarshal(m, b) return xxx_messageInfo_ChangeWorkMomentPermissionResp.Unmarshal(m, b)
@ -1865,7 +1957,7 @@ func (m *GetUserWorkMomentsReq) Reset() { *m = GetUserWorkMomentsReq{} }
func (m *GetUserWorkMomentsReq) String() string { return proto.CompactTextString(m) } func (m *GetUserWorkMomentsReq) String() string { return proto.CompactTextString(m) }
func (*GetUserWorkMomentsReq) ProtoMessage() {} func (*GetUserWorkMomentsReq) ProtoMessage() {}
func (*GetUserWorkMomentsReq) Descriptor() ([]byte, []int) { func (*GetUserWorkMomentsReq) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{34} return fileDescriptor_office_02f43b66ea327245, []int{36}
} }
func (m *GetUserWorkMomentsReq) XXX_Unmarshal(b []byte) error { func (m *GetUserWorkMomentsReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetUserWorkMomentsReq.Unmarshal(m, b) return xxx_messageInfo_GetUserWorkMomentsReq.Unmarshal(m, b)
@ -1919,7 +2011,7 @@ func (m *GetUserWorkMomentsResp) Reset() { *m = GetUserWorkMomentsResp{}
func (m *GetUserWorkMomentsResp) String() string { return proto.CompactTextString(m) } func (m *GetUserWorkMomentsResp) String() string { return proto.CompactTextString(m) }
func (*GetUserWorkMomentsResp) ProtoMessage() {} func (*GetUserWorkMomentsResp) ProtoMessage() {}
func (*GetUserWorkMomentsResp) Descriptor() ([]byte, []int) { func (*GetUserWorkMomentsResp) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{35} return fileDescriptor_office_02f43b66ea327245, []int{37}
} }
func (m *GetUserWorkMomentsResp) XXX_Unmarshal(b []byte) error { func (m *GetUserWorkMomentsResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetUserWorkMomentsResp.Unmarshal(m, b) return xxx_messageInfo_GetUserWorkMomentsResp.Unmarshal(m, b)
@ -1973,7 +2065,7 @@ func (m *GetUserFriendWorkMomentsReq) Reset() { *m = GetUserFriendWorkMo
func (m *GetUserFriendWorkMomentsReq) String() string { return proto.CompactTextString(m) } func (m *GetUserFriendWorkMomentsReq) String() string { return proto.CompactTextString(m) }
func (*GetUserFriendWorkMomentsReq) ProtoMessage() {} func (*GetUserFriendWorkMomentsReq) ProtoMessage() {}
func (*GetUserFriendWorkMomentsReq) Descriptor() ([]byte, []int) { func (*GetUserFriendWorkMomentsReq) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{36} return fileDescriptor_office_02f43b66ea327245, []int{38}
} }
func (m *GetUserFriendWorkMomentsReq) XXX_Unmarshal(b []byte) error { func (m *GetUserFriendWorkMomentsReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetUserFriendWorkMomentsReq.Unmarshal(m, b) return xxx_messageInfo_GetUserFriendWorkMomentsReq.Unmarshal(m, b)
@ -2027,7 +2119,7 @@ func (m *GetUserFriendWorkMomentsResp) Reset() { *m = GetUserFriendWorkM
func (m *GetUserFriendWorkMomentsResp) String() string { return proto.CompactTextString(m) } func (m *GetUserFriendWorkMomentsResp) String() string { return proto.CompactTextString(m) }
func (*GetUserFriendWorkMomentsResp) ProtoMessage() {} func (*GetUserFriendWorkMomentsResp) ProtoMessage() {}
func (*GetUserFriendWorkMomentsResp) Descriptor() ([]byte, []int) { func (*GetUserFriendWorkMomentsResp) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{37} return fileDescriptor_office_02f43b66ea327245, []int{39}
} }
func (m *GetUserFriendWorkMomentsResp) XXX_Unmarshal(b []byte) error { func (m *GetUserFriendWorkMomentsResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetUserFriendWorkMomentsResp.Unmarshal(m, b) return xxx_messageInfo_GetUserFriendWorkMomentsResp.Unmarshal(m, b)
@ -2085,7 +2177,7 @@ func (m *WorkMomentNotificationMsg) Reset() { *m = WorkMomentNotificatio
func (m *WorkMomentNotificationMsg) String() string { return proto.CompactTextString(m) } func (m *WorkMomentNotificationMsg) String() string { return proto.CompactTextString(m) }
func (*WorkMomentNotificationMsg) ProtoMessage() {} func (*WorkMomentNotificationMsg) ProtoMessage() {}
func (*WorkMomentNotificationMsg) Descriptor() ([]byte, []int) { func (*WorkMomentNotificationMsg) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{38} return fileDescriptor_office_02f43b66ea327245, []int{40}
} }
func (m *WorkMomentNotificationMsg) XXX_Unmarshal(b []byte) error { func (m *WorkMomentNotificationMsg) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_WorkMomentNotificationMsg.Unmarshal(m, b) return xxx_messageInfo_WorkMomentNotificationMsg.Unmarshal(m, b)
@ -2167,7 +2259,7 @@ func (m *SetUserWorkMomentsLevelReq) Reset() { *m = SetUserWorkMomentsLe
func (m *SetUserWorkMomentsLevelReq) String() string { return proto.CompactTextString(m) } func (m *SetUserWorkMomentsLevelReq) String() string { return proto.CompactTextString(m) }
func (*SetUserWorkMomentsLevelReq) ProtoMessage() {} func (*SetUserWorkMomentsLevelReq) ProtoMessage() {}
func (*SetUserWorkMomentsLevelReq) Descriptor() ([]byte, []int) { func (*SetUserWorkMomentsLevelReq) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{39} return fileDescriptor_office_02f43b66ea327245, []int{41}
} }
func (m *SetUserWorkMomentsLevelReq) XXX_Unmarshal(b []byte) error { func (m *SetUserWorkMomentsLevelReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetUserWorkMomentsLevelReq.Unmarshal(m, b) return xxx_messageInfo_SetUserWorkMomentsLevelReq.Unmarshal(m, b)
@ -2219,7 +2311,7 @@ func (m *SetUserWorkMomentsLevelResp) Reset() { *m = SetUserWorkMomentsL
func (m *SetUserWorkMomentsLevelResp) String() string { return proto.CompactTextString(m) } func (m *SetUserWorkMomentsLevelResp) String() string { return proto.CompactTextString(m) }
func (*SetUserWorkMomentsLevelResp) ProtoMessage() {} func (*SetUserWorkMomentsLevelResp) ProtoMessage() {}
func (*SetUserWorkMomentsLevelResp) Descriptor() ([]byte, []int) { func (*SetUserWorkMomentsLevelResp) Descriptor() ([]byte, []int) {
return fileDescriptor_office_1d2fa21c23f88044, []int{40} return fileDescriptor_office_02f43b66ea327245, []int{42}
} }
func (m *SetUserWorkMomentsLevelResp) XXX_Unmarshal(b []byte) error { func (m *SetUserWorkMomentsLevelResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetUserWorkMomentsLevelResp.Unmarshal(m, b) return xxx_messageInfo_SetUserWorkMomentsLevelResp.Unmarshal(m, b)
@ -2268,6 +2360,8 @@ func init() {
proto.RegisterType((*LikeUser)(nil), "office.LikeUser") proto.RegisterType((*LikeUser)(nil), "office.LikeUser")
proto.RegisterType((*NotificationUser)(nil), "office.NotificationUser") proto.RegisterType((*NotificationUser)(nil), "office.NotificationUser")
proto.RegisterType((*Comment)(nil), "office.Comment") proto.RegisterType((*Comment)(nil), "office.Comment")
proto.RegisterType((*PermissionGroup)(nil), "office.PermissionGroup")
proto.RegisterType((*WorkMomentUser)(nil), "office.WorkMomentUser")
proto.RegisterType((*WorkMoment)(nil), "office.WorkMoment") proto.RegisterType((*WorkMoment)(nil), "office.WorkMoment")
proto.RegisterType((*CreateOneWorkMomentReq)(nil), "office.CreateOneWorkMomentReq") proto.RegisterType((*CreateOneWorkMomentReq)(nil), "office.CreateOneWorkMomentReq")
proto.RegisterType((*CreateOneWorkMomentResp)(nil), "office.CreateOneWorkMomentResp") proto.RegisterType((*CreateOneWorkMomentResp)(nil), "office.CreateOneWorkMomentResp")
@ -2861,106 +2955,109 @@ var _OfficeService_serviceDesc = grpc.ServiceDesc{
Metadata: "office/office.proto", Metadata: "office/office.proto",
} }
func init() { proto.RegisterFile("office/office.proto", fileDescriptor_office_1d2fa21c23f88044) } func init() { proto.RegisterFile("office/office.proto", fileDescriptor_office_02f43b66ea327245) }
var fileDescriptor_office_1d2fa21c23f88044 = []byte{ var fileDescriptor_office_02f43b66ea327245 = []byte{
// 1559 bytes of a gzipped FileDescriptorProto // 1604 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0xcd, 0x6e, 0x1c, 0xc5, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0xcd, 0x6e, 0x1c, 0xc5,
0x13, 0xd7, 0xec, 0xa7, 0xb7, 0xd6, 0x89, 0xe3, 0x8e, 0x3f, 0x36, 0x93, 0xd8, 0xf1, 0x7f, 0x92, 0x13, 0xd7, 0xec, 0xa7, 0xb7, 0xd6, 0x89, 0xe3, 0xb6, 0x63, 0x6f, 0x26, 0xb1, 0xe3, 0xff, 0x24,
0xfc, 0x15, 0x3e, 0xb4, 0x46, 0x4b, 0x0e, 0x48, 0x88, 0x08, 0xc5, 0x9b, 0x58, 0x06, 0x6f, 0x62, 0xf9, 0x2b, 0x7c, 0xc8, 0x46, 0x4b, 0x84, 0x10, 0x88, 0x08, 0xc5, 0x9b, 0x58, 0x0b, 0xde, 0xc4,
0xc6, 0x36, 0x11, 0x1c, 0xb0, 0x26, 0xeb, 0xf6, 0x30, 0xf2, 0xee, 0xcc, 0x64, 0x7a, 0x6c, 0xe3, 0x8c, 0x6d, 0x22, 0x38, 0x60, 0x4d, 0xd6, 0xed, 0x61, 0xe4, 0xdd, 0x99, 0xc9, 0xf4, 0xd8, 0x26,
0x13, 0x52, 0x5e, 0x81, 0x03, 0x5c, 0x78, 0x0a, 0x1e, 0x01, 0x71, 0xe0, 0x84, 0x38, 0xf0, 0x06, 0x27, 0xa4, 0x9c, 0xb9, 0x71, 0x80, 0x0b, 0x4f, 0xc1, 0x33, 0x70, 0xe0, 0x84, 0x38, 0xf0, 0x06,
0xbc, 0x03, 0x57, 0xd4, 0x3d, 0x1f, 0xdd, 0x3d, 0xd3, 0xb3, 0xbb, 0x19, 0x40, 0x82, 0x93, 0xb7, 0xbc, 0x03, 0x57, 0xd4, 0x3d, 0x33, 0xfd, 0x31, 0x1f, 0xbb, 0x9b, 0x01, 0x24, 0x38, 0x79, 0xab,
0xaa, 0xab, 0xab, 0xab, 0x7e, 0x5d, 0x55, 0x5d, 0x53, 0x86, 0xeb, 0xde, 0xc9, 0x89, 0x33, 0xc4, 0xbb, 0xba, 0xba, 0xea, 0xd7, 0xd5, 0xbf, 0xae, 0x29, 0xc3, 0x92, 0x77, 0x72, 0xe2, 0x0c, 0xf1,
0x9b, 0xd1, 0x9f, 0xae, 0x1f, 0x78, 0xa1, 0x87, 0x1a, 0x11, 0xa5, 0xff, 0xef, 0x99, 0x8f, 0xdd, 0x56, 0xf4, 0x67, 0xd3, 0x0f, 0xbc, 0xd0, 0x43, 0x8d, 0x48, 0xd2, 0xff, 0xf7, 0xc4, 0xc7, 0xee,
0xa3, 0x9d, 0xc1, 0xa6, 0x7f, 0x6a, 0x6f, 0xb2, 0xa5, 0x4d, 0x72, 0x7c, 0x7a, 0x74, 0x41, 0x36, 0x51, 0x7f, 0xb0, 0xe5, 0x9f, 0xda, 0x5b, 0x6c, 0x6a, 0x8b, 0x1c, 0x9f, 0x1e, 0x5d, 0x90, 0xad,
0x2f, 0x48, 0x24, 0x6a, 0x3c, 0x04, 0xd8, 0xf2, 0xc6, 0x63, 0xcf, 0x35, 0x31, 0xf1, 0x51, 0x07, 0x0b, 0x12, 0xa9, 0x1a, 0xf7, 0x01, 0xb6, 0xbd, 0xf1, 0xd8, 0x73, 0x4d, 0x4c, 0x7c, 0xd4, 0x81,
0x9a, 0x38, 0x08, 0xb6, 0xbc, 0x63, 0xdc, 0xd1, 0x36, 0xb4, 0xfb, 0x75, 0x33, 0x21, 0xd1, 0x0a, 0x26, 0x0e, 0x82, 0x6d, 0xef, 0x18, 0x77, 0xb4, 0x0d, 0xed, 0x6e, 0xdd, 0x4c, 0x44, 0xb4, 0x02,
0x34, 0x70, 0x10, 0x0c, 0x88, 0xdd, 0xa9, 0x6c, 0x68, 0xf7, 0x5b, 0x66, 0x4c, 0x19, 0x1f, 0x40, 0x0d, 0x1c, 0x04, 0x03, 0x62, 0x77, 0x2a, 0x1b, 0xda, 0xdd, 0x96, 0x19, 0x4b, 0xc6, 0x07, 0xd0,
0xf3, 0xc0, 0xb2, 0x0f, 0x09, 0x0e, 0xa8, 0xc8, 0x19, 0xc1, 0xc1, 0x4e, 0x9f, 0xed, 0x6d, 0x99, 0x3c, 0xb0, 0xec, 0x43, 0x82, 0x03, 0xaa, 0x72, 0x46, 0x70, 0xd0, 0xef, 0xb1, 0xb5, 0x2d, 0x33,
0x31, 0x85, 0x74, 0x98, 0xa3, 0xbf, 0x9e, 0x5a, 0x63, 0x1c, 0x6f, 0x4e, 0x69, 0xe3, 0x05, 0x54, 0x96, 0x90, 0x0e, 0x73, 0xf4, 0xd7, 0x63, 0x6b, 0x8c, 0xe3, 0xc5, 0x5c, 0x36, 0x9e, 0x41, 0xf5,
0x0f, 0x2c, 0x1b, 0x2d, 0x41, 0x3d, 0xb4, 0xec, 0x74, 0x67, 0x44, 0x50, 0x6b, 0x42, 0xcb, 0x16, 0xc0, 0xb2, 0xd1, 0x32, 0xd4, 0x43, 0xcb, 0xe6, 0x2b, 0x23, 0x81, 0x7a, 0x13, 0x5a, 0xb6, 0xb4,
0xf6, 0x25, 0x24, 0x7a, 0x2b, 0x52, 0xb9, 0xeb, 0x90, 0xb0, 0x53, 0xdd, 0xa8, 0xde, 0x6f, 0xf7, 0x2e, 0x11, 0xd1, 0x1b, 0x91, 0xc9, 0x5d, 0x87, 0x84, 0x9d, 0xea, 0x46, 0xf5, 0x6e, 0xbb, 0xbb,
0x16, 0xba, 0x31, 0x02, 0xb1, 0x35, 0x66, 0x2a, 0x60, 0x7c, 0x04, 0x57, 0xb7, 0x71, 0x48, 0x99, 0xb0, 0x19, 0x23, 0x10, 0x7b, 0x63, 0x72, 0x05, 0xe3, 0x23, 0xb8, 0xbc, 0x83, 0x43, 0x3a, 0x78,
0x07, 0x96, 0x4d, 0x4c, 0xfc, 0xb2, 0xd0, 0xd2, 0x0d, 0x68, 0x7b, 0x3e, 0x0e, 0xac, 0xd0, 0xf1, 0x60, 0xd9, 0xc4, 0xc4, 0xcf, 0x0b, 0x3d, 0xdd, 0x80, 0xb6, 0xe7, 0xe3, 0xc0, 0x0a, 0x1d, 0xcf,
0xdc, 0x9d, 0x7e, 0x7c, 0xa8, 0xc8, 0x32, 0x4e, 0x60, 0x41, 0xd2, 0x45, 0x7c, 0xd4, 0x03, 0x18, 0xed, 0xf7, 0xe2, 0x4d, 0xe5, 0x21, 0xe3, 0x04, 0x16, 0x14, 0x5b, 0xc4, 0x47, 0x5d, 0x80, 0x21,
0xa6, 0x08, 0x32, 0x85, 0xed, 0x1e, 0x4a, 0xac, 0xe1, 0xd8, 0x9a, 0x82, 0x14, 0xba, 0x0d, 0xb5, 0x47, 0x90, 0x19, 0x6c, 0x77, 0x51, 0xe2, 0x8d, 0xc0, 0xd6, 0x94, 0xb4, 0xd0, 0x4d, 0xa8, 0x85,
0xd0, 0xb2, 0x49, 0xa7, 0xc2, 0x6c, 0x6f, 0x0b, 0xb6, 0x9b, 0x6c, 0xc1, 0x78, 0xa5, 0xc1, 0xfc, 0x96, 0x4d, 0x3a, 0x15, 0xe6, 0x7b, 0x5b, 0xf2, 0xdd, 0x64, 0x13, 0xc6, 0x4b, 0x0d, 0xe6, 0xb7,
0x56, 0x80, 0xad, 0x10, 0x53, 0x1e, 0x7e, 0x29, 0x62, 0xa1, 0xc9, 0x58, 0x70, 0x67, 0x2a, 0x92, 0x03, 0x6c, 0x85, 0x98, 0x8e, 0xe1, 0xe7, 0x32, 0x16, 0x9a, 0x8a, 0x85, 0x08, 0xa6, 0xa2, 0x04,
0x33, 0xeb, 0x00, 0xd1, 0xaf, 0x14, 0xa5, 0x96, 0x29, 0x70, 0xb2, 0xce, 0xd6, 0xf2, 0xce, 0x6e, 0xb3, 0x0e, 0x10, 0xfd, 0xe2, 0x28, 0xb5, 0x4c, 0x69, 0x24, 0x1d, 0x6c, 0x2d, 0x1b, 0xec, 0x36,
0xc1, 0x15, 0xc1, 0x86, 0x72, 0xae, 0x1a, 0x5f, 0xc0, 0x7c, 0x1f, 0x8f, 0x70, 0xea, 0x48, 0x11, 0x5c, 0x92, 0x7c, 0x28, 0x17, 0xaa, 0xf1, 0x05, 0xcc, 0xf7, 0xf0, 0x08, 0xf3, 0x40, 0x8a, 0xb0,
0xf6, 0x69, 0x08, 0x54, 0xc4, 0x10, 0xc8, 0x18, 0x59, 0x55, 0x1a, 0x29, 0xe8, 0x2f, 0x69, 0xe4, 0xe7, 0x29, 0x50, 0x91, 0x53, 0x20, 0xe5, 0x64, 0x35, 0xd7, 0x49, 0xc9, 0x7e, 0x49, 0x27, 0x7f,
0xaf, 0x1a, 0xb4, 0xf6, 0x71, 0x58, 0xca, 0xc4, 0x0e, 0x34, 0x5d, 0x7c, 0xc1, 0x6e, 0x26, 0x32, 0xd5, 0xa0, 0xb5, 0x8f, 0xc3, 0x52, 0x2e, 0x76, 0xa0, 0xe9, 0xe2, 0x0b, 0x76, 0x32, 0x91, 0x7b,
0x2f, 0x21, 0x51, 0x17, 0x90, 0xe3, 0x0e, 0x03, 0x6c, 0x11, 0x7c, 0xc8, 0x6f, 0xa2, 0xc6, 0x6e, 0x89, 0x88, 0x36, 0x01, 0x39, 0xee, 0x30, 0xc0, 0x16, 0xc1, 0x87, 0xe2, 0x24, 0x6a, 0xec, 0x24,
0x42, 0xb1, 0x82, 0xde, 0x84, 0x6b, 0x01, 0x3e, 0x3e, 0x1b, 0x8a, 0xd2, 0x75, 0x26, 0x9d, 0xe3, 0x72, 0x66, 0xd0, 0xeb, 0x70, 0x25, 0xc0, 0xc7, 0x67, 0x43, 0x59, 0xbb, 0xce, 0xb4, 0x33, 0xe3,
0x67, 0x81, 0x69, 0xe4, 0x81, 0xf9, 0x10, 0x20, 0x71, 0xa9, 0x24, 0x2a, 0xbf, 0x6b, 0x70, 0x75, 0x69, 0x60, 0x1a, 0x59, 0x60, 0x3e, 0x04, 0x48, 0x42, 0x2a, 0x89, 0xca, 0xef, 0x1a, 0x5c, 0xde,
0x1f, 0xbb, 0xc7, 0x03, 0x62, 0xf7, 0xa4, 0x30, 0x64, 0x96, 0x69, 0xcc, 0xb2, 0x84, 0xa4, 0x59, 0xc7, 0xee, 0xf1, 0x80, 0xd8, 0x5d, 0x25, 0x0d, 0x99, 0x67, 0x1a, 0xf3, 0x2c, 0x11, 0xe9, 0x2d,
0x7e, 0x98, 0xa4, 0x64, 0x85, 0x2d, 0xa5, 0x34, 0xba, 0x05, 0xad, 0xed, 0xc0, 0x3b, 0xf3, 0x85, 0x3f, 0x4c, 0xae, 0x64, 0x85, 0x4d, 0x71, 0x19, 0xdd, 0x80, 0xd6, 0x4e, 0xe0, 0x9d, 0xf9, 0x52,
0x48, 0xe4, 0x0c, 0x0a, 0x37, 0xc1, 0xee, 0x71, 0x1a, 0x83, 0x31, 0x45, 0xe1, 0xa0, 0xbf, 0x70, 0x26, 0x8a, 0x01, 0x0a, 0x37, 0xc1, 0xee, 0x31, 0xcf, 0xc1, 0x58, 0xa2, 0x70, 0xd0, 0x5f, 0x38,
0xb0, 0x37, 0xb2, 0xc2, 0x13, 0x2f, 0x18, 0xef, 0xf4, 0x3b, 0x75, 0x56, 0x95, 0x72, 0x7c, 0x6a, 0xd8, 0x1b, 0x59, 0xe1, 0x89, 0x17, 0x8c, 0xfb, 0xbd, 0x4e, 0x9d, 0xb1, 0x52, 0x66, 0x9c, 0xfa,
0xd7, 0xd0, 0x73, 0x43, 0xec, 0x86, 0x31, 0x14, 0x09, 0x99, 0x05, 0xaa, 0x99, 0x07, 0xea, 0x31, 0x35, 0xf4, 0xdc, 0x10, 0xbb, 0x61, 0x0c, 0x45, 0x22, 0xa6, 0x81, 0x6a, 0x66, 0x81, 0x7a, 0x08,
0x2c, 0x48, 0x5e, 0x96, 0x44, 0xeb, 0x1b, 0x0d, 0x16, 0xb7, 0x19, 0xe0, 0x54, 0xdb, 0xae, 0x17, 0x0b, 0x4a, 0x94, 0x25, 0xd1, 0xfa, 0x56, 0x83, 0xc5, 0x1d, 0x06, 0x38, 0xb5, 0xb6, 0xeb, 0x45,
0x95, 0x9a, 0x3e, 0xc0, 0x9e, 0x65, 0x3b, 0x2e, 0x3b, 0x2c, 0xd6, 0x74, 0xb7, 0x4b, 0x70, 0x70, 0x54, 0xd3, 0x03, 0xd8, 0xb3, 0x6c, 0xc7, 0x65, 0x9b, 0xc5, 0x96, 0x6e, 0x6f, 0x12, 0x1c, 0x9c,
0x8e, 0x83, 0x23, 0xcb, 0x77, 0x8e, 0x7c, 0x2b, 0xb0, 0xc6, 0xa4, 0x6b, 0xe2, 0x97, 0x67, 0x98, 0xe3, 0xe0, 0xc8, 0xf2, 0x9d, 0x23, 0xdf, 0x0a, 0xac, 0x31, 0xd9, 0x34, 0xf1, 0xf3, 0x33, 0x4c,
0x84, 0x5c, 0xd6, 0x14, 0xf6, 0x15, 0xe6, 0xf8, 0xf4, 0xf4, 0xf0, 0x00, 0xb8, 0x45, 0x52, 0xdd, 0x42, 0xa1, 0x6b, 0x4a, 0xeb, 0x0a, 0xef, 0xf8, 0xf4, 0xeb, 0xe1, 0x01, 0x08, 0x8f, 0x14, 0xde,
0xd4, 0xa6, 0xd4, 0x4d, 0x11, 0xd3, 0x8a, 0x8c, 0xa9, 0x0e, 0x73, 0xf4, 0x06, 0x0e, 0x9c, 0x38, 0xd4, 0xa6, 0xf0, 0xa6, 0x8c, 0x69, 0x45, 0xc5, 0x54, 0x87, 0x39, 0x7a, 0x02, 0x07, 0x4e, 0x9c,
0xe6, 0xab, 0x66, 0x4a, 0x1b, 0x3f, 0x69, 0x80, 0xb2, 0x30, 0x94, 0xac, 0x92, 0x8f, 0x25, 0xec, 0xf3, 0x55, 0x93, 0xcb, 0xc6, 0x4f, 0x1a, 0xa0, 0x34, 0x0c, 0x25, 0x59, 0xf2, 0xa1, 0x82, 0x5d,
0x2a, 0x6c, 0xcf, 0x3d, 0x25, 0x76, 0xc4, 0xf7, 0x5c, 0x82, 0x0b, 0xc0, 0x7b, 0x00, 0xed, 0x90, 0x85, 0xad, 0xb9, 0x93, 0x8b, 0x1d, 0xf1, 0x3d, 0x97, 0xe0, 0x02, 0xf0, 0xee, 0x41, 0x3b, 0x14,
0x5b, 0x13, 0xbf, 0x17, 0x48, 0xf0, 0x3b, 0x5e, 0x32, 0x45, 0x31, 0x63, 0xc8, 0x6e, 0x33, 0xae, 0xde, 0xc4, 0xef, 0x05, 0x92, 0xe2, 0x8e, 0xa7, 0x4c, 0x59, 0xcd, 0x18, 0xb2, 0xd3, 0x8c, 0x99,
0xf4, 0x8f, 0x2e, 0x77, 0xfa, 0xff, 0x44, 0xf1, 0xb2, 0x19, 0x56, 0xd2, 0x21, 0x25, 0xb1, 0x5a, 0xfe, 0xc1, 0x8b, 0x7e, 0xef, 0x9f, 0x20, 0x2f, 0x9b, 0x61, 0xa5, 0x6c, 0x52, 0x12, 0xab, 0x35,
0x83, 0x6a, 0x68, 0xd9, 0x31, 0x48, 0xd2, 0x83, 0x42, 0xf9, 0xc6, 0x43, 0x98, 0xdb, 0x75, 0x4e, 0xa8, 0x86, 0x96, 0x1d, 0x83, 0xa4, 0x3c, 0x28, 0x74, 0xdc, 0xb8, 0x0f, 0x73, 0xbb, 0xce, 0x29,
0x71, 0xe9, 0x77, 0xfa, 0x09, 0x5c, 0x7b, 0xea, 0x85, 0xce, 0x89, 0x33, 0x64, 0xa6, 0x97, 0xd6, 0x2e, 0xfd, 0x4e, 0x3f, 0x82, 0x2b, 0x8f, 0xbd, 0xd0, 0x39, 0x71, 0x86, 0xcc, 0xf5, 0xd2, 0x76,
0xf3, 0x87, 0x06, 0x4d, 0xea, 0x01, 0x8d, 0xa2, 0x12, 0xfb, 0x69, 0x4c, 0x9e, 0x58, 0x43, 0x7c, 0xfe, 0xd0, 0xa0, 0x49, 0x23, 0xa0, 0x59, 0x54, 0x62, 0x3d, 0xcd, 0xc9, 0x13, 0x6b, 0x88, 0x0f,
0x68, 0xee, 0x26, 0xc5, 0x36, 0x26, 0x29, 0xd8, 0x01, 0xf6, 0x47, 0x97, 0x51, 0x8d, 0x4c, 0x9e, 0xcd, 0xdd, 0x84, 0x6c, 0x63, 0x91, 0x82, 0x1d, 0x60, 0x7f, 0xf4, 0x22, 0xe2, 0xc8, 0xe4, 0x39,
0x33, 0x81, 0x85, 0xee, 0xc2, 0x95, 0x94, 0x64, 0xca, 0xeb, 0x4c, 0x46, 0x66, 0xd2, 0x5a, 0x15, 0x93, 0x86, 0xd0, 0x6d, 0xb8, 0xc4, 0x45, 0x66, 0xbc, 0xce, 0x74, 0xd4, 0x41, 0xca, 0x55, 0x71,
0x87, 0x79, 0x5a, 0x56, 0x39, 0x43, 0xcc, 0x89, 0xa6, 0x9c, 0x13, 0xeb, 0x00, 0xc3, 0xe8, 0xb1, 0x9a, 0x73, 0x5a, 0x15, 0x03, 0xf2, 0x9d, 0x68, 0xaa, 0x77, 0x62, 0x1d, 0x60, 0x18, 0x3d, 0x96,
0xa4, 0x59, 0x31, 0xc7, 0xea, 0x94, 0xc0, 0x31, 0x7e, 0xac, 0x02, 0x3c, 0xf7, 0x82, 0xd3, 0x81, 0xf4, 0x56, 0xcc, 0x31, 0x9e, 0x92, 0x46, 0x8c, 0x3e, 0x2c, 0xec, 0xe1, 0x60, 0xec, 0x10, 0xe2,
0xc7, 0x9c, 0x37, 0x60, 0xfe, 0x22, 0xa5, 0x52, 0x08, 0x24, 0x5e, 0x61, 0xd6, 0x8b, 0x00, 0x55, 0x78, 0x2e, 0x23, 0x3f, 0xba, 0x95, 0x4d, 0x7f, 0x48, 0xaf, 0xba, 0x18, 0xa0, 0x5b, 0x31, 0x81,
0x8b, 0x01, 0xaa, 0xc9, 0x00, 0x09, 0xa6, 0xd7, 0x65, 0xd3, 0xbb, 0xd0, 0x1a, 0xc5, 0xc1, 0x41, 0x67, 0x55, 0x22, 0x1a, 0x3d, 0xb8, 0xfc, 0xd4, 0x0b, 0x4e, 0x07, 0x1e, 0x85, 0xb1, 0xf4, 0x51,
0x3a, 0x0d, 0x96, 0x1e, 0xd7, 0x92, 0x08, 0x4a, 0xa2, 0xc6, 0xe4, 0x22, 0xb4, 0x8a, 0x0c, 0xa3, 0x7c, 0x53, 0x03, 0x10, 0x66, 0x90, 0x01, 0xf3, 0x17, 0x5c, 0xe2, 0x86, 0x94, 0xb1, 0x42, 0x1a,
0x3b, 0x24, 0x9d, 0xa6, 0x5c, 0x45, 0xe2, 0xbb, 0x35, 0x53, 0x01, 0x8a, 0x8b, 0x8f, 0x83, 0xb1, 0x92, 0xb7, 0xa9, 0x16, 0x9f, 0x58, 0x4d, 0x3d, 0x31, 0x09, 0xcb, 0xba, 0x8a, 0xe5, 0x7b, 0x30,
0x43, 0x08, 0x4d, 0xe2, 0x18, 0x17, 0xce, 0x41, 0x3d, 0x58, 0xe2, 0x94, 0xf0, 0xf0, 0xb5, 0xd8, 0x3f, 0x8a, 0xb3, 0x95, 0x51, 0x55, 0x83, 0x5d, 0xd9, 0x95, 0x24, 0xab, 0xd5, 0xe0, 0x4d, 0x45,
0x33, 0xa1, 0x5c, 0x43, 0x0f, 0x60, 0x99, 0xf3, 0xd9, 0x43, 0x12, 0x6f, 0x02, 0xb6, 0x49, 0xbd, 0x97, 0x52, 0xdc, 0x30, 0x4a, 0x30, 0xd2, 0x69, 0xaa, 0x14, 0x17, 0x27, 0x9e, 0xc9, 0x15, 0xe8,
0x48, 0x21, 0xb7, 0x42, 0xe1, 0x84, 0x36, 0x13, 0x96, 0x78, 0x99, 0x5b, 0x9c, 0xcf, 0xdd, 0xa2, 0xa1, 0xf9, 0xfc, 0x50, 0x92, 0x43, 0x13, 0x23, 0xe8, 0x11, 0x20, 0x21, 0x71, 0x77, 0x5a, 0x13,
0x0b, 0x2b, 0x51, 0x4b, 0xf4, 0xcc, 0xc5, 0xfc, 0x36, 0x69, 0x69, 0xe8, 0x01, 0xf0, 0xcb, 0xcb, 0xdd, 0xc9, 0x59, 0x81, 0xfa, 0xb0, 0xe4, 0xab, 0x87, 0xcf, 0x0c, 0x01, 0x33, 0xb4, 0x9a, 0x18,
0x26, 0xad, 0x20, 0x2a, 0x48, 0xcd, 0xd0, 0x6f, 0x0e, 0x60, 0x55, 0x79, 0x5e, 0xc9, 0x37, 0xea, 0x4a, 0xe5, 0x87, 0x99, 0xb7, 0x06, 0xbd, 0x03, 0x60, 0x85, 0xdc, 0x95, 0xf6, 0x44, 0x57, 0x24,
0x1c, 0x56, 0xa2, 0x66, 0x29, 0x67, 0xfe, 0x5f, 0x89, 0xc7, 0xe9, 0x75, 0x6e, 0x00, 0xab, 0xca, 0xcd, 0x54, 0x7e, 0xce, 0x67, 0xf2, 0xd3, 0x85, 0x95, 0xa8, 0xd8, 0x7b, 0xe2, 0x62, 0x61, 0x86,
0x73, 0x4b, 0xba, 0x11, 0xc2, 0x12, 0x8d, 0xcb, 0x9c, 0x13, 0x45, 0x15, 0xc5, 0x80, 0xf9, 0xe7, 0x92, 0x5e, 0x17, 0x40, 0x64, 0x41, 0x9a, 0x8e, 0x24, 0x55, 0x49, 0x6b, 0x86, 0x4a, 0x7a, 0x00,
0xa2, 0x73, 0x91, 0xf9, 0x12, 0x6f, 0x06, 0x27, 0x3e, 0x86, 0x65, 0xc5, 0xa9, 0x25, 0x5d, 0xf8, 0xab, 0xb9, 0xfb, 0x95, 0x7c, 0x7d, 0xcf, 0x61, 0x25, 0x2a, 0x03, 0x33, 0xee, 0xff, 0x95, 0xc4,
0x41, 0x83, 0xd5, 0x38, 0x59, 0x5e, 0xc7, 0x8d, 0x0b, 0x85, 0x1b, 0x17, 0x19, 0x37, 0xc4, 0x32, 0x9e, 0xce, 0xe0, 0x03, 0x58, 0xcd, 0xdd, 0xb7, 0x64, 0x18, 0x21, 0x2c, 0x53, 0x9e, 0xce, 0x04,
0x58, 0xcd, 0x97, 0x41, 0xa1, 0x0e, 0xd4, 0x26, 0xb6, 0x4a, 0xf5, 0x3c, 0x04, 0x4f, 0xa1, 0xa3, 0x51, 0x74, 0xc1, 0x0d, 0x98, 0x7f, 0x2a, 0x07, 0x17, 0xb9, 0xaf, 0x8c, 0xcd, 0x10, 0xc4, 0xc7,
0x36, 0xba, 0x24, 0x0a, 0x5f, 0xc1, 0xd2, 0x36, 0x0e, 0xb9, 0xa2, 0xe4, 0x9d, 0x9d, 0x25, 0x1a, 0x70, 0x35, 0x67, 0xd7, 0x92, 0x21, 0xfc, 0xa8, 0xc1, 0x6a, 0x7c, 0xd3, 0x5e, 0x25, 0x8c, 0x8b,
0x75, 0x98, 0xf3, 0xfc, 0x43, 0x31, 0x1e, 0x53, 0x7a, 0x86, 0xcb, 0xfc, 0x1a, 0x96, 0x15, 0x27, 0x9c, 0x30, 0x2e, 0x52, 0x61, 0xc8, 0x04, 0x5f, 0xcd, 0x12, 0xbc, 0x44, 0x28, 0xb5, 0x89, 0x45,
0x97, 0x7c, 0x7c, 0xe5, 0xdc, 0xaf, 0xcc, 0x92, 0xfb, 0xc6, 0x6f, 0x1a, 0xac, 0x6d, 0x7d, 0x69, 0x60, 0x3d, 0x0b, 0xc1, 0x63, 0xe8, 0xe4, 0x3b, 0x5d, 0x12, 0x85, 0xaf, 0x60, 0x79, 0x07, 0x87,
0xb9, 0xb6, 0x80, 0xe3, 0x5e, 0x5a, 0xb7, 0xfe, 0x0e, 0x10, 0xe4, 0xca, 0x5b, 0x9d, 0xb9, 0xf2, 0xc2, 0x50, 0x52, 0x41, 0xcc, 0x92, 0x8d, 0x3a, 0xcc, 0x79, 0xfe, 0xa1, 0x9c, 0x8f, 0x5c, 0x9e,
0xd6, 0x26, 0x54, 0xde, 0xe9, 0x21, 0x72, 0x00, 0xeb, 0x93, 0xdc, 0x2a, 0x19, 0x28, 0xdf, 0x6a, 0xe1, 0x30, 0xbf, 0x86, 0xab, 0x39, 0x3b, 0x97, 0x2c, 0x2b, 0xd4, 0xbb, 0x5f, 0x99, 0xe5, 0xee,
0xec, 0xbe, 0xa8, 0x25, 0x5c, 0xef, 0xc4, 0x6f, 0xf9, 0xbe, 0xa2, 0x79, 0x7c, 0xfd, 0xc6, 0x7b, 0x1b, 0xbf, 0x69, 0xb0, 0xb6, 0xfd, 0xa5, 0xe5, 0xda, 0x12, 0x8e, 0x82, 0xda, 0xfe, 0x0e, 0x10,
0x7a, 0x20, 0xfd, 0xac, 0xc1, 0x8a, 0xca, 0xb2, 0x92, 0xa1, 0xf4, 0x00, 0xda, 0xfc, 0x82, 0x93, 0x54, 0xda, 0xae, 0x66, 0x68, 0xbb, 0x0b, 0xcb, 0x2a, 0x09, 0x2b, 0x9f, 0x5e, 0xb9, 0x73, 0x33,
0x01, 0x81, 0x2a, 0x96, 0x44, 0xb1, 0x4c, 0xa7, 0x5c, 0x2d, 0xd9, 0x29, 0x1b, 0xdf, 0x6b, 0x70, 0xa4, 0xc8, 0x01, 0xac, 0x4f, 0x0a, 0xab, 0x64, 0xa2, 0x7c, 0xa7, 0xb1, 0xf3, 0xa2, 0x9e, 0x08,
0x33, 0xf6, 0xe5, 0x49, 0xe0, 0x60, 0xf7, 0xf8, 0x5f, 0x86, 0xf5, 0x2f, 0x1a, 0xdc, 0x2a, 0xb6, 0xbb, 0x13, 0xbb, 0x14, 0xbd, 0x9c, 0xb2, 0xf8, 0xd5, 0x3f, 0x29, 0xa6, 0x27, 0xd2, 0xcf, 0x1a,
0xef, 0xbf, 0x88, 0xf8, 0x77, 0x15, 0xb8, 0xc1, 0x8f, 0x10, 0x5b, 0xec, 0x01, 0xb1, 0xd1, 0x3b, 0xac, 0xe4, 0x79, 0x56, 0x32, 0x95, 0xee, 0x41, 0x5b, 0x1c, 0x70, 0xd2, 0xfa, 0xc8, 0xcb, 0x25,
0x70, 0xdd, 0x95, 0x59, 0x07, 0x97, 0x7e, 0x32, 0x9a, 0x53, 0x2d, 0xa1, 0x37, 0x68, 0x71, 0x1f, 0x59, 0x2d, 0xf5, 0x0d, 0x50, 0x2d, 0xf9, 0x0d, 0x60, 0xfc, 0xa0, 0xc1, 0xf5, 0x38, 0x96, 0x47,
0x0b, 0x65, 0x28, 0xd7, 0x99, 0x25, 0xeb, 0xb9, 0xf2, 0x52, 0x9d, 0xf8, 0xe2, 0xd7, 0x0a, 0x3b, 0x81, 0x83, 0xdd, 0xe3, 0x7f, 0x19, 0xd6, 0xbf, 0x68, 0x70, 0xa3, 0xd8, 0xbf, 0xff, 0x22, 0xe2,
0xd0, 0x7a, 0x71, 0x07, 0xda, 0x90, 0x3b, 0xd0, 0xb7, 0x61, 0x91, 0x6b, 0xdf, 0x92, 0xda, 0xe8, 0xdf, 0x57, 0xe0, 0x9a, 0xd8, 0x42, 0xfe, 0x78, 0x18, 0x10, 0x1b, 0xbd, 0x05, 0x4b, 0xae, 0x3a,
0xfc, 0x82, 0x31, 0x02, 0x7d, 0x3f, 0x97, 0x57, 0xbb, 0xf8, 0x1c, 0x8f, 0xa6, 0x7c, 0x89, 0x8d, 0x74, 0xf0, 0xc2, 0x4f, 0x9a, 0x8e, 0x79, 0x53, 0xe8, 0x35, 0x4a, 0xee, 0x63, 0x89, 0x86, 0x32,
0xa8, 0x0c, 0x73, 0xbf, 0x6e, 0x46, 0xc4, 0x0c, 0xa1, 0xf5, 0x09, 0xdc, 0x2c, 0x3c, 0xad, 0x5c, 0x65, 0x5d, 0x32, 0x9f, 0xa1, 0x97, 0xea, 0xc4, 0x17, 0xbf, 0x56, 0x58, 0xca, 0xd6, 0x8b, 0x4b,
0x60, 0xf5, 0x5e, 0x01, 0x5c, 0x79, 0xc6, 0x24, 0xf6, 0x71, 0x70, 0xee, 0x0c, 0x31, 0x7a, 0x08, 0xd9, 0x86, 0x5a, 0xca, 0xbe, 0x09, 0x8b, 0xc2, 0xfa, 0xb6, 0xf2, 0x81, 0x90, 0x9d, 0x30, 0x46,
0x6d, 0x61, 0x7a, 0x88, 0x56, 0x12, 0x05, 0xf2, 0x78, 0x52, 0x5f, 0x55, 0xf2, 0x89, 0x8f, 0xde, 0xa0, 0xef, 0x67, 0xee, 0xd5, 0x2e, 0x3e, 0xc7, 0xa3, 0x29, 0xdf, 0x98, 0x23, 0xaa, 0xc3, 0xc2,
0x83, 0x56, 0x3a, 0x90, 0x43, 0x4b, 0xe9, 0xf1, 0xc2, 0x9c, 0x50, 0x5f, 0x56, 0x70, 0xa3, 0x9d, 0xaf, 0x9b, 0x91, 0x30, 0x43, 0x6a, 0x7d, 0x02, 0xd7, 0x0b, 0x77, 0x2b, 0x97, 0x58, 0xdd, 0x97,
0xe9, 0x94, 0x8c, 0xef, 0x14, 0x07, 0x73, 0x7c, 0xa7, 0x3c, 0x4e, 0xdb, 0x84, 0x46, 0x34, 0x46, 0x00, 0x97, 0x9e, 0x30, 0x8d, 0x7d, 0x1c, 0x9c, 0x3b, 0x43, 0x8c, 0xee, 0x43, 0x5b, 0xea, 0x8b,
0x42, 0x8b, 0x89, 0x40, 0x3a, 0x29, 0xd3, 0x51, 0x96, 0x45, 0x7c, 0xea, 0xa4, 0x30, 0x4e, 0xe1, 0x22, 0x5e, 0x90, 0xaa, 0x8d, 0x57, 0x7d, 0x35, 0x77, 0x9c, 0xf8, 0xe8, 0x5d, 0x68, 0xf1, 0x56,
0x4e, 0xca, 0x93, 0x24, 0xee, 0x64, 0x76, 0xf6, 0xb2, 0xcd, 0xc6, 0xb5, 0xc2, 0xfc, 0x00, 0xdd, 0x23, 0x5a, 0xe6, 0xdb, 0x4b, 0x1d, 0x50, 0xfd, 0x6a, 0xce, 0x68, 0xb4, 0x92, 0xf7, 0xff, 0xc4,
0x10, 0xf0, 0x90, 0xc7, 0x2b, 0xba, 0x5e, 0xb4, 0x94, 0x2a, 0x12, 0x3e, 0xae, 0x25, 0x45, 0xf2, 0x4a, 0xb9, 0xe5, 0x28, 0x56, 0xaa, 0x8d, 0xc2, 0x2d, 0x68, 0x44, 0x0d, 0x32, 0xb4, 0x98, 0x28,
0x97, 0xbd, 0xa4, 0x28, 0xfb, 0x3d, 0xfe, 0x29, 0x5c, 0x57, 0x34, 0xe1, 0x68, 0x5d, 0x86, 0x3a, 0xf0, 0x1e, 0xa0, 0x8e, 0xd2, 0x43, 0xc4, 0xa7, 0x41, 0x4a, 0x8d, 0x22, 0x11, 0xa4, 0xda, 0x23,
0xdb, 0xc6, 0xe9, 0xb7, 0x27, 0xae, 0x47, 0x7a, 0x15, 0x5d, 0x31, 0xd7, 0xab, 0x6e, 0xd5, 0xb9, 0x13, 0x41, 0xa6, 0xbb, 0x4a, 0x3b, 0xac, 0x11, 0x2d, 0x75, 0x46, 0xd0, 0x35, 0x09, 0x0f, 0xb5,
0xde, 0xa2, 0x96, 0x7a, 0x0f, 0x16, 0x73, 0x8d, 0x2a, 0xba, 0x25, 0x7e, 0xd1, 0xe5, 0x74, 0xae, 0x71, 0xa4, 0xeb, 0x45, 0x53, 0xdc, 0x90, 0xd4, 0x36, 0x50, 0x0c, 0xa9, 0x3d, 0x0b, 0xc5, 0x50,
0x4d, 0x58, 0x25, 0x3e, 0xfa, 0x0c, 0x96, 0x54, 0x7d, 0x1f, 0xba, 0x9d, 0xa9, 0x2e, 0x39, 0xbd, 0xba, 0xd3, 0xf0, 0x29, 0x2c, 0xe5, 0x14, 0xe1, 0x68, 0x5d, 0x85, 0x3a, 0x5d, 0xc6, 0xe9, 0x37,
0x1b, 0x93, 0x05, 0x22, 0x63, 0x73, 0x8d, 0x18, 0x37, 0x56, 0xd5, 0x1d, 0x72, 0x63, 0xd5, 0x1d, 0x27, 0xce, 0x47, 0x76, 0x73, 0xaa, 0x62, 0x61, 0x37, 0xbf, 0x54, 0x17, 0x76, 0x8b, 0x4a, 0xea,
0xdc, 0x29, 0xe8, 0xc5, 0x1d, 0x08, 0xba, 0x97, 0x5a, 0x34, 0xa9, 0xf9, 0xd2, 0xff, 0x3f, 0x8b, 0x3d, 0x58, 0xcc, 0x14, 0xaa, 0xe8, 0x46, 0xb2, 0x2a, 0xaf, 0x72, 0xd6, 0xd7, 0x26, 0xcc, 0x12,
0x18, 0xf1, 0xd1, 0x7e, 0x3a, 0xc1, 0x11, 0xea, 0x06, 0x5a, 0xcb, 0x44, 0x93, 0xfc, 0x8e, 0xea, 0x1f, 0x7d, 0x06, 0xcb, 0x79, 0x75, 0x1f, 0xba, 0x99, 0x62, 0x97, 0x8c, 0xdd, 0x8d, 0xc9, 0x0a,
0xeb, 0x93, 0x96, 0x89, 0x8f, 0x30, 0x74, 0x8a, 0x9e, 0x39, 0x74, 0x27, 0xb3, 0x57, 0xf5, 0x50, 0x91, 0xb3, 0x99, 0x42, 0x4c, 0x38, 0x9b, 0x57, 0x1d, 0x0a, 0x67, 0xf3, 0x2b, 0xb8, 0x53, 0xd0,
0xeb, 0x77, 0xa7, 0x0b, 0x11, 0x1f, 0xbd, 0x80, 0xd5, 0x82, 0x9a, 0x87, 0x0c, 0x21, 0xb1, 0x0b, 0x8b, 0x2b, 0x10, 0x74, 0x87, 0x7b, 0x34, 0xa9, 0xf8, 0xd2, 0xff, 0x3f, 0x8b, 0x1a, 0xf1, 0xd1,
0x4a, 0xb0, 0x7e, 0x67, 0xaa, 0x0c, 0xf1, 0x1f, 0x2d, 0x7e, 0xbe, 0xd0, 0x8d, 0xff, 0x39, 0xf5, 0x3e, 0xef, 0x4d, 0x49, 0xbc, 0x81, 0xd6, 0x52, 0xd9, 0xa4, 0xbe, 0xa3, 0xfa, 0xfa, 0xa4, 0x69,
0x7e, 0xf4, 0xe7, 0x45, 0x83, 0xfd, 0xe7, 0xe9, 0xdd, 0x3f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xe2, 0x23, 0x0c, 0x9d, 0xa2, 0x67, 0x0e, 0xdd, 0x4a, 0xad, 0xcd, 0x7b, 0xa8, 0xf5, 0xdb, 0xd3,
0xd5, 0x09, 0xd5, 0xbb, 0x1a, 0x00, 0x00, 0x95, 0x88, 0x8f, 0x9e, 0xc1, 0x6a, 0x01, 0xe7, 0x21, 0x43, 0xba, 0xd8, 0x05, 0x14, 0xac, 0xdf,
0x9a, 0xaa, 0x43, 0xfc, 0x07, 0x8b, 0x9f, 0x2f, 0x6c, 0xc6, 0xff, 0x76, 0x7b, 0x3f, 0xfa, 0xf3,
0xac, 0xc1, 0xfe, 0xa7, 0xf6, 0xf6, 0x9f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x70, 0x91, 0x17, 0x98,
0x95, 0x1b, 0x00, 0x00,
} }

View File

@ -129,18 +129,28 @@ message Comment {
int32 createTime = 8; int32 createTime = 8;
} }
message PermissionGroup {
string groupName = 1;
string groupID = 2;
}
message WorkMomentUser {
string userID = 1;
string userName = 2;
}
message WorkMoment { message WorkMoment {
string workMomentID = 1; string workMomentID = 1;
string userID = 2; string userID = 2;
string userName = 3; string userName = 3;
string faceURL = 4; string faceURL = 4;
string content = 5; string content = 5;
repeated LikeUser likeUsers = 6; repeated WorkMomentUser likeUserList = 6;
repeated Comment comments = 7; repeated Comment comments = 7;
int32 permission = 8; int32 permission = 8;
repeated string permissionUserIDList = 9; repeated WorkMomentUser permissionUserList = 9;
repeated string permissionGroupIDList = 10; repeated PermissionGroup permissionGroupList = 10;
repeated string atUserIDList = 11; repeated WorkMomentUser atUserList = 11;
int32 createTime = 12; int32 createTime = 12;
} }