diff --git a/app/cfg/cfg_app.go b/app/cfg/cfg_app.go index 9296bba..40cf15b 100644 --- a/app/cfg/cfg_app.go +++ b/app/cfg/cfg_app.go @@ -10,16 +10,18 @@ type Config struct { CurlDebug bool `yaml:"curldebug"` SrvAddr string `yaml:"srv_addr"` RedisAddr string `yaml:"redis_addr"` - MqWorkQueueName string `yaml:"mq_work_queue_name"` RabbitMqAddr string `yaml:"rabbitMq_addr"` RabbitMqAddrTest string `yaml:"rabbitMq_addr_test"` DB DBCfg `yaml:"db"` DataDB DBCfg `yaml:"data_db"` + ImDB DBCfg `yaml:"im_db"` MQ MQCfg `yaml:"mq"` ES ESCfg `yaml:"es"` Log LogCfg `yaml:"log"` ArkID ArkIDCfg `yaml:"arkid"` Admin AdminCfg `yaml:"admin"` + ImBusinessRpc ImBusinessRpcCfg `yaml:"im_business_rpc"` + ImLogicRpc ImLogicRpcCfg `yaml:"im_logic_rpc"` Official OfficialCfg `yaml:"official"` WxappletFilepath WxappletFilepathCfg `yaml:"wxapplet_filepath"` Local bool @@ -95,3 +97,13 @@ type LogCfg struct { FileMaxSize int `yaml:"file_max_size"` FileMaxAge int `yaml:"file_max_age"` } + +type ImBusinessRpcCfg struct { + URL string `yaml:"url"` + PORT string `yaml:"port"` +} + +type ImLogicRpcCfg struct { + URL string `yaml:"url"` + PORT string `yaml:"port"` +} diff --git a/app/cfg/init_cfg.go b/app/cfg/init_cfg.go index e96d0c2..d6091da 100644 --- a/app/cfg/init_cfg.go +++ b/app/cfg/init_cfg.go @@ -9,24 +9,21 @@ import ( //配置文件数据,全局变量 var ( - Debug bool - Prd bool - CurlDebug bool - SrvAddr string - RedisAddr string - DB *DBCfg - DataDB *DBCfg - MQ *MQCfg - ES *ESCfg - Log *LogCfg - ArkID *ArkIDCfg - Admin *AdminCfg - Official *OfficialCfg - WxappletFilepath *WxappletFilepathCfg - Local bool - AppComm *AppCommCfg - MqWorkQueueName string - RabbitMqAddr string + Debug bool + Prd bool + CurlDebug bool + RedisAddr string + DB *DBCfg + DataDB *DBCfg + ImDB *DBCfg + MQ *MQCfg + ES *ESCfg + Log *LogCfg + Admin *AdminCfg + ImBusinessRpc *ImBusinessRpcCfg + ImLogicRpc *ImLogicRpcCfg + Local bool + AppComm *AppCommCfg ) //初始化配置文件,将cfg.yml读入到内存 @@ -55,19 +52,12 @@ func InitCfg() { CurlDebug = conf.CurlDebug DB = &conf.DB DataDB = &conf.DataDB + ImDB = &conf.ImDB Log = &conf.Log - ArkID = &conf.ArkID RedisAddr = conf.RedisAddr - SrvAddr = conf.SrvAddr Admin = &conf.Admin - Official = &conf.Official - WxappletFilepath = &conf.WxappletFilepath - AppComm = &conf.AppComm - MqWorkQueueName = conf.MqWorkQueueName - RabbitMqAddr = conf.RabbitMqAddrTest - if conf.Prd { - RabbitMqAddr = conf.RabbitMqAddr - } MQ = &conf.MQ ES = &conf.ES + ImBusinessRpc = &conf.ImBusinessRpc + ImLogicRpc = &conf.ImLogicRpc } diff --git a/app/db/db_dou_shen_im_group.go b/app/db/db_dou_shen_im_group.go new file mode 100644 index 0000000..49b56ab --- /dev/null +++ b/app/db/db_dou_shen_im_group.go @@ -0,0 +1,141 @@ +package db + +import ( + "applet/app/db/model" + "applet/app/utils" + "applet/app/utils/logx" + "errors" + "fmt" + "reflect" + "xorm.io/xorm" +) + +// BatchSelectDouShenImGroups 批量查询数据 TODO::和下面的方法重复了,建议采用下面的 `DouShenImGroupFindByParams` 方法 +func BatchSelectDouShenImGroups(Db *xorm.Engine, params map[string]interface{}) (*[]model.DouShenImGroup, error) { + var DouShenImGroupData []model.DouShenImGroup + if err := Db.In(utils.AnyToString(params["key"]), params["value"]). + Find(&DouShenImGroupData); err != nil { + return nil, logx.Warn(err) + } + return &DouShenImGroupData, nil +} + +// DouShenImGroupInsert 插入单条数据 +func DouShenImGroupInsert(Db *xorm.Engine, DouShenImGroup *model.DouShenImGroup) (int, error) { + _, err := Db.InsertOne(DouShenImGroup) + if err != nil { + return 0, err + } + return DouShenImGroup.Id, nil +} + +// BatchAddDouShenImGroups 批量新增数据 +func BatchAddDouShenImGroups(Db *xorm.Engine, DouShenImGroupData []*model.DouShenImGroup) (int64, error) { + affected, err := Db.Insert(DouShenImGroupData) + if err != nil { + return 0, err + } + return affected, nil +} + +func GetDouShenImGroupCount(Db *xorm.Engine) int { + var DouShenImGroup model.DouShenImGroup + session := Db.Where("") + count, err := session.Count(&DouShenImGroup) + if err != nil { + return 0 + } + return int(count) +} + +// DouShenImGroupDelete 删除记录 +func DouShenImGroupDelete(Db *xorm.Engine, id interface{}) (int64, error) { + if reflect.TypeOf(id).Kind() == reflect.Slice { + return Db.In("id", id).Delete(model.DouShenImGroup{}) + } else { + return Db.Where("id = ?", id).Delete(model.DouShenImGroup{}) + } +} + +// DouShenImGroupUpdate 更新记录 +func DouShenImGroupUpdate(Db *xorm.Engine, id interface{}, DouShenImGroup *model.DouShenImGroup, forceColums ...string) (int64, error) { + var ( + affected int64 + err error + ) + if forceColums != nil { + affected, err = Db.Where("id=?", id).Cols(forceColums...).Update(DouShenImGroup) + } else { + affected, err = Db.Where("id=?", id).Update(DouShenImGroup) + } + if err != nil { + return 0, err + } + return affected, nil +} + +// DouShenImGroupGetOneByParams 通过传入的参数查询数据(单条) +func DouShenImGroupGetOneByParams(Db *xorm.Engine, kind int, params map[string]interface{}) (*model.DouShenImGroup, error) { + var m model.DouShenImGroup + var query = fmt.Sprintf("%s =?", params["key"]) + if has, err := Db.Where(query, params["value"]).And("kind = ?", kind).Get(&m); err != nil || has == false { + return nil, logx.Error(err) + } + return &m, nil +} + +func DouShenImGroupGetOneByParamsForOfficial(Db *xorm.Engine, kind int) (*model.DouShenImGroup, error) { + var m model.DouShenImGroup + has, err := Db.Where("kind = ?", kind).Get(&m) + if err != nil { + return nil, logx.Error(err) + } + if has == false { + return nil, nil + } + return &m, nil +} + +func DouShenImGroupGetOneByParamsForFans(Db *xorm.Engine, kind int, uid int64) (*model.DouShenImGroup, error) { + var m model.DouShenImGroup + has, err := Db.Where("kind = ?", kind).And("uid =?", uid).Get(&m) + if err != nil { + return nil, logx.Error(err) + } + if has == false { + return nil, nil + } + return &m, nil +} + +// DouShenImGroupFindByParams 通过传入的参数查询数据(多条) +func DouShenImGroupFindByParams(Db *xorm.Engine, params map[string]interface{}) (*[]model.DouShenImGroup, error) { + var m []model.DouShenImGroup + if params["value"] == nil { + return nil, errors.New("参数有误") + } + if params["key"] == nil { + //查询全部数据 + err := Db.Find(&m) + if err != nil { + return nil, logx.Error(err) + } + return &m, nil + } else { + if reflect.TypeOf(params["value"]).Kind() == reflect.Slice { + //指定In查询 + if err := Db.In(utils.AnyToString(params["key"]), params["value"]).Find(&m); err != nil { + return nil, logx.Warn(err) + } + return &m, nil + } else { + var query = fmt.Sprintf("%s =?", params["key"]) + err := Db.Where(query, params["value"]).Find(&m) + if err != nil { + return nil, logx.Error(err) + } + return &m, nil + } + + } +} diff --git a/app/db/gim/db_user.go b/app/db/gim/db_user.go new file mode 100644 index 0000000..dd0a3a5 --- /dev/null +++ b/app/db/gim/db_user.go @@ -0,0 +1,192 @@ +package db + +import ( + "applet/app/db/gim/model" + "applet/app/utils" + "applet/app/utils/logx" + "errors" + "fmt" + "reflect" + "xorm.io/xorm" +) + +// BatchSelectUsers 批量查询数据 TODO::和下面的方法重复了,建议采用下面的 `UserFindByParams` 方法 +func BatchSelectUsers(Db *xorm.Engine, params map[string]interface{}) (*[]model.User, error) { + var UserData []model.User + if err := Db.In(utils.AnyToString(params["key"]), params["value"]). + Find(&UserData); err != nil { + return nil, logx.Warn(err) + } + return &UserData, nil +} + +// UserInsert 插入单条数据 +func UserInsert(Db *xorm.Engine, User *model.User) (int64, error) { + _, err := Db.InsertOne(User) + if err != nil { + return 0, err + } + return User.Id, nil +} + +// BatchAddUsers 批量新增数据 +func BatchAddUsers(Db *xorm.Engine, UserData []*model.User) (int64, error) { + affected, err := Db.Insert(UserData) + if err != nil { + return 0, err + } + return affected, nil +} + +func GetUserCount(Db *xorm.Engine) int { + var User model.User + session := Db.Where("") + count, err := session.Count(&User) + if err != nil { + return 0 + } + return int(count) +} + +// UserDelete 删除记录 +func UserDelete(Db *xorm.Engine, id interface{}) (int64, error) { + if reflect.TypeOf(id).Kind() == reflect.Slice { + return Db.In("id", id).Delete(model.User{}) + } else { + return Db.Where("id = ?", id).Delete(model.User{}) + } +} + +// UserUpdate 更新记录 +func UserUpdate(Db *xorm.Engine, id interface{}, User *model.User, forceColums ...string) (int64, error) { + var ( + affected int64 + err error + ) + if forceColums != nil { + affected, err = Db.Where("id=?", id).Cols(forceColums...).Update(User) + } else { + affected, err = Db.Where("id=?", id).Update(User) + } + if err != nil { + return 0, err + } + return affected, nil +} + +// UserGetOneByParams 通过传入的参数查询数据(单条) +func UserGetOneByParams(Db *xorm.Engine, masterId string, params map[string]interface{}) (*model.User, error) { + var m model.User + var query = fmt.Sprintf("%s =?", params["key"]) + if has, err := Db.Where(query, params["value"]).And("master_id = ?", masterId).Get(&m); err != nil || has == false { + return nil, logx.Error(err) + } + return &m, nil +} + +// UserFindByParams 通过传入的参数查询数据(多条) +func UserFindByParams(Db *xorm.Engine, params map[string]interface{}) (*[]model.User, error) { + var m []model.User + if params["value"] == nil { + return nil, errors.New("参数有误") + } + if params["key"] == nil { + //查询全部数据 + err := Db.Find(&m) + if err != nil { + return nil, logx.Error(err) + } + return &m, nil + } else { + if reflect.TypeOf(params["value"]).Kind() == reflect.Slice { + //指定In查询 + if err := Db.In(utils.AnyToString(params["key"]), params["value"]).Find(&m); err != nil { + return nil, logx.Warn(err) + } + return &m, nil + } else { + var query = fmt.Sprintf("%s =?", params["key"]) + err := Db.Where(query, params["value"]).Find(&m) + if err != nil { + return nil, logx.Error(err) + } + return &m, nil + } + + } +} + +// UserFindByLevel 查询等级数据(多条) +//func UserFindByLevel(level int) (*[]model.User, error) { +// var m []model.User +// +//} + +// 根据经纬度获取网点 +// lng float64 经度 +// lat float64 维度 +func GetSelectedSiteWithLatLng(engine *xorm.Engine, lng, lat float64, page, pageSize string, scopeOfBranches int) (*[]model.User, error) { + var regions []model.User + where := `sqrt( ( (( %f - longitude)*PI()*12656*cos((( %f +latitude)/2)*PI()/180)/180) * (( %f - longitude)*PI()*12656*cos (((%f+latitude)/2)*PI()/180)/180) ) + ( ((%f-latitude)*PI()*12656/180) * ((%f-latitude)*PI()*12656/180) ) ) < ` + utils.IntToStr(scopeOfBranches) + where = fmt.Sprintf(where, lng, lat, lng, lat, lat, lat) + if page == "" && pageSize == "" { + err := engine.Where(where).Find(®ions) + if err != nil { + return nil, err + } + return ®ions, nil + } + p := utils.StrToInt(page) // 页码 + ps := utils.StrToInt(pageSize) // 每页记录数 + err := engine.Where(where).Limit(ps, (p-1)*ps).Find(®ions) + if err != nil { + return nil, err + } + return ®ions, nil +} + +// 根据经纬度获取最近的网点 +// lng float64 经度 +// lat float64 维度 +func GetSelectedSiteWithLatLngNearClose(engine *xorm.Engine, lng, lat float64, scopeOfBranches int) (*model.User, error) { + var region model.User + where := `sqrt( ( (( %f - longitude)*PI()*12656*cos((( %f +latitude)/2)*PI()/180)/180) * (( %f - longitude)*PI()*12656*cos (((%f+latitude)/2)*PI()/180)/180) ) + ( ((%f-latitude)*PI()*12656/180) * ((%f-latitude)*PI()*12656/180) ) ) < ` + utils.IntToStr(scopeOfBranches) + where = fmt.Sprintf(where, lng, lat, lng, lat, lat, lat) + sel := `regional_agent_region.*, sqrt( ( (( %f - longitude)*PI()*12656*cos((( %f +latitude)/2)*PI()/180)/180) * (( %f - longitude)*PI()*12656*cos (((%f+latitude)/2)*PI()/180)/180) ) + ( ((%f-latitude)*PI()*12656/180) * ((%f-latitude)*PI()*12656/180) ) ) AS km` + sel = fmt.Sprintf(sel, lng, lat, lng, lat, lat, lat) + isHas, err := engine.Select(sel). + Table("regional_agent_region").Where(where).Get(®ion) + if err != nil { + return nil, err + } + if !isHas { + return nil, nil + } + + return ®ion, nil +} + +// 根据总后台的区id获取代理网点 +func GetSiteListWithWebSiteRegionId(session *xorm.Session, websiteRegionId string) (*model.User, error) { + var regionD *model.User + isExist, err := session.Table("regional_agent_region"). + Where("website_region_id = ?", websiteRegionId). + Get(®ionD) + if err != nil { + return nil, err + } + if !isExist { + return nil, nil + } + + var regionSite *model.User + isExist, err = session.Table("regional_agent_region"). + Where("district_id = ?", regionD.Id).Get(®ionSite) + if err != nil { + return nil, err + } + if !isExist { + return regionD, nil + } + return regionSite, nil +} diff --git a/app/db/gim/model/user.go b/app/db/gim/model/user.go new file mode 100644 index 0000000..1e10ac8 --- /dev/null +++ b/app/db/gim/model/user.go @@ -0,0 +1,13 @@ +package model + +type User struct { + Id int64 `json:"id"` + PhoneNumber string `json:"phone_number"` + Nickname string `json:"nickname"` + AvatarUrl string `json:"avatar_url"` + Sex int `json:"sex"` + CreateTime string `json:"create_time"` + UpdateTime string `json:"update_time"` + MasterId int64 `json:"master_id"` + IsAutoAddedFriends int `json:"is_auto_added_friends"` +} diff --git a/app/db/im_db.go b/app/db/im_db.go new file mode 100644 index 0000000..5815d5a --- /dev/null +++ b/app/db/im_db.go @@ -0,0 +1,50 @@ +package db + +import ( + "fmt" + "os" + "time" + + _ "github.com/go-sql-driver/mysql" //必须导入mysql驱动,否则会panic + "xorm.io/xorm" + "xorm.io/xorm/log" + + "applet/app/cfg" +) + +var ImDb *xorm.Engine + +//根据DB配置文件初始化数据库 +func InitImDB(c *cfg.DBCfg) error { + var ( + err error + f *os.File + ) + //创建Orm引擎 + if ImDb, err = xorm.NewEngine("mysql", fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4", c.User, c.Psw, c.Host, c.Name)); err != nil { + return err + } + ImDb.SetConnMaxLifetime(c.MaxLifetime * time.Second) //设置最长连接时间 + ImDb.SetMaxOpenConns(c.MaxOpenConns) //设置最大打开连接数 + ImDb.SetMaxIdleConns(c.MaxIdleConns) //设置连接池的空闲数大小 + if err = ImDb.Ping(); err != nil { //尝试ping数据库 + return err + } + if c.ShowLog { //根据配置文件设置日志 + ImDb.ShowSQL(true) //设置是否打印sql + ImDb.Logger().SetLevel(0) //设置日志等级 + //修改日志文件存放路径文件名是%s.log + path := fmt.Sprintf(c.Path, c.Name) + f, err = os.OpenFile(path, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0777) + if err != nil { + os.RemoveAll(c.Path) + if f, err = os.OpenFile(c.Path, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0777); err != nil { + return err + } + } + logger := log.NewSimpleLogger(f) + logger.ShowSQL(true) + ImDb.SetLogger(logger) + } + return nil +} diff --git a/app/db/model/dou_shen_im_group.go b/app/db/model/dou_shen_im_group.go new file mode 100644 index 0000000..21cd4da --- /dev/null +++ b/app/db/model/dou_shen_im_group.go @@ -0,0 +1,14 @@ +package model + +import "time" + +type DouShenImGroup struct { + Id int `json:"id"` + Kind int `json:"kind"` + Uid int `json:"uid"` + GroupId int `json:"group_id"` + IsFull int `json:"is_full"` + Name string `json:"name" ` + CreateTime time.Time `json:"create_time"` + UpdateTime time.Time `json:"update_time" ` +} diff --git a/app/utils/rpc/rpc_client.go b/app/utils/rpc/rpc_client.go new file mode 100644 index 0000000..4fc392a --- /dev/null +++ b/app/utils/rpc/rpc_client.go @@ -0,0 +1,60 @@ +package utils + +import ( + "applet/pkg/pb" + "context" + "fmt" + "google.golang.org/grpc" + "google.golang.org/grpc/metadata" + "strconv" + "time" +) + +func GetBusinessIntClient(url, port string) pb.BusinessIntClient { + target := fmt.Sprintf("%s:%s", url, port) + conn, err := grpc.Dial(target, grpc.WithInsecure()) + if err != nil { + fmt.Println(err) + return nil + } + return pb.NewBusinessIntClient(conn) +} + +func GetBusinessExtClient(url, port string) pb.BusinessExtClient { + target := fmt.Sprintf("%s:%s", url, port) + conn, err := grpc.Dial(target, grpc.WithInsecure()) + //defer conn.Close() + if err != nil { + fmt.Println(err) + return nil + } + return pb.NewBusinessExtClient(conn) +} + +func GetLogicExtClient(url, port string) pb.LogicExtClient { + target := fmt.Sprintf("%s:%s", url, port) + conn, err := grpc.Dial(target, grpc.WithInsecure()) + if err != nil { + fmt.Println(err) + return nil + } + return pb.NewLogicExtClient(conn) +} + +func GetCtx(token, userId, deviceId, masterId string) context.Context { + if userId == "" { + userId = "1" + } + if deviceId == "" { + deviceId = "1" + } + if token == "" { + token = "0" + } + return metadata.NewOutgoingContext(context.TODO(), metadata.Pairs( + "user_id", userId, + "device_id", deviceId, + "token", token, + "master_id", masterId, + "request_id", strconv.FormatInt(time.Now().UnixNano(), 10))) +} diff --git a/cmd/task/main.go b/cmd/task/main.go index 727009b..8462d34 100644 --- a/cmd/task/main.go +++ b/cmd/task/main.go @@ -30,6 +30,11 @@ func init() { if err := db.InitDataDB(&dataDb); err != nil { panic(err) } + imDb := *cfg.ImDB + imDb.Path = fmt.Sprintf(cfg.ImDB.Path, cfg.ImDB.Name) + if err := db.InitImDB(&imDb); err != nil { + panic(err) + } utils.CurlDebug = true //cfg.InitMemCache() } diff --git a/consume/dou_shen_user_register_for_my_my_fans.go b/consume/dou_shen_user_register_for_my_my_fans.go new file mode 100644 index 0000000..72a0b3f --- /dev/null +++ b/consume/dou_shen_user_register_for_my_my_fans.go @@ -0,0 +1,103 @@ +package consume + +import ( + "applet/app/cfg" + "applet/app/db" + db2 "applet/app/db/gim" + "applet/app/db/model" + utils2 "applet/app/utils" + "applet/app/utils/logx" + utils "applet/app/utils/rpc" + "applet/consume/md" + "applet/pkg/pb" + "code.fnuoos.com/go_rely_warehouse/zyos_go_mq.git/rabbit" + "encoding/json" + "errors" + "fmt" + "github.com/streadway/amqp" + "time" +) + +func DouShenUserRegisterConsumeForMyFans(queue md.MqQueue) { + fmt.Println(">>>>>>>>>>>>>>>>>>>>>>>>") + ch, err := rabbit.Cfg.Pool.GetChannel() + if err != nil { + logx.Error(err) + return + } + defer ch.Release() + + //1、将自己绑定到交换机上 + ch.Bind(queue.Name, queue.ExchangeName, queue.RoutKey) + //2、取出数据进行消费 + ch.Qos(1) + delivery := ch.Consume(queue.Name, false) + + var res amqp.Delivery + var ok bool + for { + res, ok = <-delivery + if ok == true { + fmt.Println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>") + err = handleDouShenUserRegisterConsumeForMyFans(res.Body) + if err != nil { + fmt.Println("!!!!!!!err!!!!!!!", err) + _ = res.Reject(false) + } else { + _ = res.Ack(true) + } + } else { + panic(errors.New("error getting message")) + } + } + fmt.Println("get msg done") +} + +func handleDouShenUserRegisterConsumeForMyFans(msgData []byte) error { + //1、解析mq中queue的数据结构体 + var msg *md.DouShenUserRegisterMessageStructForMyFans + err := json.Unmarshal(msgData, &msg) + if err != nil { + return err + } + //2、查找用户对应im系统中的数据 + gimUser, err := db2.UserGetOneByParams(db.ImDb, msg.MasterId, map[string]interface{}{ + "key": "phone_number", + "value": msg.Phone, + }) + if err != nil { + return err + } + if gimUser == nil { + return errors.New("用户暂未注册im系统") + } + + groupName := "我的直属粉丝【x】群" + //3、创建群 + resp, err := utils.GetLogicExtClient(cfg.ImLogicRpc.URL, cfg.ImLogicRpc.PORT).CreateGroup(utils.GetCtx("", utils2.Int64ToStr(gimUser.Id), "", msg.MasterId), &pb.CreateGroupReq{ + Name: groupName, + AvatarUrl: "", + Introduction: "粉丝群", + Extra: "", + MemberIds: nil, + }) + if err != nil { + return err + } + //插入 dou_shen_im_group 记录 + now := time.Now() + _, err = db.DouShenImGroupInsert(db.Db, &model.DouShenImGroup{ + Kind: 3, + Uid: int(msg.Uid), + GroupId: int(resp.GroupId), + IsFull: 0, + Name: groupName, + CreateTime: now, + UpdateTime: now, + }) + if err != nil { + return err + } + + return nil +} diff --git a/consume/dou_shen_user_register_for_my_my_recommender.go b/consume/dou_shen_user_register_for_my_my_recommender.go new file mode 100644 index 0000000..a02435f --- /dev/null +++ b/consume/dou_shen_user_register_for_my_my_recommender.go @@ -0,0 +1,86 @@ +package consume + +import ( + "applet/app/cfg" + "applet/app/db" + db2 "applet/app/db/gim" + "applet/app/utils/logx" + utils "applet/app/utils/rpc" + "applet/consume/md" + "applet/pkg/pb" + "code.fnuoos.com/go_rely_warehouse/zyos_go_mq.git/rabbit" + "encoding/json" + "errors" + "fmt" + "github.com/streadway/amqp" +) + +func DouShenUserRegisterConsumeForMyRecommender(queue md.MqQueue) { + fmt.Println(">>>>>>>>>>>>>>>>>>>>>>>>") + ch, err := rabbit.Cfg.Pool.GetChannel() + if err != nil { + logx.Error(err) + return + } + defer ch.Release() + //1、将自己绑定到交换机上 + ch.Bind(queue.Name, queue.ExchangeName, queue.RoutKey) + //2、取出数据进行消费 + ch.Qos(1) + delivery := ch.Consume(queue.Name, false) + + var res amqp.Delivery + var ok bool + for { + res, ok = <-delivery + if ok == true { + fmt.Println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>") + err = handleDouShenUserRegisterConsumeForMyRecommender(res.Body) + if err != nil { + fmt.Println("!!!!!!!err!!!!!!!", err) + _ = res.Reject(false) + } else { + _ = res.Ack(true) + } + } else { + panic(errors.New("error getting message")) + } + } + fmt.Println("get msg done") +} + +func handleDouShenUserRegisterConsumeForMyRecommender(msgData []byte) error { + //1、解析mq中queue的数据结构体 + var msg *md.DouShenUserRegisterMessageStructForMyRecommender + err := json.Unmarshal(msgData, &msg) + if err != nil { + return err + } + //2、查找用户对应im系统中的数据 + gimUser, err := db2.UserGetOneByParams(db.ImDb, msg.MasterId, map[string]interface{}{ + "key": "phone_number", + "value": msg.Phone, + }) + if err != nil { + return err + } + if gimUser == nil { + return errors.New("用户暂未注册im系统") + } + + //2、查找是否有群 + fansGroup, err := db.DouShenImGroupGetOneByParamsForFans(db.Db, 3, msg.RecommenderUid) + if err != nil { + return err + } + if fansGroup == nil { + return errors.New("当前推荐人暂未拥有粉丝群,请联系管理员!!!") + } else { + //加入群 + _, err = utils.GetLogicExtClient(cfg.ImLogicRpc.URL, cfg.ImLogicRpc.PORT).AddGroupMembers(utils.GetCtx("", "-1", "", msg.MasterId), &pb.AddGroupMembersReq{ + GroupId: int64(fansGroup.GroupId), + UserIds: []int64{gimUser.Id}, + }) + } + return nil +} diff --git a/consume/dou_shen_user_register_for_official_consume.go b/consume/dou_shen_user_register_for_official_consume.go new file mode 100644 index 0000000..3843cae --- /dev/null +++ b/consume/dou_shen_user_register_for_official_consume.go @@ -0,0 +1,113 @@ +package consume + +import ( + "applet/app/cfg" + "applet/app/db" + db2 "applet/app/db/gim" + "applet/app/db/model" + "applet/app/utils/logx" + utils "applet/app/utils/rpc" + "applet/consume/md" + "applet/pkg/pb" + "code.fnuoos.com/go_rely_warehouse/zyos_go_mq.git/rabbit" + "encoding/json" + "errors" + "fmt" + "github.com/streadway/amqp" + "time" +) + +func DouShenUserRegisterConsumeForOfficial(queue md.MqQueue) { + fmt.Println(">>>>>>>>>>>>>>>>>>>>>>>>") + ch, err := rabbit.Cfg.Pool.GetChannel() + if err != nil { + logx.Error(err) + return + } + defer ch.Release() + //1、将自己绑定到交换机上 + ch.Bind(queue.Name, queue.ExchangeName, queue.RoutKey) + //2、取出数据进行消费 + ch.Qos(1) + delivery := ch.Consume(queue.Name, false) + + var res amqp.Delivery + var ok bool + for { + res, ok = <-delivery + if ok == true { + fmt.Println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>") + err = handleDouShenUserRegisterConsumeForOfficial(res.Body) + if err != nil { + fmt.Println("!!!!!!!err!!!!!!!", err) + _ = res.Reject(false) + } else { + _ = res.Ack(true) + } + } else { + panic(errors.New("error getting message")) + } + } + fmt.Println("get msg done") +} + +func handleDouShenUserRegisterConsumeForOfficial(msgData []byte) error { + //1、解析mq中queue的数据结构体 + var msg *md.DouShenUserRegisterMessageStructForOfficial + err := json.Unmarshal(msgData, &msg) + if err != nil { + return err + } + //2、查找用户对应im系统中的数据 + gimUser, err := db2.UserGetOneByParams(db.ImDb, msg.MasterId, map[string]interface{}{ + "key": "phone_number", + "value": msg.Phone, + }) + if err != nil { + return err + } + if gimUser == nil { + return errors.New("用户暂未注册im系统") + } + + //2、查找是否有群 + officialGroup, err := db.DouShenImGroupGetOneByParamsForOfficial(db.Db, 1) + if err != nil { + return err + } + if officialGroup == nil { + groupName := "官方[1]群" + //3、创建群 + resp, err := utils.GetLogicExtClient(cfg.ImLogicRpc.URL, cfg.ImLogicRpc.PORT).CreateGroup(utils.GetCtx("", "13231", "74802", msg.MasterId), &pb.CreateGroupReq{ + Name: groupName, + AvatarUrl: "", + Introduction: "官方群", + Extra: "", + MemberIds: []int64{gimUser.Id}, + }) + if err != nil { + return err + } + //插入 dou_shen_im_group 记录 + now := time.Now() + _, err = db.DouShenImGroupInsert(db.Db, &model.DouShenImGroup{ + Kind: 1, + Uid: 21, + GroupId: int(resp.GroupId), + IsFull: 0, + Name: groupName, + CreateTime: now, + UpdateTime: now, + }) + if err != nil { + return err + } + } else { + //加入群 + _, err = utils.GetLogicExtClient(cfg.ImLogicRpc.URL, cfg.ImLogicRpc.PORT).AddGroupMembers(utils.GetCtx("", "-1", "74802", msg.MasterId), &pb.AddGroupMembersReq{ + GroupId: int64(officialGroup.GroupId), + UserIds: []int64{gimUser.Id}, + }) + } + return nil +} diff --git a/consume/dou_shen_user_register_for_operation_center.go b/consume/dou_shen_user_register_for_operation_center.go new file mode 100644 index 0000000..aeb9d68 --- /dev/null +++ b/consume/dou_shen_user_register_for_operation_center.go @@ -0,0 +1,86 @@ +package consume + +import ( + "applet/app/cfg" + "applet/app/db" + db2 "applet/app/db/gim" + "applet/app/utils/logx" + utils "applet/app/utils/rpc" + "applet/consume/md" + "applet/pkg/pb" + "code.fnuoos.com/go_rely_warehouse/zyos_go_mq.git/rabbit" + "encoding/json" + "errors" + "fmt" + "github.com/streadway/amqp" +) + +func DouShenUserRegisterConsumeForOperationCenter(queue md.MqQueue) { + fmt.Println(">>>>>>>>>>>>>>>>>>>>>>>>") + ch, err := rabbit.Cfg.Pool.GetChannel() + if err != nil { + logx.Error(err) + return + } + defer ch.Release() + //1、将自己绑定到交换机上 + ch.Bind(queue.Name, queue.ExchangeName, queue.RoutKey) + //2、取出数据进行消费 + ch.Qos(1) + delivery := ch.Consume(queue.Name, false) + + var res amqp.Delivery + var ok bool + for { + res, ok = <-delivery + if ok == true { + fmt.Println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>") + err = handleDouShenUserRegisterConsumeForOperationCenter(res.Body) + if err != nil { + fmt.Println("!!!!!!!err!!!!!!!", err) + _ = res.Reject(false) + } else { + _ = res.Ack(true) + } + } else { + panic(errors.New("error getting message")) + } + } + fmt.Println("get msg done") +} + +func handleDouShenUserRegisterConsumeForOperationCenter(msgData []byte) error { + //1、解析mq中queue的数据结构体 + var msg *md.DouShenUserRegisterMessageStructForOperationCenter + err := json.Unmarshal(msgData, &msg) + if err != nil { + return err + } + //2、查找用户对应im系统中的数据 + gimUser, err := db2.UserGetOneByParams(db.ImDb, msg.MasterId, map[string]interface{}{ + "key": "phone_number", + "value": msg.Phone, + }) + if err != nil { + return err + } + if gimUser == nil { + return errors.New("用户暂未注册im系统") + } + + //2、查找是否有群 + OperationGroup, err := db.DouShenImGroupGetOneByParamsForFans(db.Db, 2, msg.OperationCenterUid) + if err != nil { + return err + } + if OperationGroup == nil { + return errors.New("当前城市合伙人暂未拥有运营中心群,请联系管理员!!!") + } else { + //加入群 + _, err = utils.GetLogicExtClient(cfg.ImLogicRpc.URL, cfg.ImLogicRpc.PORT).AddGroupMembers(utils.GetCtx("", "-1", "", msg.MasterId), &pb.AddGroupMembersReq{ + GroupId: int64(OperationGroup.GroupId), + UserIds: []int64{gimUser.Id}, + }) + } + return nil +} diff --git a/consume/init.go b/consume/init.go index d626063..2bf8230 100644 --- a/consume/init.go +++ b/consume/init.go @@ -20,6 +20,10 @@ func initConsumes() { jobs[consumeMd.CanalOrderConsumeFunName] = CanalOrderConsume jobs[consumeMd.CanalGuideOrderConsumeFunName] = CanalGuideOrderConsume jobs[consumeMd.ZhiOsUserVisitIpAddressConsumeFunName] = ZhiOsUserVisitIpAddressConsume + jobs[consumeMd.DouShenUserRegisterConsumeForOfficialFunName] = DouShenUserRegisterConsumeForOfficial + jobs[consumeMd.DouShenUserRegisterConsumeForOperationCenterFunName] = DouShenUserRegisterConsumeForOperationCenter + jobs[consumeMd.DouShenUserRegisterConsumeForMyRecommenderFunName] = DouShenUserRegisterConsumeForMyRecommender + jobs[consumeMd.DouShenUserRegisterConsumeForMyFansFunName] = DouShenUserRegisterConsumeForMyFans jobs[consumeMd.ZhiosFastReturnOrderPayFunName] = ZhiosFastReturnOrderPay jobs[consumeMd.ZhiosFastReturnOrderSuccessFunName] = ZhiosFastReturnOrderSuccess jobs[consumeMd.ZhiosFastReturnOrderRefundFunName] = ZhiosFastReturnOrderRefund diff --git a/consume/md/consume_key.go b/consume/md/consume_key.go index 3721b09..0c6343e 100644 --- a/consume/md/consume_key.go +++ b/consume/md/consume_key.go @@ -65,13 +65,53 @@ var RabbitMqQueueKeyList = []*MqQueue{ BindKey: "", ConsumeFunName: "ZhiosFastReturnOrderRefund", }, + { + ExchangeName: "zhios.doushen.user.register.exchange", + Name: "zhios_doushen_user_register_official", + Type: DirectQueueType, + IsPersistent: false, + RoutKey: "official", + BindKey: "official", + ConsumeFunName: "DouShenUserRegisterConsumeForOfficial", + }, + { + ExchangeName: "zhios.doushen.user.register.exchange", + Name: "zhios_doushen_user_register_operation_center", + Type: DirectQueueType, + IsPersistent: false, + RoutKey: "official", + BindKey: "official", + ConsumeFunName: "DouShenUserRegisterConsumeForOfficial", + }, + { + ExchangeName: "zhios.doushen.user.register.exchange", + Name: "zhios_doushen_user_register_official", + Type: DirectQueueType, + IsPersistent: false, + RoutKey: "official", + BindKey: "official", + ConsumeFunName: "DouShenUserRegisterConsumeForOfficial", + }, + { + ExchangeName: "zhios.doushen.user.register.exchange", + Name: "zhios_doushen_user_register_official", + Type: DirectQueueType, + IsPersistent: false, + RoutKey: "official", + BindKey: "official", + ConsumeFunName: "DouShenUserRegisterConsumeForOfficial", + }, } const ( - CanalOrderConsumeFunName = "CanalOrderConsume" - CanalGuideOrderConsumeFunName = "CanalGuideOrderConsume" - ZhiOsUserVisitIpAddressConsumeFunName = "ZhiOsUserVisitIpAddressConsume" - ZhiosFastReturnOrderPayFunName = "ZhiosFastReturnOrderPay" - ZhiosFastReturnOrderSuccessFunName = "ZhiosFastReturnOrderSuccess" - ZhiosFastReturnOrderRefundFunName = "ZhiosFastReturnOrderRefund" + CanalOrderConsumeFunName = "CanalOrderConsume" + CanalGuideOrderConsumeFunName = "CanalGuideOrderConsume" + ZhiOsUserVisitIpAddressConsumeFunName = "ZhiOsUserVisitIpAddressConsume" + DouShenUserRegisterConsumeForOfficialFunName = "DouShenUserRegisterConsumeForOfficial" + DouShenUserRegisterConsumeForOperationCenterFunName = "DouShenUserRegisterConsumeForOperationCenter" + DouShenUserRegisterConsumeForMyRecommenderFunName = "DouShenUserRegisterConsumeForMyRecommender" + DouShenUserRegisterConsumeForMyFansFunName = "DouShenUserRegisterConsumeForMyFans" + ZhiosFastReturnOrderPayFunName = "ZhiosFastReturnOrderPay" + ZhiosFastReturnOrderSuccessFunName = "ZhiosFastReturnOrderSuccess" + ZhiosFastReturnOrderRefundFunName = "ZhiosFastReturnOrderRefund" ) diff --git a/consume/md/md_doushen.go b/consume/md/md_doushen.go new file mode 100644 index 0000000..32678be --- /dev/null +++ b/consume/md/md_doushen.go @@ -0,0 +1,24 @@ +package md + +type DouShenUserRegisterMessageStructForOfficial struct { + MasterId string `json:"master_id"` + Phone int64 `json:"phone"` + Uid int64 `json:"uid"` +} +type DouShenUserRegisterMessageStructForMyFans struct { + MasterId string `json:"master_id"` + Phone int64 `json:"phone"` + Uid int64 `json:"uid"` +} +type DouShenUserRegisterMessageStructForMyRecommender struct { + MasterId string `json:"master_id"` + Phone int64 `json:"phone"` + Uid int64 `json:"uid"` + RecommenderUid int64 `json:"recommender_uid"` +} +type DouShenUserRegisterMessageStructForOperationCenter struct { + MasterId string `json:"master_id"` + Phone int64 `json:"phone"` + Uid int64 `json:"uid"` + OperationCenterUid int64 `json:"operation_center_uid"` +} diff --git a/go.mod b/go.mod index 0c36d7c..8e222a4 100644 --- a/go.mod +++ b/go.mod @@ -30,6 +30,8 @@ require ( github.com/syyongx/php2go v0.9.7 github.com/tidwall/gjson v1.7.4 go.uber.org/zap v1.16.0 + google.golang.org/grpc v1.32.0 + google.golang.org/protobuf v1.28.0 gopkg.in/natefinch/lumberjack.v2 v2.0.0 gopkg.in/yaml.v2 v2.4.0 xorm.io/xorm v1.3.0 @@ -45,6 +47,7 @@ require ( github.com/go-openapi/spec v0.20.3 // indirect github.com/go-openapi/swag v0.19.15 // indirect github.com/goccy/go-json v0.9.7 // indirect + github.com/golang/protobuf v1.5.0 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/gorilla/context v1.1.1 // indirect github.com/gorilla/securecookie v1.1.1 // indirect @@ -75,7 +78,7 @@ require ( golang.org/x/text v0.3.7 // indirect golang.org/x/tools v0.1.0 // indirect golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect - google.golang.org/protobuf v1.28.0 // indirect + google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 // indirect honnef.co/go/tools v0.0.1-2020.1.4 // indirect xorm.io/builder v0.3.10 // indirect ) diff --git a/main.go b/main.go index 721f30f..08535b1 100644 --- a/main.go +++ b/main.go @@ -26,6 +26,9 @@ func init() { if err := db.InitDataDB(cfg.DataDB); err != nil { //数据大屏本身库初始化 panic(err) } + if err := db.InitImDB(cfg.ImDB); err != nil { //im本身库初始化 + panic(err) + } channel := make(chan int, 0) //开辟管道,缓冲为 go db.InitDBs(channel) <-channel diff --git a/pkg/pb/im.business.ext.pb.go b/pkg/pb/im.business.ext.pb.go new file mode 100644 index 0000000..5877ec5 --- /dev/null +++ b/pkg/pb/im.business.ext.pb.go @@ -0,0 +1,1607 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.20.0--rc1 +// source: im.business.ext.proto + +package pb + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + 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 IsFriendsReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserPhone string `protobuf:"bytes,1,opt,name=user_phone,json=userPhone,proto3" json:"user_phone,omitempty"` + FriendPhone string `protobuf:"bytes,2,opt,name=friend_phone,json=friendPhone,proto3" json:"friend_phone,omitempty"` +} + +func (x *IsFriendsReq) Reset() { + *x = IsFriendsReq{} + if protoimpl.UnsafeEnabled { + mi := &file_business_ext_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IsFriendsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IsFriendsReq) ProtoMessage() {} + +func (x *IsFriendsReq) ProtoReflect() protoreflect.Message { + mi := &file_business_ext_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 IsFriendsReq.ProtoReflect.Descriptor instead. +func (*IsFriendsReq) Descriptor() ([]byte, []int) { + return file_business_ext_proto_rawDescGZIP(), []int{0} +} + +func (x *IsFriendsReq) GetUserPhone() string { + if x != nil { + return x.UserPhone + } + return "" +} + +func (x *IsFriendsReq) GetFriendPhone() string { + if x != nil { + return x.FriendPhone + } + return "" +} + +type IsFriendsResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsFriend int64 `protobuf:"varint,1,opt,name=is_friend,json=isFriend,proto3" json:"is_friend,omitempty"` + User *User `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"` // 用户信息 +} + +func (x *IsFriendsResp) Reset() { + *x = IsFriendsResp{} + if protoimpl.UnsafeEnabled { + mi := &file_business_ext_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IsFriendsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IsFriendsResp) ProtoMessage() {} + +func (x *IsFriendsResp) ProtoReflect() protoreflect.Message { + mi := &file_business_ext_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 IsFriendsResp.ProtoReflect.Descriptor instead. +func (*IsFriendsResp) Descriptor() ([]byte, []int) { + return file_business_ext_proto_rawDescGZIP(), []int{1} +} + +func (x *IsFriendsResp) GetIsFriend() int64 { + if x != nil { + return x.IsFriend + } + return 0 +} + +func (x *IsFriendsResp) GetUser() *User { + if x != nil { + return x.User + } + return nil +} + +type Emoticon struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // 名称 + ImgUrl string `protobuf:"bytes,2,opt,name=img_url,json=imgUrl,proto3" json:"img_url,omitempty"` // 图片地址 + Memo string `protobuf:"bytes,3,opt,name=memo,proto3" json:"memo,omitempty"` // 备注 + Sort int32 `protobuf:"varint,4,opt,name=sort,proto3" json:"sort,omitempty"` // 排序 +} + +func (x *Emoticon) Reset() { + *x = Emoticon{} + if protoimpl.UnsafeEnabled { + mi := &file_business_ext_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Emoticon) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Emoticon) ProtoMessage() {} + +func (x *Emoticon) ProtoReflect() protoreflect.Message { + mi := &file_business_ext_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 Emoticon.ProtoReflect.Descriptor instead. +func (*Emoticon) Descriptor() ([]byte, []int) { + return file_business_ext_proto_rawDescGZIP(), []int{2} +} + +func (x *Emoticon) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Emoticon) GetImgUrl() string { + if x != nil { + return x.ImgUrl + } + return "" +} + +func (x *Emoticon) GetMemo() string { + if x != nil { + return x.Memo + } + return "" +} + +func (x *Emoticon) GetSort() int32 { + if x != nil { + return x.Sort + } + return 0 +} + +type EmoticonListResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Emoticons []*Emoticon `protobuf:"bytes,1,rep,name=emoticons,proto3" json:"emoticons,omitempty"` +} + +func (x *EmoticonListResp) Reset() { + *x = EmoticonListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_business_ext_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EmoticonListResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EmoticonListResp) ProtoMessage() {} + +func (x *EmoticonListResp) ProtoReflect() protoreflect.Message { + mi := &file_business_ext_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 EmoticonListResp.ProtoReflect.Descriptor instead. +func (*EmoticonListResp) Descriptor() ([]byte, []int) { + return file_business_ext_proto_rawDescGZIP(), []int{3} +} + +func (x *EmoticonListResp) GetEmoticons() []*Emoticon { + if x != nil { + return x.Emoticons + } + return nil +} + +type SignInReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PhoneNumber string `protobuf:"bytes,1,opt,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"` // 手机号 + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` // 验证码 + DeviceId int64 `protobuf:"varint,3,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"` // 设备id + MasterId int64 `protobuf:"varint,4,opt,name=master_id,json=masterId,proto3" json:"master_id,omitempty"` // 站长id + PushAlia string `protobuf:"bytes,5,opt,name=push_alia,json=pushAlia,proto3" json:"push_alia,omitempty"` // 极光推送-别名 +} + +func (x *SignInReq) Reset() { + *x = SignInReq{} + if protoimpl.UnsafeEnabled { + mi := &file_business_ext_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignInReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignInReq) ProtoMessage() {} + +func (x *SignInReq) ProtoReflect() protoreflect.Message { + mi := &file_business_ext_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 SignInReq.ProtoReflect.Descriptor instead. +func (*SignInReq) Descriptor() ([]byte, []int) { + return file_business_ext_proto_rawDescGZIP(), []int{4} +} + +func (x *SignInReq) GetPhoneNumber() string { + if x != nil { + return x.PhoneNumber + } + return "" +} + +func (x *SignInReq) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *SignInReq) GetDeviceId() int64 { + if x != nil { + return x.DeviceId + } + return 0 +} + +func (x *SignInReq) GetMasterId() int64 { + if x != nil { + return x.MasterId + } + return 0 +} + +func (x *SignInReq) GetPushAlia() string { + if x != nil { + return x.PushAlia + } + return "" +} + +type SignInResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsNew bool `protobuf:"varint,1,opt,name=is_new,json=isNew,proto3" json:"is_new,omitempty"` // 是否是新用户 + UserId int64 `protobuf:"varint,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` // 用户id + Token string `protobuf:"bytes,3,opt,name=token,proto3" json:"token,omitempty"` // token + MasterId int64 `protobuf:"varint,4,opt,name=master_id,json=masterId,proto3" json:"master_id,omitempty"` // 站长id +} + +func (x *SignInResp) Reset() { + *x = SignInResp{} + if protoimpl.UnsafeEnabled { + mi := &file_business_ext_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignInResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignInResp) ProtoMessage() {} + +func (x *SignInResp) ProtoReflect() protoreflect.Message { + mi := &file_business_ext_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 SignInResp.ProtoReflect.Descriptor instead. +func (*SignInResp) Descriptor() ([]byte, []int) { + return file_business_ext_proto_rawDescGZIP(), []int{5} +} + +func (x *SignInResp) GetIsNew() bool { + if x != nil { + return x.IsNew + } + return false +} + +func (x *SignInResp) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *SignInResp) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +func (x *SignInResp) GetMasterId() int64 { + if x != nil { + return x.MasterId + } + return 0 +} + +type CloudUploadFileReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Dir string `protobuf:"bytes,1,opt,name=dir,proto3" json:"dir,omitempty"` // 目录名 + FileName string `protobuf:"bytes,2,opt,name=file_name,json=fileName,proto3" json:"file_name,omitempty"` // 上传原文件名称 + FileSize string `protobuf:"bytes,3,opt,name=file_size,json=fileSize,proto3" json:"file_size,omitempty"` // 文件大小 +} + +func (x *CloudUploadFileReq) Reset() { + *x = CloudUploadFileReq{} + if protoimpl.UnsafeEnabled { + mi := &file_business_ext_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CloudUploadFileReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CloudUploadFileReq) ProtoMessage() {} + +func (x *CloudUploadFileReq) ProtoReflect() protoreflect.Message { + mi := &file_business_ext_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 CloudUploadFileReq.ProtoReflect.Descriptor instead. +func (*CloudUploadFileReq) Descriptor() ([]byte, []int) { + return file_business_ext_proto_rawDescGZIP(), []int{6} +} + +func (x *CloudUploadFileReq) GetDir() string { + if x != nil { + return x.Dir + } + return "" +} + +func (x *CloudUploadFileReq) GetFileName() string { + if x != nil { + return x.FileName + } + return "" +} + +func (x *CloudUploadFileReq) GetFileSize() string { + if x != nil { + return x.FileSize + } + return "" +} + +type CloudUploadFileResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Method string `protobuf:"bytes,1,opt,name=method,proto3" json:"method,omitempty"` // 请求方式 + Host string `protobuf:"bytes,2,opt,name=host,proto3" json:"host,omitempty"` // 域名 + Key string `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"` // key + Token string `protobuf:"bytes,4,opt,name=token,proto3" json:"token,omitempty"` // token +} + +func (x *CloudUploadFileResp) Reset() { + *x = CloudUploadFileResp{} + if protoimpl.UnsafeEnabled { + mi := &file_business_ext_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CloudUploadFileResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CloudUploadFileResp) ProtoMessage() {} + +func (x *CloudUploadFileResp) ProtoReflect() protoreflect.Message { + mi := &file_business_ext_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 CloudUploadFileResp.ProtoReflect.Descriptor instead. +func (*CloudUploadFileResp) Descriptor() ([]byte, []int) { + return file_business_ext_proto_rawDescGZIP(), []int{7} +} + +func (x *CloudUploadFileResp) GetMethod() string { + if x != nil { + return x.Method + } + return "" +} + +func (x *CloudUploadFileResp) GetHost() string { + if x != nil { + return x.Host + } + return "" +} + +func (x *CloudUploadFileResp) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *CloudUploadFileResp) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +type User struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int64 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` // 用户id + Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"` // 昵称 + Sex int32 `protobuf:"varint,3,opt,name=sex,proto3" json:"sex,omitempty"` // 性别 + AvatarUrl string `protobuf:"bytes,4,opt,name=avatar_url,json=avatarUrl,proto3" json:"avatar_url,omitempty"` // 头像地址 + Extra string `protobuf:"bytes,5,opt,name=extra,proto3" json:"extra,omitempty"` // 附加字段 + CreateTime int64 `protobuf:"varint,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` // 创建时间 + UpdateTime int64 `protobuf:"varint,7,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` // 更新时间 + MasterId int64 `protobuf:"varint,8,opt,name=master_id,json=masterId,proto3" json:"master_id,omitempty"` // 站长id + IsAutoAddedFriends int64 `protobuf:"varint,9,opt,name=is_auto_added_friends,json=isAutoAddedFriends,proto3" json:"is_auto_added_friends,omitempty"` // 是否自动被添加好友 +} + +func (x *User) Reset() { + *x = User{} + if protoimpl.UnsafeEnabled { + mi := &file_business_ext_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *User) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*User) ProtoMessage() {} + +func (x *User) ProtoReflect() protoreflect.Message { + mi := &file_business_ext_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 User.ProtoReflect.Descriptor instead. +func (*User) Descriptor() ([]byte, []int) { + return file_business_ext_proto_rawDescGZIP(), []int{8} +} + +func (x *User) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *User) GetNickname() string { + if x != nil { + return x.Nickname + } + return "" +} + +func (x *User) GetSex() int32 { + if x != nil { + return x.Sex + } + return 0 +} + +func (x *User) GetAvatarUrl() string { + if x != nil { + return x.AvatarUrl + } + return "" +} + +func (x *User) GetExtra() string { + if x != nil { + return x.Extra + } + return "" +} + +func (x *User) GetCreateTime() int64 { + if x != nil { + return x.CreateTime + } + return 0 +} + +func (x *User) GetUpdateTime() int64 { + if x != nil { + return x.UpdateTime + } + return 0 +} + +func (x *User) GetMasterId() int64 { + if x != nil { + return x.MasterId + } + return 0 +} + +func (x *User) GetIsAutoAddedFriends() int64 { + if x != nil { + return x.IsAutoAddedFriends + } + return 0 +} + +type GetUserReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int64 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` // 用户id + Phone string `protobuf:"bytes,2,opt,name=phone,proto3" json:"phone,omitempty"` // 用户手机号 +} + +func (x *GetUserReq) Reset() { + *x = GetUserReq{} + if protoimpl.UnsafeEnabled { + mi := &file_business_ext_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserReq) ProtoMessage() {} + +func (x *GetUserReq) ProtoReflect() protoreflect.Message { + mi := &file_business_ext_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 GetUserReq.ProtoReflect.Descriptor instead. +func (*GetUserReq) Descriptor() ([]byte, []int) { + return file_business_ext_proto_rawDescGZIP(), []int{9} +} + +func (x *GetUserReq) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *GetUserReq) GetPhone() string { + if x != nil { + return x.Phone + } + return "" +} + +type GetUserResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + User *User `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` // 用户信息 +} + +func (x *GetUserResp) Reset() { + *x = GetUserResp{} + if protoimpl.UnsafeEnabled { + mi := &file_business_ext_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserResp) ProtoMessage() {} + +func (x *GetUserResp) ProtoReflect() protoreflect.Message { + mi := &file_business_ext_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 GetUserResp.ProtoReflect.Descriptor instead. +func (*GetUserResp) Descriptor() ([]byte, []int) { + return file_business_ext_proto_rawDescGZIP(), []int{10} +} + +func (x *GetUserResp) GetUser() *User { + if x != nil { + return x.User + } + return nil +} + +type UpdateUserReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Nickname string `protobuf:"bytes,1,opt,name=nickname,proto3" json:"nickname,omitempty"` // 昵称 + Sex int32 `protobuf:"varint,2,opt,name=sex,proto3" json:"sex,omitempty"` // 性别 + AvatarUrl string `protobuf:"bytes,3,opt,name=avatar_url,json=avatarUrl,proto3" json:"avatar_url,omitempty"` // 头像地址 + Extra string `protobuf:"bytes,4,opt,name=extra,proto3" json:"extra,omitempty"` // 附加字段 +} + +func (x *UpdateUserReq) Reset() { + *x = UpdateUserReq{} + if protoimpl.UnsafeEnabled { + mi := &file_business_ext_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateUserReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateUserReq) ProtoMessage() {} + +func (x *UpdateUserReq) ProtoReflect() protoreflect.Message { + mi := &file_business_ext_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 UpdateUserReq.ProtoReflect.Descriptor instead. +func (*UpdateUserReq) Descriptor() ([]byte, []int) { + return file_business_ext_proto_rawDescGZIP(), []int{11} +} + +func (x *UpdateUserReq) GetNickname() string { + if x != nil { + return x.Nickname + } + return "" +} + +func (x *UpdateUserReq) GetSex() int32 { + if x != nil { + return x.Sex + } + return 0 +} + +func (x *UpdateUserReq) GetAvatarUrl() string { + if x != nil { + return x.AvatarUrl + } + return "" +} + +func (x *UpdateUserReq) GetExtra() string { + if x != nil { + return x.Extra + } + return "" +} + +type SearchUserReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + MasterId int64 `protobuf:"varint,2,opt,name=master_id,json=masterId,proto3" json:"master_id,omitempty"` +} + +func (x *SearchUserReq) Reset() { + *x = SearchUserReq{} + if protoimpl.UnsafeEnabled { + mi := &file_business_ext_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchUserReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchUserReq) ProtoMessage() {} + +func (x *SearchUserReq) ProtoReflect() protoreflect.Message { + mi := &file_business_ext_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 SearchUserReq.ProtoReflect.Descriptor instead. +func (*SearchUserReq) Descriptor() ([]byte, []int) { + return file_business_ext_proto_rawDescGZIP(), []int{12} +} + +func (x *SearchUserReq) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *SearchUserReq) GetMasterId() int64 { + if x != nil { + return x.MasterId + } + return 0 +} + +type SearchUserResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Users []*User `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"` +} + +func (x *SearchUserResp) Reset() { + *x = SearchUserResp{} + if protoimpl.UnsafeEnabled { + mi := &file_business_ext_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchUserResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchUserResp) ProtoMessage() {} + +func (x *SearchUserResp) ProtoReflect() protoreflect.Message { + mi := &file_business_ext_proto_msgTypes[13] + 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 SearchUserResp.ProtoReflect.Descriptor instead. +func (*SearchUserResp) Descriptor() ([]byte, []int) { + return file_business_ext_proto_rawDescGZIP(), []int{13} +} + +func (x *SearchUserResp) GetUsers() []*User { + if x != nil { + return x.Users + } + return nil +} + +var File_business_ext_proto protoreflect.FileDescriptor + +var file_business_ext_proto_rawDesc = []byte{ + 0x0a, 0x12, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x50, 0x0a, 0x0c, 0x49, 0x73, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x22, 0x4a, 0x0a, 0x0d, + 0x49, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, + 0x09, 0x69, 0x73, 0x5f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x08, 0x69, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x04, 0x75, 0x73, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x5f, 0x0a, 0x08, 0x45, 0x6d, 0x6f, 0x74, + 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x6d, 0x67, 0x5f, + 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x6d, 0x67, 0x55, 0x72, + 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x22, 0x3e, 0x0a, 0x10, 0x45, 0x6d, 0x6f, + 0x74, 0x69, 0x63, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, + 0x09, 0x65, 0x6d, 0x6f, 0x74, 0x69, 0x63, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x6f, 0x74, 0x69, 0x63, 0x6f, 0x6e, 0x52, 0x09, + 0x65, 0x6d, 0x6f, 0x74, 0x69, 0x63, 0x6f, 0x6e, 0x73, 0x22, 0x99, 0x01, 0x0a, 0x09, 0x53, 0x69, + 0x67, 0x6e, 0x49, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x68, 0x6f, 0x6e, 0x65, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, + 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1b, + 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, + 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, + 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x75, 0x73, 0x68, + 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x75, 0x73, + 0x68, 0x41, 0x6c, 0x69, 0x61, 0x22, 0x6f, 0x0a, 0x0a, 0x53, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x73, 0x5f, 0x6e, 0x65, 0x77, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x4e, 0x65, 0x77, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x73, + 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x61, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x60, 0x0a, 0x12, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x55, + 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, + 0x64, 0x69, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x69, 0x72, 0x12, 0x1b, + 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, + 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x69, 0x0a, 0x13, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x22, 0x94, 0x02, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x73, 0x65, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x75, 0x72, + 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, + 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 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, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, + 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, + 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x15, 0x69, 0x73, 0x5f, 0x61, 0x75, + 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x69, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x41, 0x64, + 0x64, 0x65, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x22, 0x3b, 0x0a, 0x0a, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x22, 0x2b, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, + 0x75, 0x73, 0x65, 0x72, 0x22, 0x72, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x73, 0x65, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x75, 0x72, + 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, + 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x22, 0x3e, 0x0a, 0x0d, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x6d, + 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, + 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x30, 0x0a, 0x0e, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x05, 0x75, 0x73, + 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x32, 0xea, 0x02, 0x0a, 0x0b, 0x42, + 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x45, 0x78, 0x74, 0x12, 0x27, 0x0a, 0x06, 0x53, 0x69, + 0x67, 0x6e, 0x49, 0x6e, 0x12, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x49, 0x6e, + 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, + 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x0f, + 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x2a, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x11, 0x2e, + 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x1a, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x33, 0x0a, 0x0a, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x12, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x70, + 0x62, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x42, 0x0a, 0x0f, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, + 0x69, 0x6c, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x55, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x70, 0x62, + 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x2f, 0x0a, 0x0c, 0x45, 0x6d, 0x6f, 0x74, 0x69, 0x63, 0x6f, 0x6e, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, + 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x6f, 0x74, 0x69, 0x63, 0x6f, 0x6e, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x09, 0x49, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x73, 0x12, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x49, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x73, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x49, 0x73, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, 0x0b, 0x67, 0x69, 0x6d, 0x2f, 0x70, + 0x6b, 0x67, 0x2f, 0x70, 0x62, 0x2f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_business_ext_proto_rawDescOnce sync.Once + file_business_ext_proto_rawDescData = file_business_ext_proto_rawDesc +) + +func file_business_ext_proto_rawDescGZIP() []byte { + file_business_ext_proto_rawDescOnce.Do(func() { + file_business_ext_proto_rawDescData = protoimpl.X.CompressGZIP(file_business_ext_proto_rawDescData) + }) + return file_business_ext_proto_rawDescData +} + +var file_business_ext_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_business_ext_proto_goTypes = []interface{}{ + (*IsFriendsReq)(nil), // 0: pb.IsFriendsReq + (*IsFriendsResp)(nil), // 1: pb.IsFriendsResp + (*Emoticon)(nil), // 2: pb.Emoticon + (*EmoticonListResp)(nil), // 3: pb.EmoticonListResp + (*SignInReq)(nil), // 4: pb.SignInReq + (*SignInResp)(nil), // 5: pb.SignInResp + (*CloudUploadFileReq)(nil), // 6: pb.CloudUploadFileReq + (*CloudUploadFileResp)(nil), // 7: pb.CloudUploadFileResp + (*User)(nil), // 8: pb.User + (*GetUserReq)(nil), // 9: pb.GetUserReq + (*GetUserResp)(nil), // 10: pb.GetUserResp + (*UpdateUserReq)(nil), // 11: pb.UpdateUserReq + (*SearchUserReq)(nil), // 12: pb.SearchUserReq + (*SearchUserResp)(nil), // 13: pb.SearchUserResp + (*Empty)(nil), // 14: pb.Empty +} +var file_business_ext_proto_depIdxs = []int32{ + 8, // 0: pb.IsFriendsResp.user:type_name -> pb.User + 2, // 1: pb.EmoticonListResp.emoticons:type_name -> pb.Emoticon + 8, // 2: pb.GetUserResp.user:type_name -> pb.User + 8, // 3: pb.SearchUserResp.users:type_name -> pb.User + 4, // 4: pb.BusinessExt.SignIn:input_type -> pb.SignInReq + 9, // 5: pb.BusinessExt.GetUser:input_type -> pb.GetUserReq + 11, // 6: pb.BusinessExt.UpdateUser:input_type -> pb.UpdateUserReq + 12, // 7: pb.BusinessExt.SearchUser:input_type -> pb.SearchUserReq + 6, // 8: pb.BusinessExt.CloudUploadFile:input_type -> pb.CloudUploadFileReq + 14, // 9: pb.BusinessExt.EmoticonList:input_type -> pb.Empty + 0, // 10: pb.BusinessExt.IsFriends:input_type -> pb.IsFriendsReq + 5, // 11: pb.BusinessExt.SignIn:output_type -> pb.SignInResp + 10, // 12: pb.BusinessExt.GetUser:output_type -> pb.GetUserResp + 14, // 13: pb.BusinessExt.UpdateUser:output_type -> pb.Empty + 13, // 14: pb.BusinessExt.SearchUser:output_type -> pb.SearchUserResp + 7, // 15: pb.BusinessExt.CloudUploadFile:output_type -> pb.CloudUploadFileResp + 3, // 16: pb.BusinessExt.EmoticonList:output_type -> pb.EmoticonListResp + 1, // 17: pb.BusinessExt.IsFriends:output_type -> pb.IsFriendsResp + 11, // [11:18] is the sub-list for method output_type + 4, // [4:11] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name +} + +func init() { file_business_ext_proto_init() } +func file_business_ext_proto_init() { + if File_business_ext_proto != nil { + return + } + file_common_ext_proto_init() + if !protoimpl.UnsafeEnabled { + file_business_ext_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsFriendsReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_business_ext_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsFriendsResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_business_ext_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Emoticon); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_business_ext_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EmoticonListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_business_ext_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignInReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_business_ext_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignInResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_business_ext_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CloudUploadFileReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_business_ext_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CloudUploadFileResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_business_ext_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*User); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_business_ext_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_business_ext_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_business_ext_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateUserReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_business_ext_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchUserReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_business_ext_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchUserResp); 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_business_ext_proto_rawDesc, + NumEnums: 0, + NumMessages: 14, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_business_ext_proto_goTypes, + DependencyIndexes: file_business_ext_proto_depIdxs, + MessageInfos: file_business_ext_proto_msgTypes, + }.Build() + File_business_ext_proto = out.File + file_business_ext_proto_rawDesc = nil + file_business_ext_proto_goTypes = nil + file_business_ext_proto_depIdxs = nil +} + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// BusinessExtClient is the client API for BusinessExt service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type BusinessExtClient interface { + // 登录 + SignIn(ctx context.Context, in *SignInReq, opts ...grpc.CallOption) (*SignInResp, error) + // 获取用户信息 + GetUser(ctx context.Context, in *GetUserReq, opts ...grpc.CallOption) (*GetUserResp, error) + // 更新用户信息 + UpdateUser(ctx context.Context, in *UpdateUserReq, opts ...grpc.CallOption) (*Empty, error) + // 搜索用户(这里简单数据库实现,生产环境建议使用ES) + SearchUser(ctx context.Context, in *SearchUserReq, opts ...grpc.CallOption) (*SearchUserResp, error) + // 上传文件至云端 + CloudUploadFile(ctx context.Context, in *CloudUploadFileReq, opts ...grpc.CallOption) (*CloudUploadFileResp, error) + // 获取表情 + EmoticonList(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*EmoticonListResp, error) + // 判断是否为好友关系 + IsFriends(ctx context.Context, in *IsFriendsReq, opts ...grpc.CallOption) (*IsFriendsResp, error) +} + +type businessExtClient struct { + cc grpc.ClientConnInterface +} + +func NewBusinessExtClient(cc grpc.ClientConnInterface) BusinessExtClient { + return &businessExtClient{cc} +} + +func (c *businessExtClient) SignIn(ctx context.Context, in *SignInReq, opts ...grpc.CallOption) (*SignInResp, error) { + out := new(SignInResp) + err := c.cc.Invoke(ctx, "/pb.BusinessExt/SignIn", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *businessExtClient) GetUser(ctx context.Context, in *GetUserReq, opts ...grpc.CallOption) (*GetUserResp, error) { + out := new(GetUserResp) + err := c.cc.Invoke(ctx, "/pb.BusinessExt/GetUser", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *businessExtClient) UpdateUser(ctx context.Context, in *UpdateUserReq, opts ...grpc.CallOption) (*Empty, error) { + out := new(Empty) + err := c.cc.Invoke(ctx, "/pb.BusinessExt/UpdateUser", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *businessExtClient) SearchUser(ctx context.Context, in *SearchUserReq, opts ...grpc.CallOption) (*SearchUserResp, error) { + out := new(SearchUserResp) + err := c.cc.Invoke(ctx, "/pb.BusinessExt/SearchUser", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *businessExtClient) CloudUploadFile(ctx context.Context, in *CloudUploadFileReq, opts ...grpc.CallOption) (*CloudUploadFileResp, error) { + out := new(CloudUploadFileResp) + err := c.cc.Invoke(ctx, "/pb.BusinessExt/CloudUploadFile", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *businessExtClient) EmoticonList(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*EmoticonListResp, error) { + out := new(EmoticonListResp) + err := c.cc.Invoke(ctx, "/pb.BusinessExt/EmoticonList", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *businessExtClient) IsFriends(ctx context.Context, in *IsFriendsReq, opts ...grpc.CallOption) (*IsFriendsResp, error) { + out := new(IsFriendsResp) + err := c.cc.Invoke(ctx, "/pb.BusinessExt/IsFriends", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// BusinessExtServer is the server API for BusinessExt service. +// All implementations must embed UnimplementedBusinessExtServer +// for forward compatibility +type BusinessExtServer interface { + // 登录 + SignIn(context.Context, *SignInReq) (*SignInResp, error) + // 获取用户信息 + GetUser(context.Context, *GetUserReq) (*GetUserResp, error) + // 更新用户信息 + UpdateUser(context.Context, *UpdateUserReq) (*Empty, error) + // 搜索用户(这里简单数据库实现,生产环境建议使用ES) + SearchUser(context.Context, *SearchUserReq) (*SearchUserResp, error) + // 上传文件至云端 + CloudUploadFile(context.Context, *CloudUploadFileReq) (*CloudUploadFileResp, error) + // 获取表情 + EmoticonList(context.Context, *Empty) (*EmoticonListResp, error) + // 判断是否为好友关系 + IsFriends(context.Context, *IsFriendsReq) (*IsFriendsResp, error) +} + +// UnimplementedBusinessExtServer must be embedded to have forward compatible implementations. +type UnimplementedBusinessExtServer struct { +} + +func (UnimplementedBusinessExtServer) SignIn(context.Context, *SignInReq) (*SignInResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method SignIn not implemented") +} +func (UnimplementedBusinessExtServer) GetUser(context.Context, *GetUserReq) (*GetUserResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUser not implemented") +} +func (UnimplementedBusinessExtServer) UpdateUser(context.Context, *UpdateUserReq) (*Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateUser not implemented") +} +func (UnimplementedBusinessExtServer) SearchUser(context.Context, *SearchUserReq) (*SearchUserResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method SearchUser not implemented") +} +func (UnimplementedBusinessExtServer) CloudUploadFile(context.Context, *CloudUploadFileReq) (*CloudUploadFileResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CloudUploadFile not implemented") +} +func (UnimplementedBusinessExtServer) EmoticonList(context.Context, *Empty) (*EmoticonListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method EmoticonList not implemented") +} +func (UnimplementedBusinessExtServer) IsFriends(context.Context, *IsFriendsReq) (*IsFriendsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method IsFriends not implemented") +} + +func RegisterBusinessExtServer(s grpc.ServiceRegistrar, srv BusinessExtServer) { + s.RegisterService(&BusinessExt_ServiceDesc, srv) +} + +func _BusinessExt_SignIn_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SignInReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BusinessExtServer).SignIn(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.BusinessExt/SignIn", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BusinessExtServer).SignIn(ctx, req.(*SignInReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _BusinessExt_GetUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUserReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BusinessExtServer).GetUser(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.BusinessExt/GetUser", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BusinessExtServer).GetUser(ctx, req.(*GetUserReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _BusinessExt_UpdateUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateUserReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BusinessExtServer).UpdateUser(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.BusinessExt/UpdateUser", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BusinessExtServer).UpdateUser(ctx, req.(*UpdateUserReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _BusinessExt_SearchUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SearchUserReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BusinessExtServer).SearchUser(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.BusinessExt/SearchUser", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BusinessExtServer).SearchUser(ctx, req.(*SearchUserReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _BusinessExt_CloudUploadFile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CloudUploadFileReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BusinessExtServer).CloudUploadFile(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.BusinessExt/CloudUploadFile", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BusinessExtServer).CloudUploadFile(ctx, req.(*CloudUploadFileReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _BusinessExt_EmoticonList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BusinessExtServer).EmoticonList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.BusinessExt/EmoticonList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BusinessExtServer).EmoticonList(ctx, req.(*Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _BusinessExt_IsFriends_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IsFriendsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BusinessExtServer).IsFriends(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.BusinessExt/IsFriends", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BusinessExtServer).IsFriends(ctx, req.(*IsFriendsReq)) + } + return interceptor(ctx, in, info, handler) +} + +// BusinessExt_ServiceDesc is the grpc.ServiceDesc for BusinessExt service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var BusinessExt_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "pb.BusinessExt", + HandlerType: (*BusinessExtServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "SignIn", + Handler: _BusinessExt_SignIn_Handler, + }, + { + MethodName: "GetUser", + Handler: _BusinessExt_GetUser_Handler, + }, + { + MethodName: "UpdateUser", + Handler: _BusinessExt_UpdateUser_Handler, + }, + { + MethodName: "SearchUser", + Handler: _BusinessExt_SearchUser_Handler, + }, + { + MethodName: "CloudUploadFile", + Handler: _BusinessExt_CloudUploadFile_Handler, + }, + { + MethodName: "EmoticonList", + Handler: _BusinessExt_EmoticonList_Handler, + }, + { + MethodName: "IsFriends", + Handler: _BusinessExt_IsFriends_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "im.business.ext.proto", +} diff --git a/pkg/pb/im.business.int.pb.go b/pkg/pb/im.business.int.pb.go new file mode 100644 index 0000000..3a3f110 --- /dev/null +++ b/pkg/pb/im.business.int.pb.go @@ -0,0 +1,595 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.20.0--rc1 +// source: im.business.int.proto + +package pb + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + 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 MasterAuthReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MasterId string `protobuf:"bytes,1,opt,name=master_id,json=masterId,proto3" json:"master_id,omitempty"` +} + +func (x *MasterAuthReq) Reset() { + *x = MasterAuthReq{} + if protoimpl.UnsafeEnabled { + mi := &file_business_int_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MasterAuthReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MasterAuthReq) ProtoMessage() {} + +func (x *MasterAuthReq) ProtoReflect() protoreflect.Message { + mi := &file_business_int_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 MasterAuthReq.ProtoReflect.Descriptor instead. +func (*MasterAuthReq) Descriptor() ([]byte, []int) { + return file_business_int_proto_rawDescGZIP(), []int{0} +} + +func (x *MasterAuthReq) GetMasterId() string { + if x != nil { + return x.MasterId + } + return "" +} + +type AuthReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int64 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + DeviceId int64 `protobuf:"varint,2,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"` + Token string `protobuf:"bytes,3,opt,name=token,proto3" json:"token,omitempty"` +} + +func (x *AuthReq) Reset() { + *x = AuthReq{} + if protoimpl.UnsafeEnabled { + mi := &file_business_int_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AuthReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AuthReq) ProtoMessage() {} + +func (x *AuthReq) ProtoReflect() protoreflect.Message { + mi := &file_business_int_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 AuthReq.ProtoReflect.Descriptor instead. +func (*AuthReq) Descriptor() ([]byte, []int) { + return file_business_int_proto_rawDescGZIP(), []int{1} +} + +func (x *AuthReq) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *AuthReq) GetDeviceId() int64 { + if x != nil { + return x.DeviceId + } + return 0 +} + +func (x *AuthReq) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +type GetUsersReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserIds map[int64]int32 `protobuf:"bytes,1,rep,name=user_ids,json=userIds,proto3" json:"user_ids,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 用户id +} + +func (x *GetUsersReq) Reset() { + *x = GetUsersReq{} + if protoimpl.UnsafeEnabled { + mi := &file_business_int_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUsersReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUsersReq) ProtoMessage() {} + +func (x *GetUsersReq) ProtoReflect() protoreflect.Message { + mi := &file_business_int_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 GetUsersReq.ProtoReflect.Descriptor instead. +func (*GetUsersReq) Descriptor() ([]byte, []int) { + return file_business_int_proto_rawDescGZIP(), []int{2} +} + +func (x *GetUsersReq) GetUserIds() map[int64]int32 { + if x != nil { + return x.UserIds + } + return nil +} + +type GetUsersResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Users map[int64]*User `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 用户信息 +} + +func (x *GetUsersResp) Reset() { + *x = GetUsersResp{} + if protoimpl.UnsafeEnabled { + mi := &file_business_int_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUsersResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUsersResp) ProtoMessage() {} + +func (x *GetUsersResp) ProtoReflect() protoreflect.Message { + mi := &file_business_int_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 GetUsersResp.ProtoReflect.Descriptor instead. +func (*GetUsersResp) Descriptor() ([]byte, []int) { + return file_business_int_proto_rawDescGZIP(), []int{3} +} + +func (x *GetUsersResp) GetUsers() map[int64]*User { + if x != nil { + return x.Users + } + return nil +} + +var File_business_int_proto protoreflect.FileDescriptor + +var file_business_int_proto_rawDesc = []byte{ + 0x0a, 0x12, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x2e, 0x69, 0x6e, 0x74, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x12, 0x62, 0x75, 0x73, 0x69, + 0x6e, 0x65, 0x73, 0x73, 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2c, + 0x0a, 0x0d, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x71, 0x12, + 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x55, 0x0a, 0x07, + 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, + 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x22, 0x82, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x71, 0x12, 0x37, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x85, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x05, 0x75, 0x73, 0x65, + 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x1a, 0x42, 0x0a, 0x0a, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x32, 0xb4, 0x01, 0x0a, 0x0b, 0x42, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x74, + 0x12, 0x2a, 0x0a, 0x0a, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x12, 0x11, + 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, + 0x71, 0x1a, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x04, + 0x41, 0x75, 0x74, 0x68, 0x12, 0x0b, 0x2e, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, + 0x71, 0x1a, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x07, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, 0x0b, 0x67, 0x69, 0x6d, 0x2f, 0x70, + 0x6b, 0x67, 0x2f, 0x70, 0x62, 0x2f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_business_int_proto_rawDescOnce sync.Once + file_business_int_proto_rawDescData = file_business_int_proto_rawDesc +) + +func file_business_int_proto_rawDescGZIP() []byte { + file_business_int_proto_rawDescOnce.Do(func() { + file_business_int_proto_rawDescData = protoimpl.X.CompressGZIP(file_business_int_proto_rawDescData) + }) + return file_business_int_proto_rawDescData +} + +var file_business_int_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_business_int_proto_goTypes = []interface{}{ + (*MasterAuthReq)(nil), // 0: pb.MasterAuthReq + (*AuthReq)(nil), // 1: pb.AuthReq + (*GetUsersReq)(nil), // 2: pb.GetUsersReq + (*GetUsersResp)(nil), // 3: pb.GetUsersResp + nil, // 4: pb.GetUsersReq.UserIdsEntry + nil, // 5: pb.GetUsersResp.UsersEntry + (*User)(nil), // 6: pb.User + (*GetUserReq)(nil), // 7: pb.GetUserReq + (*Empty)(nil), // 8: pb.Empty + (*GetUserResp)(nil), // 9: pb.GetUserResp +} +var file_business_int_proto_depIdxs = []int32{ + 4, // 0: pb.GetUsersReq.user_ids:type_name -> pb.GetUsersReq.UserIdsEntry + 5, // 1: pb.GetUsersResp.users:type_name -> pb.GetUsersResp.UsersEntry + 6, // 2: pb.GetUsersResp.UsersEntry.value:type_name -> pb.User + 0, // 3: pb.BusinessInt.MasterAuth:input_type -> pb.MasterAuthReq + 1, // 4: pb.BusinessInt.Auth:input_type -> pb.AuthReq + 7, // 5: pb.BusinessInt.GetUser:input_type -> pb.GetUserReq + 2, // 6: pb.BusinessInt.GetUsers:input_type -> pb.GetUsersReq + 8, // 7: pb.BusinessInt.MasterAuth:output_type -> pb.Empty + 8, // 8: pb.BusinessInt.Auth:output_type -> pb.Empty + 9, // 9: pb.BusinessInt.GetUser:output_type -> pb.GetUserResp + 3, // 10: pb.BusinessInt.GetUsers:output_type -> pb.GetUsersResp + 7, // [7:11] is the sub-list for method output_type + 3, // [3:7] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_business_int_proto_init() } +func file_business_int_proto_init() { + if File_business_int_proto != nil { + return + } + file_common_ext_proto_init() + file_business_ext_proto_init() + if !protoimpl.UnsafeEnabled { + file_business_int_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MasterAuthReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_business_int_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AuthReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_business_int_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUsersReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_business_int_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUsersResp); 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_business_int_proto_rawDesc, + NumEnums: 0, + NumMessages: 6, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_business_int_proto_goTypes, + DependencyIndexes: file_business_int_proto_depIdxs, + MessageInfos: file_business_int_proto_msgTypes, + }.Build() + File_business_int_proto = out.File + file_business_int_proto_rawDesc = nil + file_business_int_proto_goTypes = nil + file_business_int_proto_depIdxs = nil +} + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// BusinessIntClient is the client API for BusinessInt service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type BusinessIntClient interface { + // 站长权限校验 + MasterAuth(ctx context.Context, in *MasterAuthReq, opts ...grpc.CallOption) (*Empty, error) + // 权限校验 + Auth(ctx context.Context, in *AuthReq, opts ...grpc.CallOption) (*Empty, error) + // 批量获取用户信息 + GetUser(ctx context.Context, in *GetUserReq, opts ...grpc.CallOption) (*GetUserResp, error) + // 批量获取用户信息 + GetUsers(ctx context.Context, in *GetUsersReq, opts ...grpc.CallOption) (*GetUsersResp, error) +} + +type businessIntClient struct { + cc grpc.ClientConnInterface +} + +func NewBusinessIntClient(cc grpc.ClientConnInterface) BusinessIntClient { + return &businessIntClient{cc} +} + +func (c *businessIntClient) MasterAuth(ctx context.Context, in *MasterAuthReq, opts ...grpc.CallOption) (*Empty, error) { + out := new(Empty) + err := c.cc.Invoke(ctx, "/pb.BusinessInt/MasterAuth", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *businessIntClient) Auth(ctx context.Context, in *AuthReq, opts ...grpc.CallOption) (*Empty, error) { + out := new(Empty) + err := c.cc.Invoke(ctx, "/pb.BusinessInt/Auth", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *businessIntClient) GetUser(ctx context.Context, in *GetUserReq, opts ...grpc.CallOption) (*GetUserResp, error) { + out := new(GetUserResp) + err := c.cc.Invoke(ctx, "/pb.BusinessInt/GetUser", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *businessIntClient) GetUsers(ctx context.Context, in *GetUsersReq, opts ...grpc.CallOption) (*GetUsersResp, error) { + out := new(GetUsersResp) + err := c.cc.Invoke(ctx, "/pb.BusinessInt/GetUsers", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// BusinessIntServer is the server API for BusinessInt service. +// All implementations must embed UnimplementedBusinessIntServer +// for forward compatibility +type BusinessIntServer interface { + // 站长权限校验 + MasterAuth(context.Context, *MasterAuthReq) (*Empty, error) + // 权限校验 + Auth(context.Context, *AuthReq) (*Empty, error) + // 批量获取用户信息 + GetUser(context.Context, *GetUserReq) (*GetUserResp, error) + // 批量获取用户信息 + GetUsers(context.Context, *GetUsersReq) (*GetUsersResp, error) +} + +// UnimplementedBusinessIntServer must be embedded to have forward compatible implementations. +type UnimplementedBusinessIntServer struct { +} + +func (UnimplementedBusinessIntServer) MasterAuth(context.Context, *MasterAuthReq) (*Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method MasterAuth not implemented") +} +func (UnimplementedBusinessIntServer) Auth(context.Context, *AuthReq) (*Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method Auth not implemented") +} +func (UnimplementedBusinessIntServer) GetUser(context.Context, *GetUserReq) (*GetUserResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUser not implemented") +} +func (UnimplementedBusinessIntServer) GetUsers(context.Context, *GetUsersReq) (*GetUsersResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUsers not implemented") +} + +func RegisterBusinessIntServer(s grpc.ServiceRegistrar, srv BusinessIntServer) { + s.RegisterService(&BusinessInt_ServiceDesc, srv) +} + +func _BusinessInt_MasterAuth_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MasterAuthReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BusinessIntServer).MasterAuth(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.BusinessInt/MasterAuth", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BusinessIntServer).MasterAuth(ctx, req.(*MasterAuthReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _BusinessInt_Auth_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AuthReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BusinessIntServer).Auth(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.BusinessInt/Auth", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BusinessIntServer).Auth(ctx, req.(*AuthReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _BusinessInt_GetUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUserReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BusinessIntServer).GetUser(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.BusinessInt/GetUser", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BusinessIntServer).GetUser(ctx, req.(*GetUserReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _BusinessInt_GetUsers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUsersReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BusinessIntServer).GetUsers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.BusinessInt/GetUsers", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BusinessIntServer).GetUsers(ctx, req.(*GetUsersReq)) + } + return interceptor(ctx, in, info, handler) +} + +// BusinessInt_ServiceDesc is the grpc.ServiceDesc for BusinessInt service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var BusinessInt_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "pb.BusinessInt", + HandlerType: (*BusinessIntServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "MasterAuth", + Handler: _BusinessInt_MasterAuth_Handler, + }, + { + MethodName: "Auth", + Handler: _BusinessInt_Auth_Handler, + }, + { + MethodName: "GetUser", + Handler: _BusinessInt_GetUser_Handler, + }, + { + MethodName: "GetUsers", + Handler: _BusinessInt_GetUsers_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "im.business.int.proto", +} diff --git a/pkg/pb/im.common.ext.pb.go b/pkg/pb/im.common.ext.pb.go new file mode 100644 index 0000000..120feaa --- /dev/null +++ b/pkg/pb/im.common.ext.pb.go @@ -0,0 +1,131 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.14.0 +// source: common.ext.proto_back + +package pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + 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 Empty struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *Empty) Reset() { + *x = Empty{} + if protoimpl.UnsafeEnabled { + mi := &file_common_ext_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Empty) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Empty) ProtoMessage() {} + +func (x *Empty) ProtoReflect() protoreflect.Message { + mi := &file_common_ext_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 Empty.ProtoReflect.Descriptor instead. +func (*Empty) Descriptor() ([]byte, []int) { + return file_common_ext_proto_rawDescGZIP(), []int{0} +} + +var File_common_ext_proto protoreflect.FileDescriptor + +var file_common_ext_proto_rawDesc = []byte{ + 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, + 0x0d, 0x5a, 0x0b, 0x67, 0x69, 0x6d, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x62, 0x2f, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_common_ext_proto_rawDescOnce sync.Once + file_common_ext_proto_rawDescData = file_common_ext_proto_rawDesc +) + +func file_common_ext_proto_rawDescGZIP() []byte { + file_common_ext_proto_rawDescOnce.Do(func() { + file_common_ext_proto_rawDescData = protoimpl.X.CompressGZIP(file_common_ext_proto_rawDescData) + }) + return file_common_ext_proto_rawDescData +} + +var file_common_ext_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_common_ext_proto_goTypes = []interface{}{ + (*Empty)(nil), // 0: pb.Empty +} +var file_common_ext_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_common_ext_proto_init() } +func file_common_ext_proto_init() { + if File_common_ext_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_common_ext_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Empty); 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_common_ext_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_common_ext_proto_goTypes, + DependencyIndexes: file_common_ext_proto_depIdxs, + MessageInfos: file_common_ext_proto_msgTypes, + }.Build() + File_common_ext_proto = out.File + file_common_ext_proto_rawDesc = nil + file_common_ext_proto_goTypes = nil + file_common_ext_proto_depIdxs = nil +} diff --git a/pkg/pb/im.connect.ext.pb.go b/pkg/pb/im.connect.ext.pb.go new file mode 100644 index 0000000..292fa4d --- /dev/null +++ b/pkg/pb/im.connect.ext.pb.go @@ -0,0 +1,2450 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.20.0--rc1 +// source: connect.ext.proto + +package pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + 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 PackageType int32 + +const ( + PackageType_PT_UNKNOWN PackageType = 0 // 未知 + PackageType_PT_SIGN_IN PackageType = 1 // 设备登录请求 + PackageType_PT_SYNC PackageType = 2 // 消息同步触发 + PackageType_PT_HEARTBEAT PackageType = 3 // 心跳 + PackageType_PT_MESSAGE PackageType = 4 // 消息投递 + PackageType_PT_SUBSCRIBE_ROOM PackageType = 5 // 订阅房间 +) + +// Enum value maps for PackageType. +var ( + PackageType_name = map[int32]string{ + 0: "PT_UNKNOWN", + 1: "PT_SIGN_IN", + 2: "PT_SYNC", + 3: "PT_HEARTBEAT", + 4: "PT_MESSAGE", + 5: "PT_SUBSCRIBE_ROOM", + } + PackageType_value = map[string]int32{ + "PT_UNKNOWN": 0, + "PT_SIGN_IN": 1, + "PT_SYNC": 2, + "PT_HEARTBEAT": 3, + "PT_MESSAGE": 4, + "PT_SUBSCRIBE_ROOM": 5, + } +) + +func (x PackageType) Enum() *PackageType { + p := new(PackageType) + *p = x + return p +} + +func (x PackageType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PackageType) Descriptor() protoreflect.EnumDescriptor { + return file_connect_ext_proto_enumTypes[0].Descriptor() +} + +func (PackageType) Type() protoreflect.EnumType { + return &file_connect_ext_proto_enumTypes[0] +} + +func (x PackageType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PackageType.Descriptor instead. +func (PackageType) EnumDescriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{0} +} + +// 消息类型 +type MessageType int32 + +const ( + MessageType_MT_UNKNOWN MessageType = 0 // 未知 + MessageType_MT_TEXT MessageType = 1 // 文本 + MessageType_MT_FACE MessageType = 2 // 表情 + MessageType_MT_VOICE MessageType = 3 // 语音消息 + MessageType_MT_IMAGE MessageType = 4 // 图片 + MessageType_MT_FILE MessageType = 5 // 文件 + MessageType_MT_LOCATION MessageType = 6 // 地理位置 + MessageType_MT_COMMAND MessageType = 7 // 指令推送 + MessageType_MT_CUSTOM MessageType = 8 // 自定义 + MessageType_MT_RECALL MessageType = 9 // 撤回消息 + MessageType_MT_RED_PACKAGE MessageType = 10 // 红包消息 +) + +// Enum value maps for MessageType. +var ( + MessageType_name = map[int32]string{ + 0: "MT_UNKNOWN", + 1: "MT_TEXT", + 2: "MT_FACE", + 3: "MT_VOICE", + 4: "MT_IMAGE", + 5: "MT_FILE", + 6: "MT_LOCATION", + 7: "MT_COMMAND", + 8: "MT_CUSTOM", + 9: "MT_RECALL", + 10: "MT_RED_PACKAGE", + } + MessageType_value = map[string]int32{ + "MT_UNKNOWN": 0, + "MT_TEXT": 1, + "MT_FACE": 2, + "MT_VOICE": 3, + "MT_IMAGE": 4, + "MT_FILE": 5, + "MT_LOCATION": 6, + "MT_COMMAND": 7, + "MT_CUSTOM": 8, + "MT_RECALL": 9, + "MT_RED_PACKAGE": 10, + } +) + +func (x MessageType) Enum() *MessageType { + p := new(MessageType) + *p = x + return p +} + +func (x MessageType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MessageType) Descriptor() protoreflect.EnumDescriptor { + return file_connect_ext_proto_enumTypes[1].Descriptor() +} + +func (MessageType) Type() protoreflect.EnumType { + return &file_connect_ext_proto_enumTypes[1] +} + +func (x MessageType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MessageType.Descriptor instead. +func (MessageType) EnumDescriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{1} +} + +// 红包类型 +type RedPacketType int32 + +const ( + RedPacketType_RPT_UNKNOWN RedPacketType = 0 // 未知 + RedPacketType_RPT_FRIEND RedPacketType = 1 // 好友红包 + RedPacketType_RPT_GROUP_NORMAL RedPacketType = 2 // 群组普通红包 + RedPacketType_RPT_GROUP_LUCK RedPacketType = 3 // 群组手气红包 + RedPacketType_RPT_GROUP_SPECIALLY RedPacketType = 4 // 群组专属红包 + RedPacketType_RPT_SYSTEM_FOR RedPacketType = 5 // 系统红包 +) + +// Enum value maps for RedPacketType. +var ( + RedPacketType_name = map[int32]string{ + 0: "RPT_UNKNOWN", + 1: "RPT_FRIEND", + 2: "RPT_GROUP_NORMAL", + 3: "RPT_GROUP_LUCK", + 4: "RPT_GROUP_SPECIALLY", + 5: "RPT_SYSTEM_FOR", + } + RedPacketType_value = map[string]int32{ + "RPT_UNKNOWN": 0, + "RPT_FRIEND": 1, + "RPT_GROUP_NORMAL": 2, + "RPT_GROUP_LUCK": 3, + "RPT_GROUP_SPECIALLY": 4, + "RPT_SYSTEM_FOR": 5, + } +) + +func (x RedPacketType) Enum() *RedPacketType { + p := new(RedPacketType) + *p = x + return p +} + +func (x RedPacketType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (RedPacketType) Descriptor() protoreflect.EnumDescriptor { + return file_connect_ext_proto_enumTypes[2].Descriptor() +} + +func (RedPacketType) Type() protoreflect.EnumType { + return &file_connect_ext_proto_enumTypes[2] +} + +func (x RedPacketType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use RedPacketType.Descriptor instead. +func (RedPacketType) EnumDescriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{2} +} + +// 红包消息类型 +type RedPacketMessageType int32 + +const ( + RedPacketMessageType_RMT_UNKNOWN RedPacketMessageType = 0 // 未知 + RedPacketMessageType_RMT_SEND RedPacketMessageType = 1 // 发红包 + RedPacketMessageType_RMT_GRAB RedPacketMessageType = 2 // 抢红包 +) + +// Enum value maps for RedPacketMessageType. +var ( + RedPacketMessageType_name = map[int32]string{ + 0: "RMT_UNKNOWN", + 1: "RMT_SEND", + 2: "RMT_GRAB", + } + RedPacketMessageType_value = map[string]int32{ + "RMT_UNKNOWN": 0, + "RMT_SEND": 1, + "RMT_GRAB": 2, + } +) + +func (x RedPacketMessageType) Enum() *RedPacketMessageType { + p := new(RedPacketMessageType) + *p = x + return p +} + +func (x RedPacketMessageType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (RedPacketMessageType) Descriptor() protoreflect.EnumDescriptor { + return file_connect_ext_proto_enumTypes[3].Descriptor() +} + +func (RedPacketMessageType) Type() protoreflect.EnumType { + return &file_connect_ext_proto_enumTypes[3] +} + +func (x RedPacketMessageType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use RedPacketMessageType.Descriptor instead. +func (RedPacketMessageType) EnumDescriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{3} +} + +// 红包状态类型 +type RedPacketStatusType int32 + +const ( + RedPacketStatusType_RPS_NOT_DRAW RedPacketStatusType = 0 // 未领取 + RedPacketStatusType_RPS_DRAWING RedPacketStatusType = 1 // 领取中 + RedPacketStatusType_RPS_DRAW_OVER RedPacketStatusType = 2 // 领取完 + RedPacketStatusType_RPS_EXPIRE RedPacketStatusType = 3 //已过期 +) + +// Enum value maps for RedPacketStatusType. +var ( + RedPacketStatusType_name = map[int32]string{ + 0: "RPS_NOT_DRAW", + 1: "RPS_DRAWING", + 2: "RPS_DRAW_OVER", + 3: "RPS_EXPIRE", + } + RedPacketStatusType_value = map[string]int32{ + "RPS_NOT_DRAW": 0, + "RPS_DRAWING": 1, + "RPS_DRAW_OVER": 2, + "RPS_EXPIRE": 3, + } +) + +func (x RedPacketStatusType) Enum() *RedPacketStatusType { + p := new(RedPacketStatusType) + *p = x + return p +} + +func (x RedPacketStatusType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (RedPacketStatusType) Descriptor() protoreflect.EnumDescriptor { + return file_connect_ext_proto_enumTypes[4].Descriptor() +} + +func (RedPacketStatusType) Type() protoreflect.EnumType { + return &file_connect_ext_proto_enumTypes[4] +} + +func (x RedPacketStatusType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use RedPacketStatusType.Descriptor instead. +func (RedPacketStatusType) EnumDescriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{4} +} + +type ReceiverType int32 + +const ( + ReceiverType_RT_UNKNOWN ReceiverType = 0 // 未知 + ReceiverType_RT_USER ReceiverType = 1 // 用户 + ReceiverType_RT_GROUP ReceiverType = 2 // 群组 + ReceiverType_RT_ROOM ReceiverType = 3 // 房间 +) + +// Enum value maps for ReceiverType. +var ( + ReceiverType_name = map[int32]string{ + 0: "RT_UNKNOWN", + 1: "RT_USER", + 2: "RT_GROUP", + 3: "RT_ROOM", + } + ReceiverType_value = map[string]int32{ + "RT_UNKNOWN": 0, + "RT_USER": 1, + "RT_GROUP": 2, + "RT_ROOM": 3, + } +) + +func (x ReceiverType) Enum() *ReceiverType { + p := new(ReceiverType) + *p = x + return p +} + +func (x ReceiverType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ReceiverType) Descriptor() protoreflect.EnumDescriptor { + return file_connect_ext_proto_enumTypes[5].Descriptor() +} + +func (ReceiverType) Type() protoreflect.EnumType { + return &file_connect_ext_proto_enumTypes[5] +} + +func (x ReceiverType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ReceiverType.Descriptor instead. +func (ReceiverType) EnumDescriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{5} +} + +type SenderType int32 + +const ( + SenderType_ST_UNKNOWN SenderType = 0 // 未知的 + SenderType_ST_SYSTEM SenderType = 1 // IM系统 + SenderType_ST_USER SenderType = 2 // 用户 + SenderType_ST_BUSINESS SenderType = 3 // 业务方 +) + +// Enum value maps for SenderType. +var ( + SenderType_name = map[int32]string{ + 0: "ST_UNKNOWN", + 1: "ST_SYSTEM", + 2: "ST_USER", + 3: "ST_BUSINESS", + } + SenderType_value = map[string]int32{ + "ST_UNKNOWN": 0, + "ST_SYSTEM": 1, + "ST_USER": 2, + "ST_BUSINESS": 3, + } +) + +func (x SenderType) Enum() *SenderType { + p := new(SenderType) + *p = x + return p +} + +func (x SenderType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SenderType) Descriptor() protoreflect.EnumDescriptor { + return file_connect_ext_proto_enumTypes[6].Descriptor() +} + +func (SenderType) Type() protoreflect.EnumType { + return &file_connect_ext_proto_enumTypes[6] +} + +func (x SenderType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SenderType.Descriptor instead. +func (SenderType) EnumDescriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{6} +} + +type MessageStatus int32 + +const ( + MessageStatus_MS_UNKNOWN MessageStatus = 0 // 未知的 + MessageStatus_MS_NORMAL MessageStatus = 1 // 正常的 + MessageStatus_MS_RECALL MessageStatus = 2 // 撤回 +) + +// Enum value maps for MessageStatus. +var ( + MessageStatus_name = map[int32]string{ + 0: "MS_UNKNOWN", + 1: "MS_NORMAL", + 2: "MS_RECALL", + } + MessageStatus_value = map[string]int32{ + "MS_UNKNOWN": 0, + "MS_NORMAL": 1, + "MS_RECALL": 2, + } +) + +func (x MessageStatus) Enum() *MessageStatus { + p := new(MessageStatus) + *p = x + return p +} + +func (x MessageStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MessageStatus) Descriptor() protoreflect.EnumDescriptor { + return file_connect_ext_proto_enumTypes[7].Descriptor() +} + +func (MessageStatus) Type() protoreflect.EnumType { + return &file_connect_ext_proto_enumTypes[7] +} + +func (x MessageStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MessageStatus.Descriptor instead. +func (MessageStatus) EnumDescriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{7} +} + +// 群组用户状态 +type GroupUserStatusType int32 + +const ( + GroupUserStatusType_GROUP_USER_STATUS_NORMAL GroupUserStatusType = 0 // 正常 + GroupUserStatusType_GROUP_USER_STATUS_Banned GroupUserStatusType = 1 // 禁言 +) + +// Enum value maps for GroupUserStatusType. +var ( + GroupUserStatusType_name = map[int32]string{ + 0: "GROUP_USER_STATUS_NORMAL", + 1: "GROUP_USER_STATUS_Banned", + } + GroupUserStatusType_value = map[string]int32{ + "GROUP_USER_STATUS_NORMAL": 0, + "GROUP_USER_STATUS_Banned": 1, + } +) + +func (x GroupUserStatusType) Enum() *GroupUserStatusType { + p := new(GroupUserStatusType) + *p = x + return p +} + +func (x GroupUserStatusType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GroupUserStatusType) Descriptor() protoreflect.EnumDescriptor { + return file_connect_ext_proto_enumTypes[8].Descriptor() +} + +func (GroupUserStatusType) Type() protoreflect.EnumType { + return &file_connect_ext_proto_enumTypes[8] +} + +func (x GroupUserStatusType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GroupUserStatusType.Descriptor instead. +func (GroupUserStatusType) EnumDescriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{8} +} + +// 单条消息投递内容(估算大约100个字节),todo 通知栏提醒 +type Message struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sender *Sender `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` // 发送者 + ReceiverType ReceiverType `protobuf:"varint,2,opt,name=receiver_type,json=receiverType,proto3,enum=pb.ReceiverType" json:"receiver_type,omitempty"` // 接收者类型,1:user;2:group + ReceiverId int64 `protobuf:"varint,3,opt,name=receiver_id,json=receiverId,proto3" json:"receiver_id,omitempty"` // 用户id或者群组id + ToUserIds []int64 `protobuf:"varint,4,rep,packed,name=to_user_ids,json=toUserIds,proto3" json:"to_user_ids,omitempty"` // 需要@的用户id列表 + MessageType MessageType `protobuf:"varint,5,opt,name=message_type,json=messageType,proto3,enum=pb.MessageType" json:"message_type,omitempty"` // 消息类型 + MessageContent []byte `protobuf:"bytes,6,opt,name=message_content,json=messageContent,proto3" json:"message_content,omitempty"` // 消息内容 + Seq int64 `protobuf:"varint,7,opt,name=seq,proto3" json:"seq,omitempty"` // 用户消息发送序列号 + SendTime int64 `protobuf:"varint,8,opt,name=send_time,json=sendTime,proto3" json:"send_time,omitempty"` // 消息发送时间戳,精确到毫秒 + Status MessageStatus `protobuf:"varint,9,opt,name=status,proto3,enum=pb.MessageStatus" json:"status,omitempty"` // 消息状态 +} + +func (x *Message) Reset() { + *x = Message{} + if protoimpl.UnsafeEnabled { + mi := &file_connect_ext_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Message) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Message) ProtoMessage() {} + +func (x *Message) ProtoReflect() protoreflect.Message { + mi := &file_connect_ext_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 Message.ProtoReflect.Descriptor instead. +func (*Message) Descriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{0} +} + +func (x *Message) GetSender() *Sender { + if x != nil { + return x.Sender + } + return nil +} + +func (x *Message) GetReceiverType() ReceiverType { + if x != nil { + return x.ReceiverType + } + return ReceiverType_RT_UNKNOWN +} + +func (x *Message) GetReceiverId() int64 { + if x != nil { + return x.ReceiverId + } + return 0 +} + +func (x *Message) GetToUserIds() []int64 { + if x != nil { + return x.ToUserIds + } + return nil +} + +func (x *Message) GetMessageType() MessageType { + if x != nil { + return x.MessageType + } + return MessageType_MT_UNKNOWN +} + +func (x *Message) GetMessageContent() []byte { + if x != nil { + return x.MessageContent + } + return nil +} + +func (x *Message) GetSeq() int64 { + if x != nil { + return x.Seq + } + return 0 +} + +func (x *Message) GetSendTime() int64 { + if x != nil { + return x.SendTime + } + return 0 +} + +func (x *Message) GetStatus() MessageStatus { + if x != nil { + return x.Status + } + return MessageStatus_MS_UNKNOWN +} + +type Sender struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SenderType SenderType `protobuf:"varint,1,opt,name=sender_type,json=senderType,proto3,enum=pb.SenderType" json:"sender_type,omitempty"` // 发送者类型,1:系统,2:用户,3:第三方业务系统 + SenderId int64 `protobuf:"varint,2,opt,name=sender_id,json=senderId,proto3" json:"sender_id,omitempty"` // 发送者id + DeviceId int64 `protobuf:"varint,3,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"` // 发送者设备id + AvatarUrl string `protobuf:"bytes,4,opt,name=avatar_url,json=avatarUrl,proto3" json:"avatar_url,omitempty"` // 头像 + Nickname string `protobuf:"bytes,5,opt,name=nickname,proto3" json:"nickname,omitempty"` // 昵称 + Extra string `protobuf:"bytes,6,opt,name=extra,proto3" json:"extra,omitempty"` // 扩展字段 +} + +func (x *Sender) Reset() { + *x = Sender{} + if protoimpl.UnsafeEnabled { + mi := &file_connect_ext_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Sender) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Sender) ProtoMessage() {} + +func (x *Sender) ProtoReflect() protoreflect.Message { + mi := &file_connect_ext_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 Sender.ProtoReflect.Descriptor instead. +func (*Sender) Descriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{1} +} + +func (x *Sender) GetSenderType() SenderType { + if x != nil { + return x.SenderType + } + return SenderType_ST_UNKNOWN +} + +func (x *Sender) GetSenderId() int64 { + if x != nil { + return x.SenderId + } + return 0 +} + +func (x *Sender) GetDeviceId() int64 { + if x != nil { + return x.DeviceId + } + return 0 +} + +func (x *Sender) GetAvatarUrl() string { + if x != nil { + return x.AvatarUrl + } + return "" +} + +func (x *Sender) GetNickname() string { + if x != nil { + return x.Nickname + } + return "" +} + +func (x *Sender) GetExtra() string { + if x != nil { + return x.Extra + } + return "" +} + +// 文本消息 +type Text struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"` // 文本消息内容 +} + +func (x *Text) Reset() { + *x = Text{} + if protoimpl.UnsafeEnabled { + mi := &file_connect_ext_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Text) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Text) ProtoMessage() {} + +func (x *Text) ProtoReflect() protoreflect.Message { + mi := &file_connect_ext_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 Text.ProtoReflect.Descriptor instead. +func (*Text) Descriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{2} +} + +func (x *Text) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +// 表情消息 +type Face struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FaceId int64 `protobuf:"varint,1,opt,name=face_id,json=faceId,proto3" json:"face_id,omitempty"` + FaceUrl string `protobuf:"bytes,2,opt,name=face_url,json=faceUrl,proto3" json:"face_url,omitempty"` +} + +func (x *Face) Reset() { + *x = Face{} + if protoimpl.UnsafeEnabled { + mi := &file_connect_ext_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Face) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Face) ProtoMessage() {} + +func (x *Face) ProtoReflect() protoreflect.Message { + mi := &file_connect_ext_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 Face.ProtoReflect.Descriptor instead. +func (*Face) Descriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{3} +} + +func (x *Face) GetFaceId() int64 { + if x != nil { + return x.FaceId + } + return 0 +} + +func (x *Face) GetFaceUrl() string { + if x != nil { + return x.FaceUrl + } + return "" +} + +// 语音消息 +type Voice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // 语音包id + Size int32 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"` // 语音包大小 + Duration int32 `protobuf:"varint,3,opt,name=duration,proto3" json:"duration,omitempty"` // 语音时长 + Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"` // 语音文件URL +} + +func (x *Voice) Reset() { + *x = Voice{} + if protoimpl.UnsafeEnabled { + mi := &file_connect_ext_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Voice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Voice) ProtoMessage() {} + +func (x *Voice) ProtoReflect() protoreflect.Message { + mi := &file_connect_ext_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 Voice.ProtoReflect.Descriptor instead. +func (*Voice) Descriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{4} +} + +func (x *Voice) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *Voice) GetSize() int32 { + if x != nil { + return x.Size + } + return 0 +} + +func (x *Voice) GetDuration() int32 { + if x != nil { + return x.Duration + } + return 0 +} + +func (x *Voice) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +// 图片消息 +type Image struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // 图片id + Width int32 `protobuf:"varint,2,opt,name=width,proto3" json:"width,omitempty"` // 图片宽度 + Height int32 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"` // 图片长度 + Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"` // 图片URL + ThumbnailUrl string `protobuf:"bytes,5,opt,name=thumbnail_url,json=thumbnailUrl,proto3" json:"thumbnail_url,omitempty"` // 图片缩略图url +} + +func (x *Image) Reset() { + *x = Image{} + if protoimpl.UnsafeEnabled { + mi := &file_connect_ext_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Image) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Image) ProtoMessage() {} + +func (x *Image) ProtoReflect() protoreflect.Message { + mi := &file_connect_ext_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 Image.ProtoReflect.Descriptor instead. +func (*Image) Descriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{5} +} + +func (x *Image) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *Image) GetWidth() int32 { + if x != nil { + return x.Width + } + return 0 +} + +func (x *Image) GetHeight() int32 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *Image) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *Image) GetThumbnailUrl() string { + if x != nil { + return x.ThumbnailUrl + } + return "" +} + +// 文件消息 +type File struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,12,opt,name=id,proto3" json:"id,omitempty"` // 文件id + Name string `protobuf:"bytes,13,opt,name=name,proto3" json:"name,omitempty"` // 文件名 + Size int64 `protobuf:"varint,14,opt,name=size,proto3" json:"size,omitempty"` // 文件大小 + Url string `protobuf:"bytes,15,opt,name=url,proto3" json:"url,omitempty"` // 文件url +} + +func (x *File) Reset() { + *x = File{} + if protoimpl.UnsafeEnabled { + mi := &file_connect_ext_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *File) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*File) ProtoMessage() {} + +func (x *File) ProtoReflect() protoreflect.Message { + mi := &file_connect_ext_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 File.ProtoReflect.Descriptor instead. +func (*File) Descriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{6} +} + +func (x *File) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *File) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *File) GetSize() int64 { + if x != nil { + return x.Size + } + return 0 +} + +func (x *File) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +// 地理位置消息 +type Location struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Desc string `protobuf:"bytes,1,opt,name=desc,proto3" json:"desc,omitempty"` // 描述 + Latitude float64 `protobuf:"fixed64,2,opt,name=latitude,proto3" json:"latitude,omitempty"` // 经度 + Longitude float64 `protobuf:"fixed64,3,opt,name=longitude,proto3" json:"longitude,omitempty"` // 纬度 +} + +func (x *Location) Reset() { + *x = Location{} + if protoimpl.UnsafeEnabled { + mi := &file_connect_ext_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Location) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Location) ProtoMessage() {} + +func (x *Location) ProtoReflect() protoreflect.Message { + mi := &file_connect_ext_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 Location.ProtoReflect.Descriptor instead. +func (*Location) Descriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{7} +} + +func (x *Location) GetDesc() string { + if x != nil { + return x.Desc + } + return "" +} + +func (x *Location) GetLatitude() float64 { + if x != nil { + return x.Latitude + } + return 0 +} + +func (x *Location) GetLongitude() float64 { + if x != nil { + return x.Longitude + } + return 0 +} + +// Command 指令推送,1000以下,IM内部用,1000以上,留给业务用 +type Command struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` // 指令码 + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` // 数据内容 +} + +func (x *Command) Reset() { + *x = Command{} + if protoimpl.UnsafeEnabled { + mi := &file_connect_ext_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Command) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Command) ProtoMessage() {} + +func (x *Command) ProtoReflect() protoreflect.Message { + mi := &file_connect_ext_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 Command.ProtoReflect.Descriptor instead. +func (*Command) Descriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{8} +} + +func (x *Command) GetCode() int32 { + if x != nil { + return x.Code + } + return 0 +} + +func (x *Command) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +// 自定义消息 +type Custom struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data string `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` // 自定义数据 +} + +func (x *Custom) Reset() { + *x = Custom{} + if protoimpl.UnsafeEnabled { + mi := &file_connect_ext_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Custom) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Custom) ProtoMessage() {} + +func (x *Custom) ProtoReflect() protoreflect.Message { + mi := &file_connect_ext_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 Custom.ProtoReflect.Descriptor instead. +func (*Custom) Descriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{9} +} + +func (x *Custom) GetData() string { + if x != nil { + return x.Data + } + return "" +} + +// 撤回消息 +type RECALL struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RecallSeq int64 `protobuf:"varint,1,opt,name=recall_seq,json=recallSeq,proto3" json:"recall_seq,omitempty"` // 撤回消息seq +} + +func (x *RECALL) Reset() { + *x = RECALL{} + if protoimpl.UnsafeEnabled { + mi := &file_connect_ext_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RECALL) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RECALL) ProtoMessage() {} + +func (x *RECALL) ProtoReflect() protoreflect.Message { + mi := &file_connect_ext_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 RECALL.ProtoReflect.Descriptor instead. +func (*RECALL) Descriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{10} +} + +func (x *RECALL) GetRecallSeq() int64 { + if x != nil { + return x.RecallSeq + } + return 0 +} + +// 红包消息 +type RED_PACKAGE struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RedMessageType RedPacketMessageType `protobuf:"varint,1,opt,name=red_message_type,json=redMessageType,proto3,enum=pb.RedPacketMessageType" json:"red_message_type,omitempty"` // 红包消息类型 + RedPacketType RedPacketType `protobuf:"varint,2,opt,name=red_packet_type,json=redPacketType,proto3,enum=pb.RedPacketType" json:"red_packet_type,omitempty"` // 红包类型 + RedPacketContent string `protobuf:"bytes,3,opt,name=red_packet_content,json=redPacketContent,proto3" json:"red_packet_content,omitempty"` // 红包文字内容 + RedPacketAmount float32 `protobuf:"fixed32,6,opt,name=red_packet_amount,json=redPacketAmount,proto3" json:"red_packet_amount,omitempty"` // 红包金额 + RedPacketNums int32 `protobuf:"varint,5,opt,name=red_packet_nums,json=redPacketNums,proto3" json:"red_packet_nums,omitempty"` // 红包数量 + RedPacketBalanceAmount float32 `protobuf:"fixed32,7,opt,name=red_packet_balance_amount,json=redPacketBalanceAmount,proto3" json:"red_packet_balance_amount,omitempty"` // 红包余额 + ReceivedUserId int64 `protobuf:"varint,8,opt,name=received_user_id,json=receivedUserId,proto3" json:"received_user_id,omitempty"` // 领取用户id + ReceivedUserAmount float32 `protobuf:"fixed32,9,opt,name=received_user_amount,json=receivedUserAmount,proto3" json:"received_user_amount,omitempty"` // 领取用户金额 + ReceivedUserNickname string `protobuf:"bytes,10,opt,name=received_user_nickname,json=receivedUserNickname,proto3" json:"received_user_nickname,omitempty"` // 领取用户昵称 + RedPacketStatusType RedPacketStatusType `protobuf:"varint,11,opt,name=red_packet_status_type,json=redPacketStatusType,proto3,enum=pb.RedPacketStatusType" json:"red_packet_status_type,omitempty"` // 领取状态 + RedPacketId int64 `protobuf:"varint,12,opt,name=red_packet_id,json=redPacketId,proto3" json:"red_packet_id,omitempty"` // 红包id + SendRedPacketUid int64 `protobuf:"varint,13,opt,name=send_red_packet_uid,json=sendRedPacketUid,proto3" json:"send_red_packet_uid,omitempty"` // 红包发送者uid + SendRedPacketNickname string `protobuf:"bytes,14,opt,name=send_red_packet_nickname,json=sendRedPacketNickname,proto3" json:"send_red_packet_nickname,omitempty"` // 红包发送者昵称 + SendRedPacketAvatarUrl string `protobuf:"bytes,15,opt,name=send_red_packet_avatar_url,json=sendRedPacketAvatarUrl,proto3" json:"send_red_packet_avatar_url,omitempty"` // 红包发送者头像 + RedPacketSmallContent string `protobuf:"bytes,16,opt,name=red_packet_small_content,json=redPacketSmallContent,proto3" json:"red_packet_small_content,omitempty"` // 红包小文字内容 +} + +func (x *RED_PACKAGE) Reset() { + *x = RED_PACKAGE{} + if protoimpl.UnsafeEnabled { + mi := &file_connect_ext_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RED_PACKAGE) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RED_PACKAGE) ProtoMessage() {} + +func (x *RED_PACKAGE) ProtoReflect() protoreflect.Message { + mi := &file_connect_ext_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 RED_PACKAGE.ProtoReflect.Descriptor instead. +func (*RED_PACKAGE) Descriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{11} +} + +func (x *RED_PACKAGE) GetRedMessageType() RedPacketMessageType { + if x != nil { + return x.RedMessageType + } + return RedPacketMessageType_RMT_UNKNOWN +} + +func (x *RED_PACKAGE) GetRedPacketType() RedPacketType { + if x != nil { + return x.RedPacketType + } + return RedPacketType_RPT_UNKNOWN +} + +func (x *RED_PACKAGE) GetRedPacketContent() string { + if x != nil { + return x.RedPacketContent + } + return "" +} + +func (x *RED_PACKAGE) GetRedPacketAmount() float32 { + if x != nil { + return x.RedPacketAmount + } + return 0 +} + +func (x *RED_PACKAGE) GetRedPacketNums() int32 { + if x != nil { + return x.RedPacketNums + } + return 0 +} + +func (x *RED_PACKAGE) GetRedPacketBalanceAmount() float32 { + if x != nil { + return x.RedPacketBalanceAmount + } + return 0 +} + +func (x *RED_PACKAGE) GetReceivedUserId() int64 { + if x != nil { + return x.ReceivedUserId + } + return 0 +} + +func (x *RED_PACKAGE) GetReceivedUserAmount() float32 { + if x != nil { + return x.ReceivedUserAmount + } + return 0 +} + +func (x *RED_PACKAGE) GetReceivedUserNickname() string { + if x != nil { + return x.ReceivedUserNickname + } + return "" +} + +func (x *RED_PACKAGE) GetRedPacketStatusType() RedPacketStatusType { + if x != nil { + return x.RedPacketStatusType + } + return RedPacketStatusType_RPS_NOT_DRAW +} + +func (x *RED_PACKAGE) GetRedPacketId() int64 { + if x != nil { + return x.RedPacketId + } + return 0 +} + +func (x *RED_PACKAGE) GetSendRedPacketUid() int64 { + if x != nil { + return x.SendRedPacketUid + } + return 0 +} + +func (x *RED_PACKAGE) GetSendRedPacketNickname() string { + if x != nil { + return x.SendRedPacketNickname + } + return "" +} + +func (x *RED_PACKAGE) GetSendRedPacketAvatarUrl() string { + if x != nil { + return x.SendRedPacketAvatarUrl + } + return "" +} + +func (x *RED_PACKAGE) GetRedPacketSmallContent() string { + if x != nil { + return x.RedPacketSmallContent + } + return "" +} + +// 上行数据 +type Input struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type PackageType `protobuf:"varint,1,opt,name=type,proto3,enum=pb.PackageType" json:"type,omitempty"` // 包的类型 + RequestId int64 `protobuf:"varint,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // 请求id + Data []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` // 数据 +} + +func (x *Input) Reset() { + *x = Input{} + if protoimpl.UnsafeEnabled { + mi := &file_connect_ext_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Input) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Input) ProtoMessage() {} + +func (x *Input) ProtoReflect() protoreflect.Message { + mi := &file_connect_ext_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 Input.ProtoReflect.Descriptor instead. +func (*Input) Descriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{12} +} + +func (x *Input) GetType() PackageType { + if x != nil { + return x.Type + } + return PackageType_PT_UNKNOWN +} + +func (x *Input) GetRequestId() int64 { + if x != nil { + return x.RequestId + } + return 0 +} + +func (x *Input) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +// 下行数据 +type Output struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type PackageType `protobuf:"varint,1,opt,name=type,proto3,enum=pb.PackageType" json:"type,omitempty"` // 包的类型 + RequestId int64 `protobuf:"varint,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // 请求id + Code int32 `protobuf:"varint,3,opt,name=code,proto3" json:"code,omitempty"` // 错误码 + Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message,omitempty"` // 错误信息 + Data []byte `protobuf:"bytes,5,opt,name=data,proto3" json:"data,omitempty"` // 数据 +} + +func (x *Output) Reset() { + *x = Output{} + if protoimpl.UnsafeEnabled { + mi := &file_connect_ext_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Output) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Output) ProtoMessage() {} + +func (x *Output) ProtoReflect() protoreflect.Message { + mi := &file_connect_ext_proto_msgTypes[13] + 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 Output.ProtoReflect.Descriptor instead. +func (*Output) Descriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{13} +} + +func (x *Output) GetType() PackageType { + if x != nil { + return x.Type + } + return PackageType_PT_UNKNOWN +} + +func (x *Output) GetRequestId() int64 { + if x != nil { + return x.RequestId + } + return 0 +} + +func (x *Output) GetCode() int32 { + if x != nil { + return x.Code + } + return 0 +} + +func (x *Output) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *Output) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +// 设备登录,package_type:1 +type SignInInput struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeviceId int64 `protobuf:"varint,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"` // 设备id + UserId int64 `protobuf:"varint,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` // 用户id + Token string `protobuf:"bytes,3,opt,name=token,proto3" json:"token,omitempty"` // 秘钥 +} + +func (x *SignInInput) Reset() { + *x = SignInInput{} + if protoimpl.UnsafeEnabled { + mi := &file_connect_ext_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignInInput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignInInput) ProtoMessage() {} + +func (x *SignInInput) ProtoReflect() protoreflect.Message { + mi := &file_connect_ext_proto_msgTypes[14] + 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 SignInInput.ProtoReflect.Descriptor instead. +func (*SignInInput) Descriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{14} +} + +func (x *SignInInput) GetDeviceId() int64 { + if x != nil { + return x.DeviceId + } + return 0 +} + +func (x *SignInInput) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *SignInInput) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +// 消息同步请求,package_type:2 +type SyncInput struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Seq int64 `protobuf:"varint,1,opt,name=seq,proto3" json:"seq,omitempty"` // 客户端已经同步的序列号 +} + +func (x *SyncInput) Reset() { + *x = SyncInput{} + if protoimpl.UnsafeEnabled { + mi := &file_connect_ext_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SyncInput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SyncInput) ProtoMessage() {} + +func (x *SyncInput) ProtoReflect() protoreflect.Message { + mi := &file_connect_ext_proto_msgTypes[15] + 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 SyncInput.ProtoReflect.Descriptor instead. +func (*SyncInput) Descriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{15} +} + +func (x *SyncInput) GetSeq() int64 { + if x != nil { + return x.Seq + } + return 0 +} + +// 消息同步响应,package_type:2 +type SyncOutput struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Messages []*Message `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"` // 消息列表 + HasMore bool `protobuf:"varint,2,opt,name=has_more,json=hasMore,proto3" json:"has_more,omitempty"` // 是否有更多数据 +} + +func (x *SyncOutput) Reset() { + *x = SyncOutput{} + if protoimpl.UnsafeEnabled { + mi := &file_connect_ext_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SyncOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SyncOutput) ProtoMessage() {} + +func (x *SyncOutput) ProtoReflect() protoreflect.Message { + mi := &file_connect_ext_proto_msgTypes[16] + 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 SyncOutput.ProtoReflect.Descriptor instead. +func (*SyncOutput) Descriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{16} +} + +func (x *SyncOutput) GetMessages() []*Message { + if x != nil { + return x.Messages + } + return nil +} + +func (x *SyncOutput) GetHasMore() bool { + if x != nil { + return x.HasMore + } + return false +} + +// 订阅房间请求 +type SubscribeRoomInput struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RoomId int64 `protobuf:"varint,1,opt,name=room_id,json=roomId,proto3" json:"room_id,omitempty"` // 房间ID,如果为0,取消房间订阅 + Seq int64 `protobuf:"varint,2,opt,name=seq,proto3" json:"seq,omitempty"` // 消息消息序列号, +} + +func (x *SubscribeRoomInput) Reset() { + *x = SubscribeRoomInput{} + if protoimpl.UnsafeEnabled { + mi := &file_connect_ext_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubscribeRoomInput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubscribeRoomInput) ProtoMessage() {} + +func (x *SubscribeRoomInput) ProtoReflect() protoreflect.Message { + mi := &file_connect_ext_proto_msgTypes[17] + 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 SubscribeRoomInput.ProtoReflect.Descriptor instead. +func (*SubscribeRoomInput) Descriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{17} +} + +func (x *SubscribeRoomInput) GetRoomId() int64 { + if x != nil { + return x.RoomId + } + return 0 +} + +func (x *SubscribeRoomInput) GetSeq() int64 { + if x != nil { + return x.Seq + } + return 0 +} + +// 消息投递,package_type:4 +type MessageSend struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Message *Message `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` // 消息 +} + +func (x *MessageSend) Reset() { + *x = MessageSend{} + if protoimpl.UnsafeEnabled { + mi := &file_connect_ext_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MessageSend) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MessageSend) ProtoMessage() {} + +func (x *MessageSend) ProtoReflect() protoreflect.Message { + mi := &file_connect_ext_proto_msgTypes[18] + 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 MessageSend.ProtoReflect.Descriptor instead. +func (*MessageSend) Descriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{18} +} + +func (x *MessageSend) GetMessage() *Message { + if x != nil { + return x.Message + } + return nil +} + +// 投递消息回执,package_type:4 +type MessageACK struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeviceAck int64 `protobuf:"varint,2,opt,name=device_ack,json=deviceAck,proto3" json:"device_ack,omitempty"` // 设备收到消息的确认号 + ReceiveTime int64 `protobuf:"varint,3,opt,name=receive_time,json=receiveTime,proto3" json:"receive_time,omitempty"` // 消息接收时间戳,精确到毫秒 +} + +func (x *MessageACK) Reset() { + *x = MessageACK{} + if protoimpl.UnsafeEnabled { + mi := &file_connect_ext_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MessageACK) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MessageACK) ProtoMessage() {} + +func (x *MessageACK) ProtoReflect() protoreflect.Message { + mi := &file_connect_ext_proto_msgTypes[19] + 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 MessageACK.ProtoReflect.Descriptor instead. +func (*MessageACK) Descriptor() ([]byte, []int) { + return file_connect_ext_proto_rawDescGZIP(), []int{19} +} + +func (x *MessageACK) GetDeviceAck() int64 { + if x != nil { + return x.DeviceAck + } + return 0 +} + +func (x *MessageACK) GetReceiveTime() int64 { + if x != nil { + return x.ReceiveTime + } + return 0 +} + +var File_connect_ext_proto protoreflect.FileDescriptor + +var file_connect_ext_proto_rawDesc = []byte{ + 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0xdc, 0x02, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, + 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x35, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, + 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, + 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x1e, 0x0a, 0x0b, 0x74, 0x6f, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x03, 0x52, 0x09, 0x74, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, + 0x32, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x73, 0x65, 0x71, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x1b, + 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x62, + 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xc4, 0x01, 0x0a, 0x06, 0x53, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x12, 0x2f, 0x0a, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, + 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6e, + 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, + 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x22, 0x1a, 0x0a, + 0x04, 0x54, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, 0x3a, 0x0a, 0x04, 0x46, 0x61, 0x63, + 0x65, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x06, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x61, + 0x63, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, + 0x63, 0x65, 0x55, 0x72, 0x6c, 0x22, 0x59, 0x0a, 0x05, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x69, + 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, + 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, + 0x22, 0x7c, 0x0a, 0x05, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, + 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x68, 0x75, + 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x55, 0x72, 0x6c, 0x22, 0x50, + 0x0a, 0x04, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, + 0x22, 0x58, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, + 0x64, 0x65, 0x73, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, + 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x07, 0x43, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x1c, 0x0a, + 0x06, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x27, 0x0a, 0x06, 0x52, + 0x45, 0x43, 0x41, 0x4c, 0x4c, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x5f, + 0x73, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x65, 0x63, 0x61, 0x6c, + 0x6c, 0x53, 0x65, 0x71, 0x22, 0xaa, 0x06, 0x0a, 0x0b, 0x52, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, + 0x4b, 0x41, 0x47, 0x45, 0x12, 0x42, 0x0a, 0x10, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, + 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0e, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x0f, 0x72, 0x65, 0x64, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x10, 0x72, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x65, + 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, + 0x0f, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x4e, 0x75, 0x6d, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x16, 0x72, 0x65, 0x64, 0x50, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x28, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x16, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x69, + 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x16, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x13, 0x72, 0x65, 0x64, + 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x22, 0x0a, 0x0d, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x72, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x13, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x64, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x10, 0x73, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x55, 0x69, 0x64, 0x12, 0x37, 0x0a, 0x18, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x64, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x73, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x64, 0x50, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x1a, + 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, + 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x16, 0x73, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, + 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x37, 0x0a, 0x18, 0x72, 0x65, 0x64, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x72, 0x65, 0x64, 0x50, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x22, 0x5f, 0x0a, 0x05, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x23, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x61, + 0x63, 0x6b, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x8e, 0x01, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x23, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x70, 0x62, + 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0x59, 0x0a, 0x0b, 0x53, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, + 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x1d, + 0x0a, 0x09, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, + 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x71, 0x22, 0x50, 0x0a, + 0x0a, 0x53, 0x79, 0x6e, 0x63, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x27, 0x0a, 0x08, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, + 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x6f, 0x72, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x61, 0x73, 0x4d, 0x6f, 0x72, 0x65, 0x22, + 0x3f, 0x0a, 0x12, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x6f, 0x6f, 0x6d, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x10, + 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x71, + 0x22, 0x34, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x12, + 0x25, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x4e, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x41, 0x43, 0x4b, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, + 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x41, 0x63, 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x2a, 0x73, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, + 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x54, 0x5f, 0x53, 0x49, 0x47, 0x4e, + 0x5f, 0x49, 0x4e, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x54, 0x5f, 0x53, 0x59, 0x4e, 0x43, + 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x54, 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, 0x42, 0x45, + 0x41, 0x54, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, + 0x47, 0x45, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x54, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x43, + 0x52, 0x49, 0x42, 0x45, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x05, 0x2a, 0xb3, 0x01, 0x0a, 0x0b, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, + 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x4d, + 0x54, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x4d, 0x54, 0x5f, 0x46, + 0x41, 0x43, 0x45, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x54, 0x5f, 0x56, 0x4f, 0x49, 0x43, + 0x45, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x54, 0x5f, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x10, + 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x4d, 0x54, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x05, 0x12, 0x0f, + 0x0a, 0x0b, 0x4d, 0x54, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x12, + 0x0e, 0x0a, 0x0a, 0x4d, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x41, 0x4e, 0x44, 0x10, 0x07, 0x12, + 0x0d, 0x0a, 0x09, 0x4d, 0x54, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x08, 0x12, 0x0d, + 0x0a, 0x09, 0x4d, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x41, 0x4c, 0x4c, 0x10, 0x09, 0x12, 0x12, 0x0a, + 0x0e, 0x4d, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x41, 0x47, 0x45, 0x10, + 0x0a, 0x2a, 0x87, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x50, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, + 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x50, 0x54, 0x5f, 0x46, 0x52, 0x49, 0x45, + 0x4e, 0x44, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x50, 0x54, 0x5f, 0x47, 0x52, 0x4f, 0x55, + 0x50, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x50, + 0x54, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4c, 0x55, 0x43, 0x4b, 0x10, 0x03, 0x12, 0x17, + 0x0a, 0x13, 0x52, 0x50, 0x54, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x41, 0x4c, 0x4c, 0x59, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x50, 0x54, 0x5f, 0x53, + 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x46, 0x4f, 0x52, 0x10, 0x05, 0x2a, 0x43, 0x0a, 0x14, 0x52, + 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x4d, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, + 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x4d, 0x54, 0x5f, 0x53, 0x45, 0x4e, 0x44, + 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x4d, 0x54, 0x5f, 0x47, 0x52, 0x41, 0x42, 0x10, 0x02, + 0x2a, 0x5b, 0x0a, 0x13, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x52, 0x50, 0x53, 0x5f, 0x4e, + 0x4f, 0x54, 0x5f, 0x44, 0x52, 0x41, 0x57, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x50, 0x53, + 0x5f, 0x44, 0x52, 0x41, 0x57, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x50, + 0x53, 0x5f, 0x44, 0x52, 0x41, 0x57, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x10, 0x02, 0x12, 0x0e, 0x0a, + 0x0a, 0x52, 0x50, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x10, 0x03, 0x2a, 0x46, 0x0a, + 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, + 0x0a, 0x52, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, + 0x07, 0x52, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x54, + 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x54, 0x5f, 0x52, + 0x4f, 0x4f, 0x4d, 0x10, 0x03, 0x2a, 0x49, 0x0a, 0x0a, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, + 0x4e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x54, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, + 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x10, 0x02, 0x12, + 0x0f, 0x0a, 0x0b, 0x53, 0x54, 0x5f, 0x42, 0x55, 0x53, 0x49, 0x4e, 0x45, 0x53, 0x53, 0x10, 0x03, + 0x2a, 0x3d, 0x0a, 0x0d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, + 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x01, + 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x53, 0x5f, 0x52, 0x45, 0x43, 0x41, 0x4c, 0x4c, 0x10, 0x02, 0x2a, + 0x51, 0x0a, 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, + 0x55, 0x53, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, + 0x41, 0x4c, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x55, 0x53, + 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, + 0x10, 0x01, 0x42, 0x0d, 0x5a, 0x0b, 0x67, 0x69, 0x6d, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x62, + 0x2f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_connect_ext_proto_rawDescOnce sync.Once + file_connect_ext_proto_rawDescData = file_connect_ext_proto_rawDesc +) + +func file_connect_ext_proto_rawDescGZIP() []byte { + file_connect_ext_proto_rawDescOnce.Do(func() { + file_connect_ext_proto_rawDescData = protoimpl.X.CompressGZIP(file_connect_ext_proto_rawDescData) + }) + return file_connect_ext_proto_rawDescData +} + +var file_connect_ext_proto_enumTypes = make([]protoimpl.EnumInfo, 9) +var file_connect_ext_proto_msgTypes = make([]protoimpl.MessageInfo, 20) +var file_connect_ext_proto_goTypes = []interface{}{ + (PackageType)(0), // 0: pb.PackageType + (MessageType)(0), // 1: pb.MessageType + (RedPacketType)(0), // 2: pb.RedPacketType + (RedPacketMessageType)(0), // 3: pb.RedPacketMessageType + (RedPacketStatusType)(0), // 4: pb.RedPacketStatusType + (ReceiverType)(0), // 5: pb.ReceiverType + (SenderType)(0), // 6: pb.SenderType + (MessageStatus)(0), // 7: pb.MessageStatus + (GroupUserStatusType)(0), // 8: pb.GroupUserStatusType + (*Message)(nil), // 9: pb.Message + (*Sender)(nil), // 10: pb.Sender + (*Text)(nil), // 11: pb.Text + (*Face)(nil), // 12: pb.Face + (*Voice)(nil), // 13: pb.Voice + (*Image)(nil), // 14: pb.Image + (*File)(nil), // 15: pb.File + (*Location)(nil), // 16: pb.Location + (*Command)(nil), // 17: pb.Command + (*Custom)(nil), // 18: pb.Custom + (*RECALL)(nil), // 19: pb.RECALL + (*RED_PACKAGE)(nil), // 20: pb.RED_PACKAGE + (*Input)(nil), // 21: pb.Input + (*Output)(nil), // 22: pb.Output + (*SignInInput)(nil), // 23: pb.SignInInput + (*SyncInput)(nil), // 24: pb.SyncInput + (*SyncOutput)(nil), // 25: pb.SyncOutput + (*SubscribeRoomInput)(nil), // 26: pb.SubscribeRoomInput + (*MessageSend)(nil), // 27: pb.MessageSend + (*MessageACK)(nil), // 28: pb.MessageACK +} +var file_connect_ext_proto_depIdxs = []int32{ + 10, // 0: pb.Message.sender:type_name -> pb.Sender + 5, // 1: pb.Message.receiver_type:type_name -> pb.ReceiverType + 1, // 2: pb.Message.message_type:type_name -> pb.MessageType + 7, // 3: pb.Message.status:type_name -> pb.MessageStatus + 6, // 4: pb.Sender.sender_type:type_name -> pb.SenderType + 3, // 5: pb.RED_PACKAGE.red_message_type:type_name -> pb.RedPacketMessageType + 2, // 6: pb.RED_PACKAGE.red_packet_type:type_name -> pb.RedPacketType + 4, // 7: pb.RED_PACKAGE.red_packet_status_type:type_name -> pb.RedPacketStatusType + 0, // 8: pb.Input.type:type_name -> pb.PackageType + 0, // 9: pb.Output.type:type_name -> pb.PackageType + 9, // 10: pb.SyncOutput.messages:type_name -> pb.Message + 9, // 11: pb.MessageSend.message:type_name -> pb.Message + 12, // [12:12] is the sub-list for method output_type + 12, // [12:12] is the sub-list for method input_type + 12, // [12:12] is the sub-list for extension type_name + 12, // [12:12] is the sub-list for extension extendee + 0, // [0:12] is the sub-list for field type_name +} + +func init() { file_connect_ext_proto_init() } +func file_connect_ext_proto_init() { + if File_connect_ext_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_connect_ext_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_connect_ext_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Sender); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_connect_ext_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Text); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_connect_ext_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Face); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_connect_ext_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Voice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_connect_ext_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Image); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_connect_ext_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*File); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_connect_ext_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Location); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_connect_ext_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Command); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_connect_ext_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Custom); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_connect_ext_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RECALL); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_connect_ext_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RED_PACKAGE); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_connect_ext_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Input); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_connect_ext_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Output); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_connect_ext_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignInInput); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_connect_ext_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SyncInput); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_connect_ext_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SyncOutput); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_connect_ext_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubscribeRoomInput); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_connect_ext_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessageSend); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_connect_ext_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessageACK); 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_connect_ext_proto_rawDesc, + NumEnums: 9, + NumMessages: 20, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_connect_ext_proto_goTypes, + DependencyIndexes: file_connect_ext_proto_depIdxs, + EnumInfos: file_connect_ext_proto_enumTypes, + MessageInfos: file_connect_ext_proto_msgTypes, + }.Build() + File_connect_ext_proto = out.File + file_connect_ext_proto_rawDesc = nil + file_connect_ext_proto_goTypes = nil + file_connect_ext_proto_depIdxs = nil +} diff --git a/pkg/pb/im.connect.int.pb.go b/pkg/pb/im.connect.int.pb.go new file mode 100644 index 0000000..eb72b6d --- /dev/null +++ b/pkg/pb/im.connect.int.pb.go @@ -0,0 +1,395 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.14.0 +// source: connect.int.proto_back + +package pb + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + 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 DeliverMessageReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeviceId int64 `protobuf:"varint,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"` // 设备id + MessageSend *MessageSend `protobuf:"bytes,2,opt,name=message_send,json=messageSend,proto3" json:"message_send,omitempty"` // 数据 +} + +func (x *DeliverMessageReq) Reset() { + *x = DeliverMessageReq{} + if protoimpl.UnsafeEnabled { + mi := &file_connect_int_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeliverMessageReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeliverMessageReq) ProtoMessage() {} + +func (x *DeliverMessageReq) ProtoReflect() protoreflect.Message { + mi := &file_connect_int_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 DeliverMessageReq.ProtoReflect.Descriptor instead. +func (*DeliverMessageReq) Descriptor() ([]byte, []int) { + return file_connect_int_proto_rawDescGZIP(), []int{0} +} + +func (x *DeliverMessageReq) GetDeviceId() int64 { + if x != nil { + return x.DeviceId + } + return 0 +} + +func (x *DeliverMessageReq) GetMessageSend() *MessageSend { + if x != nil { + return x.MessageSend + } + return nil +} + +// 房间推送 +type PushRoomMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RoomId int64 `protobuf:"varint,1,opt,name=room_id,json=roomId,proto3" json:"room_id,omitempty"` // 设备id + MessageSend *MessageSend `protobuf:"bytes,2,opt,name=message_send,json=messageSend,proto3" json:"message_send,omitempty"` // 数据 +} + +func (x *PushRoomMsg) Reset() { + *x = PushRoomMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_connect_int_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PushRoomMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PushRoomMsg) ProtoMessage() {} + +func (x *PushRoomMsg) ProtoReflect() protoreflect.Message { + mi := &file_connect_int_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 PushRoomMsg.ProtoReflect.Descriptor instead. +func (*PushRoomMsg) Descriptor() ([]byte, []int) { + return file_connect_int_proto_rawDescGZIP(), []int{1} +} + +func (x *PushRoomMsg) GetRoomId() int64 { + if x != nil { + return x.RoomId + } + return 0 +} + +func (x *PushRoomMsg) GetMessageSend() *MessageSend { + if x != nil { + return x.MessageSend + } + return nil +} + +// 房间推送 +type PushAllMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MessageSend *MessageSend `protobuf:"bytes,2,opt,name=message_send,json=messageSend,proto3" json:"message_send,omitempty"` // 数据 +} + +func (x *PushAllMsg) Reset() { + *x = PushAllMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_connect_int_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PushAllMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PushAllMsg) ProtoMessage() {} + +func (x *PushAllMsg) ProtoReflect() protoreflect.Message { + mi := &file_connect_int_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 PushAllMsg.ProtoReflect.Descriptor instead. +func (*PushAllMsg) Descriptor() ([]byte, []int) { + return file_connect_int_proto_rawDescGZIP(), []int{2} +} + +func (x *PushAllMsg) GetMessageSend() *MessageSend { + if x != nil { + return x.MessageSend + } + return nil +} + +var File_connect_int_proto protoreflect.FileDescriptor + +var file_connect_int_proto_rawDesc = []byte{ + 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x69, 0x6e, 0x74, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x64, 0x0a, 0x11, + 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x32, + 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, + 0x6e, 0x64, 0x22, 0x5a, 0x0a, 0x0b, 0x50, 0x75, 0x73, 0x68, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x73, + 0x67, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x0c, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, + 0x64, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x22, 0x40, + 0x0a, 0x0a, 0x50, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x4d, 0x73, 0x67, 0x12, 0x32, 0x0a, 0x0c, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, + 0x65, 0x6e, 0x64, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, 0x64, + 0x32, 0x40, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x74, 0x12, 0x32, + 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x42, 0x0d, 0x5a, 0x0b, 0x67, 0x69, 0x6d, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x62, + 0x2f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_connect_int_proto_rawDescOnce sync.Once + file_connect_int_proto_rawDescData = file_connect_int_proto_rawDesc +) + +func file_connect_int_proto_rawDescGZIP() []byte { + file_connect_int_proto_rawDescOnce.Do(func() { + file_connect_int_proto_rawDescData = protoimpl.X.CompressGZIP(file_connect_int_proto_rawDescData) + }) + return file_connect_int_proto_rawDescData +} + +var file_connect_int_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_connect_int_proto_goTypes = []interface{}{ + (*DeliverMessageReq)(nil), // 0: pb.DeliverMessageReq + (*PushRoomMsg)(nil), // 1: pb.PushRoomMsg + (*PushAllMsg)(nil), // 2: pb.PushAllMsg + (*MessageSend)(nil), // 3: pb.MessageSend + (*Empty)(nil), // 4: pb.Empty +} +var file_connect_int_proto_depIdxs = []int32{ + 3, // 0: pb.DeliverMessageReq.message_send:type_name -> pb.MessageSend + 3, // 1: pb.PushRoomMsg.message_send:type_name -> pb.MessageSend + 3, // 2: pb.PushAllMsg.message_send:type_name -> pb.MessageSend + 0, // 3: pb.ConnectInt.DeliverMessage:input_type -> pb.DeliverMessageReq + 4, // 4: pb.ConnectInt.DeliverMessage:output_type -> pb.Empty + 4, // [4:5] is the sub-list for method output_type + 3, // [3:4] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_connect_int_proto_init() } +func file_connect_int_proto_init() { + if File_connect_int_proto != nil { + return + } + file_common_ext_proto_init() + file_connect_ext_proto_init() + if !protoimpl.UnsafeEnabled { + file_connect_int_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeliverMessageReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_connect_int_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PushRoomMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_connect_int_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PushAllMsg); 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_connect_int_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_connect_int_proto_goTypes, + DependencyIndexes: file_connect_int_proto_depIdxs, + MessageInfos: file_connect_int_proto_msgTypes, + }.Build() + File_connect_int_proto = out.File + file_connect_int_proto_rawDesc = nil + file_connect_int_proto_goTypes = nil + file_connect_int_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated comm +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// ConnectIntClient is the client API for ConnectInt service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type ConnectIntClient interface { + // 消息投递 + DeliverMessage(ctx context.Context, in *DeliverMessageReq, opts ...grpc.CallOption) (*Empty, error) +} + +type connectIntClient struct { + cc grpc.ClientConnInterface +} + +func NewConnectIntClient(cc grpc.ClientConnInterface) ConnectIntClient { + return &connectIntClient{cc} +} + +func (c *connectIntClient) DeliverMessage(ctx context.Context, in *DeliverMessageReq, opts ...grpc.CallOption) (*Empty, error) { + out := new(Empty) + err := c.cc.Invoke(ctx, "/pb.ConnectInt/DeliverMessage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ConnectIntServer is the server API for ConnectInt service. +type ConnectIntServer interface { + // 消息投递 + DeliverMessage(context.Context, *DeliverMessageReq) (*Empty, error) +} + +// UnimplementedConnectIntServer can be embedded to have forward compatible implementations. +type UnimplementedConnectIntServer struct { +} + +func (*UnimplementedConnectIntServer) DeliverMessage(context.Context, *DeliverMessageReq) (*Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeliverMessage not implemented") +} + +func RegisterConnectIntServer(s *grpc.Server, srv ConnectIntServer) { + s.RegisterService(&_ConnectInt_serviceDesc, srv) +} + +func _ConnectInt_DeliverMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeliverMessageReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConnectIntServer).DeliverMessage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.ConnectInt/DeliverMessage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConnectIntServer).DeliverMessage(ctx, req.(*DeliverMessageReq)) + } + return interceptor(ctx, in, info, handler) +} + +var _ConnectInt_serviceDesc = grpc.ServiceDesc{ + ServiceName: "pb.ConnectInt", + HandlerType: (*ConnectIntServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "DeliverMessage", + Handler: _ConnectInt_DeliverMessage_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "connect.int.proto_back", +} diff --git a/pkg/pb/im.logic.ext.pb.go b/pkg/pb/im.logic.ext.pb.go new file mode 100644 index 0000000..70a6ec6 --- /dev/null +++ b/pkg/pb/im.logic.ext.pb.go @@ -0,0 +1,3587 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.20.0--rc1 +// source: logic.ext.proto + +package pb + +import ( + "context" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/runtime/protoimpl" + "reflect" + "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 MemberType int32 + +const ( + MemberType_GMT_UNKNOWN MemberType = 0 // 未知 + MemberType_GMT_ADMIN MemberType = 1 // 管理员 + MemberType_GMT_MEMBER MemberType = 2 // 成员 +) + +// Enum value maps for MemberType. +var ( + MemberType_name = map[int32]string{ + 0: "GMT_UNKNOWN", + 1: "GMT_ADMIN", + 2: "GMT_MEMBER", + } + MemberType_value = map[string]int32{ + "GMT_UNKNOWN": 0, + "GMT_ADMIN": 1, + "GMT_MEMBER": 2, + } +) + +func (x MemberType) Enum() *MemberType { + p := new(MemberType) + *p = x + return p +} + +func (x MemberType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MemberType) Descriptor() protoreflect.EnumDescriptor { + return file_logic_ext_proto_enumTypes[0].Descriptor() +} + +func (MemberType) Type() protoreflect.EnumType { + return &file_logic_ext_proto_enumTypes[0] +} + +func (x MemberType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MemberType.Descriptor instead. +func (MemberType) EnumDescriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{0} +} + +type RegisterDeviceReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type int32 `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"` // 设备类型 + Brand string `protobuf:"bytes,3,opt,name=brand,proto3" json:"brand,omitempty"` // 厂商 + Model string `protobuf:"bytes,4,opt,name=model,proto3" json:"model,omitempty"` // 机型 + SystemVersion string `protobuf:"bytes,5,opt,name=system_version,json=systemVersion,proto3" json:"system_version,omitempty"` // 系统版本 + SdkVersion string `protobuf:"bytes,6,opt,name=sdk_version,json=sdkVersion,proto3" json:"sdk_version,omitempty"` // sdk版本号 +} + +func (x *RegisterDeviceReq) Reset() { + *x = RegisterDeviceReq{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RegisterDeviceReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterDeviceReq) ProtoMessage() {} + +func (x *RegisterDeviceReq) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_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 RegisterDeviceReq.ProtoReflect.Descriptor instead. +func (*RegisterDeviceReq) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{0} +} + +func (x *RegisterDeviceReq) GetType() int32 { + if x != nil { + return x.Type + } + return 0 +} + +func (x *RegisterDeviceReq) GetBrand() string { + if x != nil { + return x.Brand + } + return "" +} + +func (x *RegisterDeviceReq) GetModel() string { + if x != nil { + return x.Model + } + return "" +} + +func (x *RegisterDeviceReq) GetSystemVersion() string { + if x != nil { + return x.SystemVersion + } + return "" +} + +func (x *RegisterDeviceReq) GetSdkVersion() string { + if x != nil { + return x.SdkVersion + } + return "" +} + +type RegisterDeviceResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeviceId int64 `protobuf:"varint,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"` // 设备id +} + +func (x *RegisterDeviceResp) Reset() { + *x = RegisterDeviceResp{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RegisterDeviceResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterDeviceResp) ProtoMessage() {} + +func (x *RegisterDeviceResp) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_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 RegisterDeviceResp.ProtoReflect.Descriptor instead. +func (*RegisterDeviceResp) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{1} +} + +func (x *RegisterDeviceResp) GetDeviceId() int64 { + if x != nil { + return x.DeviceId + } + return 0 +} + +type SendMessageReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ReceiverType ReceiverType `protobuf:"varint,1,opt,name=receiver_type,json=receiverType,proto3,enum=pb.ReceiverType" json:"receiver_type,omitempty"` // 接收者类型,1:user;2:group + ReceiverId int64 `protobuf:"varint,2,opt,name=receiver_id,json=receiverId,proto3" json:"receiver_id,omitempty"` // 用户id或者群组id + ToUserIds []int64 `protobuf:"varint,3,rep,packed,name=to_user_ids,json=toUserIds,proto3" json:"to_user_ids,omitempty"` // 需要@的用户id列表 + MessageType MessageType `protobuf:"varint,4,opt,name=message_type,json=messageType,proto3,enum=pb.MessageType" json:"message_type,omitempty"` // 消息类型 + MessageContent []byte `protobuf:"bytes,5,opt,name=message_content,json=messageContent,proto3" json:"message_content,omitempty"` // 消息内容 + SendTime int64 `protobuf:"varint,6,opt,name=send_time,json=sendTime,proto3" json:"send_time,omitempty"` // 消息发送时间戳,精确到毫秒 + IsPersist bool `protobuf:"varint,7,opt,name=is_persist,json=isPersist,proto3" json:"is_persist,omitempty"` // 是否将消息持久化到数据库 + MessageContentBack string `protobuf:"bytes,8,opt,name=message_content_back,json=messageContentBack,proto3" json:"message_content_back,omitempty"` +} + +func (x *SendMessageReq) Reset() { + *x = SendMessageReq{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendMessageReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendMessageReq) ProtoMessage() {} + +func (x *SendMessageReq) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_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 SendMessageReq.ProtoReflect.Descriptor instead. +func (*SendMessageReq) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{2} +} + +func (x *SendMessageReq) GetReceiverType() ReceiverType { + if x != nil { + return x.ReceiverType + } + return ReceiverType_RT_UNKNOWN +} + +func (x *SendMessageReq) GetReceiverId() int64 { + if x != nil { + return x.ReceiverId + } + return 0 +} + +func (x *SendMessageReq) GetToUserIds() []int64 { + if x != nil { + return x.ToUserIds + } + return nil +} + +func (x *SendMessageReq) GetMessageType() MessageType { + if x != nil { + return x.MessageType + } + return MessageType_MT_UNKNOWN +} + +func (x *SendMessageReq) GetMessageContent() []byte { + if x != nil { + return x.MessageContent + } + return nil +} + +func (x *SendMessageReq) GetSendTime() int64 { + if x != nil { + return x.SendTime + } + return 0 +} + +func (x *SendMessageReq) GetIsPersist() bool { + if x != nil { + return x.IsPersist + } + return false +} + +func (x *SendMessageReq) GetMessageContentBack() string { + if x != nil { + return x.MessageContentBack + } + return "" +} + +type SendMessageResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Seq int64 `protobuf:"varint,1,opt,name=seq,proto3" json:"seq,omitempty"` // 消息序列号 +} + +func (x *SendMessageResp) Reset() { + *x = SendMessageResp{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendMessageResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendMessageResp) ProtoMessage() {} + +func (x *SendMessageResp) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_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 SendMessageResp.ProtoReflect.Descriptor instead. +func (*SendMessageResp) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{3} +} + +func (x *SendMessageResp) GetSeq() int64 { + if x != nil { + return x.Seq + } + return 0 +} + +type RecallMessageReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ReceiverType ReceiverType `protobuf:"varint,1,opt,name=receiver_type,json=receiverType,proto3,enum=pb.ReceiverType" json:"receiver_type,omitempty"` // 接收者类型,1:user;2:group + ReceiverId int64 `protobuf:"varint,2,opt,name=receiver_id,json=receiverId,proto3" json:"receiver_id,omitempty"` // 用户id或者群组id + ToUserIds []int64 `protobuf:"varint,3,rep,packed,name=to_user_ids,json=toUserIds,proto3" json:"to_user_ids,omitempty"` // 需要@的用户id列表 + MessageType MessageType `protobuf:"varint,4,opt,name=message_type,json=messageType,proto3,enum=pb.MessageType" json:"message_type,omitempty"` // 消息类型 + MessageContent []byte `protobuf:"bytes,5,opt,name=message_content,json=messageContent,proto3" json:"message_content,omitempty"` // 消息内容 + SendTime int64 `protobuf:"varint,6,opt,name=send_time,json=sendTime,proto3" json:"send_time,omitempty"` // 消息发送时间戳,精确到毫秒 + IsPersist bool `protobuf:"varint,7,opt,name=is_persist,json=isPersist,proto3" json:"is_persist,omitempty"` // 是否将消息持久化到数据库 + MessageContentBack string `protobuf:"bytes,8,opt,name=message_content_back,json=messageContentBack,proto3" json:"message_content_back,omitempty"` +} + +func (x *RecallMessageReq) Reset() { + *x = RecallMessageReq{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RecallMessageReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RecallMessageReq) ProtoMessage() {} + +func (x *RecallMessageReq) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_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 RecallMessageReq.ProtoReflect.Descriptor instead. +func (*RecallMessageReq) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{4} +} + +func (x *RecallMessageReq) GetReceiverType() ReceiverType { + if x != nil { + return x.ReceiverType + } + return ReceiverType_RT_UNKNOWN +} + +func (x *RecallMessageReq) GetReceiverId() int64 { + if x != nil { + return x.ReceiverId + } + return 0 +} + +func (x *RecallMessageReq) GetToUserIds() []int64 { + if x != nil { + return x.ToUserIds + } + return nil +} + +func (x *RecallMessageReq) GetMessageType() MessageType { + if x != nil { + return x.MessageType + } + return MessageType_MT_UNKNOWN +} + +func (x *RecallMessageReq) GetMessageContent() []byte { + if x != nil { + return x.MessageContent + } + return nil +} + +func (x *RecallMessageReq) GetSendTime() int64 { + if x != nil { + return x.SendTime + } + return 0 +} + +func (x *RecallMessageReq) GetIsPersist() bool { + if x != nil { + return x.IsPersist + } + return false +} + +func (x *RecallMessageReq) GetMessageContentBack() string { + if x != nil { + return x.MessageContentBack + } + return "" +} + +type RecallMessageResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Seq int64 `protobuf:"varint,1,opt,name=seq,proto3" json:"seq,omitempty"` // 消息序列号 +} + +func (x *RecallMessageResp) Reset() { + *x = RecallMessageResp{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RecallMessageResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RecallMessageResp) ProtoMessage() {} + +func (x *RecallMessageResp) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_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 RecallMessageResp.ProtoReflect.Descriptor instead. +func (*RecallMessageResp) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{5} +} + +func (x *RecallMessageResp) GetSeq() int64 { + if x != nil { + return x.Seq + } + return 0 +} + +type SendRedPacketReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ReceiverType ReceiverType `protobuf:"varint,1,opt,name=receiver_type,json=receiverType,proto3,enum=pb.ReceiverType" json:"receiver_type,omitempty"` // 接收者类型,1:user;2:group + ReceiverId int64 `protobuf:"varint,2,opt,name=receiver_id,json=receiverId,proto3" json:"receiver_id,omitempty"` // 用户id或者群组id + MessageType MessageType `protobuf:"varint,3,opt,name=message_type,json=messageType,proto3,enum=pb.MessageType" json:"message_type,omitempty"` // 消息类型 + MessageContent []byte `protobuf:"bytes,4,opt,name=message_content,json=messageContent,proto3" json:"message_content,omitempty"` // 消息内容 + SendTime int64 `protobuf:"varint,5,opt,name=send_time,json=sendTime,proto3" json:"send_time,omitempty"` // 消息发送时间戳,精确到毫秒 + ToUserIds []int64 `protobuf:"varint,6,rep,packed,name=to_user_ids,json=toUserIds,proto3" json:"to_user_ids,omitempty"` // 红包给到哪些用户(专属红包) + MessageContentBack string `protobuf:"bytes,7,opt,name=message_content_back,json=messageContentBack,proto3" json:"message_content_back,omitempty"` +} + +func (x *SendRedPacketReq) Reset() { + *x = SendRedPacketReq{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendRedPacketReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendRedPacketReq) ProtoMessage() {} + +func (x *SendRedPacketReq) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_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 SendRedPacketReq.ProtoReflect.Descriptor instead. +func (*SendRedPacketReq) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{6} +} + +func (x *SendRedPacketReq) GetReceiverType() ReceiverType { + if x != nil { + return x.ReceiverType + } + return ReceiverType_RT_UNKNOWN +} + +func (x *SendRedPacketReq) GetReceiverId() int64 { + if x != nil { + return x.ReceiverId + } + return 0 +} + +func (x *SendRedPacketReq) GetMessageType() MessageType { + if x != nil { + return x.MessageType + } + return MessageType_MT_UNKNOWN +} + +func (x *SendRedPacketReq) GetMessageContent() []byte { + if x != nil { + return x.MessageContent + } + return nil +} + +func (x *SendRedPacketReq) GetSendTime() int64 { + if x != nil { + return x.SendTime + } + return 0 +} + +func (x *SendRedPacketReq) GetToUserIds() []int64 { + if x != nil { + return x.ToUserIds + } + return nil +} + +func (x *SendRedPacketReq) GetMessageContentBack() string { + if x != nil { + return x.MessageContentBack + } + return "" +} + +type SendRedPacketResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Seq int64 `protobuf:"varint,1,opt,name=seq,proto3" json:"seq,omitempty"` // 消息序列号 +} + +func (x *SendRedPacketResp) Reset() { + *x = SendRedPacketResp{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendRedPacketResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendRedPacketResp) ProtoMessage() {} + +func (x *SendRedPacketResp) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_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 SendRedPacketResp.ProtoReflect.Descriptor instead. +func (*SendRedPacketResp) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{7} +} + +func (x *SendRedPacketResp) GetSeq() int64 { + if x != nil { + return x.Seq + } + return 0 +} + +type PushRoomReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RoomId int64 `protobuf:"varint,1,opt,name=room_id,json=roomId,proto3" json:"room_id,omitempty"` // 房间id + MessageType MessageType `protobuf:"varint,2,opt,name=message_type,json=messageType,proto3,enum=pb.MessageType" json:"message_type,omitempty"` // 消息类型 + MessageContent []byte `protobuf:"bytes,3,opt,name=message_content,json=messageContent,proto3" json:"message_content,omitempty"` // 消息内容 + SendTime int64 `protobuf:"varint,4,opt,name=send_time,json=sendTime,proto3" json:"send_time,omitempty"` // 消息发送时间戳,精确到毫秒 + IsPersist bool `protobuf:"varint,5,opt,name=is_persist,json=isPersist,proto3" json:"is_persist,omitempty"` // 是否将消息持久化 + IsPriority bool `protobuf:"varint,6,opt,name=is_priority,json=isPriority,proto3" json:"is_priority,omitempty"` // 是否优先推送 +} + +func (x *PushRoomReq) Reset() { + *x = PushRoomReq{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PushRoomReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PushRoomReq) ProtoMessage() {} + +func (x *PushRoomReq) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_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 PushRoomReq.ProtoReflect.Descriptor instead. +func (*PushRoomReq) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{8} +} + +func (x *PushRoomReq) GetRoomId() int64 { + if x != nil { + return x.RoomId + } + return 0 +} + +func (x *PushRoomReq) GetMessageType() MessageType { + if x != nil { + return x.MessageType + } + return MessageType_MT_UNKNOWN +} + +func (x *PushRoomReq) GetMessageContent() []byte { + if x != nil { + return x.MessageContent + } + return nil +} + +func (x *PushRoomReq) GetSendTime() int64 { + if x != nil { + return x.SendTime + } + return 0 +} + +func (x *PushRoomReq) GetIsPersist() bool { + if x != nil { + return x.IsPersist + } + return false +} + +func (x *PushRoomReq) GetIsPriority() bool { + if x != nil { + return x.IsPriority + } + return false +} + +type AddFriendReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FriendId int64 `protobuf:"varint,1,opt,name=friend_id,json=friendId,proto3" json:"friend_id,omitempty"` // 用户id + Remarks string `protobuf:"bytes,2,opt,name=remarks,proto3" json:"remarks,omitempty"` // 备注 + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` // 描述 +} + +func (x *AddFriendReq) Reset() { + *x = AddFriendReq{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddFriendReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddFriendReq) ProtoMessage() {} + +func (x *AddFriendReq) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_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 AddFriendReq.ProtoReflect.Descriptor instead. +func (*AddFriendReq) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{9} +} + +func (x *AddFriendReq) GetFriendId() int64 { + if x != nil { + return x.FriendId + } + return 0 +} + +func (x *AddFriendReq) GetRemarks() string { + if x != nil { + return x.Remarks + } + return "" +} + +func (x *AddFriendReq) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +type DeleteFriendReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int64 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` // 用户id +} + +func (x *DeleteFriendReq) Reset() { + *x = DeleteFriendReq{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteFriendReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteFriendReq) ProtoMessage() {} + +func (x *DeleteFriendReq) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_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 DeleteFriendReq.ProtoReflect.Descriptor instead. +func (*DeleteFriendReq) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{10} +} + +func (x *DeleteFriendReq) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +type AgreeAddFriendReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int64 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` // 用户id + Remarks string `protobuf:"bytes,2,opt,name=remarks,proto3" json:"remarks,omitempty"` // 备注 +} + +func (x *AgreeAddFriendReq) Reset() { + *x = AgreeAddFriendReq{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AgreeAddFriendReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AgreeAddFriendReq) ProtoMessage() {} + +func (x *AgreeAddFriendReq) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_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 AgreeAddFriendReq.ProtoReflect.Descriptor instead. +func (*AgreeAddFriendReq) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{11} +} + +func (x *AgreeAddFriendReq) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *AgreeAddFriendReq) GetRemarks() string { + if x != nil { + return x.Remarks + } + return "" +} + +type SetFriendReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FriendId int64 `protobuf:"varint,1,opt,name=friend_id,json=friendId,proto3" json:"friend_id,omitempty"` // 好友id + Remarks string `protobuf:"bytes,2,opt,name=remarks,proto3" json:"remarks,omitempty"` // 备注 + Extra string `protobuf:"bytes,8,opt,name=extra,proto3" json:"extra,omitempty"` // 附加字段 +} + +func (x *SetFriendReq) Reset() { + *x = SetFriendReq{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetFriendReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetFriendReq) ProtoMessage() {} + +func (x *SetFriendReq) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_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 SetFriendReq.ProtoReflect.Descriptor instead. +func (*SetFriendReq) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{12} +} + +func (x *SetFriendReq) GetFriendId() int64 { + if x != nil { + return x.FriendId + } + return 0 +} + +func (x *SetFriendReq) GetRemarks() string { + if x != nil { + return x.Remarks + } + return "" +} + +func (x *SetFriendReq) GetExtra() string { + if x != nil { + return x.Extra + } + return "" +} + +type SetFriendResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FriendId int64 `protobuf:"varint,1,opt,name=friend_id,json=friendId,proto3" json:"friend_id,omitempty"` // 好友id + Remarks string `protobuf:"bytes,2,opt,name=remarks,proto3" json:"remarks,omitempty"` // 备注 + Extra string `protobuf:"bytes,8,opt,name=extra,proto3" json:"extra,omitempty"` // 附加字段 +} + +func (x *SetFriendResp) Reset() { + *x = SetFriendResp{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetFriendResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetFriendResp) ProtoMessage() {} + +func (x *SetFriendResp) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_proto_msgTypes[13] + 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 SetFriendResp.ProtoReflect.Descriptor instead. +func (*SetFriendResp) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{13} +} + +func (x *SetFriendResp) GetFriendId() int64 { + if x != nil { + return x.FriendId + } + return 0 +} + +func (x *SetFriendResp) GetRemarks() string { + if x != nil { + return x.Remarks + } + return "" +} + +func (x *SetFriendResp) GetExtra() string { + if x != nil { + return x.Extra + } + return "" +} + +type Friend struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int64 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` // 用户id + PhoneNumber string `protobuf:"bytes,2,opt,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"` // 电话号码 + Nickname string `protobuf:"bytes,3,opt,name=nickname,proto3" json:"nickname,omitempty"` // 昵称 + Sex int32 `protobuf:"varint,4,opt,name=sex,proto3" json:"sex,omitempty"` // 性别 + AvatarUrl string `protobuf:"bytes,5,opt,name=avatar_url,json=avatarUrl,proto3" json:"avatar_url,omitempty"` // 头像地址 + UserExtra string `protobuf:"bytes,6,opt,name=user_extra,json=userExtra,proto3" json:"user_extra,omitempty"` // 用户附加字段 + Remarks string `protobuf:"bytes,7,opt,name=remarks,proto3" json:"remarks,omitempty"` // 备注 + Extra string `protobuf:"bytes,8,opt,name=extra,proto3" json:"extra,omitempty"` // 附加字段 +} + +func (x *Friend) Reset() { + *x = Friend{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Friend) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Friend) ProtoMessage() {} + +func (x *Friend) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_proto_msgTypes[14] + 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 Friend.ProtoReflect.Descriptor instead. +func (*Friend) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{14} +} + +func (x *Friend) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *Friend) GetPhoneNumber() string { + if x != nil { + return x.PhoneNumber + } + return "" +} + +func (x *Friend) GetNickname() string { + if x != nil { + return x.Nickname + } + return "" +} + +func (x *Friend) GetSex() int32 { + if x != nil { + return x.Sex + } + return 0 +} + +func (x *Friend) GetAvatarUrl() string { + if x != nil { + return x.AvatarUrl + } + return "" +} + +func (x *Friend) GetUserExtra() string { + if x != nil { + return x.UserExtra + } + return "" +} + +func (x *Friend) GetRemarks() string { + if x != nil { + return x.Remarks + } + return "" +} + +func (x *Friend) GetExtra() string { + if x != nil { + return x.Extra + } + return "" +} + +type GetFriendsResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Friends []*Friend `protobuf:"bytes,1,rep,name=friends,proto3" json:"friends,omitempty"` +} + +func (x *GetFriendsResp) Reset() { + *x = GetFriendsResp{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFriendsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFriendsResp) ProtoMessage() {} + +func (x *GetFriendsResp) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_proto_msgTypes[15] + 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 GetFriendsResp.ProtoReflect.Descriptor instead. +func (*GetFriendsResp) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{15} +} + +func (x *GetFriendsResp) GetFriends() []*Friend { + if x != nil { + return x.Friends + } + return nil +} + +type CreateGroupReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // 名称 + AvatarUrl string `protobuf:"bytes,2,opt,name=avatar_url,json=avatarUrl,proto3" json:"avatar_url,omitempty"` // 头像 + Introduction string `protobuf:"bytes,3,opt,name=introduction,proto3" json:"introduction,omitempty"` // 简介 + Extra string `protobuf:"bytes,4,opt,name=extra,proto3" json:"extra,omitempty"` // 附加字段 + MemberIds []int64 `protobuf:"varint,5,rep,packed,name=member_ids,json=memberIds,proto3" json:"member_ids,omitempty"` // 群组成员ID列表 +} + +func (x *CreateGroupReq) Reset() { + *x = CreateGroupReq{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateGroupReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateGroupReq) ProtoMessage() {} + +func (x *CreateGroupReq) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_proto_msgTypes[16] + 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 CreateGroupReq.ProtoReflect.Descriptor instead. +func (*CreateGroupReq) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{16} +} + +func (x *CreateGroupReq) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreateGroupReq) GetAvatarUrl() string { + if x != nil { + return x.AvatarUrl + } + return "" +} + +func (x *CreateGroupReq) GetIntroduction() string { + if x != nil { + return x.Introduction + } + return "" +} + +func (x *CreateGroupReq) GetExtra() string { + if x != nil { + return x.Extra + } + return "" +} + +func (x *CreateGroupReq) GetMemberIds() []int64 { + if x != nil { + return x.MemberIds + } + return nil +} + +type CreateGroupResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupId int64 `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` // 群组id +} + +func (x *CreateGroupResp) Reset() { + *x = CreateGroupResp{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateGroupResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateGroupResp) ProtoMessage() {} + +func (x *CreateGroupResp) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_proto_msgTypes[17] + 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 CreateGroupResp.ProtoReflect.Descriptor instead. +func (*CreateGroupResp) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{17} +} + +func (x *CreateGroupResp) GetGroupId() int64 { + if x != nil { + return x.GroupId + } + return 0 +} + +type UpdateGroupReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupId int64 `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` // 群组id + AvatarUrl string `protobuf:"bytes,2,opt,name=avatar_url,json=avatarUrl,proto3" json:"avatar_url,omitempty"` // 头像 + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` // 名称 + Introduction string `protobuf:"bytes,4,opt,name=introduction,proto3" json:"introduction,omitempty"` // 简介 + Extra string `protobuf:"bytes,5,opt,name=extra,proto3" json:"extra,omitempty"` // 附加字段 +} + +func (x *UpdateGroupReq) Reset() { + *x = UpdateGroupReq{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateGroupReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateGroupReq) ProtoMessage() {} + +func (x *UpdateGroupReq) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_proto_msgTypes[18] + 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 UpdateGroupReq.ProtoReflect.Descriptor instead. +func (*UpdateGroupReq) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{18} +} + +func (x *UpdateGroupReq) GetGroupId() int64 { + if x != nil { + return x.GroupId + } + return 0 +} + +func (x *UpdateGroupReq) GetAvatarUrl() string { + if x != nil { + return x.AvatarUrl + } + return "" +} + +func (x *UpdateGroupReq) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *UpdateGroupReq) GetIntroduction() string { + if x != nil { + return x.Introduction + } + return "" +} + +func (x *UpdateGroupReq) GetExtra() string { + if x != nil { + return x.Extra + } + return "" +} + +type GetGroupReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupId int64 `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` +} + +func (x *GetGroupReq) Reset() { + *x = GetGroupReq{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGroupReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGroupReq) ProtoMessage() {} + +func (x *GetGroupReq) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_proto_msgTypes[19] + 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 GetGroupReq.ProtoReflect.Descriptor instead. +func (*GetGroupReq) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{19} +} + +func (x *GetGroupReq) GetGroupId() int64 { + if x != nil { + return x.GroupId + } + return 0 +} + +type GetGroupResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Group *Group `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` +} + +func (x *GetGroupResp) Reset() { + *x = GetGroupResp{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGroupResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGroupResp) ProtoMessage() {} + +func (x *GetGroupResp) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_proto_msgTypes[20] + 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 GetGroupResp.ProtoReflect.Descriptor instead. +func (*GetGroupResp) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{20} +} + +func (x *GetGroupResp) GetGroup() *Group { + if x != nil { + return x.Group + } + return nil +} + +type Group struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupId int64 `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` // 群组id + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // 名称 + AvatarUrl string `protobuf:"bytes,3,opt,name=avatar_url,json=avatarUrl,proto3" json:"avatar_url,omitempty"` // 头像 + Introduction string `protobuf:"bytes,4,opt,name=introduction,proto3" json:"introduction,omitempty"` // 简介 + UserMum int32 `protobuf:"varint,5,opt,name=user_mum,json=userMum,proto3" json:"user_mum,omitempty"` // 用户数 + Extra string `protobuf:"bytes,6,opt,name=extra,proto3" json:"extra,omitempty"` // 附加字段 + CreateTime int64 `protobuf:"varint,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` // 创建时间 + UpdateTime int64 `protobuf:"varint,8,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` // 更新时间 +} + +func (x *Group) Reset() { + *x = Group{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Group) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Group) ProtoMessage() {} + +func (x *Group) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_proto_msgTypes[21] + 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 Group.ProtoReflect.Descriptor instead. +func (*Group) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{21} +} + +func (x *Group) GetGroupId() int64 { + if x != nil { + return x.GroupId + } + return 0 +} + +func (x *Group) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Group) GetAvatarUrl() string { + if x != nil { + return x.AvatarUrl + } + return "" +} + +func (x *Group) GetIntroduction() string { + if x != nil { + return x.Introduction + } + return "" +} + +func (x *Group) GetUserMum() int32 { + if x != nil { + return x.UserMum + } + return 0 +} + +func (x *Group) GetExtra() string { + if x != nil { + return x.Extra + } + return "" +} + +func (x *Group) GetCreateTime() int64 { + if x != nil { + return x.CreateTime + } + return 0 +} + +func (x *Group) GetUpdateTime() int64 { + if x != nil { + return x.UpdateTime + } + return 0 +} + +type GetGroupsResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Groups []*Group `protobuf:"bytes,1,rep,name=groups,proto3" json:"groups,omitempty"` +} + +func (x *GetGroupsResp) Reset() { + *x = GetGroupsResp{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGroupsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGroupsResp) ProtoMessage() {} + +func (x *GetGroupsResp) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_proto_msgTypes[22] + 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 GetGroupsResp.ProtoReflect.Descriptor instead. +func (*GetGroupsResp) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{22} +} + +func (x *GetGroupsResp) GetGroups() []*Group { + if x != nil { + return x.Groups + } + return nil +} + +type AddGroupMembersReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupId int64 `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` // 群组id + UserIds []int64 `protobuf:"varint,2,rep,packed,name=user_ids,json=userIds,proto3" json:"user_ids,omitempty"` // 用户id列表 +} + +func (x *AddGroupMembersReq) Reset() { + *x = AddGroupMembersReq{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddGroupMembersReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddGroupMembersReq) ProtoMessage() {} + +func (x *AddGroupMembersReq) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_proto_msgTypes[23] + 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 AddGroupMembersReq.ProtoReflect.Descriptor instead. +func (*AddGroupMembersReq) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{23} +} + +func (x *AddGroupMembersReq) GetGroupId() int64 { + if x != nil { + return x.GroupId + } + return 0 +} + +func (x *AddGroupMembersReq) GetUserIds() []int64 { + if x != nil { + return x.UserIds + } + return nil +} + +type AddGroupMembersResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserIds []int64 `protobuf:"varint,1,rep,packed,name=user_ids,json=userIds,proto3" json:"user_ids,omitempty"` // 已经在群组的用户id列表 +} + +func (x *AddGroupMembersResp) Reset() { + *x = AddGroupMembersResp{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddGroupMembersResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddGroupMembersResp) ProtoMessage() {} + +func (x *AddGroupMembersResp) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_proto_msgTypes[24] + 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 AddGroupMembersResp.ProtoReflect.Descriptor instead. +func (*AddGroupMembersResp) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{24} +} + +func (x *AddGroupMembersResp) GetUserIds() []int64 { + if x != nil { + return x.UserIds + } + return nil +} + +type UpdateGroupMemberReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupId int64 `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` // 群组id + UserId int64 `protobuf:"varint,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` // 用户id + MemberType MemberType `protobuf:"varint,3,opt,name=member_type,json=memberType,proto3,enum=pb.MemberType" json:"member_type,omitempty"` // 成员类型 + Remarks string `protobuf:"bytes,4,opt,name=remarks,proto3" json:"remarks,omitempty"` // 备注 + Extra string `protobuf:"bytes,5,opt,name=extra,proto3" json:"extra,omitempty"` // 附加字段 +} + +func (x *UpdateGroupMemberReq) Reset() { + *x = UpdateGroupMemberReq{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateGroupMemberReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateGroupMemberReq) ProtoMessage() {} + +func (x *UpdateGroupMemberReq) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_proto_msgTypes[25] + 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 UpdateGroupMemberReq.ProtoReflect.Descriptor instead. +func (*UpdateGroupMemberReq) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{25} +} + +func (x *UpdateGroupMemberReq) GetGroupId() int64 { + if x != nil { + return x.GroupId + } + return 0 +} + +func (x *UpdateGroupMemberReq) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *UpdateGroupMemberReq) GetMemberType() MemberType { + if x != nil { + return x.MemberType + } + return MemberType_GMT_UNKNOWN +} + +func (x *UpdateGroupMemberReq) GetRemarks() string { + if x != nil { + return x.Remarks + } + return "" +} + +func (x *UpdateGroupMemberReq) GetExtra() string { + if x != nil { + return x.Extra + } + return "" +} + +type DeleteGroupMemberReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupId int64 `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` // 群组id + UserId int64 `protobuf:"varint,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` // 用户id +} + +func (x *DeleteGroupMemberReq) Reset() { + *x = DeleteGroupMemberReq{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteGroupMemberReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteGroupMemberReq) ProtoMessage() {} + +func (x *DeleteGroupMemberReq) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_proto_msgTypes[26] + 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 DeleteGroupMemberReq.ProtoReflect.Descriptor instead. +func (*DeleteGroupMemberReq) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{26} +} + +func (x *DeleteGroupMemberReq) GetGroupId() int64 { + if x != nil { + return x.GroupId + } + return 0 +} + +func (x *DeleteGroupMemberReq) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +type GetGroupMembersReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupId int64 `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` +} + +func (x *GetGroupMembersReq) Reset() { + *x = GetGroupMembersReq{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGroupMembersReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGroupMembersReq) ProtoMessage() {} + +func (x *GetGroupMembersReq) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_proto_msgTypes[27] + 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 GetGroupMembersReq.ProtoReflect.Descriptor instead. +func (*GetGroupMembersReq) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{27} +} + +func (x *GetGroupMembersReq) GetGroupId() int64 { + if x != nil { + return x.GroupId + } + return 0 +} + +type GetGroupMembersResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Members []*GroupMember `protobuf:"bytes,1,rep,name=members,proto3" json:"members,omitempty"` +} + +func (x *GetGroupMembersResp) Reset() { + *x = GetGroupMembersResp{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGroupMembersResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGroupMembersResp) ProtoMessage() {} + +func (x *GetGroupMembersResp) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_proto_msgTypes[28] + 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 GetGroupMembersResp.ProtoReflect.Descriptor instead. +func (*GetGroupMembersResp) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{28} +} + +func (x *GetGroupMembersResp) GetMembers() []*GroupMember { + if x != nil { + return x.Members + } + return nil +} + +type GroupMember struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int64 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"` // 昵称 + Sex int32 `protobuf:"varint,3,opt,name=sex,proto3" json:"sex,omitempty"` // 性别 + AvatarUrl string `protobuf:"bytes,4,opt,name=avatar_url,json=avatarUrl,proto3" json:"avatar_url,omitempty"` // 头像地址 + UserExtra string `protobuf:"bytes,5,opt,name=user_extra,json=userExtra,proto3" json:"user_extra,omitempty"` // 用户附加字段 + MemberType MemberType `protobuf:"varint,6,opt,name=member_type,json=memberType,proto3,enum=pb.MemberType" json:"member_type,omitempty"` // 成员类型 + Remarks string `protobuf:"bytes,7,opt,name=remarks,proto3" json:"remarks,omitempty"` // 备注 + Extra string `protobuf:"bytes,8,opt,name=extra,proto3" json:"extra,omitempty"` // 群组成员附加字段 +} + +func (x *GroupMember) Reset() { + *x = GroupMember{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_ext_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GroupMember) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupMember) ProtoMessage() {} + +func (x *GroupMember) ProtoReflect() protoreflect.Message { + mi := &file_logic_ext_proto_msgTypes[29] + 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 GroupMember.ProtoReflect.Descriptor instead. +func (*GroupMember) Descriptor() ([]byte, []int) { + return file_logic_ext_proto_rawDescGZIP(), []int{29} +} + +func (x *GroupMember) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *GroupMember) GetNickname() string { + if x != nil { + return x.Nickname + } + return "" +} + +func (x *GroupMember) GetSex() int32 { + if x != nil { + return x.Sex + } + return 0 +} + +func (x *GroupMember) GetAvatarUrl() string { + if x != nil { + return x.AvatarUrl + } + return "" +} + +func (x *GroupMember) GetUserExtra() string { + if x != nil { + return x.UserExtra + } + return "" +} + +func (x *GroupMember) GetMemberType() MemberType { + if x != nil { + return x.MemberType + } + return MemberType_GMT_UNKNOWN +} + +func (x *GroupMember) GetRemarks() string { + if x != nil { + return x.Remarks + } + return "" +} + +func (x *GroupMember) GetExtra() string { + if x != nil { + return x.Extra + } + return "" +} + +var File_logic_ext_proto protoreflect.FileDescriptor + +var file_logic_ext_proto_rawDesc = []byte{ + 0x0a, 0x0f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x65, 0x78, + 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9b, 0x01, 0x0a, 0x11, 0x52, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x72, 0x61, 0x6e, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x72, 0x61, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x64, 0x6b, 0x5f, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x64, + 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x31, 0x0a, 0x12, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, + 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, 0xd3, 0x02, 0x0a, 0x0e, + 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x35, + 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x74, 0x6f, 0x5f, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x09, 0x74, 0x6f, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x70, + 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x12, + 0x30, 0x0a, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x61, 0x63, + 0x6b, 0x22, 0x23, 0x0a, 0x0f, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x03, 0x73, 0x65, 0x71, 0x22, 0xd5, 0x02, 0x0a, 0x10, 0x52, 0x65, 0x63, 0x61, 0x6c, + 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x35, 0x0a, 0x0d, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x74, 0x6f, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x09, 0x74, 0x6f, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x69, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x09, 0x69, 0x73, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x14, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, + 0x62, 0x61, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x22, 0x25, + 0x0a, 0x11, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x03, 0x73, 0x65, 0x71, 0x22, 0xb6, 0x02, 0x0a, 0x10, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, + 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x35, 0x0a, 0x0d, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x32, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, + 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0b, + 0x74, 0x6f, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x03, 0x52, 0x09, 0x74, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x30, 0x0a, 0x14, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, + 0x62, 0x61, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x22, 0x25, + 0x0a, 0x11, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x03, 0x73, 0x65, 0x71, 0x22, 0xe0, 0x01, 0x0a, 0x0b, 0x50, 0x75, 0x73, 0x68, 0x52, 0x6f, + 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x32, + 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x73, + 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, + 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x70, + 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, + 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, + 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x67, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x2a, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x46, 0x0a, + 0x11, 0x41, 0x67, 0x72, 0x65, 0x65, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, + 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, + 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x22, 0x5b, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x78, 0x74, + 0x72, 0x61, 0x22, 0x5c, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, + 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, + 0x22, 0xe0, 0x01, 0x0a, 0x06, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x68, 0x6f, 0x6e, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 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, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x73, 0x65, 0x78, 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, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x74, + 0x72, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, + 0x74, 0x72, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x12, 0x14, 0x0a, + 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x22, 0x36, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x24, 0x0a, 0x07, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x52, 0x07, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x22, 0x9c, 0x01, 0x0a, 0x0e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x75, 0x72, 0x6c, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, + 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x03, 0x52, + 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x2c, 0x0a, 0x0f, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x19, 0x0a, + 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x98, 0x01, 0x0a, 0x0e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x19, 0x0a, 0x08, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, + 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, + 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x74, + 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, + 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x22, 0x28, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x65, 0x71, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x2f, 0x0a, + 0x0c, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1f, 0x0a, + 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x70, + 0x62, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0xec, + 0x01, 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x76, 0x61, 0x74, 0x61, + 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, + 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, + 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, + 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x6d, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x75, 0x73, + 0x65, 0x72, 0x4d, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 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, 0x08, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x32, 0x0a, + 0x0d, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x21, + 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, + 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x73, 0x22, 0x4a, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x30, 0x0a, + 0x13, 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, + 0xab, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x0b, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x22, 0x4a, 0x0a, + 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, + 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x2f, 0x0a, 0x12, 0x47, 0x65, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, + 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x40, 0x0a, 0x13, 0x47, 0x65, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x29, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0xf3, 0x01, 0x0a, + 0x0b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x73, 0x65, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x75, 0x72, + 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, + 0x72, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x72, 0x61, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x74, 0x72, + 0x61, 0x12, 0x2f, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x78, 0x74, + 0x72, 0x61, 0x2a, 0x3c, 0x0a, 0x0a, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x0f, 0x0a, 0x0b, 0x47, 0x4d, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, + 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x47, 0x4d, 0x54, 0x5f, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x10, 0x01, + 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x4d, 0x54, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x02, + 0x32, 0xd0, 0x07, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x45, 0x78, 0x74, 0x12, 0x3f, 0x0a, + 0x0e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, + 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, + 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x2e, + 0x70, 0x62, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x1a, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x63, + 0x61, 0x6c, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, + 0x70, 0x62, 0x2e, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x26, 0x0a, 0x08, 0x50, 0x75, 0x73, 0x68, 0x52, 0x6f, 0x6f, 0x6d, + 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, + 0x71, 0x1a, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3c, 0x0a, 0x0d, + 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x14, 0x2e, + 0x70, 0x62, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x64, + 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x28, 0x0a, 0x09, 0x41, 0x64, + 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x12, 0x32, 0x0a, 0x0e, 0x41, 0x67, 0x72, 0x65, 0x65, 0x41, 0x64, 0x64, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x41, 0x67, 0x72, 0x65, + 0x65, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, + 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2e, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, + 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x30, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x74, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x74, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x0a, 0x47, 0x65, + 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x12, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x70, 0x62, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x2c, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, + 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2d, 0x0a, + 0x08, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x47, + 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x2e, + 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x29, 0x0a, 0x09, + 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x2e, + 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, 0x11, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x70, 0x62, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x38, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, + 0x42, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x2e, + 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, 0x0b, 0x67, 0x69, 0x6d, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, + 0x62, 0x2f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_logic_ext_proto_rawDescOnce sync.Once + file_logic_ext_proto_rawDescData = file_logic_ext_proto_rawDesc +) + +func file_logic_ext_proto_rawDescGZIP() []byte { + file_logic_ext_proto_rawDescOnce.Do(func() { + file_logic_ext_proto_rawDescData = protoimpl.X.CompressGZIP(file_logic_ext_proto_rawDescData) + }) + return file_logic_ext_proto_rawDescData +} + +var file_logic_ext_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_logic_ext_proto_msgTypes = make([]protoimpl.MessageInfo, 30) +var file_logic_ext_proto_goTypes = []interface{}{ + (MemberType)(0), // 0: pb.MemberType + (*RegisterDeviceReq)(nil), // 1: pb.RegisterDeviceReq + (*RegisterDeviceResp)(nil), // 2: pb.RegisterDeviceResp + (*SendMessageReq)(nil), // 3: pb.SendMessageReq + (*SendMessageResp)(nil), // 4: pb.SendMessageResp + (*RecallMessageReq)(nil), // 5: pb.RecallMessageReq + (*RecallMessageResp)(nil), // 6: pb.RecallMessageResp + (*SendRedPacketReq)(nil), // 7: pb.SendRedPacketReq + (*SendRedPacketResp)(nil), // 8: pb.SendRedPacketResp + (*PushRoomReq)(nil), // 9: pb.PushRoomReq + (*AddFriendReq)(nil), // 10: pb.AddFriendReq + (*DeleteFriendReq)(nil), // 11: pb.DeleteFriendReq + (*AgreeAddFriendReq)(nil), // 12: pb.AgreeAddFriendReq + (*SetFriendReq)(nil), // 13: pb.SetFriendReq + (*SetFriendResp)(nil), // 14: pb.SetFriendResp + (*Friend)(nil), // 15: pb.Friend + (*GetFriendsResp)(nil), // 16: pb.GetFriendsResp + (*CreateGroupReq)(nil), // 17: pb.CreateGroupReq + (*CreateGroupResp)(nil), // 18: pb.CreateGroupResp + (*UpdateGroupReq)(nil), // 19: pb.UpdateGroupReq + (*GetGroupReq)(nil), // 20: pb.GetGroupReq + (*GetGroupResp)(nil), // 21: pb.GetGroupResp + (*Group)(nil), // 22: pb.Group + (*GetGroupsResp)(nil), // 23: pb.GetGroupsResp + (*AddGroupMembersReq)(nil), // 24: pb.AddGroupMembersReq + (*AddGroupMembersResp)(nil), // 25: pb.AddGroupMembersResp + (*UpdateGroupMemberReq)(nil), // 26: pb.UpdateGroupMemberReq + (*DeleteGroupMemberReq)(nil), // 27: pb.DeleteGroupMemberReq + (*GetGroupMembersReq)(nil), // 28: pb.GetGroupMembersReq + (*GetGroupMembersResp)(nil), // 29: pb.GetGroupMembersResp + (*GroupMember)(nil), // 30: pb.GroupMember + (ReceiverType)(0), // 31: pb.ReceiverType + (MessageType)(0), // 32: pb.MessageType + (*Empty)(nil), // 33: pb.Empty +} +var file_logic_ext_proto_depIdxs = []int32{ + 31, // 0: pb.SendMessageReq.receiver_type:type_name -> pb.ReceiverType + 32, // 1: pb.SendMessageReq.message_type:type_name -> pb.MessageType + 31, // 2: pb.RecallMessageReq.receiver_type:type_name -> pb.ReceiverType + 32, // 3: pb.RecallMessageReq.message_type:type_name -> pb.MessageType + 31, // 4: pb.SendRedPacketReq.receiver_type:type_name -> pb.ReceiverType + 32, // 5: pb.SendRedPacketReq.message_type:type_name -> pb.MessageType + 32, // 6: pb.PushRoomReq.message_type:type_name -> pb.MessageType + 15, // 7: pb.GetFriendsResp.friends:type_name -> pb.Friend + 22, // 8: pb.GetGroupResp.group:type_name -> pb.Group + 22, // 9: pb.GetGroupsResp.groups:type_name -> pb.Group + 0, // 10: pb.UpdateGroupMemberReq.member_type:type_name -> pb.MemberType + 30, // 11: pb.GetGroupMembersResp.members:type_name -> pb.GroupMember + 0, // 12: pb.GroupMember.member_type:type_name -> pb.MemberType + 1, // 13: pb.LogicExt.RegisterDevice:input_type -> pb.RegisterDeviceReq + 3, // 14: pb.LogicExt.SendMessage:input_type -> pb.SendMessageReq + 5, // 15: pb.LogicExt.RecallMessage:input_type -> pb.RecallMessageReq + 9, // 16: pb.LogicExt.PushRoom:input_type -> pb.PushRoomReq + 7, // 17: pb.LogicExt.SendRedPacket:input_type -> pb.SendRedPacketReq + 10, // 18: pb.LogicExt.AddFriend:input_type -> pb.AddFriendReq + 12, // 19: pb.LogicExt.AgreeAddFriend:input_type -> pb.AgreeAddFriendReq + 11, // 20: pb.LogicExt.DeleteFriend:input_type -> pb.DeleteFriendReq + 13, // 21: pb.LogicExt.SetFriend:input_type -> pb.SetFriendReq + 33, // 22: pb.LogicExt.GetFriends:input_type -> pb.Empty + 17, // 23: pb.LogicExt.CreateGroup:input_type -> pb.CreateGroupReq + 19, // 24: pb.LogicExt.UpdateGroup:input_type -> pb.UpdateGroupReq + 20, // 25: pb.LogicExt.GetGroup:input_type -> pb.GetGroupReq + 33, // 26: pb.LogicExt.GetGroups:input_type -> pb.Empty + 24, // 27: pb.LogicExt.AddGroupMembers:input_type -> pb.AddGroupMembersReq + 26, // 28: pb.LogicExt.UpdateGroupMember:input_type -> pb.UpdateGroupMemberReq + 27, // 29: pb.LogicExt.DeleteGroupMember:input_type -> pb.DeleteGroupMemberReq + 28, // 30: pb.LogicExt.GetGroupMembers:input_type -> pb.GetGroupMembersReq + 2, // 31: pb.LogicExt.RegisterDevice:output_type -> pb.RegisterDeviceResp + 4, // 32: pb.LogicExt.SendMessage:output_type -> pb.SendMessageResp + 6, // 33: pb.LogicExt.RecallMessage:output_type -> pb.RecallMessageResp + 33, // 34: pb.LogicExt.PushRoom:output_type -> pb.Empty + 8, // 35: pb.LogicExt.SendRedPacket:output_type -> pb.SendRedPacketResp + 33, // 36: pb.LogicExt.AddFriend:output_type -> pb.Empty + 33, // 37: pb.LogicExt.AgreeAddFriend:output_type -> pb.Empty + 33, // 38: pb.LogicExt.DeleteFriend:output_type -> pb.Empty + 14, // 39: pb.LogicExt.SetFriend:output_type -> pb.SetFriendResp + 16, // 40: pb.LogicExt.GetFriends:output_type -> pb.GetFriendsResp + 18, // 41: pb.LogicExt.CreateGroup:output_type -> pb.CreateGroupResp + 33, // 42: pb.LogicExt.UpdateGroup:output_type -> pb.Empty + 21, // 43: pb.LogicExt.GetGroup:output_type -> pb.GetGroupResp + 23, // 44: pb.LogicExt.GetGroups:output_type -> pb.GetGroupsResp + 25, // 45: pb.LogicExt.AddGroupMembers:output_type -> pb.AddGroupMembersResp + 33, // 46: pb.LogicExt.UpdateGroupMember:output_type -> pb.Empty + 33, // 47: pb.LogicExt.DeleteGroupMember:output_type -> pb.Empty + 29, // 48: pb.LogicExt.GetGroupMembers:output_type -> pb.GetGroupMembersResp + 31, // [31:49] is the sub-list for method output_type + 13, // [13:31] is the sub-list for method input_type + 13, // [13:13] is the sub-list for extension type_name + 13, // [13:13] is the sub-list for extension extendee + 0, // [0:13] is the sub-list for field type_name +} + +func init() { file_logic_ext_proto_init() } +func file_logic_ext_proto_init() { + if File_logic_ext_proto != nil { + return + } + file_common_ext_proto_init() + file_connect_ext_proto_init() + if !protoimpl.UnsafeEnabled { + file_logic_ext_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RegisterDeviceReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RegisterDeviceResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendMessageReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendMessageResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RecallMessageReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RecallMessageResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendRedPacketReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendRedPacketResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PushRoomReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddFriendReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteFriendReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AgreeAddFriendReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetFriendReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetFriendResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Friend); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFriendsResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateGroupReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateGroupResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateGroupReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Group); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupsResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddGroupMembersReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddGroupMembersResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateGroupMemberReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteGroupMemberReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupMembersReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupMembersResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_ext_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupMember); 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_logic_ext_proto_rawDesc, + NumEnums: 1, + NumMessages: 30, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_logic_ext_proto_goTypes, + DependencyIndexes: file_logic_ext_proto_depIdxs, + EnumInfos: file_logic_ext_proto_enumTypes, + MessageInfos: file_logic_ext_proto_msgTypes, + }.Build() + File_logic_ext_proto = out.File + file_logic_ext_proto_rawDesc = nil + file_logic_ext_proto_goTypes = nil + file_logic_ext_proto_depIdxs = nil +} + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// LogicExtClient is the client API for LogicExt service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type LogicExtClient interface { + // 注册设备 + RegisterDevice(ctx context.Context, in *RegisterDeviceReq, opts ...grpc.CallOption) (*RegisterDeviceResp, error) + // 发送消息 + SendMessage(ctx context.Context, in *SendMessageReq, opts ...grpc.CallOption) (*SendMessageResp, error) + // 撤回消息 + RecallMessage(ctx context.Context, in *RecallMessageReq, opts ...grpc.CallOption) (*RecallMessageResp, error) + // 推送消息到房间 + PushRoom(ctx context.Context, in *PushRoomReq, opts ...grpc.CallOption) (*Empty, error) + // 发送红包 + SendRedPacket(ctx context.Context, in *SendRedPacketReq, opts ...grpc.CallOption) (*SendRedPacketResp, error) + // 添加好友 + AddFriend(ctx context.Context, in *AddFriendReq, opts ...grpc.CallOption) (*Empty, error) + // 同意添加好友 + AgreeAddFriend(ctx context.Context, in *AgreeAddFriendReq, opts ...grpc.CallOption) (*Empty, error) + // 删除好友 + DeleteFriend(ctx context.Context, in *DeleteFriendReq, opts ...grpc.CallOption) (*Empty, error) + // 设置好友信息 + SetFriend(ctx context.Context, in *SetFriendReq, opts ...grpc.CallOption) (*SetFriendResp, error) + // 获取好友列表 + GetFriends(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GetFriendsResp, error) + // 创建群组 + CreateGroup(ctx context.Context, in *CreateGroupReq, opts ...grpc.CallOption) (*CreateGroupResp, error) + // 更新群组 + UpdateGroup(ctx context.Context, in *UpdateGroupReq, opts ...grpc.CallOption) (*Empty, error) + // 获取群组信息 + GetGroup(ctx context.Context, in *GetGroupReq, opts ...grpc.CallOption) (*GetGroupResp, error) + // 获取用户加入的所有群组 + GetGroups(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GetGroupsResp, error) + // 添加群组成员 + AddGroupMembers(ctx context.Context, in *AddGroupMembersReq, opts ...grpc.CallOption) (*AddGroupMembersResp, error) + // 更新群组成员信息 + UpdateGroupMember(ctx context.Context, in *UpdateGroupMemberReq, opts ...grpc.CallOption) (*Empty, error) + // 添加群组成员 + DeleteGroupMember(ctx context.Context, in *DeleteGroupMemberReq, opts ...grpc.CallOption) (*Empty, error) + // 获取群组成员 + GetGroupMembers(ctx context.Context, in *GetGroupMembersReq, opts ...grpc.CallOption) (*GetGroupMembersResp, error) +} + +type logicExtClient struct { + cc grpc.ClientConnInterface +} + +func NewLogicExtClient(cc grpc.ClientConnInterface) LogicExtClient { + return &logicExtClient{cc} +} + +func (c *logicExtClient) RegisterDevice(ctx context.Context, in *RegisterDeviceReq, opts ...grpc.CallOption) (*RegisterDeviceResp, error) { + out := new(RegisterDeviceResp) + err := c.cc.Invoke(ctx, "/pb.LogicExt/RegisterDevice", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *logicExtClient) SendMessage(ctx context.Context, in *SendMessageReq, opts ...grpc.CallOption) (*SendMessageResp, error) { + out := new(SendMessageResp) + err := c.cc.Invoke(ctx, "/pb.LogicExt/SendMessage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *logicExtClient) RecallMessage(ctx context.Context, in *RecallMessageReq, opts ...grpc.CallOption) (*RecallMessageResp, error) { + out := new(RecallMessageResp) + err := c.cc.Invoke(ctx, "/pb.LogicExt/RecallMessage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *logicExtClient) PushRoom(ctx context.Context, in *PushRoomReq, opts ...grpc.CallOption) (*Empty, error) { + out := new(Empty) + err := c.cc.Invoke(ctx, "/pb.LogicExt/PushRoom", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *logicExtClient) SendRedPacket(ctx context.Context, in *SendRedPacketReq, opts ...grpc.CallOption) (*SendRedPacketResp, error) { + out := new(SendRedPacketResp) + err := c.cc.Invoke(ctx, "/pb.LogicExt/SendRedPacket", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *logicExtClient) AddFriend(ctx context.Context, in *AddFriendReq, opts ...grpc.CallOption) (*Empty, error) { + out := new(Empty) + err := c.cc.Invoke(ctx, "/pb.LogicExt/AddFriend", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *logicExtClient) AgreeAddFriend(ctx context.Context, in *AgreeAddFriendReq, opts ...grpc.CallOption) (*Empty, error) { + out := new(Empty) + err := c.cc.Invoke(ctx, "/pb.LogicExt/AgreeAddFriend", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *logicExtClient) DeleteFriend(ctx context.Context, in *DeleteFriendReq, opts ...grpc.CallOption) (*Empty, error) { + out := new(Empty) + err := c.cc.Invoke(ctx, "/pb.LogicExt/DeleteFriend", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *logicExtClient) SetFriend(ctx context.Context, in *SetFriendReq, opts ...grpc.CallOption) (*SetFriendResp, error) { + out := new(SetFriendResp) + err := c.cc.Invoke(ctx, "/pb.LogicExt/SetFriend", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *logicExtClient) GetFriends(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GetFriendsResp, error) { + out := new(GetFriendsResp) + err := c.cc.Invoke(ctx, "/pb.LogicExt/GetFriends", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *logicExtClient) CreateGroup(ctx context.Context, in *CreateGroupReq, opts ...grpc.CallOption) (*CreateGroupResp, error) { + out := new(CreateGroupResp) + err := c.cc.Invoke(ctx, "/pb.LogicExt/CreateGroup", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *logicExtClient) UpdateGroup(ctx context.Context, in *UpdateGroupReq, opts ...grpc.CallOption) (*Empty, error) { + out := new(Empty) + err := c.cc.Invoke(ctx, "/pb.LogicExt/UpdateGroup", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *logicExtClient) GetGroup(ctx context.Context, in *GetGroupReq, opts ...grpc.CallOption) (*GetGroupResp, error) { + out := new(GetGroupResp) + err := c.cc.Invoke(ctx, "/pb.LogicExt/GetGroup", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *logicExtClient) GetGroups(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GetGroupsResp, error) { + out := new(GetGroupsResp) + err := c.cc.Invoke(ctx, "/pb.LogicExt/GetGroups", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *logicExtClient) AddGroupMembers(ctx context.Context, in *AddGroupMembersReq, opts ...grpc.CallOption) (*AddGroupMembersResp, error) { + out := new(AddGroupMembersResp) + err := c.cc.Invoke(ctx, "/pb.LogicExt/AddGroupMembers", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *logicExtClient) UpdateGroupMember(ctx context.Context, in *UpdateGroupMemberReq, opts ...grpc.CallOption) (*Empty, error) { + out := new(Empty) + err := c.cc.Invoke(ctx, "/pb.LogicExt/UpdateGroupMember", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *logicExtClient) DeleteGroupMember(ctx context.Context, in *DeleteGroupMemberReq, opts ...grpc.CallOption) (*Empty, error) { + out := new(Empty) + err := c.cc.Invoke(ctx, "/pb.LogicExt/DeleteGroupMember", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *logicExtClient) GetGroupMembers(ctx context.Context, in *GetGroupMembersReq, opts ...grpc.CallOption) (*GetGroupMembersResp, error) { + out := new(GetGroupMembersResp) + err := c.cc.Invoke(ctx, "/pb.LogicExt/GetGroupMembers", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// LogicExtServer is the server API for LogicExt service. +// All implementations must embed UnimplementedLogicExtServer +// for forward compatibility +type LogicExtServer interface { + // 注册设备 + RegisterDevice(context.Context, *RegisterDeviceReq) (*RegisterDeviceResp, error) + // 发送消息 + SendMessage(context.Context, *SendMessageReq) (*SendMessageResp, error) + // 撤回消息 + RecallMessage(context.Context, *RecallMessageReq) (*RecallMessageResp, error) + // 推送消息到房间 + PushRoom(context.Context, *PushRoomReq) (*Empty, error) + // 发送红包 + SendRedPacket(context.Context, *SendRedPacketReq) (*SendRedPacketResp, error) + // 添加好友 + AddFriend(context.Context, *AddFriendReq) (*Empty, error) + // 同意添加好友 + AgreeAddFriend(context.Context, *AgreeAddFriendReq) (*Empty, error) + // 删除好友 + DeleteFriend(context.Context, *DeleteFriendReq) (*Empty, error) + // 设置好友信息 + SetFriend(context.Context, *SetFriendReq) (*SetFriendResp, error) + // 获取好友列表 + GetFriends(context.Context, *Empty) (*GetFriendsResp, error) + // 创建群组 + CreateGroup(context.Context, *CreateGroupReq) (*CreateGroupResp, error) + // 更新群组 + UpdateGroup(context.Context, *UpdateGroupReq) (*Empty, error) + // 获取群组信息 + GetGroup(context.Context, *GetGroupReq) (*GetGroupResp, error) + // 获取用户加入的所有群组 + GetGroups(context.Context, *Empty) (*GetGroupsResp, error) + // 添加群组成员 + AddGroupMembers(context.Context, *AddGroupMembersReq) (*AddGroupMembersResp, error) + // 更新群组成员信息 + UpdateGroupMember(context.Context, *UpdateGroupMemberReq) (*Empty, error) + // 添加群组成员 + DeleteGroupMember(context.Context, *DeleteGroupMemberReq) (*Empty, error) + // 获取群组成员 + GetGroupMembers(context.Context, *GetGroupMembersReq) (*GetGroupMembersResp, error) +} + +// UnimplementedLogicExtServer must be embedded to have forward compatible implementations. +type UnimplementedLogicExtServer struct { +} + +func (UnimplementedLogicExtServer) RegisterDevice(context.Context, *RegisterDeviceReq) (*RegisterDeviceResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RegisterDevice not implemented") +} +func (UnimplementedLogicExtServer) SendMessage(context.Context, *SendMessageReq) (*SendMessageResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method SendMessage not implemented") +} +func (UnimplementedLogicExtServer) RecallMessage(context.Context, *RecallMessageReq) (*RecallMessageResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RecallMessage not implemented") +} +func (UnimplementedLogicExtServer) PushRoom(context.Context, *PushRoomReq) (*Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method PushRoom not implemented") +} +func (UnimplementedLogicExtServer) SendRedPacket(context.Context, *SendRedPacketReq) (*SendRedPacketResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method SendRedPacket not implemented") +} +func (UnimplementedLogicExtServer) AddFriend(context.Context, *AddFriendReq) (*Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddFriend not implemented") +} +func (UnimplementedLogicExtServer) AgreeAddFriend(context.Context, *AgreeAddFriendReq) (*Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method AgreeAddFriend not implemented") +} +func (UnimplementedLogicExtServer) DeleteFriend(context.Context, *DeleteFriendReq) (*Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteFriend not implemented") +} +func (UnimplementedLogicExtServer) SetFriend(context.Context, *SetFriendReq) (*SetFriendResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetFriend not implemented") +} +func (UnimplementedLogicExtServer) GetFriends(context.Context, *Empty) (*GetFriendsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetFriends not implemented") +} +func (UnimplementedLogicExtServer) CreateGroup(context.Context, *CreateGroupReq) (*CreateGroupResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateGroup not implemented") +} +func (UnimplementedLogicExtServer) UpdateGroup(context.Context, *UpdateGroupReq) (*Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateGroup not implemented") +} +func (UnimplementedLogicExtServer) GetGroup(context.Context, *GetGroupReq) (*GetGroupResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGroup not implemented") +} +func (UnimplementedLogicExtServer) GetGroups(context.Context, *Empty) (*GetGroupsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGroups not implemented") +} +func (UnimplementedLogicExtServer) AddGroupMembers(context.Context, *AddGroupMembersReq) (*AddGroupMembersResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddGroupMembers not implemented") +} +func (UnimplementedLogicExtServer) UpdateGroupMember(context.Context, *UpdateGroupMemberReq) (*Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateGroupMember not implemented") +} +func (UnimplementedLogicExtServer) DeleteGroupMember(context.Context, *DeleteGroupMemberReq) (*Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteGroupMember not implemented") +} +func (UnimplementedLogicExtServer) GetGroupMembers(context.Context, *GetGroupMembersReq) (*GetGroupMembersResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGroupMembers not implemented") +} + +func RegisterLogicExtServer(s grpc.ServiceRegistrar, srv LogicExtServer) { + s.RegisterService(&LogicExt_ServiceDesc, srv) +} + +func _LogicExt_RegisterDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RegisterDeviceReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicExtServer).RegisterDevice(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicExt/RegisterDevice", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicExtServer).RegisterDevice(ctx, req.(*RegisterDeviceReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _LogicExt_SendMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SendMessageReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicExtServer).SendMessage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicExt/SendMessage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicExtServer).SendMessage(ctx, req.(*SendMessageReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _LogicExt_RecallMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RecallMessageReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicExtServer).RecallMessage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicExt/RecallMessage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicExtServer).RecallMessage(ctx, req.(*RecallMessageReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _LogicExt_PushRoom_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PushRoomReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicExtServer).PushRoom(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicExt/PushRoom", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicExtServer).PushRoom(ctx, req.(*PushRoomReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _LogicExt_SendRedPacket_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SendRedPacketReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicExtServer).SendRedPacket(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicExt/SendRedPacket", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicExtServer).SendRedPacket(ctx, req.(*SendRedPacketReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _LogicExt_AddFriend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddFriendReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicExtServer).AddFriend(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicExt/AddFriend", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicExtServer).AddFriend(ctx, req.(*AddFriendReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _LogicExt_AgreeAddFriend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AgreeAddFriendReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicExtServer).AgreeAddFriend(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicExt/AgreeAddFriend", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicExtServer).AgreeAddFriend(ctx, req.(*AgreeAddFriendReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _LogicExt_DeleteFriend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteFriendReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicExtServer).DeleteFriend(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicExt/DeleteFriend", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicExtServer).DeleteFriend(ctx, req.(*DeleteFriendReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _LogicExt_SetFriend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetFriendReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicExtServer).SetFriend(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicExt/SetFriend", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicExtServer).SetFriend(ctx, req.(*SetFriendReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _LogicExt_GetFriends_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicExtServer).GetFriends(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicExt/GetFriends", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicExtServer).GetFriends(ctx, req.(*Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _LogicExt_CreateGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateGroupReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicExtServer).CreateGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicExt/CreateGroup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicExtServer).CreateGroup(ctx, req.(*CreateGroupReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _LogicExt_UpdateGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateGroupReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicExtServer).UpdateGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicExt/UpdateGroup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicExtServer).UpdateGroup(ctx, req.(*UpdateGroupReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _LogicExt_GetGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGroupReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicExtServer).GetGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicExt/GetGroup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicExtServer).GetGroup(ctx, req.(*GetGroupReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _LogicExt_GetGroups_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicExtServer).GetGroups(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicExt/GetGroups", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicExtServer).GetGroups(ctx, req.(*Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _LogicExt_AddGroupMembers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddGroupMembersReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicExtServer).AddGroupMembers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicExt/AddGroupMembers", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicExtServer).AddGroupMembers(ctx, req.(*AddGroupMembersReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _LogicExt_UpdateGroupMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateGroupMemberReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicExtServer).UpdateGroupMember(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicExt/UpdateGroupMember", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicExtServer).UpdateGroupMember(ctx, req.(*UpdateGroupMemberReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _LogicExt_DeleteGroupMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteGroupMemberReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicExtServer).DeleteGroupMember(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicExt/DeleteGroupMember", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicExtServer).DeleteGroupMember(ctx, req.(*DeleteGroupMemberReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _LogicExt_GetGroupMembers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGroupMembersReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicExtServer).GetGroupMembers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicExt/GetGroupMembers", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicExtServer).GetGroupMembers(ctx, req.(*GetGroupMembersReq)) + } + return interceptor(ctx, in, info, handler) +} + +// LogicExt_ServiceDesc is the grpc.ServiceDesc for LogicExt service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var LogicExt_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "pb.LogicExt", + HandlerType: (*LogicExtServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "RegisterDevice", + Handler: _LogicExt_RegisterDevice_Handler, + }, + { + MethodName: "SendMessage", + Handler: _LogicExt_SendMessage_Handler, + }, + { + MethodName: "RecallMessage", + Handler: _LogicExt_RecallMessage_Handler, + }, + { + MethodName: "PushRoom", + Handler: _LogicExt_PushRoom_Handler, + }, + { + MethodName: "SendRedPacket", + Handler: _LogicExt_SendRedPacket_Handler, + }, + { + MethodName: "AddFriend", + Handler: _LogicExt_AddFriend_Handler, + }, + { + MethodName: "AgreeAddFriend", + Handler: _LogicExt_AgreeAddFriend_Handler, + }, + { + MethodName: "DeleteFriend", + Handler: _LogicExt_DeleteFriend_Handler, + }, + { + MethodName: "SetFriend", + Handler: _LogicExt_SetFriend_Handler, + }, + { + MethodName: "GetFriends", + Handler: _LogicExt_GetFriends_Handler, + }, + { + MethodName: "CreateGroup", + Handler: _LogicExt_CreateGroup_Handler, + }, + { + MethodName: "UpdateGroup", + Handler: _LogicExt_UpdateGroup_Handler, + }, + { + MethodName: "GetGroup", + Handler: _LogicExt_GetGroup_Handler, + }, + { + MethodName: "GetGroups", + Handler: _LogicExt_GetGroups_Handler, + }, + { + MethodName: "AddGroupMembers", + Handler: _LogicExt_AddGroupMembers_Handler, + }, + { + MethodName: "UpdateGroupMember", + Handler: _LogicExt_UpdateGroupMember_Handler, + }, + { + MethodName: "DeleteGroupMember", + Handler: _LogicExt_DeleteGroupMember_Handler, + }, + { + MethodName: "GetGroupMembers", + Handler: _LogicExt_GetGroupMembers_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "logic.ext.proto", +} diff --git a/pkg/pb/im.logic.int.pb.go b/pkg/pb/im.logic.int.pb.go new file mode 100644 index 0000000..c7e89ed --- /dev/null +++ b/pkg/pb/im.logic.int.pb.go @@ -0,0 +1,1547 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.14.0 +// source: logic.int.proto_back + +package pb + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + 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 ConnSignInReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeviceId int64 `protobuf:"varint,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"` // 设备id + UserId int64 `protobuf:"varint,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` // 用户id + Token string `protobuf:"bytes,3,opt,name=token,proto3" json:"token,omitempty"` // 秘钥 + ConnAddr string `protobuf:"bytes,4,opt,name=conn_addr,json=connAddr,proto3" json:"conn_addr,omitempty"` // 服务器地址 + ClientAddr string `protobuf:"bytes,5,opt,name=client_addr,json=clientAddr,proto3" json:"client_addr,omitempty"` // 客户端地址 +} + +func (x *ConnSignInReq) Reset() { + *x = ConnSignInReq{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_int_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConnSignInReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConnSignInReq) ProtoMessage() {} + +func (x *ConnSignInReq) ProtoReflect() protoreflect.Message { + mi := &file_logic_int_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 ConnSignInReq.ProtoReflect.Descriptor instead. +func (*ConnSignInReq) Descriptor() ([]byte, []int) { + return file_logic_int_proto_rawDescGZIP(), []int{0} +} + +func (x *ConnSignInReq) GetDeviceId() int64 { + if x != nil { + return x.DeviceId + } + return 0 +} + +func (x *ConnSignInReq) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *ConnSignInReq) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +func (x *ConnSignInReq) GetConnAddr() string { + if x != nil { + return x.ConnAddr + } + return "" +} + +func (x *ConnSignInReq) GetClientAddr() string { + if x != nil { + return x.ClientAddr + } + return "" +} + +type SyncReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int64 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` // 用户id + DeviceId int64 `protobuf:"varint,2,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"` // 设备id + Seq int64 `protobuf:"varint,3,opt,name=seq,proto3" json:"seq,omitempty"` // 客户端已经同步的序列号 +} + +func (x *SyncReq) Reset() { + *x = SyncReq{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_int_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SyncReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SyncReq) ProtoMessage() {} + +func (x *SyncReq) ProtoReflect() protoreflect.Message { + mi := &file_logic_int_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 SyncReq.ProtoReflect.Descriptor instead. +func (*SyncReq) Descriptor() ([]byte, []int) { + return file_logic_int_proto_rawDescGZIP(), []int{1} +} + +func (x *SyncReq) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *SyncReq) GetDeviceId() int64 { + if x != nil { + return x.DeviceId + } + return 0 +} + +func (x *SyncReq) GetSeq() int64 { + if x != nil { + return x.Seq + } + return 0 +} + +type SyncResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Messages []*Message `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"` // 消息列表 + HasMore bool `protobuf:"varint,2,opt,name=has_more,json=hasMore,proto3" json:"has_more,omitempty"` // 是否有更多数据 +} + +func (x *SyncResp) Reset() { + *x = SyncResp{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_int_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SyncResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SyncResp) ProtoMessage() {} + +func (x *SyncResp) ProtoReflect() protoreflect.Message { + mi := &file_logic_int_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 SyncResp.ProtoReflect.Descriptor instead. +func (*SyncResp) Descriptor() ([]byte, []int) { + return file_logic_int_proto_rawDescGZIP(), []int{2} +} + +func (x *SyncResp) GetMessages() []*Message { + if x != nil { + return x.Messages + } + return nil +} + +func (x *SyncResp) GetHasMore() bool { + if x != nil { + return x.HasMore + } + return false +} + +type MessageACKReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int64 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` // 用户id + DeviceId int64 `protobuf:"varint,2,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"` // 设备id + DeviceAck int64 `protobuf:"varint,3,opt,name=device_ack,json=deviceAck,proto3" json:"device_ack,omitempty"` // 设备收到消息的确认号 + ReceiveTime int64 `protobuf:"varint,4,opt,name=receive_time,json=receiveTime,proto3" json:"receive_time,omitempty"` // 消息接收时间戳,精确到毫秒 +} + +func (x *MessageACKReq) Reset() { + *x = MessageACKReq{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_int_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MessageACKReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MessageACKReq) ProtoMessage() {} + +func (x *MessageACKReq) ProtoReflect() protoreflect.Message { + mi := &file_logic_int_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 MessageACKReq.ProtoReflect.Descriptor instead. +func (*MessageACKReq) Descriptor() ([]byte, []int) { + return file_logic_int_proto_rawDescGZIP(), []int{3} +} + +func (x *MessageACKReq) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *MessageACKReq) GetDeviceId() int64 { + if x != nil { + return x.DeviceId + } + return 0 +} + +func (x *MessageACKReq) GetDeviceAck() int64 { + if x != nil { + return x.DeviceAck + } + return 0 +} + +func (x *MessageACKReq) GetReceiveTime() int64 { + if x != nil { + return x.ReceiveTime + } + return 0 +} + +type OfflineReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int64 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` // 用户id + DeviceId int64 `protobuf:"varint,2,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"` // 设备id + ClientAddr string `protobuf:"bytes,3,opt,name=client_addr,json=clientAddr,proto3" json:"client_addr,omitempty"` // 客户端地址 +} + +func (x *OfflineReq) Reset() { + *x = OfflineReq{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_int_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OfflineReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OfflineReq) ProtoMessage() {} + +func (x *OfflineReq) ProtoReflect() protoreflect.Message { + mi := &file_logic_int_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 OfflineReq.ProtoReflect.Descriptor instead. +func (*OfflineReq) Descriptor() ([]byte, []int) { + return file_logic_int_proto_rawDescGZIP(), []int{4} +} + +func (x *OfflineReq) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *OfflineReq) GetDeviceId() int64 { + if x != nil { + return x.DeviceId + } + return 0 +} + +func (x *OfflineReq) GetClientAddr() string { + if x != nil { + return x.ClientAddr + } + return "" +} + +type SubscribeRoomReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int64 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` // 用户id + DeviceId int64 `protobuf:"varint,2,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"` // 设备id + RoomId int64 `protobuf:"varint,3,opt,name=room_id,json=roomId,proto3" json:"room_id,omitempty"` // 房间id + Seq int64 `protobuf:"varint,4,opt,name=seq,proto3" json:"seq,omitempty"` // 消息序列号 + ConnAddr string `protobuf:"bytes,5,opt,name=conn_addr,json=connAddr,proto3" json:"conn_addr,omitempty"` // 服务器地址 +} + +func (x *SubscribeRoomReq) Reset() { + *x = SubscribeRoomReq{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_int_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubscribeRoomReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubscribeRoomReq) ProtoMessage() {} + +func (x *SubscribeRoomReq) ProtoReflect() protoreflect.Message { + mi := &file_logic_int_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 SubscribeRoomReq.ProtoReflect.Descriptor instead. +func (*SubscribeRoomReq) Descriptor() ([]byte, []int) { + return file_logic_int_proto_rawDescGZIP(), []int{5} +} + +func (x *SubscribeRoomReq) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *SubscribeRoomReq) GetDeviceId() int64 { + if x != nil { + return x.DeviceId + } + return 0 +} + +func (x *SubscribeRoomReq) GetRoomId() int64 { + if x != nil { + return x.RoomId + } + return 0 +} + +func (x *SubscribeRoomReq) GetSeq() int64 { + if x != nil { + return x.Seq + } + return 0 +} + +func (x *SubscribeRoomReq) GetConnAddr() string { + if x != nil { + return x.ConnAddr + } + return "" +} + +type PushAllReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MessageType MessageType `protobuf:"varint,1,opt,name=message_type,json=messageType,proto3,enum=pb.MessageType" json:"message_type,omitempty"` // 消息类型 + MessageContent []byte `protobuf:"bytes,2,opt,name=message_content,json=messageContent,proto3" json:"message_content,omitempty"` // 消息内容 + SendTime int64 `protobuf:"varint,3,opt,name=send_time,json=sendTime,proto3" json:"send_time,omitempty"` // 消息发送时间戳,精确到毫秒 +} + +func (x *PushAllReq) Reset() { + *x = PushAllReq{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_int_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PushAllReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PushAllReq) ProtoMessage() {} + +func (x *PushAllReq) ProtoReflect() protoreflect.Message { + mi := &file_logic_int_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 PushAllReq.ProtoReflect.Descriptor instead. +func (*PushAllReq) Descriptor() ([]byte, []int) { + return file_logic_int_proto_rawDescGZIP(), []int{6} +} + +func (x *PushAllReq) GetMessageType() MessageType { + if x != nil { + return x.MessageType + } + return MessageType_MT_UNKNOWN +} + +func (x *PushAllReq) GetMessageContent() []byte { + if x != nil { + return x.MessageContent + } + return nil +} + +func (x *PushAllReq) GetSendTime() int64 { + if x != nil { + return x.SendTime + } + return 0 +} + +type GetDeviceReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeviceId int64 `protobuf:"varint,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"` +} + +func (x *GetDeviceReq) Reset() { + *x = GetDeviceReq{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_int_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetDeviceReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDeviceReq) ProtoMessage() {} + +func (x *GetDeviceReq) ProtoReflect() protoreflect.Message { + mi := &file_logic_int_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 GetDeviceReq.ProtoReflect.Descriptor instead. +func (*GetDeviceReq) Descriptor() ([]byte, []int) { + return file_logic_int_proto_rawDescGZIP(), []int{7} +} + +func (x *GetDeviceReq) GetDeviceId() int64 { + if x != nil { + return x.DeviceId + } + return 0 +} + +type GetDeviceResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Device *Device `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"` +} + +func (x *GetDeviceResp) Reset() { + *x = GetDeviceResp{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_int_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetDeviceResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDeviceResp) ProtoMessage() {} + +func (x *GetDeviceResp) ProtoReflect() protoreflect.Message { + mi := &file_logic_int_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 GetDeviceResp.ProtoReflect.Descriptor instead. +func (*GetDeviceResp) Descriptor() ([]byte, []int) { + return file_logic_int_proto_rawDescGZIP(), []int{8} +} + +func (x *GetDeviceResp) GetDevice() *Device { + if x != nil { + return x.Device + } + return nil +} + +type Device struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeviceId int64 `protobuf:"varint,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"` // 设备id + UserId int64 `protobuf:"varint,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` // 用户id + Type int32 `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"` // 设备类型,1:Android;2:IOS;3:Windows; 4:MacOS;5:Web + Brand string `protobuf:"bytes,4,opt,name=brand,proto3" json:"brand,omitempty"` // 手机厂商 + Model string `protobuf:"bytes,5,opt,name=model,proto3" json:"model,omitempty"` // 机型 + SystemVersion string `protobuf:"bytes,6,opt,name=system_version,json=systemVersion,proto3" json:"system_version,omitempty"` // 系统版本 + SdkVersion string `protobuf:"bytes,7,opt,name=sdk_version,json=sdkVersion,proto3" json:"sdk_version,omitempty"` // SDK版本 + Status int32 `protobuf:"varint,8,opt,name=status,proto3" json:"status,omitempty"` // 在线状态,0:不在线;1:在线 + ConnAddr string `protobuf:"bytes,9,opt,name=conn_addr,json=connAddr,proto3" json:"conn_addr,omitempty"` // 服务端连接地址 + ClientAddr string `protobuf:"bytes,10,opt,name=client_addr,json=clientAddr,proto3" json:"client_addr,omitempty"` // 客户端地址 + CreateTime int64 `protobuf:"varint,11,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` // 创建时间 + UpdateTime int64 `protobuf:"varint,12,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` // 更新时间 +} + +func (x *Device) Reset() { + *x = Device{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_int_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Device) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Device) ProtoMessage() {} + +func (x *Device) ProtoReflect() protoreflect.Message { + mi := &file_logic_int_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 Device.ProtoReflect.Descriptor instead. +func (*Device) Descriptor() ([]byte, []int) { + return file_logic_int_proto_rawDescGZIP(), []int{9} +} + +func (x *Device) GetDeviceId() int64 { + if x != nil { + return x.DeviceId + } + return 0 +} + +func (x *Device) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *Device) GetType() int32 { + if x != nil { + return x.Type + } + return 0 +} + +func (x *Device) GetBrand() string { + if x != nil { + return x.Brand + } + return "" +} + +func (x *Device) GetModel() string { + if x != nil { + return x.Model + } + return "" +} + +func (x *Device) GetSystemVersion() string { + if x != nil { + return x.SystemVersion + } + return "" +} + +func (x *Device) GetSdkVersion() string { + if x != nil { + return x.SdkVersion + } + return "" +} + +func (x *Device) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *Device) GetConnAddr() string { + if x != nil { + return x.ConnAddr + } + return "" +} + +func (x *Device) GetClientAddr() string { + if x != nil { + return x.ClientAddr + } + return "" +} + +func (x *Device) GetCreateTime() int64 { + if x != nil { + return x.CreateTime + } + return 0 +} + +func (x *Device) GetUpdateTime() int64 { + if x != nil { + return x.UpdateTime + } + return 0 +} + +type ServerStopReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ConnAddr string `protobuf:"bytes,1,opt,name=conn_addr,json=connAddr,proto3" json:"conn_addr,omitempty"` +} + +func (x *ServerStopReq) Reset() { + *x = ServerStopReq{} + if protoimpl.UnsafeEnabled { + mi := &file_logic_int_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServerStopReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServerStopReq) ProtoMessage() {} + +func (x *ServerStopReq) ProtoReflect() protoreflect.Message { + mi := &file_logic_int_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 ServerStopReq.ProtoReflect.Descriptor instead. +func (*ServerStopReq) Descriptor() ([]byte, []int) { + return file_logic_int_proto_rawDescGZIP(), []int{10} +} + +func (x *ServerStopReq) GetConnAddr() string { + if x != nil { + return x.ConnAddr + } + return "" +} + +var File_logic_int_proto protoreflect.FileDescriptor + +var file_logic_int_proto_rawDesc = []byte{ + 0x0a, 0x0f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x2e, 0x69, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x65, 0x78, + 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0f, 0x6c, 0x6f, 0x67, 0x69, + 0x63, 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x99, 0x01, 0x0a, 0x0d, + 0x43, 0x6f, 0x6e, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, + 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x6e, + 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, + 0x6e, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x22, 0x51, 0x0a, 0x07, 0x53, 0x79, 0x6e, 0x63, 0x52, + 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, + 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x71, 0x22, 0x4e, 0x0a, 0x08, 0x53, 0x79, + 0x6e, 0x63, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, + 0x19, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x07, 0x68, 0x61, 0x73, 0x4d, 0x6f, 0x72, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x0d, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x43, 0x4b, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x6b, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, + 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x22, 0x63, 0x0a, 0x0a, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x52, + 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, + 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x22, 0x90, 0x01, 0x0a, 0x10, 0x53, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x17, + 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x10, 0x0a, + 0x03, 0x73, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, + 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x22, 0x86, 0x01, 0x0a, + 0x0a, 0x50, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x32, 0x0a, 0x0c, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x27, 0x0a, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x6e, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x2b, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x49, 0x64, 0x22, 0x33, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, + 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0xde, 0x02, 0x0a, 0x06, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, + 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x62, 0x72, 0x61, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x72, 0x61, + 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x1f, 0x0a, 0x0b, 0x73, 0x64, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x64, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x6e, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, + 0x6e, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 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, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x2c, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x6e, + 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, + 0x6e, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x32, 0xc1, 0x03, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x63, + 0x49, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x49, + 0x6e, 0x12, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x49, + 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, + 0x21, 0x0a, 0x04, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x0b, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, + 0x63, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x43, 0x4b, + 0x12, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x43, 0x4b, + 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x24, + 0x0a, 0x07, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x4f, + 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x12, 0x30, 0x0a, 0x0d, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, + 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x62, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x70, 0x62, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x36, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x53, + 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x26, + 0x0a, 0x08, 0x50, 0x75, 0x73, 0x68, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x2e, + 0x50, 0x75, 0x73, 0x68, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x70, 0x62, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x24, 0x0a, 0x07, 0x50, 0x75, 0x73, 0x68, 0x41, 0x6c, + 0x6c, 0x12, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x52, 0x65, + 0x71, 0x1a, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x30, 0x0a, 0x09, + 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x47, + 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, + 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, + 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x11, 0x2e, 0x70, + 0x62, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x1a, + 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x0d, 0x5a, 0x0b, 0x67, 0x69, + 0x6d, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x62, 0x2f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_logic_int_proto_rawDescOnce sync.Once + file_logic_int_proto_rawDescData = file_logic_int_proto_rawDesc +) + +func file_logic_int_proto_rawDescGZIP() []byte { + file_logic_int_proto_rawDescOnce.Do(func() { + file_logic_int_proto_rawDescData = protoimpl.X.CompressGZIP(file_logic_int_proto_rawDescData) + }) + return file_logic_int_proto_rawDescData +} + +var file_logic_int_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_logic_int_proto_goTypes = []interface{}{ + (*ConnSignInReq)(nil), // 0: pb.ConnSignInReq + (*SyncReq)(nil), // 1: pb.SyncReq + (*SyncResp)(nil), // 2: pb.SyncResp + (*MessageACKReq)(nil), // 3: pb.MessageACKReq + (*OfflineReq)(nil), // 4: pb.OfflineReq + (*SubscribeRoomReq)(nil), // 5: pb.SubscribeRoomReq + (*PushAllReq)(nil), // 6: pb.PushAllReq + (*GetDeviceReq)(nil), // 7: pb.GetDeviceReq + (*GetDeviceResp)(nil), // 8: pb.GetDeviceResp + (*Device)(nil), // 9: pb.Device + (*ServerStopReq)(nil), // 10: pb.ServerStopReq + (*Message)(nil), // 11: pb.Message + (MessageType)(0), // 12: pb.MessageType + (*SendMessageReq)(nil), // 13: pb.SendMessageReq + (*PushRoomReq)(nil), // 14: pb.PushRoomReq + (*Empty)(nil), // 15: pb.Empty + (*SendMessageResp)(nil), // 16: pb.SendMessageResp +} +var file_logic_int_proto_depIdxs = []int32{ + 11, // 0: pb.SyncResp.messages:type_name -> pb.Message + 12, // 1: pb.PushAllReq.message_type:type_name -> pb.MessageType + 9, // 2: pb.GetDeviceResp.device:type_name -> pb.Device + 0, // 3: pb.LogicInt.ConnSignIn:input_type -> pb.ConnSignInReq + 1, // 4: pb.LogicInt.Sync:input_type -> pb.SyncReq + 3, // 5: pb.LogicInt.MessageACK:input_type -> pb.MessageACKReq + 4, // 6: pb.LogicInt.Offline:input_type -> pb.OfflineReq + 5, // 7: pb.LogicInt.SubscribeRoom:input_type -> pb.SubscribeRoomReq + 13, // 8: pb.LogicInt.SendMessage:input_type -> pb.SendMessageReq + 14, // 9: pb.LogicInt.PushRoom:input_type -> pb.PushRoomReq + 6, // 10: pb.LogicInt.PushAll:input_type -> pb.PushAllReq + 7, // 11: pb.LogicInt.GetDevice:input_type -> pb.GetDeviceReq + 10, // 12: pb.LogicInt.ServerStop:input_type -> pb.ServerStopReq + 15, // 13: pb.LogicInt.ConnSignIn:output_type -> pb.Empty + 2, // 14: pb.LogicInt.Sync:output_type -> pb.SyncResp + 15, // 15: pb.LogicInt.MessageACK:output_type -> pb.Empty + 15, // 16: pb.LogicInt.Offline:output_type -> pb.Empty + 15, // 17: pb.LogicInt.SubscribeRoom:output_type -> pb.Empty + 16, // 18: pb.LogicInt.SendMessage:output_type -> pb.SendMessageResp + 15, // 19: pb.LogicInt.PushRoom:output_type -> pb.Empty + 15, // 20: pb.LogicInt.PushAll:output_type -> pb.Empty + 8, // 21: pb.LogicInt.GetDevice:output_type -> pb.GetDeviceResp + 15, // 22: pb.LogicInt.ServerStop:output_type -> pb.Empty + 13, // [13:23] is the sub-list for method output_type + 3, // [3:13] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_logic_int_proto_init() } +func file_logic_int_proto_init() { + if File_logic_int_proto != nil { + return + } + file_common_ext_proto_init() + file_connect_ext_proto_init() + file_logic_ext_proto_init() + if !protoimpl.UnsafeEnabled { + file_logic_int_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConnSignInReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_int_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SyncReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_int_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SyncResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_int_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessageACKReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_int_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OfflineReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_int_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubscribeRoomReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_int_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PushAllReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_int_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDeviceReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_int_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDeviceResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_int_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Device); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_logic_int_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServerStopReq); 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_logic_int_proto_rawDesc, + NumEnums: 0, + NumMessages: 11, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_logic_int_proto_goTypes, + DependencyIndexes: file_logic_int_proto_depIdxs, + MessageInfos: file_logic_int_proto_msgTypes, + }.Build() + File_logic_int_proto = out.File + file_logic_int_proto_rawDesc = nil + file_logic_int_proto_goTypes = nil + file_logic_int_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated comm +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// LogicIntClient is the client API for LogicInt service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type LogicIntClient interface { + // 登录 + ConnSignIn(ctx context.Context, in *ConnSignInReq, opts ...grpc.CallOption) (*Empty, error) + // 消息同步 + Sync(ctx context.Context, in *SyncReq, opts ...grpc.CallOption) (*SyncResp, error) + // 设备收到消息回执 + MessageACK(ctx context.Context, in *MessageACKReq, opts ...grpc.CallOption) (*Empty, error) + // 设备离线 + Offline(ctx context.Context, in *OfflineReq, opts ...grpc.CallOption) (*Empty, error) + // 订阅房间 + SubscribeRoom(ctx context.Context, in *SubscribeRoomReq, opts ...grpc.CallOption) (*Empty, error) + // 发送消息 + SendMessage(ctx context.Context, in *SendMessageReq, opts ...grpc.CallOption) (*SendMessageResp, error) + // 推送消息到房间 + PushRoom(ctx context.Context, in *PushRoomReq, opts ...grpc.CallOption) (*Empty, error) + // 全服推送 + PushAll(ctx context.Context, in *PushAllReq, opts ...grpc.CallOption) (*Empty, error) + // 获取设备信息 + GetDevice(ctx context.Context, in *GetDeviceReq, opts ...grpc.CallOption) (*GetDeviceResp, error) + // 服务停止 + ServerStop(ctx context.Context, in *ServerStopReq, opts ...grpc.CallOption) (*Empty, error) +} + +type logicIntClient struct { + cc grpc.ClientConnInterface +} + +func NewLogicIntClient(cc grpc.ClientConnInterface) LogicIntClient { + return &logicIntClient{cc} +} + +func (c *logicIntClient) ConnSignIn(ctx context.Context, in *ConnSignInReq, opts ...grpc.CallOption) (*Empty, error) { + out := new(Empty) + err := c.cc.Invoke(ctx, "/pb.LogicInt/ConnSignIn", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *logicIntClient) Sync(ctx context.Context, in *SyncReq, opts ...grpc.CallOption) (*SyncResp, error) { + out := new(SyncResp) + err := c.cc.Invoke(ctx, "/pb.LogicInt/Sync", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *logicIntClient) MessageACK(ctx context.Context, in *MessageACKReq, opts ...grpc.CallOption) (*Empty, error) { + out := new(Empty) + err := c.cc.Invoke(ctx, "/pb.LogicInt/MessageACK", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *logicIntClient) Offline(ctx context.Context, in *OfflineReq, opts ...grpc.CallOption) (*Empty, error) { + out := new(Empty) + err := c.cc.Invoke(ctx, "/pb.LogicInt/Offline", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *logicIntClient) SubscribeRoom(ctx context.Context, in *SubscribeRoomReq, opts ...grpc.CallOption) (*Empty, error) { + out := new(Empty) + err := c.cc.Invoke(ctx, "/pb.LogicInt/SubscribeRoom", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *logicIntClient) SendMessage(ctx context.Context, in *SendMessageReq, opts ...grpc.CallOption) (*SendMessageResp, error) { + out := new(SendMessageResp) + err := c.cc.Invoke(ctx, "/pb.LogicInt/SendMessage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *logicIntClient) PushRoom(ctx context.Context, in *PushRoomReq, opts ...grpc.CallOption) (*Empty, error) { + out := new(Empty) + err := c.cc.Invoke(ctx, "/pb.LogicInt/PushRoom", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *logicIntClient) PushAll(ctx context.Context, in *PushAllReq, opts ...grpc.CallOption) (*Empty, error) { + out := new(Empty) + err := c.cc.Invoke(ctx, "/pb.LogicInt/PushAll", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *logicIntClient) GetDevice(ctx context.Context, in *GetDeviceReq, opts ...grpc.CallOption) (*GetDeviceResp, error) { + out := new(GetDeviceResp) + err := c.cc.Invoke(ctx, "/pb.LogicInt/GetDevice", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *logicIntClient) ServerStop(ctx context.Context, in *ServerStopReq, opts ...grpc.CallOption) (*Empty, error) { + out := new(Empty) + err := c.cc.Invoke(ctx, "/pb.LogicInt/ServerStop", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// LogicIntServer is the server API for LogicInt service. +type LogicIntServer interface { + // 登录 + ConnSignIn(context.Context, *ConnSignInReq) (*Empty, error) + // 消息同步 + Sync(context.Context, *SyncReq) (*SyncResp, error) + // 设备收到消息回执 + MessageACK(context.Context, *MessageACKReq) (*Empty, error) + // 设备离线 + Offline(context.Context, *OfflineReq) (*Empty, error) + // 订阅房间 + SubscribeRoom(context.Context, *SubscribeRoomReq) (*Empty, error) + // 发送消息 + SendMessage(context.Context, *SendMessageReq) (*SendMessageResp, error) + // 推送消息到房间 + PushRoom(context.Context, *PushRoomReq) (*Empty, error) + // 全服推送 + PushAll(context.Context, *PushAllReq) (*Empty, error) + // 获取设备信息 + GetDevice(context.Context, *GetDeviceReq) (*GetDeviceResp, error) + // 服务停止 + ServerStop(context.Context, *ServerStopReq) (*Empty, error) +} + +// UnimplementedLogicIntServer can be embedded to have forward compatible implementations. +type UnimplementedLogicIntServer struct { +} + +func (*UnimplementedLogicIntServer) ConnSignIn(context.Context, *ConnSignInReq) (*Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method ConnSignIn not implemented") +} +func (*UnimplementedLogicIntServer) Sync(context.Context, *SyncReq) (*SyncResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method Sync not implemented") +} +func (*UnimplementedLogicIntServer) MessageACK(context.Context, *MessageACKReq) (*Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method MessageACK not implemented") +} +func (*UnimplementedLogicIntServer) Offline(context.Context, *OfflineReq) (*Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method Offline not implemented") +} +func (*UnimplementedLogicIntServer) SubscribeRoom(context.Context, *SubscribeRoomReq) (*Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method SubscribeRoom not implemented") +} +func (*UnimplementedLogicIntServer) SendMessage(context.Context, *SendMessageReq) (*SendMessageResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method SendMessage not implemented") +} +func (*UnimplementedLogicIntServer) PushRoom(context.Context, *PushRoomReq) (*Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method PushRoom not implemented") +} +func (*UnimplementedLogicIntServer) PushAll(context.Context, *PushAllReq) (*Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method PushAll not implemented") +} +func (*UnimplementedLogicIntServer) GetDevice(context.Context, *GetDeviceReq) (*GetDeviceResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDevice not implemented") +} +func (*UnimplementedLogicIntServer) ServerStop(context.Context, *ServerStopReq) (*Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method ServerStop not implemented") +} + +func RegisterLogicIntServer(s *grpc.Server, srv LogicIntServer) { + s.RegisterService(&_LogicInt_serviceDesc, srv) +} + +func _LogicInt_ConnSignIn_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ConnSignInReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicIntServer).ConnSignIn(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicInt/ConnSignIn", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicIntServer).ConnSignIn(ctx, req.(*ConnSignInReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _LogicInt_Sync_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SyncReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicIntServer).Sync(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicInt/Sync", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicIntServer).Sync(ctx, req.(*SyncReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _LogicInt_MessageACK_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MessageACKReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicIntServer).MessageACK(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicInt/MessageACK", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicIntServer).MessageACK(ctx, req.(*MessageACKReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _LogicInt_Offline_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(OfflineReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicIntServer).Offline(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicInt/Offline", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicIntServer).Offline(ctx, req.(*OfflineReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _LogicInt_SubscribeRoom_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SubscribeRoomReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicIntServer).SubscribeRoom(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicInt/SubscribeRoom", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicIntServer).SubscribeRoom(ctx, req.(*SubscribeRoomReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _LogicInt_SendMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SendMessageReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicIntServer).SendMessage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicInt/SendMessage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicIntServer).SendMessage(ctx, req.(*SendMessageReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _LogicInt_PushRoom_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PushRoomReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicIntServer).PushRoom(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicInt/PushRoom", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicIntServer).PushRoom(ctx, req.(*PushRoomReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _LogicInt_PushAll_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PushAllReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicIntServer).PushAll(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicInt/PushAll", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicIntServer).PushAll(ctx, req.(*PushAllReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _LogicInt_GetDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetDeviceReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicIntServer).GetDevice(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicInt/GetDevice", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicIntServer).GetDevice(ctx, req.(*GetDeviceReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _LogicInt_ServerStop_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ServerStopReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogicIntServer).ServerStop(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.LogicInt/ServerStop", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogicIntServer).ServerStop(ctx, req.(*ServerStopReq)) + } + return interceptor(ctx, in, info, handler) +} + +var _LogicInt_serviceDesc = grpc.ServiceDesc{ + ServiceName: "pb.LogicInt", + HandlerType: (*LogicIntServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ConnSignIn", + Handler: _LogicInt_ConnSignIn_Handler, + }, + { + MethodName: "Sync", + Handler: _LogicInt_Sync_Handler, + }, + { + MethodName: "MessageACK", + Handler: _LogicInt_MessageACK_Handler, + }, + { + MethodName: "Offline", + Handler: _LogicInt_Offline_Handler, + }, + { + MethodName: "SubscribeRoom", + Handler: _LogicInt_SubscribeRoom_Handler, + }, + { + MethodName: "SendMessage", + Handler: _LogicInt_SendMessage_Handler, + }, + { + MethodName: "PushRoom", + Handler: _LogicInt_PushRoom_Handler, + }, + { + MethodName: "PushAll", + Handler: _LogicInt_PushAll_Handler, + }, + { + MethodName: "GetDevice", + Handler: _LogicInt_GetDevice_Handler, + }, + { + MethodName: "ServerStop", + Handler: _LogicInt_ServerStop_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "logic.int.proto_back", +} diff --git a/pkg/pb/im.push.ext.pb.go b/pkg/pb/im.push.ext.pb.go new file mode 100644 index 0000000..2e7bfd9 --- /dev/null +++ b/pkg/pb/im.push.ext.pb.go @@ -0,0 +1,623 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.20.0--rc1 +// source: im.push.ext.proto + +package pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + 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 PushCode int32 + +const ( + PushCode_PC_ADD_DEFAULT PushCode = 0 + PushCode_PC_ADD_FRIEND PushCode = 100 // 添加好友请求 + PushCode_PC_AGREE_ADD_FRIEND PushCode = 101 // 同意添加好友 + PushCode_PC_UPDATE_GROUP PushCode = 110 // 更新群组 + PushCode_PC_ADD_GROUP_MEMBERS PushCode = 120 // 添加群组成员 + PushCode_PC_REMOVE_GROUP_MEMBER PushCode = 121 // 移除群组成员 +) + +// Enum value maps for PushCode. +var ( + PushCode_name = map[int32]string{ + 0: "PC_ADD_DEFAULT", + 100: "PC_ADD_FRIEND", + 101: "PC_AGREE_ADD_FRIEND", + 110: "PC_UPDATE_GROUP", + 120: "PC_ADD_GROUP_MEMBERS", + 121: "PC_REMOVE_GROUP_MEMBER", + } + PushCode_value = map[string]int32{ + "PC_ADD_DEFAULT": 0, + "PC_ADD_FRIEND": 100, + "PC_AGREE_ADD_FRIEND": 101, + "PC_UPDATE_GROUP": 110, + "PC_ADD_GROUP_MEMBERS": 120, + "PC_REMOVE_GROUP_MEMBER": 121, + } +) + +func (x PushCode) Enum() *PushCode { + p := new(PushCode) + *p = x + return p +} + +func (x PushCode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PushCode) Descriptor() protoreflect.EnumDescriptor { + return file_push_ext_proto_enumTypes[0].Descriptor() +} + +func (PushCode) Type() protoreflect.EnumType { + return &file_push_ext_proto_enumTypes[0] +} + +func (x PushCode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PushCode.Descriptor instead. +func (PushCode) EnumDescriptor() ([]byte, []int) { + return file_push_ext_proto_rawDescGZIP(), []int{0} +} + +// 推送码 PC_ADD_FRIEND = 100 +type AddFriendPush struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FriendId int64 `protobuf:"varint,1,opt,name=friend_id,json=friendId,proto3" json:"friend_id,omitempty"` // 好友id + Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"` // 昵称 + AvatarUrl string `protobuf:"bytes,3,opt,name=avatar_url,json=avatarUrl,proto3" json:"avatar_url,omitempty"` // 头像 + Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` // 描述 +} + +func (x *AddFriendPush) Reset() { + *x = AddFriendPush{} + if protoimpl.UnsafeEnabled { + mi := &file_push_ext_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddFriendPush) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddFriendPush) ProtoMessage() {} + +func (x *AddFriendPush) ProtoReflect() protoreflect.Message { + mi := &file_push_ext_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 AddFriendPush.ProtoReflect.Descriptor instead. +func (*AddFriendPush) Descriptor() ([]byte, []int) { + return file_push_ext_proto_rawDescGZIP(), []int{0} +} + +func (x *AddFriendPush) GetFriendId() int64 { + if x != nil { + return x.FriendId + } + return 0 +} + +func (x *AddFriendPush) GetNickname() string { + if x != nil { + return x.Nickname + } + return "" +} + +func (x *AddFriendPush) GetAvatarUrl() string { + if x != nil { + return x.AvatarUrl + } + return "" +} + +func (x *AddFriendPush) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +// 推送码 PC_AGREE_ADD_FRIEND = 101 +type AgreeAddFriendPush struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FriendId int64 `protobuf:"varint,1,opt,name=friend_id,json=friendId,proto3" json:"friend_id,omitempty"` // 好友id + Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"` // 昵称 + AvatarUrl string `protobuf:"bytes,3,opt,name=avatar_url,json=avatarUrl,proto3" json:"avatar_url,omitempty"` // 头像 +} + +func (x *AgreeAddFriendPush) Reset() { + *x = AgreeAddFriendPush{} + if protoimpl.UnsafeEnabled { + mi := &file_push_ext_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AgreeAddFriendPush) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AgreeAddFriendPush) ProtoMessage() {} + +func (x *AgreeAddFriendPush) ProtoReflect() protoreflect.Message { + mi := &file_push_ext_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 AgreeAddFriendPush.ProtoReflect.Descriptor instead. +func (*AgreeAddFriendPush) Descriptor() ([]byte, []int) { + return file_push_ext_proto_rawDescGZIP(), []int{1} +} + +func (x *AgreeAddFriendPush) GetFriendId() int64 { + if x != nil { + return x.FriendId + } + return 0 +} + +func (x *AgreeAddFriendPush) GetNickname() string { + if x != nil { + return x.Nickname + } + return "" +} + +func (x *AgreeAddFriendPush) GetAvatarUrl() string { + if x != nil { + return x.AvatarUrl + } + return "" +} + +// 更新群组 PC_UPDATE_GROUP = 110 +type UpdateGroupPush struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OptId int64 `protobuf:"varint,1,opt,name=opt_id,json=optId,proto3" json:"opt_id,omitempty"` // 操作人用户id + OptName string `protobuf:"bytes,2,opt,name=opt_name,json=optName,proto3" json:"opt_name,omitempty"` // 操作人昵称 + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` // 群组名称 + AvatarUrl string `protobuf:"bytes,4,opt,name=avatar_url,json=avatarUrl,proto3" json:"avatar_url,omitempty"` // 群组头像 + Introduction string `protobuf:"bytes,5,opt,name=introduction,proto3" json:"introduction,omitempty"` // 群组简介 + Extra string `protobuf:"bytes,6,opt,name=extra,proto3" json:"extra,omitempty"` // 附加字段 +} + +func (x *UpdateGroupPush) Reset() { + *x = UpdateGroupPush{} + if protoimpl.UnsafeEnabled { + mi := &file_push_ext_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateGroupPush) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateGroupPush) ProtoMessage() {} + +func (x *UpdateGroupPush) ProtoReflect() protoreflect.Message { + mi := &file_push_ext_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 UpdateGroupPush.ProtoReflect.Descriptor instead. +func (*UpdateGroupPush) Descriptor() ([]byte, []int) { + return file_push_ext_proto_rawDescGZIP(), []int{2} +} + +func (x *UpdateGroupPush) GetOptId() int64 { + if x != nil { + return x.OptId + } + return 0 +} + +func (x *UpdateGroupPush) GetOptName() string { + if x != nil { + return x.OptName + } + return "" +} + +func (x *UpdateGroupPush) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *UpdateGroupPush) GetAvatarUrl() string { + if x != nil { + return x.AvatarUrl + } + return "" +} + +func (x *UpdateGroupPush) GetIntroduction() string { + if x != nil { + return x.Introduction + } + return "" +} + +func (x *UpdateGroupPush) GetExtra() string { + if x != nil { + return x.Extra + } + return "" +} + +// 添加群组成员 PC_AGREE_ADD_GROUPS = 120 +type AddGroupMembersPush struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OptId int64 `protobuf:"varint,1,opt,name=opt_id,json=optId,proto3" json:"opt_id,omitempty"` // 操作人用户id + OptName string `protobuf:"bytes,2,opt,name=opt_name,json=optName,proto3" json:"opt_name,omitempty"` // 操作人昵称 + Members []*GroupMember `protobuf:"bytes,3,rep,name=members,proto3" json:"members,omitempty"` // 群组成员 +} + +func (x *AddGroupMembersPush) Reset() { + *x = AddGroupMembersPush{} + if protoimpl.UnsafeEnabled { + mi := &file_push_ext_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddGroupMembersPush) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddGroupMembersPush) ProtoMessage() {} + +func (x *AddGroupMembersPush) ProtoReflect() protoreflect.Message { + mi := &file_push_ext_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 AddGroupMembersPush.ProtoReflect.Descriptor instead. +func (*AddGroupMembersPush) Descriptor() ([]byte, []int) { + return file_push_ext_proto_rawDescGZIP(), []int{3} +} + +func (x *AddGroupMembersPush) GetOptId() int64 { + if x != nil { + return x.OptId + } + return 0 +} + +func (x *AddGroupMembersPush) GetOptName() string { + if x != nil { + return x.OptName + } + return "" +} + +func (x *AddGroupMembersPush) GetMembers() []*GroupMember { + if x != nil { + return x.Members + } + return nil +} + +// 删除群组成员 PC_REMOVE_GROUP_MEMBER = 121 +type RemoveGroupMemberPush struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OptId int64 `protobuf:"varint,1,opt,name=opt_id,json=optId,proto3" json:"opt_id,omitempty"` // 操作人用户id + OptName string `protobuf:"bytes,2,opt,name=opt_name,json=optName,proto3" json:"opt_name,omitempty"` // 操作人昵称 + DeletedUserId int64 `protobuf:"varint,3,opt,name=deleted_user_id,json=deletedUserId,proto3" json:"deleted_user_id,omitempty"` // 被删除的成员id + DeletedUserName string `protobuf:"bytes,4,opt,name=deleted_user_name,json=deletedUserName,proto3" json:"deleted_user_name,omitempty"` // 被删除的成员昵称 +} + +func (x *RemoveGroupMemberPush) Reset() { + *x = RemoveGroupMemberPush{} + if protoimpl.UnsafeEnabled { + mi := &file_push_ext_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveGroupMemberPush) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveGroupMemberPush) ProtoMessage() {} + +func (x *RemoveGroupMemberPush) ProtoReflect() protoreflect.Message { + mi := &file_push_ext_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 RemoveGroupMemberPush.ProtoReflect.Descriptor instead. +func (*RemoveGroupMemberPush) Descriptor() ([]byte, []int) { + return file_push_ext_proto_rawDescGZIP(), []int{4} +} + +func (x *RemoveGroupMemberPush) GetOptId() int64 { + if x != nil { + return x.OptId + } + return 0 +} + +func (x *RemoveGroupMemberPush) GetOptName() string { + if x != nil { + return x.OptName + } + return "" +} + +func (x *RemoveGroupMemberPush) GetDeletedUserId() int64 { + if x != nil { + return x.DeletedUserId + } + return 0 +} + +func (x *RemoveGroupMemberPush) GetDeletedUserName() string { + if x != nil { + return x.DeletedUserName + } + return "" +} + +var File_push_ext_proto protoreflect.FileDescriptor + +var file_push_ext_proto_rawDesc = []byte{ + 0x0a, 0x0e, 0x70, 0x75, 0x73, 0x68, 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x02, 0x70, 0x62, 0x1a, 0x0f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x89, 0x01, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x6c, 0x0a, 0x12, 0x41, 0x67, 0x72, 0x65, 0x65, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x22, + 0xb0, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, + 0x75, 0x73, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x05, 0x6f, 0x70, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x70, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x76, 0x61, + 0x74, 0x61, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, + 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x78, 0x74, + 0x72, 0x61, 0x22, 0x72, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x50, 0x75, 0x73, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x70, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6f, 0x70, 0x74, 0x49, 0x64, + 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x70, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x07, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, + 0x62, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x9d, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x75, 0x73, 0x68, + 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x05, 0x6f, 0x70, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x70, 0x74, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x55, 0x73, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x2a, 0x95, 0x01, 0x0a, 0x08, 0x50, 0x75, 0x73, 0x68, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x43, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x44, 0x45, + 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x43, 0x5f, 0x41, 0x44, + 0x44, 0x5f, 0x46, 0x52, 0x49, 0x45, 0x4e, 0x44, 0x10, 0x64, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x43, + 0x5f, 0x41, 0x47, 0x52, 0x45, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x46, 0x52, 0x49, 0x45, 0x4e, + 0x44, 0x10, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x43, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, + 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x6e, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x43, 0x5f, 0x41, + 0x44, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, + 0x10, 0x78, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x43, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, + 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x79, 0x42, 0x0d, + 0x5a, 0x0b, 0x67, 0x69, 0x6d, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x62, 0x2f, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_push_ext_proto_rawDescOnce sync.Once + file_push_ext_proto_rawDescData = file_push_ext_proto_rawDesc +) + +func file_push_ext_proto_rawDescGZIP() []byte { + file_push_ext_proto_rawDescOnce.Do(func() { + file_push_ext_proto_rawDescData = protoimpl.X.CompressGZIP(file_push_ext_proto_rawDescData) + }) + return file_push_ext_proto_rawDescData +} + +var file_push_ext_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_push_ext_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_push_ext_proto_goTypes = []interface{}{ + (PushCode)(0), // 0: pb.PushCode + (*AddFriendPush)(nil), // 1: pb.AddFriendPush + (*AgreeAddFriendPush)(nil), // 2: pb.AgreeAddFriendPush + (*UpdateGroupPush)(nil), // 3: pb.UpdateGroupPush + (*AddGroupMembersPush)(nil), // 4: pb.AddGroupMembersPush + (*RemoveGroupMemberPush)(nil), // 5: pb.RemoveGroupMemberPush + (*GroupMember)(nil), // 6: pb.GroupMember +} +var file_push_ext_proto_depIdxs = []int32{ + 6, // 0: pb.AddGroupMembersPush.members:type_name -> pb.GroupMember + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_push_ext_proto_init() } +func file_push_ext_proto_init() { + if File_push_ext_proto != nil { + return + } + file_logic_ext_proto_init() + if !protoimpl.UnsafeEnabled { + file_push_ext_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddFriendPush); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_push_ext_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AgreeAddFriendPush); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_push_ext_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateGroupPush); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_push_ext_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddGroupMembersPush); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_push_ext_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemoveGroupMemberPush); 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_push_ext_proto_rawDesc, + NumEnums: 1, + NumMessages: 5, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_push_ext_proto_goTypes, + DependencyIndexes: file_push_ext_proto_depIdxs, + EnumInfos: file_push_ext_proto_enumTypes, + MessageInfos: file_push_ext_proto_msgTypes, + }.Build() + File_push_ext_proto = out.File + file_push_ext_proto_rawDesc = nil + file_push_ext_proto_goTypes = nil + file_push_ext_proto_depIdxs = nil +} diff --git a/pkg/proto/im.business.ext.proto b/pkg/proto/im.business.ext.proto new file mode 100644 index 0000000..65db6ee --- /dev/null +++ b/pkg/proto/im.business.ext.proto @@ -0,0 +1,103 @@ +syntax = "proto3"; +package pb; +option go_package = "gim/pkg/pb/"; + +import "im.common.ext.proto"; + +service BusinessExt { + // 登录 + rpc SignIn (SignInReq) returns (SignInResp); + // 获取用户信息 + rpc GetUser (GetUserReq) returns (GetUserResp); + // 更新用户信息 + rpc UpdateUser (UpdateUserReq) returns (Empty); + // 搜索用户(这里简单数据库实现,生产环境建议使用ES) + rpc SearchUser (SearchUserReq) returns (SearchUserResp); + // 上传文件至云端 + rpc CloudUploadFile (CloudUploadFileReq) returns (CloudUploadFileResp); + // 获取表情 + rpc EmoticonList (Empty) returns (EmoticonListResp); + // 判断是否为好友关系 + rpc IsFriends (IsFriendsReq) returns (IsFriendsResp); +} + + +message IsFriendsReq { + string user_phone = 1; + string friend_phone = 2; +} + +message IsFriendsResp { + int64 is_friend = 1; + User user = 2; // 用户信息 +} + +message Emoticon { + string name = 1; // 名称 + string img_url = 2; // 图片地址 + string memo = 3; // 备注 + int32 sort = 4; // 排序 +} +message EmoticonListResp { + repeated Emoticon emoticons = 1; +} +message SignInReq { + string phone_number = 1; // 手机号 + string code = 2; // 验证码 + int64 device_id = 3; // 设备id + int64 master_id = 4; // 站长id + string push_alia = 5; // 极光推送-别名 +} +message SignInResp { + bool is_new = 1; // 是否是新用户 + int64 user_id = 2; // 用户id + string token = 3; // token + int64 master_id = 4; // 站长id +} +message CloudUploadFileReq { + string dir = 1; // 目录名 + string file_name = 2; // 上传原文件名称 + string file_size = 3; // 文件大小 +} +message CloudUploadFileResp { + string method = 1; // 请求方式 + string host = 2; // 域名 + string key = 3; // key + string token = 4; // token +} + +message User { + int64 user_id = 1; // 用户id + string nickname = 2; // 昵称 + int32 sex = 3; // 性别 + string avatar_url = 4; // 头像地址 + string extra = 5; // 附加字段 + int64 create_time = 6; // 创建时间 + int64 update_time = 7; // 更新时间 + int64 master_id = 8; // 站长id + int64 is_auto_added_friends = 9; // 是否自动被添加好友 +} + +message GetUserReq { + int64 user_id = 1; // 用户id + string phone = 2; // 用户手机号 +} +message GetUserResp { + User user = 1; // 用户信息 +} + +message UpdateUserReq { + string nickname = 1; // 昵称 + int32 sex = 2; // 性别 + string avatar_url = 3; // 头像地址 + string extra = 4; // 附加字段 +} + +message SearchUserReq{ + string key = 1; + int64 master_id = 2; +} +message SearchUserResp{ + repeated User users = 1; +} + diff --git a/pkg/proto/im.business.int.proto b/pkg/proto/im.business.int.proto new file mode 100644 index 0000000..6e8da25 --- /dev/null +++ b/pkg/proto/im.business.int.proto @@ -0,0 +1,34 @@ +syntax = "proto3"; +package pb; +option go_package = "gim/pkg/pb/"; + +import "im.common.ext.proto"; +import "im.business.ext.proto"; + +service BusinessInt { + // 站长权限校验 + rpc MasterAuth (MasterAuthReq) returns (Empty); + // 权限校验 + rpc Auth (AuthReq) returns (Empty); + // 批量获取用户信息 + rpc GetUser (GetUserReq) returns (GetUserResp); + // 批量获取用户信息 + rpc GetUsers (GetUsersReq) returns (GetUsersResp); +} + +message MasterAuthReq { + string master_id = 1; +} + +message AuthReq { + int64 user_id = 1; + int64 device_id = 2; + string token = 3; +} + +message GetUsersReq { + map user_ids = 1; // 用户id +} +message GetUsersResp { + map users = 1; // 用户信息 +} diff --git a/pkg/proto/im.common.ext.proto b/pkg/proto/im.common.ext.proto new file mode 100644 index 0000000..62448cb --- /dev/null +++ b/pkg/proto/im.common.ext.proto @@ -0,0 +1,5 @@ +syntax = "proto3"; +package pb; +option go_package = "gim/pkg/pb/"; + +message Empty{} \ No newline at end of file diff --git a/pkg/proto/im.connect.ext.proto b/pkg/proto/im.connect.ext.proto new file mode 100644 index 0000000..4d7d161 --- /dev/null +++ b/pkg/proto/im.connect.ext.proto @@ -0,0 +1,232 @@ +syntax = "proto3"; +package pb; +option go_package = "gim/pkg/pb/"; + +enum PackageType { + PT_UNKNOWN = 0; // 未知 + PT_SIGN_IN = 1; // 设备登录请求 + PT_SYNC = 2; // 消息同步触发 + PT_HEARTBEAT = 3; // 心跳 + PT_MESSAGE = 4; // 消息投递 + PT_SUBSCRIBE_ROOM = 5; // 订阅房间 +} + +/************************************消息体定义开始************************************/ +// 单条消息投递内容(估算大约100个字节),todo 通知栏提醒 +message Message { + Sender sender = 1; // 发送者 + ReceiverType receiver_type = 2; // 接收者类型,1:user;2:group + int64 receiver_id = 3; // 用户id或者群组id + repeated int64 to_user_ids = 4; // 需要@的用户id列表 + MessageType message_type = 5; // 消息类型 + bytes message_content = 6; // 消息内容 + int64 seq = 7; // 用户消息发送序列号 + int64 send_time = 8; // 消息发送时间戳,精确到毫秒 + MessageStatus status = 9; // 消息状态 +} + +message Sender { + SenderType sender_type = 1; // 发送者类型,1:系统,2:用户,3:第三方业务系统 + int64 sender_id = 2; // 发送者id + int64 device_id = 3; // 发送者设备id + string avatar_url = 4; // 头像 + string nickname = 5; // 昵称 + string extra = 6; // 扩展字段 +} + +// 消息类型 +enum MessageType { + MT_UNKNOWN = 0; // 未知 + MT_TEXT = 1; // 文本 + MT_FACE = 2; // 表情 + MT_VOICE = 3; // 语音消息 + MT_IMAGE = 4; // 图片 + MT_FILE = 5; // 文件 + MT_LOCATION = 6; // 地理位置 + MT_COMMAND = 7; // 指令推送 + MT_CUSTOM = 8; // 自定义 + MT_RECALL = 9; // 撤回消息 + MT_RED_PACKAGE = 10; // 红包消息 +} + +// 红包类型 +enum RedPacketType { + RPT_UNKNOWN = 0; // 未知 + RPT_FRIEND = 1; // 好友红包 + RPT_GROUP_NORMAL = 2; // 群组普通红包 + RPT_GROUP_LUCK = 3; // 群组手气红包 + RPT_GROUP_SPECIALLY = 4; // 群组专属红包 + RPT_SYSTEM_FOR = 5; // 系统红包 +} + +// 红包消息类型 +enum RedPacketMessageType { + RMT_UNKNOWN = 0; // 未知 + RMT_SEND = 1; // 发红包 + RMT_GRAB = 2; // 抢红包 +} + +// 红包状态类型 +enum RedPacketStatusType { + RPS_NOT_DRAW = 0; // 未领取 + RPS_DRAWING = 1; // 领取中 + RPS_DRAW_OVER = 2; // 领取完 + RPS_EXPIRE = 3; //已过期 +} + +// 文本消息 +message Text { + string text = 1; // 文本消息内容 +} + +// 表情消息 +message Face { + int64 face_id = 1; + string face_url = 2; +} + +// 语音消息 +message Voice { + string id = 1; // 语音包id + int32 size = 2; // 语音包大小 + int32 duration = 3; // 语音时长 + string url = 4; // 语音文件URL +} + +// 图片消息 +message Image { + string id = 1; // 图片id + int32 width = 2; // 图片宽度 + int32 height = 3; // 图片长度 + string url = 4; // 图片URL + string thumbnail_url = 5; // 图片缩略图url +} + +// 文件消息 +message File { + int64 id = 12; // 文件id + string name = 13; // 文件名 + int64 size = 14; // 文件大小 + string url = 15; // 文件url +} + +// 地理位置消息 +message Location { + string desc = 1; // 描述 + double latitude = 2; // 经度 + double longitude = 3; // 纬度 +} + +// Command 指令推送,1000以下,IM内部用,1000以上,留给业务用 +message Command { + int32 code = 1; // 指令码 + bytes data = 2; // 数据内容 +} + +// 自定义消息 +message Custom { + string data = 1; // 自定义数据 +} + +// 撤回消息 +message RECALL { + int64 recall_seq = 1; // 撤回消息seq +} + + +// 红包消息 +message RED_PACKAGE { + RedPacketMessageType red_message_type = 1;// 红包消息类型 + RedPacketType red_packet_type = 2; // 红包类型 + string red_packet_content = 3; // 红包文字内容 + float red_packet_amount = 6; // 红包金额 + int32 red_packet_nums = 5; // 红包数量 + float red_packet_balance_amount = 7; // 红包余额 + int64 received_user_id = 8; // 领取用户id + float received_user_amount = 9; // 领取用户金额 + string received_user_nickname = 10; // 领取用户昵称 + RedPacketStatusType red_packet_status_type = 11; // 领取状态 + int64 red_packet_id = 12; // 红包id + int64 send_red_packet_uid = 13; // 红包发送者uid + string send_red_packet_nickname = 14; // 红包发送者昵称 + string send_red_packet_avatar_url = 15; // 红包发送者头像 + string red_packet_small_content = 16; // 红包小文字内容 +} + +/************************************消息体定义结束************************************/ + +// 上行数据 +message Input { + PackageType type = 1; // 包的类型 + int64 request_id = 2; // 请求id + bytes data = 3; // 数据 +} + +// 下行数据 +message Output { + PackageType type = 1; // 包的类型 + int64 request_id = 2; // 请求id + int32 code = 3; // 错误码 + string message = 4; // 错误信息 + bytes data = 5; // 数据 +} + +// 设备登录,package_type:1 +message SignInInput { + int64 device_id = 1; // 设备id + int64 user_id = 2; // 用户id + string token = 3; // 秘钥 +} + +// 消息同步请求,package_type:2 +message SyncInput { + int64 seq = 1; // 客户端已经同步的序列号 +} +// 消息同步响应,package_type:2 +message SyncOutput { + repeated Message messages = 1; // 消息列表 + bool has_more = 2; // 是否有更多数据 +} + +// 订阅房间请求 +message SubscribeRoomInput { + int64 room_id = 1; // 房间ID,如果为0,取消房间订阅 + int64 seq = 2; // 消息消息序列号, +} + +enum ReceiverType { + RT_UNKNOWN = 0; // 未知 + RT_USER = 1; // 用户 + RT_GROUP = 2; // 群组 + RT_ROOM = 3; // 房间 +} + +// 消息投递,package_type:4 +message MessageSend { + Message message = 1; // 消息 +} + +enum SenderType { + ST_UNKNOWN = 0; // 未知的 + ST_SYSTEM = 1; // IM系统 + ST_USER = 2; // 用户 + ST_BUSINESS = 3; // 业务方 +} + +enum MessageStatus { + MS_UNKNOWN = 0; // 未知的 + MS_NORMAL = 1; // 正常的 + MS_RECALL = 2; // 撤回 +} + +// 投递消息回执,package_type:4 +message MessageACK { + int64 device_ack = 2; // 设备收到消息的确认号 + int64 receive_time = 3; // 消息接收时间戳,精确到毫秒 +} + +// 群组用户状态 +enum GroupUserStatusType { + GROUP_USER_STATUS_NORMAL = 0; // 正常 + GROUP_USER_STATUS_Banned = 1; // 禁言 +} \ No newline at end of file diff --git a/pkg/proto/im.connect.int.proto b/pkg/proto/im.connect.int.proto new file mode 100644 index 0000000..454d18c --- /dev/null +++ b/pkg/proto/im.connect.int.proto @@ -0,0 +1,28 @@ +syntax = "proto3"; +package pb; +option go_package = "gim/pkg/pb/"; + +import "im.common.ext.proto"; +import "im.connect.ext.proto"; + +service ConnectInt { + // 消息投递 + rpc DeliverMessage (DeliverMessageReq) returns (Empty); +} + +message DeliverMessageReq { + int64 device_id = 1; // 设备id + MessageSend message_send = 2; // 数据 +} + +// 房间推送 +message PushRoomMsg{ + int64 room_id = 1; // 设备id + MessageSend message_send = 2; // 数据 +} + +// 房间推送 +message PushAllMsg{ + MessageSend message_send = 2; // 数据 +} + diff --git a/pkg/proto/im.logic.ext.proto b/pkg/proto/im.logic.ext.proto new file mode 100644 index 0000000..8a1a89c --- /dev/null +++ b/pkg/proto/im.logic.ext.proto @@ -0,0 +1,238 @@ +syntax = "proto3"; +package pb; +option go_package = "gim/pkg/pb/"; + +import "im.common.ext.proto"; +import "im.connect.ext.proto"; + +service LogicExt { + // 注册设备 + rpc RegisterDevice (RegisterDeviceReq) returns (RegisterDeviceResp); + + // 发送消息 + rpc SendMessage (SendMessageReq) returns (SendMessageResp); + // 撤回消息 + rpc RecallMessage (RecallMessageReq) returns (RecallMessageResp); + // 推送消息到房间 + rpc PushRoom(PushRoomReq)returns(Empty); + + // 发送红包 + rpc SendRedPacket (SendRedPacketReq) returns (SendRedPacketResp); + + // 添加好友 + rpc AddFriend (AddFriendReq) returns (Empty); + // 同意添加好友 + rpc AgreeAddFriend (AgreeAddFriendReq) returns (Empty); + // 删除好友 + rpc DeleteFriend (DeleteFriendReq) returns (Empty); + // 设置好友信息 + rpc SetFriend (SetFriendReq) returns (SetFriendResp); + // 获取好友列表 + rpc GetFriends (Empty) returns (GetFriendsResp); + + // 创建群组 + rpc CreateGroup (CreateGroupReq) returns (CreateGroupResp); + // 更新群组 + rpc UpdateGroup (UpdateGroupReq) returns (Empty); + // 获取群组信息 + rpc GetGroup (GetGroupReq) returns (GetGroupResp); + // 获取用户加入的所有群组 + rpc GetGroups (Empty) returns (GetGroupsResp); + + // 添加群组成员 + rpc AddGroupMembers (AddGroupMembersReq) returns (AddGroupMembersResp); + // 更新群组成员信息 + rpc UpdateGroupMember (UpdateGroupMemberReq) returns (Empty); + // 添加群组成员 + rpc DeleteGroupMember (DeleteGroupMemberReq) returns (Empty); + // 获取群组成员 + rpc GetGroupMembers (GetGroupMembersReq) returns (GetGroupMembersResp); +} + +message RegisterDeviceReq { + int32 type = 2; // 设备类型 + string brand = 3; // 厂商 + string model = 4; // 机型 + string system_version = 5; // 系统版本 + string sdk_version = 6; // sdk版本号 +} +message RegisterDeviceResp { + int64 device_id = 1; // 设备id +} + +message SendMessageReq { + ReceiverType receiver_type = 1; // 接收者类型,1:user;2:group + int64 receiver_id = 2; // 用户id或者群组id + repeated int64 to_user_ids = 3; // 需要@的用户id列表 + MessageType message_type = 4; // 消息类型 + bytes message_content = 5; // 消息内容 + int64 send_time = 6; // 消息发送时间戳,精确到毫秒 + bool is_persist = 7; // 是否将消息持久化到数据库 + string message_content_back = 8; +} +message SendMessageResp { + int64 seq = 1; // 消息序列号 +} + +message RecallMessageReq { + ReceiverType receiver_type = 1; // 接收者类型,1:user;2:group + int64 receiver_id = 2; // 用户id或者群组id + repeated int64 to_user_ids = 3; // 需要@的用户id列表 + MessageType message_type = 4; // 消息类型 + bytes message_content = 5; // 消息内容 + int64 send_time = 6; // 消息发送时间戳,精确到毫秒 + bool is_persist = 7; // 是否将消息持久化到数据库 + string message_content_back = 8; +} +message RecallMessageResp { + int64 seq = 1; // 消息序列号 +} + + +message SendRedPacketReq { + ReceiverType receiver_type = 1; // 接收者类型,1:user;2:group + int64 receiver_id = 2; // 用户id或者群组id + MessageType message_type = 3; // 消息类型 + bytes message_content = 4; // 消息内容 + int64 send_time = 5; // 消息发送时间戳,精确到毫秒 + repeated int64 to_user_ids = 6; // 红包给到哪些用户(专属红包) + string message_content_back = 7; +} +message SendRedPacketResp { + int64 seq = 1; // 消息序列号 +} + +message PushRoomReq{ + int64 room_id = 1; // 房间id + MessageType message_type = 2; // 消息类型 + bytes message_content = 3; // 消息内容 + int64 send_time = 4; // 消息发送时间戳,精确到毫秒 + bool is_persist = 5; // 是否将消息持久化 + bool is_priority = 6; // 是否优先推送 +} + +message AddFriendReq { + int64 friend_id = 1; // 用户id + string remarks = 2; // 备注 + string description = 3; // 描述 +} + +message DeleteFriendReq { + int64 user_id = 1; // 用户id +} + + +message AgreeAddFriendReq { + int64 user_id = 1; // 用户id + string remarks = 2; // 备注 +} + +message SetFriendReq { + int64 friend_id = 1; // 好友id + string remarks = 2; // 备注 + string extra = 8; // 附加字段 +} +message SetFriendResp { + int64 friend_id = 1; // 好友id + string remarks = 2; // 备注 + string extra = 8; // 附加字段 +} + +message Friend { + int64 user_id = 1; // 用户id + string phone_number = 2; // 电话号码 + string nickname = 3; // 昵称 + int32 sex = 4; // 性别 + string avatar_url = 5; // 头像地址 + string user_extra = 6; // 用户附加字段 + string remarks = 7; // 备注 + string extra = 8; // 附加字段 +} +message GetFriendsResp { + repeated Friend friends = 1; +} + +message CreateGroupReq { + string name = 1; // 名称 + string avatar_url = 2; // 头像 + string introduction = 3; // 简介 + string extra = 4; // 附加字段 + repeated int64 member_ids = 5; // 群组成员ID列表 +} +message CreateGroupResp { + int64 group_id = 1; // 群组id +} + +message UpdateGroupReq { + int64 group_id = 1; // 群组id + string avatar_url = 2; // 头像 + string name = 3; // 名称 + string introduction = 4; // 简介 + string extra = 5; // 附加字段 +} + +message GetGroupReq { + int64 group_id = 1; +} +message GetGroupResp { + Group group = 1; +} + +message Group { + int64 group_id = 1; // 群组id + string name = 2; // 名称 + string avatar_url = 3; // 头像 + string introduction = 4; // 简介 + int32 user_mum = 5; // 用户数 + string extra = 6; // 附加字段 + int64 create_time = 7; // 创建时间 + int64 update_time = 8; // 更新时间 +} + +message GetGroupsResp { + repeated Group groups = 1; +} + +message AddGroupMembersReq { + int64 group_id = 1; // 群组id + repeated int64 user_ids = 2; // 用户id列表 +} +message AddGroupMembersResp { + repeated int64 user_ids = 1; // 已经在群组的用户id列表 +} + +enum MemberType { + GMT_UNKNOWN = 0; // 未知 + GMT_ADMIN = 1; // 管理员 + GMT_MEMBER = 2; // 成员 +} + +message UpdateGroupMemberReq { + int64 group_id = 1; // 群组id + int64 user_id = 2; // 用户id + MemberType member_type = 3; // 成员类型 + string remarks = 4; // 备注 + string extra = 5; // 附加字段 +} + +message DeleteGroupMemberReq { + int64 group_id = 1; // 群组id + int64 user_id = 2; // 用户id +} + +message GetGroupMembersReq { + int64 group_id = 1; +} +message GetGroupMembersResp { + repeated GroupMember members = 1; +} +message GroupMember { + int64 user_id = 1; + string nickname = 2; // 昵称 + int32 sex = 3; // 性别 + string avatar_url = 4; // 头像地址 + string user_extra = 5; // 用户附加字段 + MemberType member_type = 6; // 成员类型 + string remarks = 7; // 备注 + string extra = 8; // 群组成员附加字段 +} \ No newline at end of file diff --git a/pkg/proto/im.logic.int.proto b/pkg/proto/im.logic.int.proto new file mode 100644 index 0000000..3a0dd5d --- /dev/null +++ b/pkg/proto/im.logic.int.proto @@ -0,0 +1,102 @@ +syntax = "proto3"; +package pb; +option go_package = "gim/pkg/pb/"; + +import "im.common.ext.proto"; +import "im.connect.ext.proto"; +import "im.logic.ext.proto"; + +service LogicInt { + // 登录 + rpc ConnSignIn (ConnSignInReq) returns (Empty); + // 消息同步 + rpc Sync (SyncReq) returns (SyncResp); + // 设备收到消息回执 + rpc MessageACK (MessageACKReq) returns (Empty); + // 设备离线 + rpc Offline (OfflineReq) returns (Empty); + // 订阅房间 + rpc SubscribeRoom(SubscribeRoomReq)returns(Empty); + // 发送消息 + rpc SendMessage (SendMessageReq) returns (SendMessageResp); + // 推送消息到房间 + rpc PushRoom(PushRoomReq)returns(Empty); + // 全服推送 + rpc PushAll(PushAllReq)returns(Empty); + + // 获取设备信息 + rpc GetDevice (GetDeviceReq) returns (GetDeviceResp); + // 服务停止 + rpc ServerStop (ServerStopReq) returns (Empty); +} + +message ConnSignInReq { + int64 device_id = 1; // 设备id + int64 user_id = 2; // 用户id + string token = 3; // 秘钥 + string conn_addr = 4; // 服务器地址 + string client_addr = 5; // 客户端地址 +} + +message SyncReq { + int64 user_id = 1; // 用户id + int64 device_id = 2; // 设备id + int64 seq = 3; // 客户端已经同步的序列号 +} +message SyncResp { + repeated Message messages = 1; // 消息列表 + bool has_more = 2; // 是否有更多数据 +} + +message MessageACKReq { + int64 user_id = 1; // 用户id + int64 device_id = 2; // 设备id + int64 device_ack = 3; // 设备收到消息的确认号 + int64 receive_time = 4; // 消息接收时间戳,精确到毫秒 +} + +message OfflineReq { + int64 user_id = 1; // 用户id + int64 device_id = 2; // 设备id + string client_addr = 3; // 客户端地址 +} + +message SubscribeRoomReq{ + int64 user_id = 1; // 用户id + int64 device_id = 2; // 设备id + int64 room_id = 3; // 房间id + int64 seq = 4; // 消息序列号 + string conn_addr = 5; // 服务器地址 +} + +message PushAllReq{ + MessageType message_type = 1; // 消息类型 + bytes message_content = 2; // 消息内容 + int64 send_time = 3; // 消息发送时间戳,精确到毫秒 +} + +message GetDeviceReq { + int64 device_id = 1; +} +message GetDeviceResp { + Device device = 1; +} + +message Device { + int64 device_id = 1; // 设备id + int64 user_id = 2; // 用户id + int32 type = 3; // 设备类型,1:Android;2:IOS;3:Windows; 4:MacOS;5:Web + string brand = 4; // 手机厂商 + string model = 5; // 机型 + string system_version = 6; // 系统版本 + string sdk_version = 7; // SDK版本 + int32 status = 8; // 在线状态,0:不在线;1:在线 + string conn_addr = 9; // 服务端连接地址 + string client_addr = 10; // 客户端地址 + int64 create_time = 11; // 创建时间 + int64 update_time = 12; // 更新时间 +} + +message ServerStopReq { + string conn_addr = 1; +} diff --git a/pkg/proto/im.push.ext.proto b/pkg/proto/im.push.ext.proto new file mode 100644 index 0000000..f78e71b --- /dev/null +++ b/pkg/proto/im.push.ext.proto @@ -0,0 +1,58 @@ +syntax = "proto3"; +package pb; +option go_package = "gim/pkg/pb/"; + +import "im.logic.ext.proto"; + +enum PushCode { + PC_ADD_DEFAULT = 0; + + PC_ADD_FRIEND = 100; // 添加好友请求 + PC_AGREE_ADD_FRIEND = 101; // 同意添加好友 + + PC_UPDATE_GROUP = 110; // 更新群组 + + PC_ADD_GROUP_MEMBERS = 120; // 添加群组成员 + PC_REMOVE_GROUP_MEMBER = 121; // 移除群组成员 + +} + +// 推送码 PC_ADD_FRIEND = 100 +message AddFriendPush { + int64 friend_id = 1; // 好友id + string nickname = 2; // 昵称 + string avatar_url = 3; // 头像 + string description = 4; // 描述 +} + +// 推送码 PC_AGREE_ADD_FRIEND = 101 +message AgreeAddFriendPush { + int64 friend_id = 1; // 好友id + string nickname = 2; // 昵称 + string avatar_url = 3; // 头像 +} + +// 更新群组 PC_UPDATE_GROUP = 110 +message UpdateGroupPush { + int64 opt_id = 1; // 操作人用户id + string opt_name = 2; // 操作人昵称 + string name = 3; // 群组名称 + string avatar_url = 4; // 群组头像 + string introduction = 5; // 群组简介 + string extra = 6; // 附加字段 +} + +// 添加群组成员 PC_AGREE_ADD_GROUPS = 120 +message AddGroupMembersPush { + int64 opt_id = 1; // 操作人用户id + string opt_name = 2; // 操作人昵称 + repeated GroupMember members = 3; // 群组成员 +} + +// 删除群组成员 PC_REMOVE_GROUP_MEMBER = 121 +message RemoveGroupMemberPush { + int64 opt_id = 1; // 操作人用户id + string opt_name = 2; // 操作人昵称 + int64 deleted_user_id = 3; // 被删除的成员id + string deleted_user_name = 4; // 被删除的成员昵称 +}