mdbc/mdbc.pb.go
2023-03-23 00:59:52 +08:00

2892 lines
117 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.29.0
// protoc v4.22.2
// source: mdbc.proto
package mdbc
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type AdminType int32
const (
// @desc: 普通用户
AdminType_AdminTypeNil AdminType = 0
// @desc: 管理员
AdminType_AdminTypeAdmin AdminType = 1
// @desc: 群主
AdminType_AdminTypeOwner AdminType = 2
)
// Enum value maps for AdminType.
var (
AdminType_name = map[int32]string{
0: "AdminTypeNil",
1: "AdminTypeAdmin",
2: "AdminTypeOwner",
}
AdminType_value = map[string]int32{
"AdminTypeNil": 0,
"AdminTypeAdmin": 1,
"AdminTypeOwner": 2,
}
)
func (x AdminType) Enum() *AdminType {
p := new(AdminType)
*p = x
return p
}
func (x AdminType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (AdminType) Descriptor() protoreflect.EnumDescriptor {
return file_mdbc_proto_enumTypes[0].Descriptor()
}
func (AdminType) Type() protoreflect.EnumType {
return &file_mdbc_proto_enumTypes[0]
}
func (x AdminType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use AdminType.Descriptor instead.
func (AdminType) EnumDescriptor() ([]byte, []int) {
return file_mdbc_proto_rawDescGZIP(), []int{0}
}
type TaskState int32
const (
TaskState_TaskStateNil TaskState = 0 //已初始化
TaskState_TaskStateRunning TaskState = 1 //运行中
TaskState_TaskStateFailed TaskState = 2 //失败退出
TaskState_TaskStateCompleted TaskState = 3 //完成
)
// Enum value maps for TaskState.
var (
TaskState_name = map[int32]string{
0: "TaskStateNil",
1: "TaskStateRunning",
2: "TaskStateFailed",
3: "TaskStateCompleted",
}
TaskState_value = map[string]int32{
"TaskStateNil": 0,
"TaskStateRunning": 1,
"TaskStateFailed": 2,
"TaskStateCompleted": 3,
}
)
func (x TaskState) Enum() *TaskState {
p := new(TaskState)
*p = x
return p
}
func (x TaskState) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (TaskState) Descriptor() protoreflect.EnumDescriptor {
return file_mdbc_proto_enumTypes[1].Descriptor()
}
func (TaskState) Type() protoreflect.EnumType {
return &file_mdbc_proto_enumTypes[1]
}
func (x TaskState) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use TaskState.Descriptor instead.
func (TaskState) EnumDescriptor() ([]byte, []int) {
return file_mdbc_proto_rawDescGZIP(), []int{1}
}
// @table_name: tb_friends_info
type ModelFriendInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // 主键ID wxid md5
WechatId string `protobuf:"bytes,2,opt,name=wechat_id,json=wechatId,proto3" json:"wechat_id,omitempty"` // 用户微信ID
// @bson: nick_name
Nickname string `protobuf:"bytes,3,opt,name=nickname,proto3" json:"nickname,omitempty"` // 用户暱称
WechatAlias string `protobuf:"bytes,4,opt,name=wechat_alias,json=wechatAlias,proto3" json:"wechat_alias,omitempty"` // 用户微信号
AvatarUrl string `protobuf:"bytes,5,opt,name=avatar_url,json=avatarUrl,proto3" json:"avatar_url,omitempty"` // 用户头像
Phone string `protobuf:"bytes,6,opt,name=phone,proto3" json:"phone,omitempty"` // 手机号码
Country string `protobuf:"bytes,7,opt,name=country,proto3" json:"country,omitempty"` // 国家
Province string `protobuf:"bytes,8,opt,name=province,proto3" json:"province,omitempty"` // 省份
City string `protobuf:"bytes,9,opt,name=city,proto3" json:"city,omitempty"` // 城市
Sex int32 `protobuf:"varint,10,opt,name=sex,proto3" json:"sex,omitempty"` // 0未知 1男 2女
CreateTime int64 `protobuf:"varint,12,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` // 创建时间
UpdateTime int64 `protobuf:"varint,13,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` // 更新时间
}
func (x *ModelFriendInfo) Reset() {
*x = ModelFriendInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_mdbc_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModelFriendInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModelFriendInfo) ProtoMessage() {}
func (x *ModelFriendInfo) ProtoReflect() protoreflect.Message {
mi := &file_mdbc_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModelFriendInfo.ProtoReflect.Descriptor instead.
func (*ModelFriendInfo) Descriptor() ([]byte, []int) {
return file_mdbc_proto_rawDescGZIP(), []int{0}
}
func (x *ModelFriendInfo) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *ModelFriendInfo) GetWechatId() string {
if x != nil {
return x.WechatId
}
return ""
}
func (x *ModelFriendInfo) GetNickname() string {
if x != nil {
return x.Nickname
}
return ""
}
func (x *ModelFriendInfo) GetWechatAlias() string {
if x != nil {
return x.WechatAlias
}
return ""
}
func (x *ModelFriendInfo) GetAvatarUrl() string {
if x != nil {
return x.AvatarUrl
}
return ""
}
func (x *ModelFriendInfo) GetPhone() string {
if x != nil {
return x.Phone
}
return ""
}
func (x *ModelFriendInfo) GetCountry() string {
if x != nil {
return x.Country
}
return ""
}
func (x *ModelFriendInfo) GetProvince() string {
if x != nil {
return x.Province
}
return ""
}
func (x *ModelFriendInfo) GetCity() string {
if x != nil {
return x.City
}
return ""
}
func (x *ModelFriendInfo) GetSex() int32 {
if x != nil {
return x.Sex
}
return 0
}
func (x *ModelFriendInfo) GetCreateTime() int64 {
if x != nil {
return x.CreateTime
}
return 0
}
func (x *ModelFriendInfo) GetUpdateTime() int64 {
if x != nil {
return x.UpdateTime
}
return 0
}
// @table_name: tb_crm_group_chat
type ModelGroupChat struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // 主键ID
CreatedAt int64 `protobuf:"varint,2,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` // 创建时间
UpdatedAt int64 `protobuf:"varint,3,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` // 更新时间
DeletedAt int64 `protobuf:"varint,4,opt,name=deleted_at,json=deletedAt,proto3" json:"deleted_at,omitempty"` // 删除时间【记: 此表正常情况下 只进行软删除】非零 历史群 0正常群
RobotWxId string `protobuf:"bytes,6,opt,name=robot_wx_id,json=robotWxId,proto3" json:"robot_wx_id,omitempty"` // 机器人id
GroupWxId string `protobuf:"bytes,7,opt,name=group_wx_id,json=groupWxId,proto3" json:"group_wx_id,omitempty"` // 群id
OwnerWxId string `protobuf:"bytes,8,opt,name=owner_wx_id,json=ownerWxId,proto3" json:"owner_wx_id,omitempty"` // 群主id
GroupName string `protobuf:"bytes,9,opt,name=group_name,json=groupName,proto3" json:"group_name,omitempty"` // 群名称
MemberCount uint32 `protobuf:"varint,10,opt,name=member_count,json=memberCount,proto3" json:"member_count,omitempty"` // 群成员数量
OwnerName string `protobuf:"bytes,11,opt,name=owner_name,json=ownerName,proto3" json:"owner_name,omitempty"` // 群主名称
GroupAvatarUrl string `protobuf:"bytes,12,opt,name=group_avatar_url,json=groupAvatarUrl,proto3" json:"group_avatar_url,omitempty"` // 群头像
IsWatch bool `protobuf:"varint,13,opt,name=is_watch,json=isWatch,proto3" json:"is_watch,omitempty"` // 是否关注群
HasBeenWatch bool `protobuf:"varint,14,opt,name=has_been_watch,json=hasBeenWatch,proto3" json:"has_been_watch,omitempty"` // 以前有关注过
IsDefaultGroupName bool `protobuf:"varint,15,opt,name=is_default_group_name,json=isDefaultGroupName,proto3" json:"is_default_group_name,omitempty"` // 是否是默认的群名称
InContact bool `protobuf:"varint,16,opt,name=in_contact,json=inContact,proto3" json:"in_contact,omitempty"` // 是否在通讯录中
DisableInvite bool `protobuf:"varint,17,opt,name=disable_invite,json=disableInvite,proto3" json:"disable_invite,omitempty"` // 是否开启了群聊邀请确认 true 开启了 false 关闭了
LastSyncAt int64 `protobuf:"varint,20,opt,name=last_sync_at,json=lastSyncAt,proto3" json:"last_sync_at,omitempty"` // 最后更新群信息时间 【通过这里 指定规则 去拉群基本信息】
LastSyncMemberAt int64 `protobuf:"varint,21,opt,name=last_sync_member_at,json=lastSyncMemberAt,proto3" json:"last_sync_member_at,omitempty"` // 最后更新群成员时间 【通过这里 指定规则 去拉群成员信息】
Notice string `protobuf:"bytes,22,opt,name=notice,proto3" json:"notice,omitempty"` // 群公告
QrcodeUpdatedAt int64 `protobuf:"varint,23,opt,name=qrcode_updated_at,json=qrcodeUpdatedAt,proto3" json:"qrcode_updated_at,omitempty"` // 群聊二维码更新时间
QrcodeUrl string `protobuf:"bytes,24,opt,name=qrcode_url,json=qrcodeUrl,proto3" json:"qrcode_url,omitempty"` // 群聊二维码
AdminType AdminType `protobuf:"varint,25,opt,name=admin_type,json=adminType,proto3,enum=mdbc.AdminType" json:"admin_type,omitempty"` // 机器人权限类型
}
func (x *ModelGroupChat) Reset() {
*x = ModelGroupChat{}
if protoimpl.UnsafeEnabled {
mi := &file_mdbc_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModelGroupChat) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModelGroupChat) ProtoMessage() {}
func (x *ModelGroupChat) ProtoReflect() protoreflect.Message {
mi := &file_mdbc_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModelGroupChat.ProtoReflect.Descriptor instead.
func (*ModelGroupChat) Descriptor() ([]byte, []int) {
return file_mdbc_proto_rawDescGZIP(), []int{1}
}
func (x *ModelGroupChat) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *ModelGroupChat) GetCreatedAt() int64 {
if x != nil {
return x.CreatedAt
}
return 0
}
func (x *ModelGroupChat) GetUpdatedAt() int64 {
if x != nil {
return x.UpdatedAt
}
return 0
}
func (x *ModelGroupChat) GetDeletedAt() int64 {
if x != nil {
return x.DeletedAt
}
return 0
}
func (x *ModelGroupChat) GetRobotWxId() string {
if x != nil {
return x.RobotWxId
}
return ""
}
func (x *ModelGroupChat) GetGroupWxId() string {
if x != nil {
return x.GroupWxId
}
return ""
}
func (x *ModelGroupChat) GetOwnerWxId() string {
if x != nil {
return x.OwnerWxId
}
return ""
}
func (x *ModelGroupChat) GetGroupName() string {
if x != nil {
return x.GroupName
}
return ""
}
func (x *ModelGroupChat) GetMemberCount() uint32 {
if x != nil {
return x.MemberCount
}
return 0
}
func (x *ModelGroupChat) GetOwnerName() string {
if x != nil {
return x.OwnerName
}
return ""
}
func (x *ModelGroupChat) GetGroupAvatarUrl() string {
if x != nil {
return x.GroupAvatarUrl
}
return ""
}
func (x *ModelGroupChat) GetIsWatch() bool {
if x != nil {
return x.IsWatch
}
return false
}
func (x *ModelGroupChat) GetHasBeenWatch() bool {
if x != nil {
return x.HasBeenWatch
}
return false
}
func (x *ModelGroupChat) GetIsDefaultGroupName() bool {
if x != nil {
return x.IsDefaultGroupName
}
return false
}
func (x *ModelGroupChat) GetInContact() bool {
if x != nil {
return x.InContact
}
return false
}
func (x *ModelGroupChat) GetDisableInvite() bool {
if x != nil {
return x.DisableInvite
}
return false
}
func (x *ModelGroupChat) GetLastSyncAt() int64 {
if x != nil {
return x.LastSyncAt
}
return 0
}
func (x *ModelGroupChat) GetLastSyncMemberAt() int64 {
if x != nil {
return x.LastSyncMemberAt
}
return 0
}
func (x *ModelGroupChat) GetNotice() string {
if x != nil {
return x.Notice
}
return ""
}
func (x *ModelGroupChat) GetQrcodeUpdatedAt() int64 {
if x != nil {
return x.QrcodeUpdatedAt
}
return 0
}
func (x *ModelGroupChat) GetQrcodeUrl() string {
if x != nil {
return x.QrcodeUrl
}
return ""
}
func (x *ModelGroupChat) GetAdminType() AdminType {
if x != nil {
return x.AdminType
}
return AdminType_AdminTypeNil
}
// @table_name: tb_crm_group_chat_member
type ModelGroupChatMember struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // id
CreatedAt int64 `protobuf:"varint,2,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` // 创建时间
UpdatedAt int64 `protobuf:"varint,3,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` // 更新时间
DeletedAt int64 `protobuf:"varint,4,opt,name=deleted_at,json=deletedAt,proto3" json:"deleted_at,omitempty"` // 删除时间 这个表一般直接硬删除
GroupChatId string `protobuf:"bytes,5,opt,name=group_chat_id,json=groupChatId,proto3" json:"group_chat_id,omitempty"` // 群 ModelGroupChat 的ID
MemberWxId string `protobuf:"bytes,6,opt,name=member_wx_id,json=memberWxId,proto3" json:"member_wx_id,omitempty"` // 群成员微信id
MemberName string `protobuf:"bytes,7,opt,name=member_name,json=memberName,proto3" json:"member_name,omitempty"` // 群成员名称
MemberAvatar string `protobuf:"bytes,8,opt,name=member_avatar,json=memberAvatar,proto3" json:"member_avatar,omitempty"` // 群成员头像
MemberAlias string `protobuf:"bytes,9,opt,name=member_alias,json=memberAlias,proto3" json:"member_alias,omitempty"` // 群昵称
MemberSex uint32 `protobuf:"varint,10,opt,name=member_sex,json=memberSex,proto3" json:"member_sex,omitempty"` // 性别
IsRobot bool `protobuf:"varint,11,opt,name=is_robot,json=isRobot,proto3" json:"is_robot,omitempty"` // 是否是机器人
AdminType AdminType `protobuf:"varint,12,opt,name=admin_type,json=adminType,proto3,enum=mdbc.AdminType" json:"admin_type,omitempty"` // 权限类型 群主 管理员 普通成员
LastSyncAt int64 `protobuf:"varint,13,opt,name=last_sync_at,json=lastSyncAt,proto3" json:"last_sync_at,omitempty"` // 该群该成员 最后更新时间
}
func (x *ModelGroupChatMember) Reset() {
*x = ModelGroupChatMember{}
if protoimpl.UnsafeEnabled {
mi := &file_mdbc_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModelGroupChatMember) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModelGroupChatMember) ProtoMessage() {}
func (x *ModelGroupChatMember) ProtoReflect() protoreflect.Message {
mi := &file_mdbc_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModelGroupChatMember.ProtoReflect.Descriptor instead.
func (*ModelGroupChatMember) Descriptor() ([]byte, []int) {
return file_mdbc_proto_rawDescGZIP(), []int{2}
}
func (x *ModelGroupChatMember) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *ModelGroupChatMember) GetCreatedAt() int64 {
if x != nil {
return x.CreatedAt
}
return 0
}
func (x *ModelGroupChatMember) GetUpdatedAt() int64 {
if x != nil {
return x.UpdatedAt
}
return 0
}
func (x *ModelGroupChatMember) GetDeletedAt() int64 {
if x != nil {
return x.DeletedAt
}
return 0
}
func (x *ModelGroupChatMember) GetGroupChatId() string {
if x != nil {
return x.GroupChatId
}
return ""
}
func (x *ModelGroupChatMember) GetMemberWxId() string {
if x != nil {
return x.MemberWxId
}
return ""
}
func (x *ModelGroupChatMember) GetMemberName() string {
if x != nil {
return x.MemberName
}
return ""
}
func (x *ModelGroupChatMember) GetMemberAvatar() string {
if x != nil {
return x.MemberAvatar
}
return ""
}
func (x *ModelGroupChatMember) GetMemberAlias() string {
if x != nil {
return x.MemberAlias
}
return ""
}
func (x *ModelGroupChatMember) GetMemberSex() uint32 {
if x != nil {
return x.MemberSex
}
return 0
}
func (x *ModelGroupChatMember) GetIsRobot() bool {
if x != nil {
return x.IsRobot
}
return false
}
func (x *ModelGroupChatMember) GetAdminType() AdminType {
if x != nil {
return x.AdminType
}
return AdminType_AdminTypeNil
}
func (x *ModelGroupChatMember) GetLastSyncAt() int64 {
if x != nil {
return x.LastSyncAt
}
return 0
}
// @table_name: tb_crm_private_msg_session
type ModelTbPrivateMsgSession struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` //会话ID (md5(机器人id+好友id))
All int32 `protobuf:"varint,2,opt,name=all,proto3" json:"all,omitempty"` //消息最大游标(消息总数:只算有效的消息)
Read int32 `protobuf:"varint,3,opt,name=read,proto3" json:"read,omitempty"` //已读游标
Unread int32 `protobuf:"varint,4,opt,name=unread,proto3" json:"unread,omitempty"` //未读消息游标
LastMsgAt int64 `protobuf:"varint,5,opt,name=last_msg_at,json=lastMsgAt,proto3" json:"last_msg_at,omitempty"` //最后一条消息时间
LastFriendMsgAt int64 `protobuf:"varint,6,opt,name=last_friend_msg_at,json=lastFriendMsgAt,proto3" json:"last_friend_msg_at,omitempty"` //接受到最后一条好友消息时间
RobotWxId string `protobuf:"bytes,7,opt,name=robot_wx_id,json=robotWxId,proto3" json:"robot_wx_id,omitempty"` //机器人id
UserWxId string `protobuf:"bytes,8,opt,name=user_wx_id,json=userWxId,proto3" json:"user_wx_id,omitempty"` //好友微信id
LastMsgId string `protobuf:"bytes,9,opt,name=last_msg_id,json=lastMsgId,proto3" json:"last_msg_id,omitempty"` //最后一条消息id
LastFriendMsgId string `protobuf:"bytes,10,opt,name=last_friend_msg_id,json=lastFriendMsgId,proto3" json:"last_friend_msg_id,omitempty"` //接收的最后一条好友消息id
}
func (x *ModelTbPrivateMsgSession) Reset() {
*x = ModelTbPrivateMsgSession{}
if protoimpl.UnsafeEnabled {
mi := &file_mdbc_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModelTbPrivateMsgSession) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModelTbPrivateMsgSession) ProtoMessage() {}
func (x *ModelTbPrivateMsgSession) ProtoReflect() protoreflect.Message {
mi := &file_mdbc_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModelTbPrivateMsgSession.ProtoReflect.Descriptor instead.
func (*ModelTbPrivateMsgSession) Descriptor() ([]byte, []int) {
return file_mdbc_proto_rawDescGZIP(), []int{3}
}
func (x *ModelTbPrivateMsgSession) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *ModelTbPrivateMsgSession) GetAll() int32 {
if x != nil {
return x.All
}
return 0
}
func (x *ModelTbPrivateMsgSession) GetRead() int32 {
if x != nil {
return x.Read
}
return 0
}
func (x *ModelTbPrivateMsgSession) GetUnread() int32 {
if x != nil {
return x.Unread
}
return 0
}
func (x *ModelTbPrivateMsgSession) GetLastMsgAt() int64 {
if x != nil {
return x.LastMsgAt
}
return 0
}
func (x *ModelTbPrivateMsgSession) GetLastFriendMsgAt() int64 {
if x != nil {
return x.LastFriendMsgAt
}
return 0
}
func (x *ModelTbPrivateMsgSession) GetRobotWxId() string {
if x != nil {
return x.RobotWxId
}
return ""
}
func (x *ModelTbPrivateMsgSession) GetUserWxId() string {
if x != nil {
return x.UserWxId
}
return ""
}
func (x *ModelTbPrivateMsgSession) GetLastMsgId() string {
if x != nil {
return x.LastMsgId
}
return ""
}
func (x *ModelTbPrivateMsgSession) GetLastFriendMsgId() string {
if x != nil {
return x.LastFriendMsgId
}
return ""
}
// @table_name: tb_crm_group_msg_session
type ModelTbGroupMsgSession struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` //会话ID (md5(机器人id+好友id))
All int32 `protobuf:"varint,2,opt,name=all,proto3" json:"all,omitempty"` //消息最大游标(消息总数:只算有效的消息)
Read int32 `protobuf:"varint,3,opt,name=read,proto3" json:"read,omitempty"` //已读游标
Unread int32 `protobuf:"varint,4,opt,name=unread,proto3" json:"unread,omitempty"` //未读消息游标
LastMsgAt int64 `protobuf:"varint,5,opt,name=last_msg_at,json=lastMsgAt,proto3" json:"last_msg_at,omitempty"` //最后一条消息时间
LastFriendMsgAt int64 `protobuf:"varint,6,opt,name=last_friend_msg_at,json=lastFriendMsgAt,proto3" json:"last_friend_msg_at,omitempty"` //接受到最后一条好友消息时间
RobotWxId string `protobuf:"bytes,7,opt,name=robot_wx_id,json=robotWxId,proto3" json:"robot_wx_id,omitempty"` //机器人id
UserWxId string `protobuf:"bytes,8,opt,name=user_wx_id,json=userWxId,proto3" json:"user_wx_id,omitempty"` //群微信id
LastMsgId string `protobuf:"bytes,9,opt,name=last_msg_id,json=lastMsgId,proto3" json:"last_msg_id,omitempty"` //最后一条消息id
LastFriendMsgId string `protobuf:"bytes,10,opt,name=last_friend_msg_id,json=lastFriendMsgId,proto3" json:"last_friend_msg_id,omitempty"` //接收的最后一条好友消息id
LastMemberWxId string `protobuf:"bytes,11,opt,name=last_member_wx_id,json=lastMemberWxId,proto3" json:"last_member_wx_id,omitempty"` //最后发送消息的群成员id
}
func (x *ModelTbGroupMsgSession) Reset() {
*x = ModelTbGroupMsgSession{}
if protoimpl.UnsafeEnabled {
mi := &file_mdbc_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModelTbGroupMsgSession) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModelTbGroupMsgSession) ProtoMessage() {}
func (x *ModelTbGroupMsgSession) ProtoReflect() protoreflect.Message {
mi := &file_mdbc_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModelTbGroupMsgSession.ProtoReflect.Descriptor instead.
func (*ModelTbGroupMsgSession) Descriptor() ([]byte, []int) {
return file_mdbc_proto_rawDescGZIP(), []int{4}
}
func (x *ModelTbGroupMsgSession) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *ModelTbGroupMsgSession) GetAll() int32 {
if x != nil {
return x.All
}
return 0
}
func (x *ModelTbGroupMsgSession) GetRead() int32 {
if x != nil {
return x.Read
}
return 0
}
func (x *ModelTbGroupMsgSession) GetUnread() int32 {
if x != nil {
return x.Unread
}
return 0
}
func (x *ModelTbGroupMsgSession) GetLastMsgAt() int64 {
if x != nil {
return x.LastMsgAt
}
return 0
}
func (x *ModelTbGroupMsgSession) GetLastFriendMsgAt() int64 {
if x != nil {
return x.LastFriendMsgAt
}
return 0
}
func (x *ModelTbGroupMsgSession) GetRobotWxId() string {
if x != nil {
return x.RobotWxId
}
return ""
}
func (x *ModelTbGroupMsgSession) GetUserWxId() string {
if x != nil {
return x.UserWxId
}
return ""
}
func (x *ModelTbGroupMsgSession) GetLastMsgId() string {
if x != nil {
return x.LastMsgId
}
return ""
}
func (x *ModelTbGroupMsgSession) GetLastFriendMsgId() string {
if x != nil {
return x.LastFriendMsgId
}
return ""
}
func (x *ModelTbGroupMsgSession) GetLastMemberWxId() string {
if x != nil {
return x.LastMemberWxId
}
return ""
}
// @table_name: tb_crm_robot_private_msg
type ModelTbRobotPrivateMsg struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // 主键ID
BindId string `protobuf:"bytes,3,opt,name=bind_id,json=bindId,proto3" json:"bind_id,omitempty"` // 前端消息id
RobotWxId string `protobuf:"bytes,4,opt,name=robot_wx_id,json=robotWxId,proto3" json:"robot_wx_id,omitempty"` // 机器人id
UserWxId string `protobuf:"bytes,5,opt,name=user_wx_id,json=userWxId,proto3" json:"user_wx_id,omitempty"` // 好友id
MsgId string `protobuf:"bytes,6,opt,name=msg_id,json=msgId,proto3" json:"msg_id,omitempty"` // 服务端自己生成一个消息id来对应客户端的发送结果id
MsgType int32 `protobuf:"varint,7,opt,name=msg_type,json=msgType,proto3" json:"msg_type,omitempty"` // 消息类型
SendStatus int32 `protobuf:"varint,8,opt,name=send_status,json=sendStatus,proto3" json:"send_status,omitempty"` // 发送状态0发送中1发送请求成功2发送请求失败3发送成功4发送失败仅机器人发送。接收到用户消息的默认3
Direct int32 `protobuf:"varint,9,opt,name=direct,proto3" json:"direct,omitempty"` // 用于区分机器人是接收方还是发送方。1机器人接收2机器人发送
SendErrorCode int32 `protobuf:"varint,10,opt,name=send_error_code,json=sendErrorCode,proto3" json:"send_error_code,omitempty"` // 发送错误码:用户告诉对应的是什么错误:-1 通用错误码; -2 被拉黑; -3
// 被删除; -4 好友找不到;
ContentRead bool `protobuf:"varint,12,opt,name=content_read,json=contentRead,proto3" json:"content_read,omitempty"` // 是否内容被浏览(像语音之类的,需要浏览)
CreatedAt int64 `protobuf:"varint,13,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` // 创建时间
UpdatedAt int64 `protobuf:"varint,14,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` // 更新时间
FailReason string `protobuf:"bytes,15,opt,name=fail_reason,json=failReason,proto3" json:"fail_reason,omitempty"` // 失败原因
CallBackAt int64 `protobuf:"varint,16,opt,name=call_back_at,json=callBackAt,proto3" json:"call_back_at,omitempty"` // 消息返回时间
Cursor int64 `protobuf:"varint,17,opt,name=cursor,proto3" json:"cursor,omitempty"` // 消息游标对应session的all
SendAt int64 `protobuf:"varint,18,opt,name=send_at,json=sendAt,proto3" json:"send_at,omitempty"` // 发送时间(消息实际生效时间)
ExpireAt int64 `protobuf:"varint,19,opt,name=expire_at,json=expireAt,proto3" json:"expire_at,omitempty"` // 失效时间(用于消息的失效)
ContentData *ContentData `protobuf:"bytes,20,opt,name=content_data,json=contentData,proto3" json:"content_data,omitempty"` // 消息内容
}
func (x *ModelTbRobotPrivateMsg) Reset() {
*x = ModelTbRobotPrivateMsg{}
if protoimpl.UnsafeEnabled {
mi := &file_mdbc_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModelTbRobotPrivateMsg) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModelTbRobotPrivateMsg) ProtoMessage() {}
func (x *ModelTbRobotPrivateMsg) ProtoReflect() protoreflect.Message {
mi := &file_mdbc_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModelTbRobotPrivateMsg.ProtoReflect.Descriptor instead.
func (*ModelTbRobotPrivateMsg) Descriptor() ([]byte, []int) {
return file_mdbc_proto_rawDescGZIP(), []int{5}
}
func (x *ModelTbRobotPrivateMsg) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *ModelTbRobotPrivateMsg) GetBindId() string {
if x != nil {
return x.BindId
}
return ""
}
func (x *ModelTbRobotPrivateMsg) GetRobotWxId() string {
if x != nil {
return x.RobotWxId
}
return ""
}
func (x *ModelTbRobotPrivateMsg) GetUserWxId() string {
if x != nil {
return x.UserWxId
}
return ""
}
func (x *ModelTbRobotPrivateMsg) GetMsgId() string {
if x != nil {
return x.MsgId
}
return ""
}
func (x *ModelTbRobotPrivateMsg) GetMsgType() int32 {
if x != nil {
return x.MsgType
}
return 0
}
func (x *ModelTbRobotPrivateMsg) GetSendStatus() int32 {
if x != nil {
return x.SendStatus
}
return 0
}
func (x *ModelTbRobotPrivateMsg) GetDirect() int32 {
if x != nil {
return x.Direct
}
return 0
}
func (x *ModelTbRobotPrivateMsg) GetSendErrorCode() int32 {
if x != nil {
return x.SendErrorCode
}
return 0
}
func (x *ModelTbRobotPrivateMsg) GetContentRead() bool {
if x != nil {
return x.ContentRead
}
return false
}
func (x *ModelTbRobotPrivateMsg) GetCreatedAt() int64 {
if x != nil {
return x.CreatedAt
}
return 0
}
func (x *ModelTbRobotPrivateMsg) GetUpdatedAt() int64 {
if x != nil {
return x.UpdatedAt
}
return 0
}
func (x *ModelTbRobotPrivateMsg) GetFailReason() string {
if x != nil {
return x.FailReason
}
return ""
}
func (x *ModelTbRobotPrivateMsg) GetCallBackAt() int64 {
if x != nil {
return x.CallBackAt
}
return 0
}
func (x *ModelTbRobotPrivateMsg) GetCursor() int64 {
if x != nil {
return x.Cursor
}
return 0
}
func (x *ModelTbRobotPrivateMsg) GetSendAt() int64 {
if x != nil {
return x.SendAt
}
return 0
}
func (x *ModelTbRobotPrivateMsg) GetExpireAt() int64 {
if x != nil {
return x.ExpireAt
}
return 0
}
func (x *ModelTbRobotPrivateMsg) GetContentData() *ContentData {
if x != nil {
return x.ContentData
}
return nil
}
// @table_name: tb_crm_robot_group_msg
type ModelTbRobotGroupMsg struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // 主键ID
BindId string `protobuf:"bytes,3,opt,name=bind_id,json=bindId,proto3" json:"bind_id,omitempty"` // 前端消息id
RobotWxId string `protobuf:"bytes,4,opt,name=robot_wx_id,json=robotWxId,proto3" json:"robot_wx_id,omitempty"` // 机器人id
UserWxId string `protobuf:"bytes,5,opt,name=user_wx_id,json=userWxId,proto3" json:"user_wx_id,omitempty"` // 群聊id
MsgId string `protobuf:"bytes,6,opt,name=msg_id,json=msgId,proto3" json:"msg_id,omitempty"` // 服务端自己生成一个消息id来对应客户端的发送结果id
MsgType int32 `protobuf:"varint,7,opt,name=msg_type,json=msgType,proto3" json:"msg_type,omitempty"` // 消息类型
SendStatus int32 `protobuf:"varint,8,opt,name=send_status,json=sendStatus,proto3" json:"send_status,omitempty"` // 发送状态0发送中1发送请求成功2发送请求失败3发送成功4发送失败仅机器人发送。接收到用户消息的默认3
Direct int32 `protobuf:"varint,9,opt,name=direct,proto3" json:"direct,omitempty"` // 用于区分机器人是接收方还是发送方。1机器人接收2机器人发送
SendErrorCode int32 `protobuf:"varint,10,opt,name=send_error_code,json=sendErrorCode,proto3" json:"send_error_code,omitempty"` // 发送错误码:用户告诉对应的是什么错误:-1 通用错误码; -2 被拉黑; -3
// 被删除; -4 好友找不到;
ContentRead bool `protobuf:"varint,12,opt,name=content_read,json=contentRead,proto3" json:"content_read,omitempty"` // 是否内容被浏览(像语音之类的,需要浏览)
CreatedAt int64 `protobuf:"varint,13,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` // 创建时间
UpdatedAt int64 `protobuf:"varint,14,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` // 更新时间
FailReason string `protobuf:"bytes,15,opt,name=fail_reason,json=failReason,proto3" json:"fail_reason,omitempty"` // 失败原因
CallBackAt int64 `protobuf:"varint,16,opt,name=call_back_at,json=callBackAt,proto3" json:"call_back_at,omitempty"` // 消息返回时间
Cursor int64 `protobuf:"varint,17,opt,name=cursor,proto3" json:"cursor,omitempty"` // 消息游标对应session的all
SendAt int64 `protobuf:"varint,18,opt,name=send_at,json=sendAt,proto3" json:"send_at,omitempty"` // 发送时间(消息实际生效时间)
ExpireAt int64 `protobuf:"varint,19,opt,name=expire_at,json=expireAt,proto3" json:"expire_at,omitempty"` // 失效时间(用于消息的失效)
ContentData *ContentData `protobuf:"bytes,20,opt,name=content_data,json=contentData,proto3" json:"content_data,omitempty"` // 消息内容
SenderWxId string `protobuf:"bytes,21,opt,name=sender_wx_id,json=senderWxId,proto3" json:"sender_wx_id,omitempty"` // 发送者id
}
func (x *ModelTbRobotGroupMsg) Reset() {
*x = ModelTbRobotGroupMsg{}
if protoimpl.UnsafeEnabled {
mi := &file_mdbc_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModelTbRobotGroupMsg) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModelTbRobotGroupMsg) ProtoMessage() {}
func (x *ModelTbRobotGroupMsg) ProtoReflect() protoreflect.Message {
mi := &file_mdbc_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModelTbRobotGroupMsg.ProtoReflect.Descriptor instead.
func (*ModelTbRobotGroupMsg) Descriptor() ([]byte, []int) {
return file_mdbc_proto_rawDescGZIP(), []int{6}
}
func (x *ModelTbRobotGroupMsg) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *ModelTbRobotGroupMsg) GetBindId() string {
if x != nil {
return x.BindId
}
return ""
}
func (x *ModelTbRobotGroupMsg) GetRobotWxId() string {
if x != nil {
return x.RobotWxId
}
return ""
}
func (x *ModelTbRobotGroupMsg) GetUserWxId() string {
if x != nil {
return x.UserWxId
}
return ""
}
func (x *ModelTbRobotGroupMsg) GetMsgId() string {
if x != nil {
return x.MsgId
}
return ""
}
func (x *ModelTbRobotGroupMsg) GetMsgType() int32 {
if x != nil {
return x.MsgType
}
return 0
}
func (x *ModelTbRobotGroupMsg) GetSendStatus() int32 {
if x != nil {
return x.SendStatus
}
return 0
}
func (x *ModelTbRobotGroupMsg) GetDirect() int32 {
if x != nil {
return x.Direct
}
return 0
}
func (x *ModelTbRobotGroupMsg) GetSendErrorCode() int32 {
if x != nil {
return x.SendErrorCode
}
return 0
}
func (x *ModelTbRobotGroupMsg) GetContentRead() bool {
if x != nil {
return x.ContentRead
}
return false
}
func (x *ModelTbRobotGroupMsg) GetCreatedAt() int64 {
if x != nil {
return x.CreatedAt
}
return 0
}
func (x *ModelTbRobotGroupMsg) GetUpdatedAt() int64 {
if x != nil {
return x.UpdatedAt
}
return 0
}
func (x *ModelTbRobotGroupMsg) GetFailReason() string {
if x != nil {
return x.FailReason
}
return ""
}
func (x *ModelTbRobotGroupMsg) GetCallBackAt() int64 {
if x != nil {
return x.CallBackAt
}
return 0
}
func (x *ModelTbRobotGroupMsg) GetCursor() int64 {
if x != nil {
return x.Cursor
}
return 0
}
func (x *ModelTbRobotGroupMsg) GetSendAt() int64 {
if x != nil {
return x.SendAt
}
return 0
}
func (x *ModelTbRobotGroupMsg) GetExpireAt() int64 {
if x != nil {
return x.ExpireAt
}
return 0
}
func (x *ModelTbRobotGroupMsg) GetContentData() *ContentData {
if x != nil {
return x.ContentData
}
return nil
}
func (x *ModelTbRobotGroupMsg) GetSenderWxId() string {
if x != nil {
return x.SenderWxId
}
return ""
}
type ContentData struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
RawContent string `protobuf:"bytes,1,opt,name=raw_content,json=rawContent,proto3" json:"raw_content,omitempty"` // 元始的xml数据 做数据转发时用;
Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"` // 1文本的内容2 语音的urlamr格式6小程序的xml
ShareTitle string `protobuf:"bytes,3,opt,name=share_title,json=shareTitle,proto3" json:"share_title,omitempty"` // 5链接的标题
ShareDesc string `protobuf:"bytes,4,opt,name=share_desc,json=shareDesc,proto3" json:"share_desc,omitempty"` // 5链接的描述
ShareUrl string `protobuf:"bytes,5,opt,name=share_url,json=shareUrl,proto3" json:"share_url,omitempty"` // 5链接的URL
FileUrl string `protobuf:"bytes,6,opt,name=file_url,json=fileUrl,proto3" json:"file_url,omitempty"` // 3图片的url4视频的Url5链接的分享图8表情的urlgif9文件的url
ShareUserName string `protobuf:"bytes,7,opt,name=share_user_name,json=shareUserName,proto3" json:"share_user_name,omitempty"` // 7名片的被分享名片好友id
ShareNickName string `protobuf:"bytes,8,opt,name=share_nick_name,json=shareNickName,proto3" json:"share_nick_name,omitempty"` // 7名片的被分享名片的昵称
AtMsgItem []*AtMsgItem `protobuf:"bytes,9,rep,name=at_msg_item,json=atMsgItem,proto3" json:"at_msg_item,omitempty"` // 发送群@部分人消息的数据
WxMsgType int32 `protobuf:"varint,10,opt,name=wx_msg_type,json=wxMsgType,proto3" json:"wx_msg_type,omitempty"` // 消息类型: 1 文本2 语音3 图片4 视频5 链接6 小程序7
// 名片8 表情9 文件10 验证消息如好友申请11 视频号消息12
// 视频号直播间13 视频号名片;
FileSize float64 `protobuf:"fixed64,11,opt,name=file_size,json=fileSize,proto3" json:"file_size,omitempty"` // 文件大小KB单位
ResourceDuration int32 `protobuf:"varint,12,opt,name=resource_duration,json=resourceDuration,proto3" json:"resource_duration,omitempty"` // 媒体时长 统一单位s
AtUserName []string `protobuf:"bytes,13,rep,name=at_user_name,json=atUserName,proto3" json:"at_user_name,omitempty"` // 群聊at消息
IsAtMyself bool `protobuf:"varint,14,opt,name=is_at_myself,json=isAtMyself,proto3" json:"is_at_myself,omitempty"` // 是否有at我自己 单独一个字段 方便维护和查询
}
func (x *ContentData) Reset() {
*x = ContentData{}
if protoimpl.UnsafeEnabled {
mi := &file_mdbc_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ContentData) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ContentData) ProtoMessage() {}
func (x *ContentData) ProtoReflect() protoreflect.Message {
mi := &file_mdbc_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ContentData.ProtoReflect.Descriptor instead.
func (*ContentData) Descriptor() ([]byte, []int) {
return file_mdbc_proto_rawDescGZIP(), []int{7}
}
func (x *ContentData) GetRawContent() string {
if x != nil {
return x.RawContent
}
return ""
}
func (x *ContentData) GetContent() string {
if x != nil {
return x.Content
}
return ""
}
func (x *ContentData) GetShareTitle() string {
if x != nil {
return x.ShareTitle
}
return ""
}
func (x *ContentData) GetShareDesc() string {
if x != nil {
return x.ShareDesc
}
return ""
}
func (x *ContentData) GetShareUrl() string {
if x != nil {
return x.ShareUrl
}
return ""
}
func (x *ContentData) GetFileUrl() string {
if x != nil {
return x.FileUrl
}
return ""
}
func (x *ContentData) GetShareUserName() string {
if x != nil {
return x.ShareUserName
}
return ""
}
func (x *ContentData) GetShareNickName() string {
if x != nil {
return x.ShareNickName
}
return ""
}
func (x *ContentData) GetAtMsgItem() []*AtMsgItem {
if x != nil {
return x.AtMsgItem
}
return nil
}
func (x *ContentData) GetWxMsgType() int32 {
if x != nil {
return x.WxMsgType
}
return 0
}
func (x *ContentData) GetFileSize() float64 {
if x != nil {
return x.FileSize
}
return 0
}
func (x *ContentData) GetResourceDuration() int32 {
if x != nil {
return x.ResourceDuration
}
return 0
}
func (x *ContentData) GetAtUserName() []string {
if x != nil {
return x.AtUserName
}
return nil
}
func (x *ContentData) GetIsAtMyself() bool {
if x != nil {
return x.IsAtMyself
}
return false
}
type AtMsgItem struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
SubType int32 `protobuf:"varint,1,opt,name=SubType,proto3" json:"SubType,omitempty"` // 0文本内容1@某人
Content string `protobuf:"bytes,2,opt,name=Content,proto3" json:"Content,omitempty"` // 文本内容
UserName string `protobuf:"bytes,3,opt,name=UserName,proto3" json:"UserName,omitempty"` // @的用户(wx_id)
NickName string `protobuf:"bytes,4,opt,name=NickName,proto3" json:"NickName,omitempty"` // @的昵称
}
func (x *AtMsgItem) Reset() {
*x = AtMsgItem{}
if protoimpl.UnsafeEnabled {
mi := &file_mdbc_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AtMsgItem) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AtMsgItem) ProtoMessage() {}
func (x *AtMsgItem) ProtoReflect() protoreflect.Message {
mi := &file_mdbc_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AtMsgItem.ProtoReflect.Descriptor instead.
func (*AtMsgItem) Descriptor() ([]byte, []int) {
return file_mdbc_proto_rawDescGZIP(), []int{8}
}
func (x *AtMsgItem) GetSubType() int32 {
if x != nil {
return x.SubType
}
return 0
}
func (x *AtMsgItem) GetContent() string {
if x != nil {
return x.Content
}
return ""
}
func (x *AtMsgItem) GetUserName() string {
if x != nil {
return x.UserName
}
return ""
}
func (x *AtMsgItem) GetNickName() string {
if x != nil {
return x.NickName
}
return ""
}
// 异步任务
// @table_name: tb_crm_sched_task
type ModelSchedTask struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` //任务id
CreatedAt int64 `protobuf:"varint,2,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` //创建时间
UpdatedAt int64 `protobuf:"varint,3,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` //更新时间
TaskState uint32 `protobuf:"varint,4,opt,name=task_state,json=taskState,proto3" json:"task_state,omitempty"` //执行状态 TaskState
TaskType string `protobuf:"bytes,5,opt,name=task_type,json=taskType,proto3" json:"task_type,omitempty"` //任务类型 自定义的名称 用来区别是哪个模块发起的任务
ReqId string `protobuf:"bytes,6,opt,name=req_id,json=reqId,proto3" json:"req_id,omitempty"` //便于查询该任务 指定的id[作用:有些情况 无法直接通过id来查询该记录]
ReqJson string `protobuf:"bytes,7,opt,name=req_json,json=reqJson,proto3" json:"req_json,omitempty"` //请求内容
RspJson string `protobuf:"bytes,8,opt,name=rsp_json,json=rspJson,proto3" json:"rsp_json,omitempty"` //完成后的内容 [成功或者失败的返回]
RobotWxId string `protobuf:"bytes,9,opt,name=robot_wx_id,json=robotWxId,proto3" json:"robot_wx_id,omitempty"` //机器人id
ExpiredAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=expired_at,json=expiredAt,proto3" json:"expired_at,omitempty"` //过期时间
}
func (x *ModelSchedTask) Reset() {
*x = ModelSchedTask{}
if protoimpl.UnsafeEnabled {
mi := &file_mdbc_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModelSchedTask) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModelSchedTask) ProtoMessage() {}
func (x *ModelSchedTask) ProtoReflect() protoreflect.Message {
mi := &file_mdbc_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModelSchedTask.ProtoReflect.Descriptor instead.
func (*ModelSchedTask) Descriptor() ([]byte, []int) {
return file_mdbc_proto_rawDescGZIP(), []int{9}
}
func (x *ModelSchedTask) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *ModelSchedTask) GetCreatedAt() int64 {
if x != nil {
return x.CreatedAt
}
return 0
}
func (x *ModelSchedTask) GetUpdatedAt() int64 {
if x != nil {
return x.UpdatedAt
}
return 0
}
func (x *ModelSchedTask) GetTaskState() uint32 {
if x != nil {
return x.TaskState
}
return 0
}
func (x *ModelSchedTask) GetTaskType() string {
if x != nil {
return x.TaskType
}
return ""
}
func (x *ModelSchedTask) GetReqId() string {
if x != nil {
return x.ReqId
}
return ""
}
func (x *ModelSchedTask) GetReqJson() string {
if x != nil {
return x.ReqJson
}
return ""
}
func (x *ModelSchedTask) GetRspJson() string {
if x != nil {
return x.RspJson
}
return ""
}
func (x *ModelSchedTask) GetRobotWxId() string {
if x != nil {
return x.RobotWxId
}
return ""
}
func (x *ModelSchedTask) GetExpiredAt() *timestamppb.Timestamp {
if x != nil {
return x.ExpiredAt
}
return nil
}
// @table_name: tb_robot_friend
type ModelRobotFriend struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // 主键ID 机器人id+朋友id md5
RobotWechatId string `protobuf:"bytes,2,opt,name=robot_wechat_id,json=robotWechatId,proto3" json:"robot_wechat_id,omitempty"` // 机器人编号:微信ID
UserWechatId string `protobuf:"bytes,3,opt,name=user_wechat_id,json=userWechatId,proto3" json:"user_wechat_id,omitempty"` // 用户微信ID,
Deleted int64 `protobuf:"varint,4,opt,name=deleted,proto3" json:"deleted,omitempty"` // 是否被删除 0双方未删除 1被好友删除 2删除了好友 3互相删除
OfflineAdd int64 `protobuf:"varint,5,opt,name=offline_add,json=offlineAdd,proto3" json:"offline_add,omitempty"` // 是否为离线添加
RemarkName string `protobuf:"bytes,6,opt,name=remark_name,json=remarkName,proto3" json:"remark_name,omitempty"` // 微信好友备注名称
Pinyin string `protobuf:"bytes,7,opt,name=pinyin,proto3" json:"pinyin,omitempty"` // 用户备注或者暱称的拼音
PinyinHead string `protobuf:"bytes,8,opt,name=pinyin_head,json=pinyinHead,proto3" json:"pinyin_head,omitempty"` // 拼音首字母
DeleteTime int64 `protobuf:"varint,9,opt,name=delete_time,json=deleteTime,proto3" json:"delete_time,omitempty"` // 删除好友的时间
CreateTime int64 `protobuf:"varint,10,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` // 创建时间:入库时间
UpdateTime int64 `protobuf:"varint,11,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` // 更新时间
AddAt int64 `protobuf:"varint,12,opt,name=add_at,json=addAt,proto3" json:"add_at,omitempty"` // 添加好友时间只有主动添加好友才有
CrmPhone string `protobuf:"bytes,13,opt,name=crm_phone,json=crmPhone,proto3" json:"crm_phone,omitempty"` // CRM自己设置的好友手机号不同于微信手机号
}
func (x *ModelRobotFriend) Reset() {
*x = ModelRobotFriend{}
if protoimpl.UnsafeEnabled {
mi := &file_mdbc_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModelRobotFriend) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModelRobotFriend) ProtoMessage() {}
func (x *ModelRobotFriend) ProtoReflect() protoreflect.Message {
mi := &file_mdbc_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModelRobotFriend.ProtoReflect.Descriptor instead.
func (*ModelRobotFriend) Descriptor() ([]byte, []int) {
return file_mdbc_proto_rawDescGZIP(), []int{10}
}
func (x *ModelRobotFriend) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *ModelRobotFriend) GetRobotWechatId() string {
if x != nil {
return x.RobotWechatId
}
return ""
}
func (x *ModelRobotFriend) GetUserWechatId() string {
if x != nil {
return x.UserWechatId
}
return ""
}
func (x *ModelRobotFriend) GetDeleted() int64 {
if x != nil {
return x.Deleted
}
return 0
}
func (x *ModelRobotFriend) GetOfflineAdd() int64 {
if x != nil {
return x.OfflineAdd
}
return 0
}
func (x *ModelRobotFriend) GetRemarkName() string {
if x != nil {
return x.RemarkName
}
return ""
}
func (x *ModelRobotFriend) GetPinyin() string {
if x != nil {
return x.Pinyin
}
return ""
}
func (x *ModelRobotFriend) GetPinyinHead() string {
if x != nil {
return x.PinyinHead
}
return ""
}
func (x *ModelRobotFriend) GetDeleteTime() int64 {
if x != nil {
return x.DeleteTime
}
return 0
}
func (x *ModelRobotFriend) GetCreateTime() int64 {
if x != nil {
return x.CreateTime
}
return 0
}
func (x *ModelRobotFriend) GetUpdateTime() int64 {
if x != nil {
return x.UpdateTime
}
return 0
}
func (x *ModelRobotFriend) GetAddAt() int64 {
if x != nil {
return x.AddAt
}
return 0
}
func (x *ModelRobotFriend) GetCrmPhone() string {
if x != nil {
return x.CrmPhone
}
return ""
}
// @table_name: tb_ws_connect_record
type ModelWsConnectRecord struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // 主键ID wxid md5
UserId string `protobuf:"bytes,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` // 机器人所属用户id
CreatedAt int64 `protobuf:"varint,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` // 记录创建时间
LoginAt int64 `protobuf:"varint,4,opt,name=login_at,json=loginAt,proto3" json:"login_at,omitempty"` // 登录时间
LogoutAt int64 `protobuf:"varint,5,opt,name=logout_at,json=logoutAt,proto3" json:"logout_at,omitempty"` // 登出时间
BindId string `protobuf:"bytes,6,opt,name=bind_id,json=bindId,proto3" json:"bind_id,omitempty"` // 该ws绑定的id
ExpiredAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=expired_at,json=expiredAt,proto3" json:"expired_at,omitempty"` // 过期时间
}
func (x *ModelWsConnectRecord) Reset() {
*x = ModelWsConnectRecord{}
if protoimpl.UnsafeEnabled {
mi := &file_mdbc_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModelWsConnectRecord) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModelWsConnectRecord) ProtoMessage() {}
func (x *ModelWsConnectRecord) ProtoReflect() protoreflect.Message {
mi := &file_mdbc_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModelWsConnectRecord.ProtoReflect.Descriptor instead.
func (*ModelWsConnectRecord) Descriptor() ([]byte, []int) {
return file_mdbc_proto_rawDescGZIP(), []int{11}
}
func (x *ModelWsConnectRecord) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *ModelWsConnectRecord) GetUserId() string {
if x != nil {
return x.UserId
}
return ""
}
func (x *ModelWsConnectRecord) GetCreatedAt() int64 {
if x != nil {
return x.CreatedAt
}
return 0
}
func (x *ModelWsConnectRecord) GetLoginAt() int64 {
if x != nil {
return x.LoginAt
}
return 0
}
func (x *ModelWsConnectRecord) GetLogoutAt() int64 {
if x != nil {
return x.LogoutAt
}
return 0
}
func (x *ModelWsConnectRecord) GetBindId() string {
if x != nil {
return x.BindId
}
return ""
}
func (x *ModelWsConnectRecord) GetExpiredAt() *timestamppb.Timestamp {
if x != nil {
return x.ExpiredAt
}
return nil
}
// @table_name: tb_robot
type ModelRobot struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// @json: _id
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // 主键ID wxid md5
UserId string `protobuf:"bytes,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` // 机器人所属用户id
CrmShopId string `protobuf:"bytes,3,opt,name=crm_shop_id,json=crmShopId,proto3" json:"crm_shop_id,omitempty"` // 机器人所属商户id
AliasName string `protobuf:"bytes,4,opt,name=alias_name,json=aliasName,proto3" json:"alias_name,omitempty"` // 微信号
NickName string `protobuf:"bytes,5,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` // 机器人暱称
WechatId string `protobuf:"bytes,6,opt,name=wechat_id,json=wechatId,proto3" json:"wechat_id,omitempty"` // 微信唯一ID (wxidxxxxxx)
WechatAlias string `protobuf:"bytes,7,opt,name=wechat_alias,json=wechatAlias,proto3" json:"wechat_alias,omitempty"` // 微信ID (用户自己定义的微信号)
AvatarUrl string `protobuf:"bytes,8,opt,name=avatar_url,json=avatarUrl,proto3" json:"avatar_url,omitempty"` // 机器人头像
Sex int32 `protobuf:"varint,9,opt,name=sex,proto3" json:"sex,omitempty"` // 性别 0 未知 1 男生 2 女生
Mobile string `protobuf:"bytes,10,opt,name=mobile,proto3" json:"mobile,omitempty"` // 手机号码
Qrcode string `protobuf:"bytes,11,opt,name=qrcode,proto3" json:"qrcode,omitempty"` // 机器人二维码
Status int64 `protobuf:"varint,12,opt,name=status,proto3" json:"status,omitempty"` // 机器人PC是否在线 10在线 11离线 (兼容之前的pc登录流程和其他接口这个登录状态不变,补多一个字段代表安卓登录状态)
Limited int64 `protobuf:"varint,13,opt,name=limited,proto3" json:"limited,omitempty"` // 机器人是否被封号 0未封号 1已封号
AbilityLimit int64 `protobuf:"varint,14,opt,name=ability_limit,json=abilityLimit,proto3" json:"ability_limit,omitempty"` // 机器人是否功能受限
InitFriend int64 `protobuf:"varint,15,opt,name=init_friend,json=initFriend,proto3" json:"init_friend,omitempty"` // 机器人初始好友人数
NowFriend int64 `protobuf:"varint,16,opt,name=now_friend,json=nowFriend,proto3" json:"now_friend,omitempty"` // 机器人当前好友数量
AutoAddFriend int64 `protobuf:"varint,17,opt,name=auto_add_friend,json=autoAddFriend,proto3" json:"auto_add_friend,omitempty"` // 机器人是否自动通过好友请求 0否 1是
LastLoginTime int64 `protobuf:"varint,18,opt,name=last_login_time,json=lastLoginTime,proto3" json:"last_login_time,omitempty"` // 最后登录时间
LastLogOutTime int64 `protobuf:"varint,19,opt,name=last_log_out_time,json=lastLogOutTime,proto3" json:"last_log_out_time,omitempty"` // 最后登出时间
LastRegionCode string `protobuf:"bytes,20,opt,name=last_region_code,json=lastRegionCode,proto3" json:"last_region_code,omitempty"` // 最后登录的扫码设备的地区编码
LastCity string `protobuf:"bytes,21,opt,name=last_city,json=lastCity,proto3" json:"last_city,omitempty"` // 最后登录的城市名称
TodayRequireTime int64 `protobuf:"varint,22,opt,name=today_require_time,json=todayRequireTime,proto3" json:"today_require_time,omitempty"` // 当天请求次数
LastRequireAddFriendTime int64 `protobuf:"varint,23,opt,name=last_require_add_friend_time,json=lastRequireAddFriendTime,proto3" json:"last_require_add_friend_time,omitempty"` // 上一次请求添加好友的时间
CrmAutoAddFriend int64 `protobuf:"varint,24,opt,name=crm_auto_add_friend,json=crmAutoAddFriend,proto3" json:"crm_auto_add_friend,omitempty"` // crm系统自动通过好友 1自动通过 0不自动通过
DeleteTime int64 `protobuf:"varint,25,opt,name=delete_time,json=deleteTime,proto3" json:"delete_time,omitempty"` // 删除时间
CreateTime int64 `protobuf:"varint,26,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` // 创建时间
UpdateTime int64 `protobuf:"varint,27,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` // 更新时间
LogAndOutTime int64 `protobuf:"varint,28,opt,name=log_and_out_time,json=logAndOutTime,proto3" json:"log_and_out_time,omitempty"` // 登入或者登出都要记录一下
AndroidStatus int64 `protobuf:"varint,29,opt,name=android_status,json=androidStatus,proto3" json:"android_status,omitempty"` // 机器人Android是否在线 10在线 11离线
GreetId string `protobuf:"bytes,30,opt,name=greet_id,json=greetId,proto3" json:"greet_id,omitempty"` // 打招呼模板id
AndroidWechatVersion string `protobuf:"bytes,31,opt,name=android_wechat_version,json=androidWechatVersion,proto3" json:"android_wechat_version,omitempty"` // 微信版本
RiskControlGroup uint32 `protobuf:"varint,33,opt,name=risk_control_group,json=riskControlGroup,proto3" json:"risk_control_group,omitempty"` // 风控分组
LastPcLoginAt int64 `protobuf:"varint,34,opt,name=last_pc_login_at,json=lastPcLoginAt,proto3" json:"last_pc_login_at,omitempty"` // 最近PC登录时间
LastPcLogoutAt int64 `protobuf:"varint,35,opt,name=last_pc_logout_at,json=lastPcLogoutAt,proto3" json:"last_pc_logout_at,omitempty"` // 最近PC登出时间
LastAndroidLoginAt int64 `protobuf:"varint,36,opt,name=last_android_login_at,json=lastAndroidLoginAt,proto3" json:"last_android_login_at,omitempty"` // 最近安卓登录时间
LastAndroidLogoutAt int64 `protobuf:"varint,37,opt,name=last_android_logout_at,json=lastAndroidLogoutAt,proto3" json:"last_android_logout_at,omitempty"` // 最近安卓登出时间
RiskControlTask string `protobuf:"bytes,38,opt,name=risk_control_task,json=riskControlTask,proto3" json:"risk_control_task,omitempty"` // 风控任务 0是全部1是回复2是发消息3是看朋友圈4是发朋友圈5是点赞6是评论 7是群聊 可组合1,2,3
OpenForStranger bool `protobuf:"varint,39,opt,name=open_for_stranger,json=openForStranger,proto3" json:"open_for_stranger,omitempty"` // 是否允许陌生人查看十条朋友圈
MomentPrivacyType int32 `protobuf:"varint,40,opt,name=moment_privacy_type,json=momentPrivacyType,proto3" json:"moment_privacy_type,omitempty"` // 朋友圈隐私选项类型
CoverUrl string `protobuf:"bytes,41,opt,name=cover_url,json=coverUrl,proto3" json:"cover_url,omitempty"` // 朋友圈封面url
Country string `protobuf:"bytes,42,opt,name=country,proto3" json:"country,omitempty"` // 国家
Province string `protobuf:"bytes,43,opt,name=province,proto3" json:"province,omitempty"` // 省份
City string `protobuf:"bytes,44,opt,name=city,proto3" json:"city,omitempty"` // 城市
Signature string `protobuf:"bytes,45,opt,name=signature,proto3" json:"signature,omitempty"` // 个性签名
}
func (x *ModelRobot) Reset() {
*x = ModelRobot{}
if protoimpl.UnsafeEnabled {
mi := &file_mdbc_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModelRobot) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModelRobot) ProtoMessage() {}
func (x *ModelRobot) ProtoReflect() protoreflect.Message {
mi := &file_mdbc_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModelRobot.ProtoReflect.Descriptor instead.
func (*ModelRobot) Descriptor() ([]byte, []int) {
return file_mdbc_proto_rawDescGZIP(), []int{12}
}
func (x *ModelRobot) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *ModelRobot) GetUserId() string {
if x != nil {
return x.UserId
}
return ""
}
func (x *ModelRobot) GetCrmShopId() string {
if x != nil {
return x.CrmShopId
}
return ""
}
func (x *ModelRobot) GetAliasName() string {
if x != nil {
return x.AliasName
}
return ""
}
func (x *ModelRobot) GetNickName() string {
if x != nil {
return x.NickName
}
return ""
}
func (x *ModelRobot) GetWechatId() string {
if x != nil {
return x.WechatId
}
return ""
}
func (x *ModelRobot) GetWechatAlias() string {
if x != nil {
return x.WechatAlias
}
return ""
}
func (x *ModelRobot) GetAvatarUrl() string {
if x != nil {
return x.AvatarUrl
}
return ""
}
func (x *ModelRobot) GetSex() int32 {
if x != nil {
return x.Sex
}
return 0
}
func (x *ModelRobot) GetMobile() string {
if x != nil {
return x.Mobile
}
return ""
}
func (x *ModelRobot) GetQrcode() string {
if x != nil {
return x.Qrcode
}
return ""
}
func (x *ModelRobot) GetStatus() int64 {
if x != nil {
return x.Status
}
return 0
}
func (x *ModelRobot) GetLimited() int64 {
if x != nil {
return x.Limited
}
return 0
}
func (x *ModelRobot) GetAbilityLimit() int64 {
if x != nil {
return x.AbilityLimit
}
return 0
}
func (x *ModelRobot) GetInitFriend() int64 {
if x != nil {
return x.InitFriend
}
return 0
}
func (x *ModelRobot) GetNowFriend() int64 {
if x != nil {
return x.NowFriend
}
return 0
}
func (x *ModelRobot) GetAutoAddFriend() int64 {
if x != nil {
return x.AutoAddFriend
}
return 0
}
func (x *ModelRobot) GetLastLoginTime() int64 {
if x != nil {
return x.LastLoginTime
}
return 0
}
func (x *ModelRobot) GetLastLogOutTime() int64 {
if x != nil {
return x.LastLogOutTime
}
return 0
}
func (x *ModelRobot) GetLastRegionCode() string {
if x != nil {
return x.LastRegionCode
}
return ""
}
func (x *ModelRobot) GetLastCity() string {
if x != nil {
return x.LastCity
}
return ""
}
func (x *ModelRobot) GetTodayRequireTime() int64 {
if x != nil {
return x.TodayRequireTime
}
return 0
}
func (x *ModelRobot) GetLastRequireAddFriendTime() int64 {
if x != nil {
return x.LastRequireAddFriendTime
}
return 0
}
func (x *ModelRobot) GetCrmAutoAddFriend() int64 {
if x != nil {
return x.CrmAutoAddFriend
}
return 0
}
func (x *ModelRobot) GetDeleteTime() int64 {
if x != nil {
return x.DeleteTime
}
return 0
}
func (x *ModelRobot) GetCreateTime() int64 {
if x != nil {
return x.CreateTime
}
return 0
}
func (x *ModelRobot) GetUpdateTime() int64 {
if x != nil {
return x.UpdateTime
}
return 0
}
func (x *ModelRobot) GetLogAndOutTime() int64 {
if x != nil {
return x.LogAndOutTime
}
return 0
}
func (x *ModelRobot) GetAndroidStatus() int64 {
if x != nil {
return x.AndroidStatus
}
return 0
}
func (x *ModelRobot) GetGreetId() string {
if x != nil {
return x.GreetId
}
return ""
}
func (x *ModelRobot) GetAndroidWechatVersion() string {
if x != nil {
return x.AndroidWechatVersion
}
return ""
}
func (x *ModelRobot) GetRiskControlGroup() uint32 {
if x != nil {
return x.RiskControlGroup
}
return 0
}
func (x *ModelRobot) GetLastPcLoginAt() int64 {
if x != nil {
return x.LastPcLoginAt
}
return 0
}
func (x *ModelRobot) GetLastPcLogoutAt() int64 {
if x != nil {
return x.LastPcLogoutAt
}
return 0
}
func (x *ModelRobot) GetLastAndroidLoginAt() int64 {
if x != nil {
return x.LastAndroidLoginAt
}
return 0
}
func (x *ModelRobot) GetLastAndroidLogoutAt() int64 {
if x != nil {
return x.LastAndroidLogoutAt
}
return 0
}
func (x *ModelRobot) GetRiskControlTask() string {
if x != nil {
return x.RiskControlTask
}
return ""
}
func (x *ModelRobot) GetOpenForStranger() bool {
if x != nil {
return x.OpenForStranger
}
return false
}
func (x *ModelRobot) GetMomentPrivacyType() int32 {
if x != nil {
return x.MomentPrivacyType
}
return 0
}
func (x *ModelRobot) GetCoverUrl() string {
if x != nil {
return x.CoverUrl
}
return ""
}
func (x *ModelRobot) GetCountry() string {
if x != nil {
return x.Country
}
return ""
}
func (x *ModelRobot) GetProvince() string {
if x != nil {
return x.Province
}
return ""
}
func (x *ModelRobot) GetCity() string {
if x != nil {
return x.City
}
return ""
}
func (x *ModelRobot) GetSignature() string {
if x != nil {
return x.Signature
}
return ""
}
var File_mdbc_proto protoreflect.FileDescriptor
var file_mdbc_proto_rawDesc = []byte{
0x0a, 0x0a, 0x6d, 0x64, 0x62, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x6d, 0x64,
0x62, 0x63, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x22, 0xd0, 0x02, 0x0a, 0x0f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x46, 0x72, 0x69,
0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x65, 0x63, 0x68, 0x61,
0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x65, 0x63, 0x68,
0x61, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65,
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65,
0x12, 0x21, 0x0a, 0x0c, 0x77, 0x65, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73,
0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x65, 0x63, 0x68, 0x61, 0x74, 0x41, 0x6c,
0x69, 0x61, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x75, 0x72,
0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55,
0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28,
0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e,
0x74, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74,
0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x08,
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x12,
0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69,
0x74, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52,
0x03, 0x73, 0x65, 0x78, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74,
0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74,
0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f,
0x74, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61,
0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x86, 0x06, 0x0a, 0x0e, 0x4d, 0x6f, 0x64, 0x65, 0x6c,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65,
0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63,
0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61,
0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70,
0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74,
0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c,
0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x5f,
0x77, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x6f, 0x62,
0x6f, 0x74, 0x57, 0x78, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f,
0x77, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f,
0x75, 0x70, 0x57, 0x78, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f,
0x77, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x77, 0x6e,
0x65, 0x72, 0x57, 0x78, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f,
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f,
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x6d,
0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x77, 0x6e, 0x65,
0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x77,
0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x67, 0x72, 0x6f, 0x75, 0x70,
0x5f, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72,
0x6c, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x77, 0x61, 0x74, 0x63, 0x68, 0x18, 0x0d, 0x20,
0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x57, 0x61, 0x74, 0x63, 0x68, 0x12, 0x24, 0x0a, 0x0e,
0x68, 0x61, 0x73, 0x5f, 0x62, 0x65, 0x65, 0x6e, 0x5f, 0x77, 0x61, 0x74, 0x63, 0x68, 0x18, 0x0e,
0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x42, 0x65, 0x65, 0x6e, 0x57, 0x61, 0x74,
0x63, 0x68, 0x12, 0x31, 0x0a, 0x15, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28,
0x08, 0x52, 0x12, 0x69, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74,
0x61, 0x63, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x6e, 0x43, 0x6f, 0x6e,
0x74, 0x61, 0x63, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f,
0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x64, 0x69,
0x73, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x6c,
0x61, 0x73, 0x74, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28,
0x03, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x74, 0x12, 0x2d, 0x0a,
0x13, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65,
0x72, 0x5f, 0x61, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6c, 0x61, 0x73, 0x74,
0x53, 0x79, 0x6e, 0x63, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06,
0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f,
0x74, 0x69, 0x63, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x71, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x75,
0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x03, 0x52,
0x0f, 0x71, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74,
0x12, 0x1d, 0x0a, 0x0a, 0x71, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x18,
0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x71, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x55, 0x72, 0x6c, 0x12,
0x2e, 0x0a, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x19, 0x20,
0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x6d, 0x64, 0x62, 0x63, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e,
0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22,
0xbe, 0x03, 0x0a, 0x14, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68,
0x61, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61,
0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72,
0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74,
0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64,
0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65,
0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65,
0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x63,
0x68, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x6d, 0x65, 0x6d,
0x62, 0x65, 0x72, 0x5f, 0x77, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,
0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x78, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6d,
0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d,
0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x08, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x76, 0x61, 0x74, 0x61,
0x72, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x61, 0x6c, 0x69, 0x61,
0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41,
0x6c, 0x69, 0x61, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x73,
0x65, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72,
0x53, 0x65, 0x78, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x18,
0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x12, 0x2e,
0x0a, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01,
0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x6d, 0x64, 0x62, 0x63, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x54,
0x79, 0x70, 0x65, 0x52, 0x09, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20,
0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x74, 0x18, 0x0d,
0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x74,
0x22, 0xc0, 0x02, 0x0a, 0x18, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x62, 0x50, 0x72, 0x69, 0x76,
0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a,
0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a,
0x03, 0x61, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12,
0x12, 0x0a, 0x04, 0x72, 0x65, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x72,
0x65, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x18, 0x04, 0x20,
0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x6c,
0x61, 0x73, 0x74, 0x5f, 0x6d, 0x73, 0x67, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03,
0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x41, 0x74, 0x12, 0x2b, 0x0a, 0x12, 0x6c,
0x61, 0x73, 0x74, 0x5f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5f, 0x6d, 0x73, 0x67, 0x5f, 0x61,
0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x46, 0x72, 0x69,
0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x72, 0x6f, 0x62, 0x6f,
0x74, 0x5f, 0x77, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72,
0x6f, 0x62, 0x6f, 0x74, 0x57, 0x78, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72,
0x5f, 0x77, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73,
0x65, 0x72, 0x57, 0x78, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d,
0x73, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x61, 0x73,
0x74, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66,
0x72, 0x69, 0x65, 0x6e, 0x64, 0x5f, 0x6d, 0x73, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4d, 0x73,
0x67, 0x49, 0x64, 0x22, 0xe9, 0x02, 0x0a, 0x16, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x62, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0e,
0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10,
0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x61, 0x6c, 0x6c,
0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
0x72, 0x65, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x18, 0x04,
0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x1e, 0x0a, 0x0b,
0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x73, 0x67, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28,
0x03, 0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x41, 0x74, 0x12, 0x2b, 0x0a, 0x12,
0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5f, 0x6d, 0x73, 0x67, 0x5f,
0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x46, 0x72,
0x69, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x72, 0x6f, 0x62,
0x6f, 0x74, 0x5f, 0x77, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
0x72, 0x6f, 0x62, 0x6f, 0x74, 0x57, 0x78, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x0a, 0x75, 0x73, 0x65,
0x72, 0x5f, 0x77, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75,
0x73, 0x65, 0x72, 0x57, 0x78, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x5f,
0x6d, 0x73, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x61,
0x73, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x5f,
0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5f, 0x6d, 0x73, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4d,
0x73, 0x67, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x6d,
0x62, 0x65, 0x72, 0x5f, 0x77, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52,
0x0e, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x78, 0x49, 0x64, 0x22,
0xba, 0x04, 0x0a, 0x16, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x62, 0x52, 0x6f, 0x62, 0x6f, 0x74,
0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x62, 0x69,
0x6e, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x69, 0x6e,
0x64, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x5f, 0x77, 0x78, 0x5f,
0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x57,
0x78, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x77, 0x78, 0x5f, 0x69,
0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x57, 0x78, 0x49,
0x64, 0x12, 0x15, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28,
0x09, 0x52, 0x05, 0x6d, 0x73, 0x67, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x5f,
0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54,
0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74,
0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x53, 0x74,
0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x09,
0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x26, 0x0a, 0x0f,
0x73, 0x65, 0x6e, 0x64, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18,
0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72,
0x43, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f,
0x72, 0x65, 0x61, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74,
0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74,
0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65,
0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
0x64, 0x5f, 0x61, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61,
0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x61, 0x69, 0x6c, 0x5f, 0x72, 0x65,
0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61, 0x69, 0x6c,
0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0c, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x62,
0x61, 0x63, 0x6b, 0x5f, 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x61,
0x6c, 0x6c, 0x42, 0x61, 0x63, 0x6b, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73,
0x6f, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72,
0x12, 0x17, 0x0a, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28,
0x03, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x41, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x70,
0x69, 0x72, 0x65, 0x5f, 0x61, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x65, 0x78,
0x70, 0x69, 0x72, 0x65, 0x41, 0x74, 0x12, 0x34, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d,
0x64, 0x62, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52,
0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x22, 0xda, 0x04, 0x0a,
0x14, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x62, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x47, 0x72, 0x6f,
0x75, 0x70, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x69, 0x64,
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x69, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x1e,
0x0a, 0x0b, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x5f, 0x77, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20,
0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x57, 0x78, 0x49, 0x64, 0x12, 0x1c,
0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x77, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01,
0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x57, 0x78, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06,
0x6d, 0x73, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x73,
0x67, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f,
0x0a, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20,
0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
0x16, 0x0a, 0x06, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52,
0x06, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x65, 0x6e, 0x64, 0x5f,
0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05,
0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12,
0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18,
0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65,
0x61, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74,
0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41,
0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18,
0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74,
0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x61, 0x69, 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18,
0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x61, 0x73, 0x6f,
0x6e, 0x12, 0x20, 0x0a, 0x0c, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x61,
0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x61, 0x6c, 0x6c, 0x42, 0x61, 0x63,
0x6b, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x11, 0x20,
0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x73,
0x65, 0x6e, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x65,
0x6e, 0x64, 0x41, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x61,
0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x41,
0x74, 0x12, 0x34, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x61, 0x74,
0x61, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x64, 0x62, 0x63, 0x2e, 0x43,
0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74,
0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x65,
0x72, 0x5f, 0x77, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73,
0x65, 0x6e, 0x64, 0x65, 0x72, 0x57, 0x78, 0x49, 0x64, 0x22, 0xef, 0x03, 0x0a, 0x0b, 0x43, 0x6f,
0x6e, 0x74, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x61, 0x77,
0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
0x72, 0x61, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f,
0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e,
0x74, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x74, 0x69,
0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x68, 0x61, 0x72, 0x65,
0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x64,
0x65, 0x73, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x68, 0x61, 0x72, 0x65,
0x44, 0x65, 0x73, 0x63, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x75, 0x72,
0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x61, 0x72, 0x65, 0x55, 0x72,
0x6c, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x06, 0x20,
0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x26, 0x0a, 0x0f,
0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x65, 0x55, 0x73, 0x65, 0x72,
0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x6e, 0x69,
0x63, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73,
0x68, 0x61, 0x72, 0x65, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x0b,
0x61, 0x74, 0x5f, 0x6d, 0x73, 0x67, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x09, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x0f, 0x2e, 0x6d, 0x64, 0x62, 0x63, 0x2e, 0x41, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x74,
0x65, 0x6d, 0x52, 0x09, 0x61, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1e, 0x0a,
0x0b, 0x77, 0x78, 0x5f, 0x6d, 0x73, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01,
0x28, 0x05, 0x52, 0x09, 0x77, 0x78, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a,
0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01,
0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65,
0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44,
0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0c, 0x61, 0x74, 0x5f, 0x75, 0x73,
0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x61,
0x74, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x69, 0x73, 0x5f,
0x61, 0x74, 0x5f, 0x6d, 0x79, 0x73, 0x65, 0x6c, 0x66, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52,
0x0a, 0x69, 0x73, 0x41, 0x74, 0x4d, 0x79, 0x73, 0x65, 0x6c, 0x66, 0x22, 0x77, 0x0a, 0x09, 0x41,
0x74, 0x4d, 0x73, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x54,
0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79,
0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08,
0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b,
0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b,
0x4e, 0x61, 0x6d, 0x65, 0x22, 0xc2, 0x02, 0x0a, 0x0e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x63,
0x68, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74,
0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65,
0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61,
0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x74,
0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x53,
0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x74, 0x79, 0x70,
0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70,
0x65, 0x12, 0x15, 0x0a, 0x06, 0x72, 0x65, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28,
0x09, 0x52, 0x05, 0x72, 0x65, 0x71, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x5f,
0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x71, 0x4a,
0x73, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x73, 0x70, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18,
0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x73, 0x70, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x1e,
0x0a, 0x0b, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x5f, 0x77, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20,
0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x57, 0x78, 0x49, 0x64, 0x12, 0x39,
0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09,
0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x41, 0x74, 0x22, 0x9c, 0x03, 0x0a, 0x10, 0x4d, 0x6f,
0x64, 0x65, 0x6c, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x0e,
0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x26,
0x0a, 0x0f, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x5f, 0x77, 0x65, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x69,
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x57, 0x65,
0x63, 0x68, 0x61, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x77,
0x65, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
0x75, 0x73, 0x65, 0x72, 0x57, 0x65, 0x63, 0x68, 0x61, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07,
0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x64,
0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e,
0x65, 0x5f, 0x61, 0x64, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6f, 0x66, 0x66,
0x6c, 0x69, 0x6e, 0x65, 0x41, 0x64, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x61, 0x72,
0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65,
0x6d, 0x61, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x69, 0x6e, 0x79,
0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x69, 0x6e, 0x79, 0x69, 0x6e,
0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x69, 0x6e, 0x79, 0x69, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x18,
0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x69, 0x6e, 0x79, 0x69, 0x6e, 0x48, 0x65, 0x61,
0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65,
0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69,
0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d,
0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54,
0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69,
0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
0x54, 0x69, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x64, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c,
0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x61, 0x64, 0x64, 0x41, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63,
0x72, 0x6d, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
0x63, 0x72, 0x6d, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x22, 0xea, 0x01, 0x0a, 0x14, 0x4d, 0x6f, 0x64,
0x65, 0x6c, 0x57, 0x73, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72,
0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72,
0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09,
0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x67,
0x69, 0x6e, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6c, 0x6f, 0x67,
0x69, 0x6e, 0x41, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, 0x61,
0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x41,
0x74, 0x12, 0x17, 0x0a, 0x07, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01,
0x28, 0x09, 0x52, 0x06, 0x62, 0x69, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78,
0x70, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69,
0x72, 0x65, 0x64, 0x41, 0x74, 0x22, 0xa3, 0x0c, 0x0a, 0x0a, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52,
0x6f, 0x62, 0x6f, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a,
0x0b, 0x63, 0x72, 0x6d, 0x5f, 0x73, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x6d, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x1d, 0x0a,
0x0a, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
0x09, 0x52, 0x09, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09,
0x6e, 0x69, 0x63, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x65, 0x63,
0x68, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x65,
0x63, 0x68, 0x61, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x65, 0x63, 0x68, 0x61, 0x74,
0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x65,
0x63, 0x68, 0x61, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x76, 0x61,
0x74, 0x61, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61,
0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18,
0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f,
0x62, 0x69, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x62, 0x69,
0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x71, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01,
0x28, 0x09, 0x52, 0x06, 0x71, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74,
0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x18, 0x0d, 0x20,
0x01, 0x28, 0x03, 0x52, 0x07, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d,
0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0e, 0x20,
0x01, 0x28, 0x03, 0x52, 0x0c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4c, 0x69, 0x6d, 0x69,
0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64,
0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x69, 0x6e, 0x69, 0x74, 0x46, 0x72, 0x69, 0x65,
0x6e, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x6f, 0x77, 0x5f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64,
0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6e, 0x6f, 0x77, 0x46, 0x72, 0x69, 0x65, 0x6e,
0x64, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x66, 0x72,
0x69, 0x65, 0x6e, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x6f,
0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x61, 0x73,
0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01,
0x28, 0x03, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d,
0x65, 0x12, 0x29, 0x0a, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x6f, 0x75,
0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6c, 0x61,
0x73, 0x74, 0x4c, 0x6f, 0x67, 0x4f, 0x75, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10,
0x6c, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65,
0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69,
0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63,
0x69, 0x74, 0x79, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x43,
0x69, 0x74, 0x79, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x5f, 0x72, 0x65, 0x71,
0x75, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52,
0x10, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d,
0x65, 0x12, 0x3e, 0x0a, 0x1c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72,
0x65, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d,
0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x03, 0x52, 0x18, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x71,
0x75, 0x69, 0x72, 0x65, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d,
0x65, 0x12, 0x2d, 0x0a, 0x13, 0x63, 0x72, 0x6d, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64,
0x64, 0x5f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10,
0x63, 0x72, 0x6d, 0x41, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64,
0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
0x19, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d,
0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65,
0x18, 0x1a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69,
0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d,
0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54,
0x69, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x10, 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x6f,
0x75, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6c,
0x6f, 0x67, 0x41, 0x6e, 0x64, 0x4f, 0x75, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e,
0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x1d,
0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x53, 0x74, 0x61,
0x74, 0x75, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x65, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18,
0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x65, 0x65, 0x74, 0x49, 0x64, 0x12, 0x34,
0x0a, 0x16, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x5f, 0x77, 0x65, 0x63, 0x68, 0x61, 0x74,
0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14,
0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x57, 0x65, 0x63, 0x68, 0x61, 0x74, 0x56, 0x65, 0x72,
0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x72, 0x69, 0x73, 0x6b, 0x5f, 0x63, 0x6f, 0x6e,
0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0d,
0x52, 0x10, 0x72, 0x69, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x72, 0x6f,
0x75, 0x70, 0x12, 0x27, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x63, 0x5f, 0x6c, 0x6f,
0x67, 0x69, 0x6e, 0x5f, 0x61, 0x74, 0x18, 0x22, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6c, 0x61,
0x73, 0x74, 0x50, 0x63, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x41, 0x74, 0x12, 0x29, 0x0a, 0x11, 0x6c,
0x61, 0x73, 0x74, 0x5f, 0x70, 0x63, 0x5f, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, 0x61, 0x74,
0x18, 0x23, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x50, 0x63, 0x4c, 0x6f,
0x67, 0x6f, 0x75, 0x74, 0x41, 0x74, 0x12, 0x31, 0x0a, 0x15, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x61,
0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x61, 0x74, 0x18,
0x24, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x41, 0x6e, 0x64, 0x72, 0x6f,
0x69, 0x64, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x41, 0x74, 0x12, 0x33, 0x0a, 0x16, 0x6c, 0x61, 0x73,
0x74, 0x5f, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x5f, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74,
0x5f, 0x61, 0x74, 0x18, 0x25, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x6c, 0x61, 0x73, 0x74, 0x41,
0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x41, 0x74, 0x12, 0x2a,
0x0a, 0x11, 0x72, 0x69, 0x73, 0x6b, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x74,
0x61, 0x73, 0x6b, 0x18, 0x26, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x69, 0x73, 0x6b, 0x43,
0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x70,
0x65, 0x6e, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x18,
0x27, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6f, 0x70, 0x65, 0x6e, 0x46, 0x6f, 0x72, 0x53, 0x74,
0x72, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x6f, 0x6d, 0x65, 0x6e, 0x74,
0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x28, 0x20,
0x01, 0x28, 0x05, 0x52, 0x11, 0x6d, 0x6f, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61,
0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x5f,
0x75, 0x72, 0x6c, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72,
0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x2a,
0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1a, 0x0a,
0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x09, 0x52,
0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74,
0x79, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x1c, 0x0a,
0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09,
0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2a, 0x45, 0x0a, 0x09, 0x41,
0x64, 0x6d, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x64, 0x6d, 0x69,
0x6e, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x69, 0x6c, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x64,
0x6d, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x10, 0x01, 0x12, 0x12,
0x0a, 0x0e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x4f, 0x77, 0x6e, 0x65, 0x72,
0x10, 0x02, 0x2a, 0x60, 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12,
0x10, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4e, 0x69, 0x6c, 0x10,
0x00, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x75,
0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x61, 0x73, 0x6b, 0x53,
0x74, 0x61, 0x74, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12,
0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74,
0x65, 0x64, 0x10, 0x03, 0x42, 0x09, 0x5a, 0x07, 0x2e, 0x2f, 0x3b, 0x6d, 0x64, 0x62, 0x63, 0x62,
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_mdbc_proto_rawDescOnce sync.Once
file_mdbc_proto_rawDescData = file_mdbc_proto_rawDesc
)
func file_mdbc_proto_rawDescGZIP() []byte {
file_mdbc_proto_rawDescOnce.Do(func() {
file_mdbc_proto_rawDescData = protoimpl.X.CompressGZIP(file_mdbc_proto_rawDescData)
})
return file_mdbc_proto_rawDescData
}
var file_mdbc_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_mdbc_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
var file_mdbc_proto_goTypes = []interface{}{
(AdminType)(0), // 0: mdbc.AdminType
(TaskState)(0), // 1: mdbc.TaskState
(*ModelFriendInfo)(nil), // 2: mdbc.ModelFriendInfo
(*ModelGroupChat)(nil), // 3: mdbc.ModelGroupChat
(*ModelGroupChatMember)(nil), // 4: mdbc.ModelGroupChatMember
(*ModelTbPrivateMsgSession)(nil), // 5: mdbc.ModelTbPrivateMsgSession
(*ModelTbGroupMsgSession)(nil), // 6: mdbc.ModelTbGroupMsgSession
(*ModelTbRobotPrivateMsg)(nil), // 7: mdbc.ModelTbRobotPrivateMsg
(*ModelTbRobotGroupMsg)(nil), // 8: mdbc.ModelTbRobotGroupMsg
(*ContentData)(nil), // 9: mdbc.ContentData
(*AtMsgItem)(nil), // 10: mdbc.AtMsgItem
(*ModelSchedTask)(nil), // 11: mdbc.ModelSchedTask
(*ModelRobotFriend)(nil), // 12: mdbc.ModelRobotFriend
(*ModelWsConnectRecord)(nil), // 13: mdbc.ModelWsConnectRecord
(*ModelRobot)(nil), // 14: mdbc.ModelRobot
(*timestamppb.Timestamp)(nil), // 15: google.protobuf.Timestamp
}
var file_mdbc_proto_depIdxs = []int32{
0, // 0: mdbc.ModelGroupChat.admin_type:type_name -> mdbc.AdminType
0, // 1: mdbc.ModelGroupChatMember.admin_type:type_name -> mdbc.AdminType
9, // 2: mdbc.ModelTbRobotPrivateMsg.content_data:type_name -> mdbc.ContentData
9, // 3: mdbc.ModelTbRobotGroupMsg.content_data:type_name -> mdbc.ContentData
10, // 4: mdbc.ContentData.at_msg_item:type_name -> mdbc.AtMsgItem
15, // 5: mdbc.ModelSchedTask.expired_at:type_name -> google.protobuf.Timestamp
15, // 6: mdbc.ModelWsConnectRecord.expired_at:type_name -> google.protobuf.Timestamp
7, // [7:7] is the sub-list for method output_type
7, // [7:7] is the sub-list for method input_type
7, // [7:7] is the sub-list for extension type_name
7, // [7:7] is the sub-list for extension extendee
0, // [0:7] is the sub-list for field type_name
}
func init() { file_mdbc_proto_init() }
func file_mdbc_proto_init() {
if File_mdbc_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_mdbc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModelFriendInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mdbc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModelGroupChat); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mdbc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModelGroupChatMember); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mdbc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModelTbPrivateMsgSession); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mdbc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModelTbGroupMsgSession); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mdbc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModelTbRobotPrivateMsg); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mdbc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModelTbRobotGroupMsg); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mdbc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ContentData); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mdbc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AtMsgItem); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mdbc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModelSchedTask); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mdbc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModelRobotFriend); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mdbc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModelWsConnectRecord); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mdbc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModelRobot); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_mdbc_proto_rawDesc,
NumEnums: 2,
NumMessages: 13,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_mdbc_proto_goTypes,
DependencyIndexes: file_mdbc_proto_depIdxs,
EnumInfos: file_mdbc_proto_enumTypes,
MessageInfos: file_mdbc_proto_msgTypes,
}.Build()
File_mdbc_proto = out.File
file_mdbc_proto_rawDesc = nil
file_mdbc_proto_goTypes = nil
file_mdbc_proto_depIdxs = nil
}