syntax = "proto3"; import "google/protobuf/timestamp.proto"; package mdbc; option go_package = "./;mdbc"; // @table_name: tb_friends_info message ModelFriendInfo { string id = 1; // 主键ID wxid md5 string wechat_id = 2; // 用户微信ID // @bson: nick_name string nickname = 3; // 用户暱称 string wechat_alias = 4; // 用户微信号 string avatar_url = 5; // 用户头像 string phone = 6; // 手机号码 string country = 7; // 国家 string province = 8; // 省份 string city = 9; // 城市 int32 sex = 10; // 0未知 1男 2女 int64 create_time = 12; // 创建时间 int64 update_time = 13; // 更新时间 } enum AdminType { // @desc: 普通用户 AdminTypeNil = 0; // @desc: 管理员 AdminTypeAdmin = 1; // @desc: 群主 AdminTypeOwner = 2; } // @table_name: tb_crm_group_chat message ModelGroupChat { string id = 1; // 主键ID int64 created_at = 2; // 创建时间 int64 updated_at = 3; // 更新时间 int64 deleted_at = 4; // 删除时间【记: 此表正常情况下 只进行软删除】非零 历史群 0正常群 string robot_wx_id = 6; // 机器人id string group_wx_id = 7; // 群id string owner_wx_id = 8; // 群主id string group_name = 9; // 群名称 uint32 member_count = 10; // 群成员数量 string owner_name = 11; // 群主名称 string group_avatar_url = 12; // 群头像 bool is_watch = 13; // 是否关注群 bool has_been_watch = 14; // 以前有关注过 bool is_default_group_name = 15; // 是否是默认的群名称 bool in_contact = 16; // 是否在通讯录中 bool disable_invite = 17; // 是否开启了群聊邀请确认 true 开启了 false 关闭了 int64 last_sync_at = 20; // 最后更新群信息时间 【通过这里 指定规则 去拉群基本信息】 int64 last_sync_member_at = 21; // 最后更新群成员时间 【通过这里 指定规则 去拉群成员信息】 string notice = 22; // 群公告 int64 qrcode_updated_at = 23; // 群聊二维码更新时间 string qrcode_url = 24; // 群聊二维码 AdminType admin_type = 25; // 机器人权限类型 } // @table_name: tb_crm_group_chat_member message ModelGroupChatMember { string id = 1; // id int64 created_at = 2; // 创建时间 int64 updated_at = 3; // 更新时间 int64 deleted_at = 4; // 删除时间 这个表一般直接硬删除 string group_chat_id = 5; // 群 ModelGroupChat 的ID string member_wx_id = 6; // 群成员微信id string member_name = 7; // 群成员名称 string member_avatar = 8; // 群成员头像 string member_alias = 9; // 群昵称 uint32 member_sex = 10; // 性别 bool is_robot = 11; // 是否是机器人 AdminType admin_type = 12; // 权限类型 群主 管理员 普通成员 int64 last_sync_at = 13; // 该群该成员 最后更新时间 } // @table_name: tb_crm_private_msg_session message ModelTbPrivateMsgSession { string id = 1; //会话ID (md5(机器人id+好友id)) int32 all = 2; //消息最大游标(消息总数:只算有效的消息) int32 read = 3; //已读游标 int32 unread = 4; //未读消息游标 int64 last_msg_at = 5; //最后一条消息时间 int64 last_friend_msg_at = 6; //接受到最后一条好友消息时间 string robot_wx_id = 7; //机器人id string user_wx_id = 8; //好友微信id string last_msg_id = 9; //最后一条消息id string last_friend_msg_id = 10; //接收的最后一条好友消息id } // @table_name: tb_crm_group_msg_session message ModelTbGroupMsgSession { string id = 1; //会话ID (md5(机器人id+好友id)) int32 all = 2; //消息最大游标(消息总数:只算有效的消息) int32 read = 3; //已读游标 int32 unread = 4; //未读消息游标 int64 last_msg_at = 5; //最后一条消息时间 int64 last_friend_msg_at = 6; //接受到最后一条好友消息时间 string robot_wx_id = 7; //机器人id string user_wx_id = 8; //群微信id string last_msg_id = 9; //最后一条消息id string last_friend_msg_id = 10; //接收的最后一条好友消息id string last_member_wx_id = 11; //最后发送消息的群成员id } // @table_name: tb_crm_robot_private_msg message ModelTbRobotPrivateMsg { string id = 1; // 主键ID string bind_id = 3; // 前端消息id string robot_wx_id = 4; // 机器人id string user_wx_id = 5; // 好友id string msg_id = 6; // 服务端自己生成一个消息id,来对应客户端的发送结果id int32 msg_type = 7; // 消息类型 int32 send_status = 8; // 发送状态:0:发送中;1:发送请求成功;2:发送请求失败;3:发送成功;4:发送失败;仅机器人发送。接收到用户消息的默认3 int32 direct = 9; // 用于区分机器人是接收方还是发送方。1:机器人接收;2:机器人发送 int32 send_error_code = 10; // 发送错误码:用户告诉对应的是什么错误:-1 通用错误码; -2 被拉黑; -3 // 被删除; -4 好友找不到; bool content_read = 12; // 是否内容被浏览(像语音之类的,需要浏览) int64 created_at = 13; // 创建时间 int64 updated_at = 14; // 更新时间 string fail_reason = 15; // 失败原因 int64 call_back_at = 16; // 消息返回时间 int64 cursor = 17; // 消息游标(对应session的all) int64 send_at = 18; // 发送时间(消息实际生效时间) int64 expire_at = 19; // 失效时间(用于消息的失效) ContentData content_data = 20; // 消息内容 } // @table_name: tb_crm_robot_group_msg message ModelTbRobotGroupMsg { string id = 1; // 主键ID string bind_id = 3; // 前端消息id string robot_wx_id = 4; // 机器人id string user_wx_id = 5; // 群聊id string msg_id = 6; // 服务端自己生成一个消息id,来对应客户端的发送结果id int32 msg_type = 7; // 消息类型 int32 send_status = 8; // 发送状态:0:发送中;1:发送请求成功;2:发送请求失败;3:发送成功;4:发送失败;仅机器人发送。接收到用户消息的默认3 int32 direct = 9; // 用于区分机器人是接收方还是发送方。1:机器人接收;2:机器人发送 int32 send_error_code = 10; // 发送错误码:用户告诉对应的是什么错误:-1 通用错误码; -2 被拉黑; -3 // 被删除; -4 好友找不到; bool content_read = 12; // 是否内容被浏览(像语音之类的,需要浏览) int64 created_at = 13; // 创建时间 int64 updated_at = 14; // 更新时间 string fail_reason = 15; // 失败原因 int64 call_back_at = 16; // 消息返回时间 int64 cursor = 17; // 消息游标(对应session的all) int64 send_at = 18; // 发送时间(消息实际生效时间) int64 expire_at = 19; // 失效时间(用于消息的失效) ContentData content_data = 20; // 消息内容 string sender_wx_id = 21; // 发送者id } message ContentData { string raw_content = 1; // 元始的xml数据 做数据转发时用; string content = 2; // 1文本的内容;2 语音的url(amr格式);6小程序的xml; string share_title = 3; // 5链接的标题; string share_desc = 4; // 5链接的描述; string share_url = 5; // 5链接的URL; string file_url = 6; // 3图片的url;4视频的Url;5链接的分享图;8表情的url(gif);9文件的url; string share_user_name = 7; // 7名片的被分享(名片)好友id; string share_nick_name = 8; // 7名片的被分享(名片)的昵称; repeated AtMsgItem at_msg_item = 9; // 发送群@部分人消息的数据 int32 wx_msg_type = 10; // 消息类型: 1 文本;2 语音;3 图片;4 视频;5 链接;6 小程序;7 // 名片;8 表情;9 文件;10 验证消息(如好友申请);11 视频号消息;12 // 视频号直播间;13 视频号名片; double file_size = 11; // 文件大小KB单位 int32 resource_duration = 12; // 媒体时长 统一单位s repeated string at_user_name = 13; // 群聊at消息 bool is_at_myself = 14; // 是否有at我自己 单独一个字段 方便维护和查询 } message AtMsgItem { int32 SubType = 1; // 0:文本内容,1:@某人 string Content = 2; // 文本内容 string UserName = 3; // @的用户(wx_id) string NickName = 4; // @的昵称 } enum TaskState { TaskStateNil = 0; //已初始化 TaskStateRunning = 1; //运行中 TaskStateFailed = 2; //失败退出 TaskStateCompleted = 3; //完成 } // 异步任务 // @table_name: tb_crm_sched_task message ModelSchedTask { string id = 1; //任务id int64 created_at = 2; //创建时间 int64 updated_at = 3; //更新时间 uint32 task_state = 4; //执行状态 TaskState string task_type = 5; //任务类型 自定义的名称 用来区别是哪个模块发起的任务 string req_id = 6; //便于查询该任务 指定的id[作用:有些情况 无法直接通过id来查询该记录] string req_json = 7; //请求内容 string rsp_json = 8; //完成后的内容 [成功或者失败的返回] string robot_wx_id = 9; //机器人id google.protobuf.Timestamp expired_at = 10; //过期时间 } // @table_name: tb_robot_friend message ModelRobotFriend { string id = 1; // 主键ID 机器人id+朋友id md5 string robot_wechat_id = 2; // 机器人编号:微信ID string user_wechat_id = 3; // 用户微信ID, int64 deleted = 4; // 是否被删除 0双方未删除 1被好友删除 2删除了好友 3互相删除 int64 offline_add = 5; // 是否为离线添加 string remark_name = 6; // 微信好友备注名称 string pinyin = 7; // 用户备注或者暱称的拼音 string pinyin_head = 8; // 拼音首字母 int64 delete_time = 9; // 删除好友的时间 int64 create_time = 10; // 创建时间:入库时间 int64 update_time = 11; // 更新时间 int64 add_at = 12; // 添加好友时间只有主动添加好友才有 string crm_phone = 13; // CRM自己设置的好友手机号,不同于微信手机号 } // @table_name: tb_ws_connect_record message ModelWsConnectRecord { string id = 1; // 主键ID wxid md5 string user_id = 2; // 机器人所属用户id int64 created_at = 3; // 记录创建时间 int64 login_at = 4; // 登录时间 int64 logout_at = 5; // 登出时间 string bind_id = 6; // 该ws绑定的id google.protobuf.Timestamp expired_at = 10; // 过期时间 } // @table_name: tb_robot message ModelRobot { // @json: _id string id = 1; // 主键ID wxid md5 string user_id = 2; // 机器人所属用户id string crm_shop_id = 3; // 机器人所属商户id string alias_name = 4; // 微信号 string nick_name = 5; // 机器人暱称 string wechat_id = 6; // 微信唯一ID (wxidxxxxxx) string wechat_alias = 7; // 微信ID (用户自己定义的微信号) string avatar_url = 8; // 机器人头像 int32 sex = 9; // 性别 0 未知 1 男生 2 女生 string mobile = 10; // 手机号码 string qrcode = 11; // 机器人二维码 int64 status = 12; // 机器人PC是否在线 10在线 11离线 (兼容之前的pc登录流程和其他接口,这个登录状态不变,补多一个字段代表安卓登录状态) int64 limited = 13; // 机器人是否被封号 0未封号 1已封号 int64 ability_limit = 14; // 机器人是否功能受限 int64 init_friend = 15; // 机器人初始好友人数 int64 now_friend = 16; // 机器人当前好友数量 int64 auto_add_friend = 17; // 机器人是否自动通过好友请求 0否 1是 int64 last_login_time = 18; // 最后登录时间 int64 last_log_out_time = 19; // 最后登出时间 string last_region_code = 20; // 最后登录的扫码设备的地区编码 string last_city = 21; // 最后登录的城市名称 int64 today_require_time = 22; // 当天请求次数 int64 last_require_add_friend_time = 23; // 上一次请求添加好友的时间 int64 crm_auto_add_friend = 24; // crm系统自动通过好友 1自动通过 0不自动通过 int64 delete_time = 25; // 删除时间 int64 create_time = 26; // 创建时间 int64 update_time = 27; // 更新时间 int64 log_and_out_time = 28; // 登入或者登出都要记录一下 int64 android_status = 29; // 机器人Android是否在线 10在线 11离线 string greet_id = 30; // 打招呼模板id string android_wechat_version = 31; // 微信版本 uint32 risk_control_group = 33; // 风控分组 int64 last_pc_login_at = 34; // 最近PC登录时间 int64 last_pc_logout_at = 35; // 最近PC登出时间 int64 last_android_login_at = 36; // 最近安卓登录时间 int64 last_android_logout_at = 37; // 最近安卓登出时间 string risk_control_task = 38; // 风控任务 0是全部,1是回复,2是发消息,3是看朋友圈,4是发朋友圈,5是点赞,6是评论 7是群聊 可组合,如:1,2,3 bool open_for_stranger = 39; // 是否允许陌生人查看十条朋友圈 int32 moment_privacy_type = 40; // 朋友圈隐私选项类型 string cover_url = 41; // 朋友圈封面url string country = 42; // 国家 string province = 43; // 省份 string city = 44; // 城市 string signature = 45; // 个性签名 }