From 8d19325240b1f79ec74a1b7023bba6a7383706a5 Mon Sep 17 00:00:00 2001 From: NoahLan <6995syu@163.com> Date: Tue, 5 Sep 2023 16:37:07 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E5=96=84=20dictionary=20?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E5=8A=9F=E8=83=BD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dal/errx/errx.go | 6 + rpc/core/core.proto | 426 +- rpc/core/coreclient/core.go | 8 +- rpc/core/desc/dictionary.proto | 4 +- rpc/core/ent/dictionary/dictionary.go | 2 +- .../ent/dictionarydetail/dictionarydetail.go | 2 +- rpc/core/ent/migrate/schema.go | 37 +- rpc/core/ent/mutation.go | 75 +- rpc/core/ent/schema/dictionary.go | 4 +- rpc/core/ent/schema/user.go | 25 +- rpc/core/ent/set_not_nil.go | 24 - rpc/core/ent/user.go | 13 +- rpc/core/ent/user/user.go | 8 - rpc/core/ent/user/where.go | 55 - rpc/core/ent/user_create.go | 78 - rpc/core/ent/user_update.go | 52 - .../dictionary/create_dictionary_logic.go | 48 +- .../dictionary/delete_dictionary_logic.go | 15 +- .../dictionary/get_dictionary_list_logic.go | 48 +- .../logic/dictionary/get_dictionary_logic.go | 31 +- .../dictionary/update_dictionary_logic.go | 50 +- rpc/core/internal/server/core_server.go | 4 +- rpc/core/internal/svc/convert.go | 31 + rpc/core/types/core/core.pb.go | 4883 +++++++++-------- rpc/core/types/core/core_grpc.pb.go | 26 +- 25 files changed, 2933 insertions(+), 3022 deletions(-) diff --git a/dal/errx/errx.go b/dal/errx/errx.go index a9df335..dcb0b0c 100644 --- a/dal/errx/errx.go +++ b/dal/errx/errx.go @@ -47,6 +47,12 @@ const ( UserSocialUserIdNotEmpty code.Code = iota + 1500 ) +// Dictionary +const ( + DictionaryNameNotEmpty code.Code = iota + 1600 + DictionaryNameInUsed +) + func init() { // Common msg.Add(WrongCode, "auth.wrongCode") diff --git a/rpc/core/core.proto b/rpc/core/core.proto index 4f76022..f6eb134 100644 --- a/rpc/core/core.proto +++ b/rpc/core/core.proto @@ -27,38 +27,50 @@ enum DistrictQueryType { Parents = 3; } -message DepartmentReq { +message DepartmentInfo { int64 ID = 1; - string name = 2; - int64 leader_id = 3; - int64 parent_id = 4; - bool with_leader = 5; - bool with_user = 6; - bool with_children = 7; - optional Pagination page = 10; + string status = 2; + string created_at = 3; + string updated_at = 4; + string name = 5; + int64 leader_id = 6; + string remark = 7; + int64 parent_id = 8; + DepartmentInfo parent = 10; + repeated DepartmentInfo children = 11; + repeated UserInfo users = 12; + UserInfo leader = 13; } -message DepartmentListResp { +message DeleteDictionaryDetailReq { + repeated int64 ids = 1; + int64 dict_id = 2; +} + +message UserSocialListResp { optional Pagination page = 1; - repeated DepartmentInfo data = 2; + repeated UserSocialInfo data = 2; } -message DictionaryReq { - int64 ID = 1; +// 基础回执 +message BaseResp { + int32 code = 1; + string msg = 2; +} + +message GetDistrictNameResp { + string code = 1; string name = 2; - string title = 3; - bool with_details = 4; - optional Pagination page = 10; + repeated string name_list = 3; } -message DictionaryDetailReq { +message RecordReq { + int64 user_id = 1; +} + +message OauthProviderListResp { optional Pagination page = 1; - int64 ID = 2; - int64 dict_id = 3; - string title = 4; - string key = 5; - string value = 6; - bool with_dictionary = 7; + repeated OauthProviderInfo data = 2; } message TokenInfo { @@ -74,73 +86,74 @@ message TokenInfo { UserInfo user = 10; } -message OauthProviderInfo { +message UserReq { int64 ID = 1; - string created_at = 2; - string updated_at = 3; - string name = 4; - string client_id = 5; - string client_secret = 6; - string redirect_url = 7; - string scopes = 8; - string auth_url = 9; - string token_url = 10; - string info_url = 11; - string description = 12; - bool system = 13; - bool init = 14; + string username = 2; + string phone_number = 3; + string email = 4; + string nickname = 5; + bool with_role = 6; + bool with_social = 7; + bool with_department = 8; + bool with_token = 9; + bool with_login_record = 10; + optional Pagination page = 20; } -message RoleListResp { +message GetUserRolesReq { optional Pagination page = 1; - repeated RoleInfo data = 2; + int64 user_id = 2; } -message IDReq { - int64 ID = 1; +message DepartmentListResp { + optional Pagination page = 1; + repeated DepartmentInfo data = 2; } -// DistrictInfo 地址单体结构 -message DistrictInfo { - int64 ID = 1; - string created_at = 2; - string updated_at = 3; - string name = 4; - string short_name = 5; - string code = 6; - string province = 7; - string city = 8; - string area = 9; - string street = 10; - uint32 level = 11; - double latitude = 12; - double longitude = 13; - repeated DistrictInfo children = 20; +message DictionaryDetailListResp { + optional Pagination page = 1; + repeated DictionaryDetailInfo data = 2; } -message DistrictTree { - repeated DistrictInfo tree = 1; +message DistrictListResp { + optional Pagination page = 1; + repeated DistrictInfo data = 2; } -message DistrictCodeReq { - string code = 1; +message OauthProviderReq { + int64 ID = 1; + string name = 2; + string client_id = 3; + optional bool system = 4; + optional bool init = 5; + optional Pagination page = 10; } -message GetDistrictNameReq { - string code = 1; - string separator = 2; +message CallbackReq { + string state = 1; + string code = 2; } -message LoginRecordInfo { +message OauthRedirectResp { + string url = 1; +} + +message UserInfo { int64 ID = 1; + string status = 2; string created_at = 3; string updated_at = 4; - int64 user_id = 5; - string last_login_at = 6; - string last_login_ipv4 = 7; - string last_login_device = 8; - string last_login_ua = 9; - uint64 login_count = 10; + string username = 5; + optional string phone_number = 6; + optional string email = 7; + string password = 8; + optional string nickname = 9; + map metas = 10; + repeated RoleInfo roles = 20; + repeated UserSocialInfo socials = 21; + repeated DepartmentInfo departments = 22; + repeated TokenInfo tokens = 23; + LoginRecordInfo login_record = 24; } message UserRoleReq { @@ -149,12 +162,28 @@ message UserRoleReq { repeated string role_codes = 3; } -// Base message -message Empty {} +message DictionaryInfo { + int64 ID = 1; + string status = 2; + string created_at = 3; + string updated_at = 4; + string title = 5; + string name = 6; + string description = 7; + repeated DictionaryDetailInfo details = 10; +} -message DictionaryDetailListResp { - optional Pagination page = 1; - repeated DictionaryDetailInfo data = 2; +message DictionaryDetailInfo { + int64 ID = 1; + string status = 2; + string created_at = 3; + string updated_at = 4; + string title = 5; + string key = 6; + string value = 7; + uint32 sort = 8; + int64 dictionary_id = 9; + DictionaryInfo dictionary = 10; } message DistrictReq { @@ -170,14 +199,8 @@ message DistrictReq { DistrictQueryType query_type = 11; } -message OauthLoginReq { - string state = 1; - string provider = 2; -} - -message GetUserRolesReq { - optional Pagination page = 1; - int64 user_id = 2; +message DistrictCodeReq { + string code = 1; } // 分页参数 @@ -187,35 +210,47 @@ message Pagination { uint64 current = 3; } -message DictionaryInfo { +message GetDistrictNameReq { + string code = 1; + string separator = 2; +} + +message LoginRecordInfo { int64 ID = 1; - string status = 2; string created_at = 3; string updated_at = 4; - string title = 5; - string name = 6; - string description = 7; - repeated DictionaryDetailInfo details = 10; -} - -message OauthProviderListResp { - optional Pagination page = 1; - repeated OauthProviderInfo data = 2; + int64 user_id = 5; + string last_login_at = 6; + string last_login_ipv4 = 7; + string last_login_device = 8; + string last_login_ua = 9; + uint64 login_count = 10; } -message TokenUserReq { - int64 user_id = 1; +message OauthProviderInfo { + int64 ID = 1; + string created_at = 2; + string updated_at = 3; + string name = 4; + string client_id = 5; + string client_secret = 6; + string redirect_url = 7; + string scopes = 8; + string auth_url = 9; + string token_url = 10; + string info_url = 11; + string description = 12; + bool system = 13; + bool init = 14; } -message UserSocialListResp { - optional Pagination page = 1; - repeated UserSocialInfo data = 2; +message OauthLoginReq { + string state = 1; + string provider = 2; } -message GetDistrictNameResp { - string code = 1; - string name = 2; - repeated string name_list = 3; +message TokenUserReq { + int64 user_id = 1; } message TokenReq { @@ -228,18 +263,32 @@ message TokenReq { optional Pagination page = 10; } -message UserReq { +message TokenListResp { + optional Pagination page = 1; + repeated TokenInfo data = 2; +} + +message DictionaryDetailReq { + optional Pagination page = 1; + int64 ID = 2; + int64 dict_id = 3; + string title = 4; + string key = 5; + string value = 6; + bool with_dictionary = 7; +} + +message DictionaryReq { int64 ID = 1; - string username = 2; - string phone_number = 3; - string email = 4; - string nickname = 5; - bool with_role = 6; - bool with_social = 7; - bool with_department = 8; - bool with_token = 9; - bool with_login_record = 10; - optional Pagination page = 20; + string name = 2; + string title = 3; + bool with_details = 4; + optional Pagination page = 10; +} + +message RoleListResp { + optional Pagination page = 1; + repeated RoleInfo data = 2; } message UserSocialInfo { @@ -259,44 +308,49 @@ message UserSocialInfo { UserInfo user = 14; } -message TokenListResp { - optional Pagination page = 1; - repeated TokenInfo data = 2; -} - -message UserListResp { - optional Pagination page = 1; - repeated UserInfo data = 2; -} - -// 基础回执 -message BaseResp { - int32 code = 1; - string msg = 2; +message DepartmentReq { + int64 ID = 1; + string name = 2; + int64 leader_id = 3; + int64 parent_id = 4; + bool with_leader = 5; + bool with_user = 6; + bool with_children = 7; + optional Pagination page = 10; } -message DeleteDictionaryDetailReq { - repeated int64 ids = 1; - int64 dict_id = 2; +// 基础回执带ID +message BaseIDResp { + int64 ID = 1; + int32 code = 2; + string msg = 3; } -message RecordReq { - int64 user_id = 1; +message DictionaryListResp { + optional Pagination page = 1; + repeated DictionaryInfo data = 2; } -message OauthRedirectResp { - string url = 1; +// DistrictInfo 地址单体结构 +message DistrictInfo { + int64 ID = 1; + string created_at = 2; + string updated_at = 3; + string name = 4; + string short_name = 5; + string code = 6; + string province = 7; + string city = 8; + string area = 9; + string street = 10; + uint32 level = 11; + double latitude = 12; + double longitude = 13; + repeated DistrictInfo children = 20; } -message RoleInfo { - int64 ID = 1; - string status = 2; - string created_at = 3; - string updated_at = 4; - string code = 5; - string name = 6; - string description = 7; - repeated UserInfo users = 10; +message DistrictTree { + repeated DistrictInfo tree = 1; } message RoleReq { @@ -307,49 +361,28 @@ message RoleReq { optional Pagination page = 10; } -message DictionaryDetailInfo { - int64 ID = 1; - string status = 2; - string created_at = 3; - string updated_at = 4; - string title = 5; - string key = 6; - string value = 7; - uint32 sort = 8; - int64 dictionary_id = 9; - DictionaryInfo dictionary = 10; +message UserListResp { + optional Pagination page = 1; + repeated UserInfo data = 2; } -message DistrictListResp { - optional Pagination page = 1; - repeated DistrictInfo data = 2; +message IDsReq { + repeated int64 ids = 1; } -message OauthProviderReq { +message IDReq { int64 ID = 1; - string name = 2; - string client_id = 3; - optional bool system = 4; - optional bool init = 5; - optional Pagination page = 10; } -message UserInfo { +message RoleInfo { int64 ID = 1; string status = 2; string created_at = 3; string updated_at = 4; - string username = 5; - optional string phone_number = 6; - optional string email = 7; - string password = 8; - optional string nickname = 9; - map metas = 10; - repeated RoleInfo roles = 20; - repeated UserSocialInfo socials = 21; - repeated DepartmentInfo departments = 22; - repeated TokenInfo tokens = 23; - LoginRecordInfo login_record = 24; + string code = 5; + string name = 6; + string description = 7; + repeated UserInfo users = 10; } message UserSocialReq { @@ -364,41 +397,8 @@ message UserSocialReq { optional Pagination page = 10; } -message IDsReq { - repeated int64 ids = 1; -} - -// 基础回执带ID -message BaseIDResp { - int64 ID = 1; - int32 code = 2; - string msg = 3; -} - -message DepartmentInfo { - int64 ID = 1; - string status = 2; - string created_at = 3; - string updated_at = 4; - string name = 5; - int64 leader_id = 6; - string remark = 7; - int64 parent_id = 8; - DepartmentInfo parent = 10; - repeated DepartmentInfo children = 11; - repeated UserInfo users = 12; - UserInfo leader = 13; -} - -message DictionaryListResp { - optional Pagination page = 1; - repeated DictionaryInfo data = 2; -} - -message CallbackReq { - string state = 1; - string code = 2; -} +// Base message +message Empty {} service Core { // group: base @@ -420,9 +420,9 @@ service Core { // group: dictionary rpc updateDictionary(DictionaryInfo) returns (BaseResp); // group: dictionary - rpc getDictionaryList(UserReq) returns (UserListResp); + rpc getDictionaryList(DictionaryReq) returns (DictionaryListResp); // group: dictionary - rpc getDictionary(UserReq) returns (DictionaryInfo); + rpc getDictionary(DictionaryReq) returns (DictionaryInfo); // group: dictionary rpc deleteDictionary(IDsReq) returns (BaseResp); // Details diff --git a/rpc/core/coreclient/core.go b/rpc/core/coreclient/core.go index d1431b3..591b047 100644 --- a/rpc/core/coreclient/core.go +++ b/rpc/core/coreclient/core.go @@ -71,8 +71,8 @@ type ( // Dictionary Management CreateDictionary(ctx context.Context, in *DictionaryInfo, opts ...grpc.CallOption) (*BaseIDResp, error) UpdateDictionary(ctx context.Context, in *DictionaryInfo, opts ...grpc.CallOption) (*BaseResp, error) - GetDictionaryList(ctx context.Context, in *UserReq, opts ...grpc.CallOption) (*UserListResp, error) - GetDictionary(ctx context.Context, in *UserReq, opts ...grpc.CallOption) (*DictionaryInfo, error) + GetDictionaryList(ctx context.Context, in *DictionaryReq, opts ...grpc.CallOption) (*DictionaryListResp, error) + GetDictionary(ctx context.Context, in *DictionaryReq, opts ...grpc.CallOption) (*DictionaryInfo, error) DeleteDictionary(ctx context.Context, in *IDsReq, opts ...grpc.CallOption) (*BaseResp, error) // Details CreateDictionaryDetail(ctx context.Context, in *DictionaryDetailInfo, opts ...grpc.CallOption) (*BaseIDResp, error) @@ -184,12 +184,12 @@ func (m *defaultCore) UpdateDictionary(ctx context.Context, in *DictionaryInfo, return client.UpdateDictionary(ctx, in, opts...) } -func (m *defaultCore) GetDictionaryList(ctx context.Context, in *UserReq, opts ...grpc.CallOption) (*UserListResp, error) { +func (m *defaultCore) GetDictionaryList(ctx context.Context, in *DictionaryReq, opts ...grpc.CallOption) (*DictionaryListResp, error) { client := core.NewCoreClient(m.cli.Conn()) return client.GetDictionaryList(ctx, in, opts...) } -func (m *defaultCore) GetDictionary(ctx context.Context, in *UserReq, opts ...grpc.CallOption) (*DictionaryInfo, error) { +func (m *defaultCore) GetDictionary(ctx context.Context, in *DictionaryReq, opts ...grpc.CallOption) (*DictionaryInfo, error) { client := core.NewCoreClient(m.cli.Conn()) return client.GetDictionary(ctx, in, opts...) } diff --git a/rpc/core/desc/dictionary.proto b/rpc/core/desc/dictionary.proto index 90e5af4..88c7204 100644 --- a/rpc/core/desc/dictionary.proto +++ b/rpc/core/desc/dictionary.proto @@ -73,9 +73,9 @@ service Core { // group: dictionary rpc updateDictionary (DictionaryInfo) returns (BaseResp); // group: dictionary - rpc getDictionaryList (UserReq) returns (UserListResp); + rpc getDictionaryList (DictionaryReq) returns (DictionaryListResp); // group: dictionary - rpc getDictionary (UserReq) returns (DictionaryInfo); + rpc getDictionary (DictionaryReq) returns (DictionaryInfo); // group: dictionary rpc deleteDictionary (IDsReq) returns (BaseResp); // Details diff --git a/rpc/core/ent/dictionary/dictionary.go b/rpc/core/ent/dictionary/dictionary.go index 9ea0cee..7551331 100644 --- a/rpc/core/ent/dictionary/dictionary.go +++ b/rpc/core/ent/dictionary/dictionary.go @@ -34,7 +34,7 @@ const ( // EdgeDetails holds the string denoting the details edge name in mutations. EdgeDetails = "details" // Table holds the table name of the dictionary in the database. - Table = "sys_dictionaries" + Table = "sys_dictionary" // DetailsTable is the table that holds the details relation/edge. DetailsTable = "sys_dictionary_details" // DetailsInverseTable is the table name for the DictionaryDetail entity. diff --git a/rpc/core/ent/dictionarydetail/dictionarydetail.go b/rpc/core/ent/dictionarydetail/dictionarydetail.go index 7f0867c..facf1c7 100644 --- a/rpc/core/ent/dictionarydetail/dictionarydetail.go +++ b/rpc/core/ent/dictionarydetail/dictionarydetail.go @@ -38,7 +38,7 @@ const ( DictionaryTable = "sys_dictionary_details" // DictionaryInverseTable is the table name for the Dictionary entity. // It exists in this package in order to avoid circular dependency with the "dictionary" package. - DictionaryInverseTable = "sys_dictionaries" + DictionaryInverseTable = "sys_dictionary" // DictionaryColumn is the table column denoting the dictionary relation/edge. DictionaryColumn = "dictionary_id" ) diff --git a/rpc/core/ent/migrate/schema.go b/rpc/core/ent/migrate/schema.go index 81c65e0..9d4dd24 100644 --- a/rpc/core/ent/migrate/schema.go +++ b/rpc/core/ent/migrate/schema.go @@ -42,8 +42,8 @@ var ( }, }, } - // SysDictionariesColumns holds the columns for the "sys_dictionaries" table. - SysDictionariesColumns = []*schema.Column{ + // SysDictionaryColumns holds the columns for the "sys_dictionary" table. + SysDictionaryColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt64, Comment: "Primary Key | 主键"}, {Name: "created_at", Type: field.TypeTime, Comment: "Create Time | 创建时间", SchemaType: map[string]string{"mysql": "datetime"}}, {Name: "updated_at", Type: field.TypeTime, Comment: "Update Time | 更新时间", SchemaType: map[string]string{"mysql": "datetime"}}, @@ -53,12 +53,12 @@ var ( {Name: "name", Type: field.TypeString, Unique: true, Comment: "The name of dictionary for search | 字典搜索名称"}, {Name: "description", Type: field.TypeString, Nullable: true, Comment: "The description of dictionary | 字典的描述"}, } - // SysDictionariesTable holds the schema information for the "sys_dictionaries" table. - SysDictionariesTable = &schema.Table{ - Name: "sys_dictionaries", + // SysDictionaryTable holds the schema information for the "sys_dictionary" table. + SysDictionaryTable = &schema.Table{ + Name: "sys_dictionary", Comment: "字典表", - Columns: SysDictionariesColumns, - PrimaryKey: []*schema.Column{SysDictionariesColumns[0]}, + Columns: SysDictionaryColumns, + PrimaryKey: []*schema.Column{SysDictionaryColumns[0]}, } // SysDictionaryDetailsColumns holds the columns for the "sys_dictionary_details" table. SysDictionaryDetailsColumns = []*schema.Column{ @@ -79,10 +79,10 @@ var ( PrimaryKey: []*schema.Column{SysDictionaryDetailsColumns[0]}, ForeignKeys: []*schema.ForeignKey{ { - Symbol: "sys_dictionary_details_sys_dictionaries_details", + Symbol: "sys_dictionary_details_sys_dictionary_details", Columns: []*schema.Column{SysDictionaryDetailsColumns[7]}, - RefColumns: []*schema.Column{SysDictionariesColumns[0]}, - OnDelete: schema.NoAction, + RefColumns: []*schema.Column{SysDictionaryColumns[0]}, + OnDelete: schema.Cascade, }, }, } @@ -133,7 +133,7 @@ var ( Symbol: "sys_login_record_sys_user_loginRecord", Columns: []*schema.Column{SysLoginRecordColumns[9]}, RefColumns: []*schema.Column{SysUserColumns[0]}, - OnDelete: schema.NoAction, + OnDelete: schema.Cascade, }, }, } @@ -206,7 +206,7 @@ var ( Symbol: "sys_token_sys_user_token", Columns: []*schema.Column{SysTokenColumns[10]}, RefColumns: []*schema.Column{SysUserColumns[0]}, - OnDelete: schema.NoAction, + OnDelete: schema.Cascade, }, }, } @@ -217,7 +217,6 @@ var ( {Name: "created_at", Type: field.TypeTime, Comment: "Create Time | 创建时间", SchemaType: map[string]string{"mysql": "datetime"}}, {Name: "updated_at", Type: field.TypeTime, Comment: "Update Time | 更新时间", SchemaType: map[string]string{"mysql": "datetime"}}, {Name: "version", Type: field.TypeInt64, Comment: "optimistic lock | 乐观锁", Default: 1}, - {Name: "deleted_at", Type: field.TypeTime, Nullable: true, Comment: "Soft delete | 软删除(逻辑删除)", SchemaType: map[string]string{"mysql": "datetime"}}, {Name: "username", Type: field.TypeString, Unique: true, Comment: "User's login name | 登录名"}, {Name: "phone_number", Type: field.TypeString, Unique: true, Nullable: true, Comment: "Phone number | 手机号"}, {Name: "email", Type: field.TypeString, Unique: true, Nullable: true, Comment: "Email | 邮箱号"}, @@ -252,7 +251,7 @@ var ( Symbol: "sys_usermeta_sys_user_metas", Columns: []*schema.Column{SysUsermetaColumns[6]}, RefColumns: []*schema.Column{SysUserColumns[0]}, - OnDelete: schema.NoAction, + OnDelete: schema.Cascade, }, }, Indexes: []*schema.Index{ @@ -300,7 +299,7 @@ var ( Symbol: "sys_user_social_sys_user_socials", Columns: []*schema.Column{SysUserSocialColumns[12]}, RefColumns: []*schema.Column{SysUserColumns[0]}, - OnDelete: schema.NoAction, + OnDelete: schema.Cascade, }, }, } @@ -357,7 +356,7 @@ var ( // Tables holds all the tables in the schema. Tables = []*schema.Table{ SysDepartmentTable, - SysDictionariesTable, + SysDictionaryTable, SysDictionaryDetailsTable, SysDistrictTable, SysLoginRecordTable, @@ -378,10 +377,10 @@ func init() { SysDepartmentTable.Annotation = &entsql.Annotation{ Table: "sys_department", } - SysDictionariesTable.Annotation = &entsql.Annotation{ - Table: "sys_dictionaries", + SysDictionaryTable.Annotation = &entsql.Annotation{ + Table: "sys_dictionary", } - SysDictionaryDetailsTable.ForeignKeys[0].RefTable = SysDictionariesTable + SysDictionaryDetailsTable.ForeignKeys[0].RefTable = SysDictionaryTable SysDictionaryDetailsTable.Annotation = &entsql.Annotation{ Table: "sys_dictionary_details", } diff --git a/rpc/core/ent/mutation.go b/rpc/core/ent/mutation.go index e5793dc..81362a1 100644 --- a/rpc/core/ent/mutation.go +++ b/rpc/core/ent/mutation.go @@ -7612,7 +7612,6 @@ type UserMutation struct { updated_at *time.Time version *int64 addversion *int64 - deleted_at *time.Time username *string phone_number *string email *string @@ -7909,55 +7908,6 @@ func (m *UserMutation) ResetVersion() { m.addversion = nil } -// SetDeletedAt sets the "deleted_at" field. -func (m *UserMutation) SetDeletedAt(t time.Time) { - m.deleted_at = &t -} - -// DeletedAt returns the value of the "deleted_at" field in the mutation. -func (m *UserMutation) DeletedAt() (r time.Time, exists bool) { - v := m.deleted_at - if v == nil { - return - } - return *v, true -} - -// OldDeletedAt returns the old "deleted_at" field's value of the User entity. -// If the User object wasn't provided to the builder, the object is fetched from the database. -// An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *UserMutation) OldDeletedAt(ctx context.Context) (v time.Time, err error) { - if !m.op.Is(OpUpdateOne) { - return v, errors.New("OldDeletedAt is only allowed on UpdateOne operations") - } - if m.id == nil || m.oldValue == nil { - return v, errors.New("OldDeletedAt requires an ID field in the mutation") - } - oldValue, err := m.oldValue(ctx) - if err != nil { - return v, fmt.Errorf("querying old value for OldDeletedAt: %w", err) - } - return oldValue.DeletedAt, nil -} - -// ClearDeletedAt clears the value of the "deleted_at" field. -func (m *UserMutation) ClearDeletedAt() { - m.deleted_at = nil - m.clearedFields[user.FieldDeletedAt] = struct{}{} -} - -// DeletedAtCleared returns if the "deleted_at" field was cleared in this mutation. -func (m *UserMutation) DeletedAtCleared() bool { - _, ok := m.clearedFields[user.FieldDeletedAt] - return ok -} - -// ResetDeletedAt resets all changes to the "deleted_at" field. -func (m *UserMutation) ResetDeletedAt() { - m.deleted_at = nil - delete(m.clearedFields, user.FieldDeletedAt) -} - // SetUsername sets the "username" field. func (m *UserMutation) SetUsername(s string) { m.username = &s @@ -8520,7 +8470,7 @@ func (m *UserMutation) Type() string { // order to get all numeric fields that were incremented/decremented, call // AddedFields(). func (m *UserMutation) Fields() []string { - fields := make([]string, 0, 10) + fields := make([]string, 0, 9) if m.status != nil { fields = append(fields, user.FieldStatus) } @@ -8533,9 +8483,6 @@ func (m *UserMutation) Fields() []string { if m.version != nil { fields = append(fields, user.FieldVersion) } - if m.deleted_at != nil { - fields = append(fields, user.FieldDeletedAt) - } if m.username != nil { fields = append(fields, user.FieldUsername) } @@ -8567,8 +8514,6 @@ func (m *UserMutation) Field(name string) (ent.Value, bool) { return m.UpdatedAt() case user.FieldVersion: return m.Version() - case user.FieldDeletedAt: - return m.DeletedAt() case user.FieldUsername: return m.Username() case user.FieldPhoneNumber: @@ -8596,8 +8541,6 @@ func (m *UserMutation) OldField(ctx context.Context, name string) (ent.Value, er return m.OldUpdatedAt(ctx) case user.FieldVersion: return m.OldVersion(ctx) - case user.FieldDeletedAt: - return m.OldDeletedAt(ctx) case user.FieldUsername: return m.OldUsername(ctx) case user.FieldPhoneNumber: @@ -8645,13 +8588,6 @@ func (m *UserMutation) SetField(name string, value ent.Value) error { } m.SetVersion(v) return nil - case user.FieldDeletedAt: - v, ok := value.(time.Time) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.SetDeletedAt(v) - return nil case user.FieldUsername: v, ok := value.(string) if !ok { @@ -8732,9 +8668,6 @@ func (m *UserMutation) AddField(name string, value ent.Value) error { // mutation. func (m *UserMutation) ClearedFields() []string { var fields []string - if m.FieldCleared(user.FieldDeletedAt) { - fields = append(fields, user.FieldDeletedAt) - } if m.FieldCleared(user.FieldPhoneNumber) { fields = append(fields, user.FieldPhoneNumber) } @@ -8758,9 +8691,6 @@ func (m *UserMutation) FieldCleared(name string) bool { // error if the field is not defined in the schema. func (m *UserMutation) ClearField(name string) error { switch name { - case user.FieldDeletedAt: - m.ClearDeletedAt() - return nil case user.FieldPhoneNumber: m.ClearPhoneNumber() return nil @@ -8790,9 +8720,6 @@ func (m *UserMutation) ResetField(name string) error { case user.FieldVersion: m.ResetVersion() return nil - case user.FieldDeletedAt: - m.ResetDeletedAt() - return nil case user.FieldUsername: m.ResetUsername() return nil diff --git a/rpc/core/ent/schema/dictionary.go b/rpc/core/ent/schema/dictionary.go index 7059013..1d721fa 100644 --- a/rpc/core/ent/schema/dictionary.go +++ b/rpc/core/ent/schema/dictionary.go @@ -37,7 +37,9 @@ func (Dictionary) Mixin() []ent.Mixin { func (Dictionary) Edges() []ent.Edge { return []ent.Edge{ - edge.To("details", DictionaryDetail.Type), // one to many + // one to many + edge.To("details", DictionaryDetail.Type). + Annotations(entsql.OnDelete(entsql.Cascade)), } } diff --git a/rpc/core/ent/schema/user.go b/rpc/core/ent/schema/user.go index 52dcdea..03f8ee6 100644 --- a/rpc/core/ent/schema/user.go +++ b/rpc/core/ent/schema/user.go @@ -6,7 +6,6 @@ import ( "entgo.io/ent/schema" "entgo.io/ent/schema/edge" "entgo.io/ent/schema/field" - mixins2 "git.noahlan.cn/n-admin/n-admin-server/rpc/core/ent/schema/mixins" "git.noahlan.cn/noahlan/ntool-biz/core/orm/nent/mixins" "git.noahlan.cn/noahlan/ntool/nrandom" ) @@ -32,18 +31,28 @@ func (User) Mixin() []ent.Mixin { mixins.StatusMixin{}, mixins.TimeMixin{}, mixins.OptimisticLockMixin{}, - mixins2.SoftDeleteMixin{}, } } func (User) Edges() []ent.Edge { return []ent.Edge{ - edge.To("metas", UserMeta.Type), // one to many - edge.To("roles", Role.Type), // one to many - edge.To("socials", UserSocial.Type), // one to many - edge.To("departments", Department.Type), // one to many - edge.To("token", Token.Type), // one to many - edge.To("loginRecord", LoginRecord.Type).Unique(), // one to one + // one to many + edge.To("metas", UserMeta.Type). + Annotations(entsql.OnDelete(entsql.Cascade)), + // one to many + edge.To("roles", Role.Type), + // one to many + edge.To("socials", UserSocial.Type). + Annotations(entsql.OnDelete(entsql.Cascade)), + // one to many + edge.To("departments", Department.Type), + // one to many + edge.To("token", Token.Type). + Annotations(entsql.OnDelete(entsql.Cascade)), + // one to one + edge.To("loginRecord", LoginRecord.Type). + Annotations(entsql.OnDelete(entsql.Cascade)). + Unique(), } } diff --git a/rpc/core/ent/set_not_nil.go b/rpc/core/ent/set_not_nil.go index a552ce5..b338f3f 100644 --- a/rpc/core/ent/set_not_nil.go +++ b/rpc/core/ent/set_not_nil.go @@ -1712,30 +1712,6 @@ func (u *UserCreate) SetNotNilVersion(value *int64) *UserCreate { return u } -// set field if value's pointer is not nil. -func (u *UserUpdate) SetNotNilDeletedAt(value *time.Time) *UserUpdate { - if value != nil { - return u.SetDeletedAt(*value) - } - return u -} - -// set field if value's pointer is not nil. -func (u *UserUpdateOne) SetNotNilDeletedAt(value *time.Time) *UserUpdateOne { - if value != nil { - return u.SetDeletedAt(*value) - } - return u -} - -// set field if value's pointer is not nil. -func (u *UserCreate) SetNotNilDeletedAt(value *time.Time) *UserCreate { - if value != nil { - return u.SetDeletedAt(*value) - } - return u -} - // set field if value's pointer is not nil. func (u *UserUpdate) SetNotNilUsername(value *string) *UserUpdate { if value != nil { diff --git a/rpc/core/ent/user.go b/rpc/core/ent/user.go index 301079f..1466ed0 100644 --- a/rpc/core/ent/user.go +++ b/rpc/core/ent/user.go @@ -28,8 +28,6 @@ type User struct { UpdatedAt time.Time `json:"updated_at,omitempty"` // optimistic lock | 乐观锁 Version int64 `json:"version,omitempty"` - // Soft delete | 软删除(逻辑删除) - DeletedAt time.Time `json:"deleted_at,omitempty"` // User's login name | 登录名 Username string `json:"username,omitempty"` // Phone number | 手机号 @@ -132,7 +130,7 @@ func (*User) scanValues(columns []string) ([]any, error) { values[i] = new(sql.NullInt64) case user.FieldStatus, user.FieldUsername, user.FieldPhoneNumber, user.FieldEmail, user.FieldPassword, user.FieldNickname: values[i] = new(sql.NullString) - case user.FieldCreatedAt, user.FieldUpdatedAt, user.FieldDeletedAt: + case user.FieldCreatedAt, user.FieldUpdatedAt: values[i] = new(sql.NullTime) default: values[i] = new(sql.UnknownType) @@ -179,12 +177,6 @@ func (u *User) assignValues(columns []string, values []any) error { } else if value.Valid { u.Version = value.Int64 } - case user.FieldDeletedAt: - if value, ok := values[i].(*sql.NullTime); !ok { - return fmt.Errorf("unexpected type %T for field deleted_at", values[i]) - } else if value.Valid { - u.DeletedAt = value.Time - } case user.FieldUsername: if value, ok := values[i].(*sql.NullString); !ok { return fmt.Errorf("unexpected type %T for field username", values[i]) @@ -296,9 +288,6 @@ func (u *User) String() string { builder.WriteString("version=") builder.WriteString(fmt.Sprintf("%v", u.Version)) builder.WriteString(", ") - builder.WriteString("deleted_at=") - builder.WriteString(u.DeletedAt.Format(time.ANSIC)) - builder.WriteString(", ") builder.WriteString("username=") builder.WriteString(u.Username) builder.WriteString(", ") diff --git a/rpc/core/ent/user/user.go b/rpc/core/ent/user/user.go index a18f328..9b8230e 100644 --- a/rpc/core/ent/user/user.go +++ b/rpc/core/ent/user/user.go @@ -25,8 +25,6 @@ const ( FieldUpdatedAt = "updated_at" // FieldVersion holds the string denoting the version field in the database. FieldVersion = "version" - // FieldDeletedAt holds the string denoting the deleted_at field in the database. - FieldDeletedAt = "deleted_at" // FieldUsername holds the string denoting the username field in the database. FieldUsername = "username" // FieldPhoneNumber holds the string denoting the phone_number field in the database. @@ -98,7 +96,6 @@ var Columns = []string{ FieldCreatedAt, FieldUpdatedAt, FieldVersion, - FieldDeletedAt, FieldUsername, FieldPhoneNumber, FieldEmail, @@ -184,11 +181,6 @@ func ByVersion(opts ...sql.OrderTermOption) OrderOption { return sql.OrderByField(FieldVersion, opts...).ToFunc() } -// ByDeletedAt orders the results by the deleted_at field. -func ByDeletedAt(opts ...sql.OrderTermOption) OrderOption { - return sql.OrderByField(FieldDeletedAt, opts...).ToFunc() -} - // ByUsername orders the results by the username field. func ByUsername(opts ...sql.OrderTermOption) OrderOption { return sql.OrderByField(FieldUsername, opts...).ToFunc() diff --git a/rpc/core/ent/user/where.go b/rpc/core/ent/user/where.go index 06f9002..b8abdc1 100644 --- a/rpc/core/ent/user/where.go +++ b/rpc/core/ent/user/where.go @@ -71,11 +71,6 @@ func Version(v int64) predicate.User { return predicate.User(sql.FieldEQ(FieldVersion, v)) } -// DeletedAt applies equality check predicate on the "deleted_at" field. It's identical to DeletedAtEQ. -func DeletedAt(v time.Time) predicate.User { - return predicate.User(sql.FieldEQ(FieldDeletedAt, v)) -} - // Username applies equality check predicate on the "username" field. It's identical to UsernameEQ. func Username(v string) predicate.User { return predicate.User(sql.FieldEQ(FieldUsername, v)) @@ -251,56 +246,6 @@ func VersionLTE(v int64) predicate.User { return predicate.User(sql.FieldLTE(FieldVersion, v)) } -// DeletedAtEQ applies the EQ predicate on the "deleted_at" field. -func DeletedAtEQ(v time.Time) predicate.User { - return predicate.User(sql.FieldEQ(FieldDeletedAt, v)) -} - -// DeletedAtNEQ applies the NEQ predicate on the "deleted_at" field. -func DeletedAtNEQ(v time.Time) predicate.User { - return predicate.User(sql.FieldNEQ(FieldDeletedAt, v)) -} - -// DeletedAtIn applies the In predicate on the "deleted_at" field. -func DeletedAtIn(vs ...time.Time) predicate.User { - return predicate.User(sql.FieldIn(FieldDeletedAt, vs...)) -} - -// DeletedAtNotIn applies the NotIn predicate on the "deleted_at" field. -func DeletedAtNotIn(vs ...time.Time) predicate.User { - return predicate.User(sql.FieldNotIn(FieldDeletedAt, vs...)) -} - -// DeletedAtGT applies the GT predicate on the "deleted_at" field. -func DeletedAtGT(v time.Time) predicate.User { - return predicate.User(sql.FieldGT(FieldDeletedAt, v)) -} - -// DeletedAtGTE applies the GTE predicate on the "deleted_at" field. -func DeletedAtGTE(v time.Time) predicate.User { - return predicate.User(sql.FieldGTE(FieldDeletedAt, v)) -} - -// DeletedAtLT applies the LT predicate on the "deleted_at" field. -func DeletedAtLT(v time.Time) predicate.User { - return predicate.User(sql.FieldLT(FieldDeletedAt, v)) -} - -// DeletedAtLTE applies the LTE predicate on the "deleted_at" field. -func DeletedAtLTE(v time.Time) predicate.User { - return predicate.User(sql.FieldLTE(FieldDeletedAt, v)) -} - -// DeletedAtIsNil applies the IsNil predicate on the "deleted_at" field. -func DeletedAtIsNil() predicate.User { - return predicate.User(sql.FieldIsNull(FieldDeletedAt)) -} - -// DeletedAtNotNil applies the NotNil predicate on the "deleted_at" field. -func DeletedAtNotNil() predicate.User { - return predicate.User(sql.FieldNotNull(FieldDeletedAt)) -} - // UsernameEQ applies the EQ predicate on the "username" field. func UsernameEQ(v string) predicate.User { return predicate.User(sql.FieldEQ(FieldUsername, v)) diff --git a/rpc/core/ent/user_create.go b/rpc/core/ent/user_create.go index 9f58027..e460939 100644 --- a/rpc/core/ent/user_create.go +++ b/rpc/core/ent/user_create.go @@ -85,20 +85,6 @@ func (uc *UserCreate) SetNillableVersion(i *int64) *UserCreate { return uc } -// SetDeletedAt sets the "deleted_at" field. -func (uc *UserCreate) SetDeletedAt(t time.Time) *UserCreate { - uc.mutation.SetDeletedAt(t) - return uc -} - -// SetNillableDeletedAt sets the "deleted_at" field if the given value is not nil. -func (uc *UserCreate) SetNillableDeletedAt(t *time.Time) *UserCreate { - if t != nil { - uc.SetDeletedAt(*t) - } - return uc -} - // SetUsername sets the "username" field. func (uc *UserCreate) SetUsername(s string) *UserCreate { uc.mutation.SetUsername(s) @@ -404,10 +390,6 @@ func (uc *UserCreate) createSpec() (*User, *sqlgraph.CreateSpec) { _spec.SetField(user.FieldVersion, field.TypeInt64, value) _node.Version = value } - if value, ok := uc.mutation.DeletedAt(); ok { - _spec.SetField(user.FieldDeletedAt, field.TypeTime, value) - _node.DeletedAt = value - } if value, ok := uc.mutation.Username(); ok { _spec.SetField(user.FieldUsername, field.TypeString, value) _node.Username = value @@ -618,24 +600,6 @@ func (u *UserUpsert) AddVersion(v int64) *UserUpsert { return u } -// SetDeletedAt sets the "deleted_at" field. -func (u *UserUpsert) SetDeletedAt(v time.Time) *UserUpsert { - u.Set(user.FieldDeletedAt, v) - return u -} - -// UpdateDeletedAt sets the "deleted_at" field to the value that was provided on create. -func (u *UserUpsert) UpdateDeletedAt() *UserUpsert { - u.SetExcluded(user.FieldDeletedAt) - return u -} - -// ClearDeletedAt clears the value of the "deleted_at" field. -func (u *UserUpsert) ClearDeletedAt() *UserUpsert { - u.SetNull(user.FieldDeletedAt) - return u -} - // SetUsername sets the "username" field. func (u *UserUpsert) SetUsername(v string) *UserUpsert { u.Set(user.FieldUsername, v) @@ -814,27 +778,6 @@ func (u *UserUpsertOne) UpdateVersion() *UserUpsertOne { }) } -// SetDeletedAt sets the "deleted_at" field. -func (u *UserUpsertOne) SetDeletedAt(v time.Time) *UserUpsertOne { - return u.Update(func(s *UserUpsert) { - s.SetDeletedAt(v) - }) -} - -// UpdateDeletedAt sets the "deleted_at" field to the value that was provided on create. -func (u *UserUpsertOne) UpdateDeletedAt() *UserUpsertOne { - return u.Update(func(s *UserUpsert) { - s.UpdateDeletedAt() - }) -} - -// ClearDeletedAt clears the value of the "deleted_at" field. -func (u *UserUpsertOne) ClearDeletedAt() *UserUpsertOne { - return u.Update(func(s *UserUpsert) { - s.ClearDeletedAt() - }) -} - // SetUsername sets the "username" field. func (u *UserUpsertOne) SetUsername(v string) *UserUpsertOne { return u.Update(func(s *UserUpsert) { @@ -1188,27 +1131,6 @@ func (u *UserUpsertBulk) UpdateVersion() *UserUpsertBulk { }) } -// SetDeletedAt sets the "deleted_at" field. -func (u *UserUpsertBulk) SetDeletedAt(v time.Time) *UserUpsertBulk { - return u.Update(func(s *UserUpsert) { - s.SetDeletedAt(v) - }) -} - -// UpdateDeletedAt sets the "deleted_at" field to the value that was provided on create. -func (u *UserUpsertBulk) UpdateDeletedAt() *UserUpsertBulk { - return u.Update(func(s *UserUpsert) { - s.UpdateDeletedAt() - }) -} - -// ClearDeletedAt clears the value of the "deleted_at" field. -func (u *UserUpsertBulk) ClearDeletedAt() *UserUpsertBulk { - return u.Update(func(s *UserUpsert) { - s.ClearDeletedAt() - }) -} - // SetUsername sets the "username" field. func (u *UserUpsertBulk) SetUsername(v string) *UserUpsertBulk { return u.Update(func(s *UserUpsert) { diff --git a/rpc/core/ent/user_update.go b/rpc/core/ent/user_update.go index 6c2fdc9..990daf2 100644 --- a/rpc/core/ent/user_update.go +++ b/rpc/core/ent/user_update.go @@ -77,26 +77,6 @@ func (uu *UserUpdate) AddVersion(i int64) *UserUpdate { return uu } -// SetDeletedAt sets the "deleted_at" field. -func (uu *UserUpdate) SetDeletedAt(t time.Time) *UserUpdate { - uu.mutation.SetDeletedAt(t) - return uu -} - -// SetNillableDeletedAt sets the "deleted_at" field if the given value is not nil. -func (uu *UserUpdate) SetNillableDeletedAt(t *time.Time) *UserUpdate { - if t != nil { - uu.SetDeletedAt(*t) - } - return uu -} - -// ClearDeletedAt clears the value of the "deleted_at" field. -func (uu *UserUpdate) ClearDeletedAt() *UserUpdate { - uu.mutation.ClearDeletedAt() - return uu -} - // SetUsername sets the "username" field. func (uu *UserUpdate) SetUsername(s string) *UserUpdate { uu.mutation.SetUsername(s) @@ -461,12 +441,6 @@ func (uu *UserUpdate) sqlSave(ctx context.Context) (n int, err error) { if value, ok := uu.mutation.AddedVersion(); ok { _spec.AddField(user.FieldVersion, field.TypeInt64, value) } - if value, ok := uu.mutation.DeletedAt(); ok { - _spec.SetField(user.FieldDeletedAt, field.TypeTime, value) - } - if uu.mutation.DeletedAtCleared() { - _spec.ClearField(user.FieldDeletedAt, field.TypeTime) - } if value, ok := uu.mutation.Username(); ok { _spec.SetField(user.FieldUsername, field.TypeString, value) } @@ -808,26 +782,6 @@ func (uuo *UserUpdateOne) AddVersion(i int64) *UserUpdateOne { return uuo } -// SetDeletedAt sets the "deleted_at" field. -func (uuo *UserUpdateOne) SetDeletedAt(t time.Time) *UserUpdateOne { - uuo.mutation.SetDeletedAt(t) - return uuo -} - -// SetNillableDeletedAt sets the "deleted_at" field if the given value is not nil. -func (uuo *UserUpdateOne) SetNillableDeletedAt(t *time.Time) *UserUpdateOne { - if t != nil { - uuo.SetDeletedAt(*t) - } - return uuo -} - -// ClearDeletedAt clears the value of the "deleted_at" field. -func (uuo *UserUpdateOne) ClearDeletedAt() *UserUpdateOne { - uuo.mutation.ClearDeletedAt() - return uuo -} - // SetUsername sets the "username" field. func (uuo *UserUpdateOne) SetUsername(s string) *UserUpdateOne { uuo.mutation.SetUsername(s) @@ -1222,12 +1176,6 @@ func (uuo *UserUpdateOne) sqlSave(ctx context.Context) (_node *User, err error) if value, ok := uuo.mutation.AddedVersion(); ok { _spec.AddField(user.FieldVersion, field.TypeInt64, value) } - if value, ok := uuo.mutation.DeletedAt(); ok { - _spec.SetField(user.FieldDeletedAt, field.TypeTime, value) - } - if uuo.mutation.DeletedAtCleared() { - _spec.ClearField(user.FieldDeletedAt, field.TypeTime) - } if value, ok := uuo.mutation.Username(); ok { _spec.SetField(user.FieldUsername, field.TypeString, value) } diff --git a/rpc/core/internal/logic/dictionary/create_dictionary_logic.go b/rpc/core/internal/logic/dictionary/create_dictionary_logic.go index 19da2c5..21cee50 100644 --- a/rpc/core/internal/logic/dictionary/create_dictionary_logic.go +++ b/rpc/core/internal/logic/dictionary/create_dictionary_logic.go @@ -2,6 +2,15 @@ package dictionary import ( "context" + "git.noahlan.cn/n-admin/n-admin-server/dal/errx" + "git.noahlan.cn/n-admin/n-admin-server/rpc/core/ent" + "git.noahlan.cn/n-admin/n-admin-server/rpc/core/ent/dictionary" + "git.noahlan.cn/n-admin/n-admin-server/rpc/core/internal/utils/entx" + "git.noahlan.cn/n-admin/n-admin-server/rpc/core/internal/utils/hander" + "git.noahlan.cn/noahlan/ntool-biz/core/nstatus" + "git.noahlan.cn/noahlan/ntool-biz/core/nstatus/code" + "git.noahlan.cn/noahlan/ntool-biz/core/nstatus/msg" + "git.noahlan.cn/noahlan/ntool-biz/core/orm/nent/types" "git.noahlan.cn/n-admin/n-admin-server/rpc/core/internal/svc" "git.noahlan.cn/n-admin/n-admin-server/rpc/core/types/core" @@ -21,7 +30,42 @@ func NewCreateDictionaryLogic(ctx context.Context, svcCtx *svc.ServiceContext) * // Dictionary Management func (l *CreateDictionaryLogic) CreateDictionary(in *core.DictionaryInfo) (*core.BaseIDResp, error) { - // todo: add your logic here and delete this line + var dbData *ent.Dictionary + if err := entx.WithTx(l.ctx, l.svcCtx.DB, func(tx *ent.Tx) error { + var err error + if err := l.preCheck(tx, in); err != nil { + return err + } + dbData, err = tx.Dictionary.Create(). + SetStatus(types.ParseStatus(in.Status)). + SetTitle(in.Title). + SetName(in.Name). + SetDescription(in.Description).Save(l.ctx) + if err != nil { + return hander.HandleEntErr(err, in) + } + return nil + }); err != nil { + return nil, err + } + return &core.BaseIDResp{ + ID: dbData.ID, + Code: code.StatusOK, + Msg: msg.CreateSuccess, + }, nil +} - return &core.BaseIDResp{}, nil +func (l *CreateDictionaryLogic) preCheck(tx *ent.Tx, in *core.DictionaryInfo) error { + if in.Name == "" { + return nstatus.NewBizErrWithCode(errx.DictionaryNameNotEmpty) + } else { + exist, err := tx.Dictionary.Query().Where(dictionary.NameEQ(in.Name)).Exist(l.ctx) + if err != nil { + return hander.HandleEntErr(err, in) + } + if exist { + return nstatus.NewBizErrWithCode(errx.DictionaryNameInUsed) + } + } + return nil } diff --git a/rpc/core/internal/logic/dictionary/delete_dictionary_logic.go b/rpc/core/internal/logic/dictionary/delete_dictionary_logic.go index 876b32e..7ff6271 100644 --- a/rpc/core/internal/logic/dictionary/delete_dictionary_logic.go +++ b/rpc/core/internal/logic/dictionary/delete_dictionary_logic.go @@ -2,6 +2,10 @@ package dictionary import ( "context" + "git.noahlan.cn/n-admin/n-admin-server/rpc/core/ent/dictionary" + "git.noahlan.cn/n-admin/n-admin-server/rpc/core/internal/utils/hander" + "git.noahlan.cn/noahlan/ntool-biz/core/nstatus/code" + "git.noahlan.cn/noahlan/ntool-biz/core/nstatus/msg" "git.noahlan.cn/n-admin/n-admin-server/rpc/core/internal/svc" "git.noahlan.cn/n-admin/n-admin-server/rpc/core/types/core" @@ -20,7 +24,12 @@ func NewDeleteDictionaryLogic(ctx context.Context, svcCtx *svc.ServiceContext) * } func (l *DeleteDictionaryLogic) DeleteDictionary(in *core.IDsReq) (*core.BaseResp, error) { - // todo: add your logic here and delete this line - - return &core.BaseResp{}, nil + _, err := l.svcCtx.DB.Dictionary.Delete().Where(dictionary.IDIn(in.Ids...)).Exec(l.ctx) + if err != nil { + return nil, hander.HandleEntErr(err, in) + } + return &core.BaseResp{ + Code: code.StatusOK, + Msg: msg.DeleteSuccess, + }, nil } diff --git a/rpc/core/internal/logic/dictionary/get_dictionary_list_logic.go b/rpc/core/internal/logic/dictionary/get_dictionary_list_logic.go index 92d201e..f9b9288 100644 --- a/rpc/core/internal/logic/dictionary/get_dictionary_list_logic.go +++ b/rpc/core/internal/logic/dictionary/get_dictionary_list_logic.go @@ -2,6 +2,11 @@ package dictionary import ( "context" + "git.noahlan.cn/n-admin/n-admin-server/rpc/core/ent" + "git.noahlan.cn/n-admin/n-admin-server/rpc/core/ent/dictionary" + "git.noahlan.cn/n-admin/n-admin-server/rpc/core/ent/predicate" + "git.noahlan.cn/n-admin/n-admin-server/rpc/core/internal/utils" + "git.noahlan.cn/n-admin/n-admin-server/rpc/core/internal/utils/hander" "git.noahlan.cn/n-admin/n-admin-server/rpc/core/internal/svc" "git.noahlan.cn/n-admin/n-admin-server/rpc/core/types/core" @@ -19,8 +24,45 @@ func NewGetDictionaryListLogic(ctx context.Context, svcCtx *svc.ServiceContext) } } -func (l *GetDictionaryListLogic) GetDictionaryList(in *core.UserReq) (*core.UserListResp, error) { - // todo: add your logic here and delete this line +func (l *GetDictionaryListLogic) GetDictionaryList(in *core.DictionaryReq) (*core.DictionaryListResp, error) { + var predicates []predicate.Dictionary + if in.Name != "" { + predicates = append(predicates, dictionary.NameContains(in.Name)) + } + if in.Title != "" { + predicates = append(predicates, dictionary.TitleContains(in.Title)) + } + + query := l.svcCtx.DB.Dictionary.Query().Where(predicates...) + if in.WithDetails { + query.WithDetails() + } + var ( + pagination *core.Pagination + list []*ent.Dictionary + err error + ) + if in.Page != nil { + result, pageErr := query.Page(l.ctx, in.Page.Current, in.Page.Size) + if pageErr == nil { + pagination = utils.ConvertPaginationDb(result.PageDetails) + list = result.List + } else { + err = pageErr + } + } else { + list, err = query.All(l.ctx) + } + if err != nil { + return nil, hander.HandleEntErr(err, in) + } + resp := &core.DictionaryListResp{ + Page: pagination, + Data: make([]*core.DictionaryInfo, len(list)), + } - return &core.UserListResp{}, nil + for i, v := range list { + resp.Data[i] = l.svcCtx.Convert.ConvertDictionaryRpc(l.ctx, v) + } + return resp, nil } diff --git a/rpc/core/internal/logic/dictionary/get_dictionary_logic.go b/rpc/core/internal/logic/dictionary/get_dictionary_logic.go index 9ed3b5b..791cd13 100644 --- a/rpc/core/internal/logic/dictionary/get_dictionary_logic.go +++ b/rpc/core/internal/logic/dictionary/get_dictionary_logic.go @@ -2,6 +2,9 @@ package dictionary import ( "context" + "git.noahlan.cn/n-admin/n-admin-server/rpc/core/ent/dictionary" + "git.noahlan.cn/n-admin/n-admin-server/rpc/core/ent/predicate" + "git.noahlan.cn/n-admin/n-admin-server/rpc/core/internal/utils/hander" "git.noahlan.cn/n-admin/n-admin-server/rpc/core/internal/svc" "git.noahlan.cn/n-admin/n-admin-server/rpc/core/types/core" @@ -19,8 +22,30 @@ func NewGetDictionaryLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Get } } -func (l *GetDictionaryLogic) GetDictionary(in *core.UserReq) (*core.DictionaryInfo, error) { - // todo: add your logic here and delete this line +func (l *GetDictionaryLogic) GetDictionary(in *core.DictionaryReq) (*core.DictionaryInfo, error) { + var predicates []predicate.Dictionary + if in.ID != 0 { + predicates = append(predicates, dictionary.IDEQ(in.ID)) + goto Query + } + if in.Name != "" { + predicates = append(predicates, dictionary.NameEQ(in.Name)) + } + if in.Title != "" { + predicates = append(predicates, dictionary.TitleEQ(in.Title)) + } + if len(predicates) == 0 { + return nil, nil + } +Query: + query := l.svcCtx.DB.Dictionary.Query().Where(predicates...) + if in.WithDetails { + query.WithDetails() + } + dbData, err := query.First(l.ctx) + if err != nil { + return nil, hander.HandleEntErr(err, in) + } - return &core.DictionaryInfo{}, nil + return l.svcCtx.Convert.ConvertDictionaryRpc(l.ctx, dbData), nil } diff --git a/rpc/core/internal/logic/dictionary/update_dictionary_logic.go b/rpc/core/internal/logic/dictionary/update_dictionary_logic.go index d15f023..87afb05 100644 --- a/rpc/core/internal/logic/dictionary/update_dictionary_logic.go +++ b/rpc/core/internal/logic/dictionary/update_dictionary_logic.go @@ -2,9 +2,17 @@ package dictionary import ( "context" - + "git.noahlan.cn/n-admin/n-admin-server/dal/errx" + "git.noahlan.cn/n-admin/n-admin-server/rpc/core/ent" + "git.noahlan.cn/n-admin/n-admin-server/rpc/core/ent/dictionary" "git.noahlan.cn/n-admin/n-admin-server/rpc/core/internal/svc" + "git.noahlan.cn/n-admin/n-admin-server/rpc/core/internal/utils/entx" + "git.noahlan.cn/n-admin/n-admin-server/rpc/core/internal/utils/hander" "git.noahlan.cn/n-admin/n-admin-server/rpc/core/types/core" + "git.noahlan.cn/noahlan/ntool-biz/core/nstatus" + "git.noahlan.cn/noahlan/ntool-biz/core/nstatus/code" + "git.noahlan.cn/noahlan/ntool-biz/core/nstatus/msg" + "git.noahlan.cn/noahlan/ntool-biz/core/orm/nent/types" ) type UpdateDictionaryLogic struct { @@ -20,7 +28,43 @@ func NewUpdateDictionaryLogic(ctx context.Context, svcCtx *svc.ServiceContext) * } func (l *UpdateDictionaryLogic) UpdateDictionary(in *core.DictionaryInfo) (*core.BaseResp, error) { - // todo: add your logic here and delete this line + if err := entx.WithTx(l.ctx, l.svcCtx.DB, func(tx *ent.Tx) error { + var err error + if err := l.preCheck(tx, in); err != nil { + return err + } + update := tx.Dictionary.Update().Where(dictionary.IDEQ(in.ID)) + update.SetNotEmptyTitle(in.Title). + SetNotEmptyName(in.Name). + SetNotEmptyDescription(in.Description) + if in.Status != "" { + update.SetStatus(types.ParseStatus(in.Status)) + } + err = update.Exec(l.ctx) + if err != nil { + return hander.HandleEntErr(err, in) + } + return nil + }); err != nil { + return nil, err + } + return &core.BaseResp{ + Code: code.StatusOK, + Msg: msg.UpdateSuccess, + }, nil +} - return &core.BaseResp{}, nil +func (l *UpdateDictionaryLogic) preCheck(tx *ent.Tx, in *core.DictionaryInfo) error { + if in.Name == "" { + return nstatus.NewBizErrWithCode(errx.DictionaryNameNotEmpty) + } else { + exist, err := tx.Dictionary.Query().Where(dictionary.NameEQ(in.Name)).Exist(l.ctx) + if err != nil { + return hander.HandleEntErr(err, in) + } + if exist { + return nstatus.NewBizErrWithCode(errx.DictionaryNameInUsed) + } + } + return nil } diff --git a/rpc/core/internal/server/core_server.go b/rpc/core/internal/server/core_server.go index f9d37b3..1b0f48a 100644 --- a/rpc/core/internal/server/core_server.go +++ b/rpc/core/internal/server/core_server.go @@ -74,12 +74,12 @@ func (s *CoreServer) UpdateDictionary(ctx context.Context, in *core.DictionaryIn return l.UpdateDictionary(in) } -func (s *CoreServer) GetDictionaryList(ctx context.Context, in *core.UserReq) (*core.UserListResp, error) { +func (s *CoreServer) GetDictionaryList(ctx context.Context, in *core.DictionaryReq) (*core.DictionaryListResp, error) { l := dictionary.NewGetDictionaryListLogic(ctx, s.svcCtx) return l.GetDictionaryList(in) } -func (s *CoreServer) GetDictionary(ctx context.Context, in *core.UserReq) (*core.DictionaryInfo, error) { +func (s *CoreServer) GetDictionary(ctx context.Context, in *core.DictionaryReq) (*core.DictionaryInfo, error) { l := dictionary.NewGetDictionaryLogic(ctx, s.svcCtx) return l.GetDictionary(in) } diff --git a/rpc/core/internal/svc/convert.go b/rpc/core/internal/svc/convert.go index 345debc..4082263 100644 --- a/rpc/core/internal/svc/convert.go +++ b/rpc/core/internal/svc/convert.go @@ -190,6 +190,37 @@ func (c *Convert) ConvertDistrictRpc(_ context.Context, v *ent.District) *core.D } var tmp core.DistrictInfo _ = copier.Copy(&tmp, v) + tmp.CreatedAt = ntime.Format(v.CreatedAt) + tmp.UpdatedAt = ntime.Format(v.UpdatedAt) + + return &tmp +} + +func (c *Convert) ConvertDictionaryRpc(ctx context.Context, v *ent.Dictionary) *core.DictionaryInfo { + if v == nil { + return nil + } + var tmp core.DictionaryInfo + _ = copier.Copy(&tmp, v) + tmp.CreatedAt = ntime.Format(v.CreatedAt) + tmp.UpdatedAt = ntime.Format(v.UpdatedAt) + + if len(v.Edges.Details) > 0 { + tmp.Details = make([]*core.DictionaryDetailInfo, len(v.Edges.Details)) + for i, item := range v.Edges.Details { + tmp.Details[i] = c.ConvertDictionaryDetailRpc(ctx, item) + } + } + return &tmp +} + +func (c *Convert) ConvertDictionaryDetailRpc(_ context.Context, v *ent.DictionaryDetail) *core.DictionaryDetailInfo { + if v == nil { + return nil + } + var tmp core.DictionaryDetailInfo + _ = copier.Copy(&tmp, v) + tmp.DictionaryId = v.DictionaryID return &tmp } diff --git a/rpc/core/types/core/core.pb.go b/rpc/core/types/core/core.pb.go index 63e2f09..a068a5d 100644 --- a/rpc/core/types/core/core.pb.go +++ b/rpc/core/types/core/core.pb.go @@ -152,23 +152,27 @@ func (DistrictQueryType) EnumDescriptor() ([]byte, []int) { return file_rpc_core_core_proto_rawDescGZIP(), []int{1} } -type DepartmentReq struct { +type DepartmentInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - LeaderId int64 `protobuf:"varint,3,opt,name=leader_id,json=leaderId,proto3" json:"leader_id,omitempty"` - ParentId int64 `protobuf:"varint,4,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"` - WithLeader bool `protobuf:"varint,5,opt,name=with_leader,json=withLeader,proto3" json:"with_leader,omitempty"` - WithUser bool `protobuf:"varint,6,opt,name=with_user,json=withUser,proto3" json:"with_user,omitempty"` - WithChildren bool `protobuf:"varint,7,opt,name=with_children,json=withChildren,proto3" json:"with_children,omitempty"` - Page *Pagination `protobuf:"bytes,10,opt,name=page,proto3,oneof" json:"page,omitempty"` + ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` + CreatedAt string `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + UpdatedAt string `protobuf:"bytes,4,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` + LeaderId int64 `protobuf:"varint,6,opt,name=leader_id,json=leaderId,proto3" json:"leader_id,omitempty"` + Remark string `protobuf:"bytes,7,opt,name=remark,proto3" json:"remark,omitempty"` + ParentId int64 `protobuf:"varint,8,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"` + Parent *DepartmentInfo `protobuf:"bytes,10,opt,name=parent,proto3" json:"parent,omitempty"` + Children []*DepartmentInfo `protobuf:"bytes,11,rep,name=children,proto3" json:"children,omitempty"` + Users []*UserInfo `protobuf:"bytes,12,rep,name=users,proto3" json:"users,omitempty"` + Leader *UserInfo `protobuf:"bytes,13,opt,name=leader,proto3" json:"leader,omitempty"` } -func (x *DepartmentReq) Reset() { - *x = DepartmentReq{} +func (x *DepartmentInfo) Reset() { + *x = DepartmentInfo{} if protoimpl.UnsafeEnabled { mi := &file_rpc_core_core_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -176,13 +180,13 @@ func (x *DepartmentReq) Reset() { } } -func (x *DepartmentReq) String() string { +func (x *DepartmentInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DepartmentReq) ProtoMessage() {} +func (*DepartmentInfo) ProtoMessage() {} -func (x *DepartmentReq) ProtoReflect() protoreflect.Message { +func (x *DepartmentInfo) ProtoReflect() protoreflect.Message { mi := &file_rpc_core_core_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -194,78 +198,106 @@ func (x *DepartmentReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DepartmentReq.ProtoReflect.Descriptor instead. -func (*DepartmentReq) Descriptor() ([]byte, []int) { +// Deprecated: Use DepartmentInfo.ProtoReflect.Descriptor instead. +func (*DepartmentInfo) Descriptor() ([]byte, []int) { return file_rpc_core_core_proto_rawDescGZIP(), []int{0} } -func (x *DepartmentReq) GetID() int64 { +func (x *DepartmentInfo) GetID() int64 { if x != nil { return x.ID } return 0 } -func (x *DepartmentReq) GetName() string { +func (x *DepartmentInfo) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *DepartmentInfo) GetCreatedAt() string { + if x != nil { + return x.CreatedAt + } + return "" +} + +func (x *DepartmentInfo) GetUpdatedAt() string { + if x != nil { + return x.UpdatedAt + } + return "" +} + +func (x *DepartmentInfo) GetName() string { if x != nil { return x.Name } return "" } -func (x *DepartmentReq) GetLeaderId() int64 { +func (x *DepartmentInfo) GetLeaderId() int64 { if x != nil { return x.LeaderId } return 0 } -func (x *DepartmentReq) GetParentId() int64 { +func (x *DepartmentInfo) GetRemark() string { + if x != nil { + return x.Remark + } + return "" +} + +func (x *DepartmentInfo) GetParentId() int64 { if x != nil { return x.ParentId } return 0 } -func (x *DepartmentReq) GetWithLeader() bool { +func (x *DepartmentInfo) GetParent() *DepartmentInfo { if x != nil { - return x.WithLeader + return x.Parent } - return false + return nil } -func (x *DepartmentReq) GetWithUser() bool { +func (x *DepartmentInfo) GetChildren() []*DepartmentInfo { if x != nil { - return x.WithUser + return x.Children } - return false + return nil } -func (x *DepartmentReq) GetWithChildren() bool { +func (x *DepartmentInfo) GetUsers() []*UserInfo { if x != nil { - return x.WithChildren + return x.Users } - return false + return nil } -func (x *DepartmentReq) GetPage() *Pagination { +func (x *DepartmentInfo) GetLeader() *UserInfo { if x != nil { - return x.Page + return x.Leader } return nil } -type DepartmentListResp struct { +type DeleteDictionaryDetailReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Page *Pagination `protobuf:"bytes,1,opt,name=page,proto3,oneof" json:"page,omitempty"` - Data []*DepartmentInfo `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` + Ids []int64 `protobuf:"varint,1,rep,packed,name=ids,proto3" json:"ids,omitempty"` + DictId int64 `protobuf:"varint,2,opt,name=dict_id,json=dictId,proto3" json:"dict_id,omitempty"` } -func (x *DepartmentListResp) Reset() { - *x = DepartmentListResp{} +func (x *DeleteDictionaryDetailReq) Reset() { + *x = DeleteDictionaryDetailReq{} if protoimpl.UnsafeEnabled { mi := &file_rpc_core_core_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -273,13 +305,13 @@ func (x *DepartmentListResp) Reset() { } } -func (x *DepartmentListResp) String() string { +func (x *DeleteDictionaryDetailReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DepartmentListResp) ProtoMessage() {} +func (*DeleteDictionaryDetailReq) ProtoMessage() {} -func (x *DepartmentListResp) ProtoReflect() protoreflect.Message { +func (x *DeleteDictionaryDetailReq) ProtoReflect() protoreflect.Message { mi := &file_rpc_core_core_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -291,39 +323,36 @@ func (x *DepartmentListResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DepartmentListResp.ProtoReflect.Descriptor instead. -func (*DepartmentListResp) Descriptor() ([]byte, []int) { +// Deprecated: Use DeleteDictionaryDetailReq.ProtoReflect.Descriptor instead. +func (*DeleteDictionaryDetailReq) Descriptor() ([]byte, []int) { return file_rpc_core_core_proto_rawDescGZIP(), []int{1} } -func (x *DepartmentListResp) GetPage() *Pagination { +func (x *DeleteDictionaryDetailReq) GetIds() []int64 { if x != nil { - return x.Page + return x.Ids } return nil } -func (x *DepartmentListResp) GetData() []*DepartmentInfo { +func (x *DeleteDictionaryDetailReq) GetDictId() int64 { if x != nil { - return x.Data + return x.DictId } - return nil + return 0 } -type DictionaryReq struct { +type UserSocialListResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"` - WithDetails bool `protobuf:"varint,4,opt,name=with_details,json=withDetails,proto3" json:"with_details,omitempty"` - Page *Pagination `protobuf:"bytes,10,opt,name=page,proto3,oneof" json:"page,omitempty"` + Page *Pagination `protobuf:"bytes,1,opt,name=page,proto3,oneof" json:"page,omitempty"` + Data []*UserSocialInfo `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` } -func (x *DictionaryReq) Reset() { - *x = DictionaryReq{} +func (x *UserSocialListResp) Reset() { + *x = UserSocialListResp{} if protoimpl.UnsafeEnabled { mi := &file_rpc_core_core_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -331,13 +360,13 @@ func (x *DictionaryReq) Reset() { } } -func (x *DictionaryReq) String() string { +func (x *UserSocialListResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DictionaryReq) ProtoMessage() {} +func (*UserSocialListResp) ProtoMessage() {} -func (x *DictionaryReq) ProtoReflect() protoreflect.Message { +func (x *UserSocialListResp) ProtoReflect() protoreflect.Message { mi := &file_rpc_core_core_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -349,62 +378,37 @@ func (x *DictionaryReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DictionaryReq.ProtoReflect.Descriptor instead. -func (*DictionaryReq) Descriptor() ([]byte, []int) { +// Deprecated: Use UserSocialListResp.ProtoReflect.Descriptor instead. +func (*UserSocialListResp) Descriptor() ([]byte, []int) { return file_rpc_core_core_proto_rawDescGZIP(), []int{2} } -func (x *DictionaryReq) GetID() int64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *DictionaryReq) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *DictionaryReq) GetTitle() string { - if x != nil { - return x.Title - } - return "" -} - -func (x *DictionaryReq) GetWithDetails() bool { +func (x *UserSocialListResp) GetPage() *Pagination { if x != nil { - return x.WithDetails + return x.Page } - return false + return nil } -func (x *DictionaryReq) GetPage() *Pagination { +func (x *UserSocialListResp) GetData() []*UserSocialInfo { if x != nil { - return x.Page + return x.Data } return nil } -type DictionaryDetailReq struct { +// 基础回执 +type BaseResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Page *Pagination `protobuf:"bytes,1,opt,name=page,proto3,oneof" json:"page,omitempty"` - ID int64 `protobuf:"varint,2,opt,name=ID,proto3" json:"ID,omitempty"` - DictId int64 `protobuf:"varint,3,opt,name=dict_id,json=dictId,proto3" json:"dict_id,omitempty"` - Title string `protobuf:"bytes,4,opt,name=title,proto3" json:"title,omitempty"` - Key string `protobuf:"bytes,5,opt,name=key,proto3" json:"key,omitempty"` - Value string `protobuf:"bytes,6,opt,name=value,proto3" json:"value,omitempty"` - WithDictionary bool `protobuf:"varint,7,opt,name=with_dictionary,json=withDictionary,proto3" json:"with_dictionary,omitempty"` + Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` } -func (x *DictionaryDetailReq) Reset() { - *x = DictionaryDetailReq{} +func (x *BaseResp) Reset() { + *x = BaseResp{} if protoimpl.UnsafeEnabled { mi := &file_rpc_core_core_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -412,13 +416,13 @@ func (x *DictionaryDetailReq) Reset() { } } -func (x *DictionaryDetailReq) String() string { +func (x *BaseResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DictionaryDetailReq) ProtoMessage() {} +func (*BaseResp) ProtoMessage() {} -func (x *DictionaryDetailReq) ProtoReflect() protoreflect.Message { +func (x *BaseResp) ProtoReflect() protoreflect.Message { mi := &file_rpc_core_core_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -430,58 +434,188 @@ func (x *DictionaryDetailReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DictionaryDetailReq.ProtoReflect.Descriptor instead. -func (*DictionaryDetailReq) Descriptor() ([]byte, []int) { +// Deprecated: Use BaseResp.ProtoReflect.Descriptor instead. +func (*BaseResp) Descriptor() ([]byte, []int) { return file_rpc_core_core_proto_rawDescGZIP(), []int{3} } -func (x *DictionaryDetailReq) GetPage() *Pagination { - if x != nil { - return x.Page - } - return nil -} - -func (x *DictionaryDetailReq) GetID() int64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *DictionaryDetailReq) GetDictId() int64 { +func (x *BaseResp) GetCode() int32 { if x != nil { - return x.DictId + return x.Code } return 0 } -func (x *DictionaryDetailReq) GetTitle() string { +func (x *BaseResp) GetMsg() string { if x != nil { - return x.Title + return x.Msg } return "" } -func (x *DictionaryDetailReq) GetKey() string { - if x != nil { - return x.Key - } - return "" +type GetDistrictNameResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + NameList []string `protobuf:"bytes,3,rep,name=name_list,json=nameList,proto3" json:"name_list,omitempty"` } -func (x *DictionaryDetailReq) GetValue() string { - if x != nil { - return x.Value +func (x *GetDistrictNameResp) Reset() { + *x = GetDistrictNameResp{} + if protoimpl.UnsafeEnabled { + mi := &file_rpc_core_core_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *DictionaryDetailReq) GetWithDictionary() bool { - if x != nil { - return x.WithDictionary - } - return false +func (x *GetDistrictNameResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDistrictNameResp) ProtoMessage() {} + +func (x *GetDistrictNameResp) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_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 GetDistrictNameResp.ProtoReflect.Descriptor instead. +func (*GetDistrictNameResp) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{4} +} + +func (x *GetDistrictNameResp) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *GetDistrictNameResp) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *GetDistrictNameResp) GetNameList() []string { + if x != nil { + return x.NameList + } + return nil +} + +type RecordReq 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"` +} + +func (x *RecordReq) Reset() { + *x = RecordReq{} + if protoimpl.UnsafeEnabled { + mi := &file_rpc_core_core_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RecordReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RecordReq) ProtoMessage() {} + +func (x *RecordReq) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_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 RecordReq.ProtoReflect.Descriptor instead. +func (*RecordReq) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{5} +} + +func (x *RecordReq) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +type OauthProviderListResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Page *Pagination `protobuf:"bytes,1,opt,name=page,proto3,oneof" json:"page,omitempty"` + Data []*OauthProviderInfo `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` +} + +func (x *OauthProviderListResp) Reset() { + *x = OauthProviderListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_rpc_core_core_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OauthProviderListResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OauthProviderListResp) ProtoMessage() {} + +func (x *OauthProviderListResp) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_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 OauthProviderListResp.ProtoReflect.Descriptor instead. +func (*OauthProviderListResp) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{6} +} + +func (x *OauthProviderListResp) GetPage() *Pagination { + if x != nil { + return x.Page + } + return nil +} + +func (x *OauthProviderListResp) GetData() []*OauthProviderInfo { + if x != nil { + return x.Data + } + return nil } type TokenInfo struct { @@ -504,7 +638,7 @@ type TokenInfo struct { func (x *TokenInfo) Reset() { *x = TokenInfo{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[4] + mi := &file_rpc_core_core_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -517,7 +651,7 @@ func (x *TokenInfo) String() string { func (*TokenInfo) ProtoMessage() {} func (x *TokenInfo) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[4] + mi := &file_rpc_core_core_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -530,7 +664,7 @@ func (x *TokenInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use TokenInfo.ProtoReflect.Descriptor instead. func (*TokenInfo) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{4} + return file_rpc_core_core_proto_rawDescGZIP(), []int{7} } func (x *TokenInfo) GetID() int64 { @@ -603,44 +737,41 @@ func (x *TokenInfo) GetUser() *UserInfo { return nil } -type OauthProviderInfo struct { +type UserReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - CreatedAt string `protobuf:"bytes,2,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - UpdatedAt string `protobuf:"bytes,3,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` - ClientId string `protobuf:"bytes,5,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - ClientSecret string `protobuf:"bytes,6,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret,omitempty"` - RedirectUrl string `protobuf:"bytes,7,opt,name=redirect_url,json=redirectUrl,proto3" json:"redirect_url,omitempty"` - Scopes string `protobuf:"bytes,8,opt,name=scopes,proto3" json:"scopes,omitempty"` - AuthUrl string `protobuf:"bytes,9,opt,name=auth_url,json=authUrl,proto3" json:"auth_url,omitempty"` - TokenUrl string `protobuf:"bytes,10,opt,name=token_url,json=tokenUrl,proto3" json:"token_url,omitempty"` - InfoUrl string `protobuf:"bytes,11,opt,name=info_url,json=infoUrl,proto3" json:"info_url,omitempty"` - Description string `protobuf:"bytes,12,opt,name=description,proto3" json:"description,omitempty"` - System bool `protobuf:"varint,13,opt,name=system,proto3" json:"system,omitempty"` - Init bool `protobuf:"varint,14,opt,name=init,proto3" json:"init,omitempty"` + ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` + PhoneNumber string `protobuf:"bytes,3,opt,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"` + Email string `protobuf:"bytes,4,opt,name=email,proto3" json:"email,omitempty"` + Nickname string `protobuf:"bytes,5,opt,name=nickname,proto3" json:"nickname,omitempty"` + WithRole bool `protobuf:"varint,6,opt,name=with_role,json=withRole,proto3" json:"with_role,omitempty"` + WithSocial bool `protobuf:"varint,7,opt,name=with_social,json=withSocial,proto3" json:"with_social,omitempty"` + WithDepartment bool `protobuf:"varint,8,opt,name=with_department,json=withDepartment,proto3" json:"with_department,omitempty"` + WithToken bool `protobuf:"varint,9,opt,name=with_token,json=withToken,proto3" json:"with_token,omitempty"` + WithLoginRecord bool `protobuf:"varint,10,opt,name=with_login_record,json=withLoginRecord,proto3" json:"with_login_record,omitempty"` + Page *Pagination `protobuf:"bytes,20,opt,name=page,proto3,oneof" json:"page,omitempty"` } -func (x *OauthProviderInfo) Reset() { - *x = OauthProviderInfo{} +func (x *UserReq) Reset() { + *x = UserReq{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[5] + mi := &file_rpc_core_core_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *OauthProviderInfo) String() string { +func (x *UserReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*OauthProviderInfo) ProtoMessage() {} +func (*UserReq) ProtoMessage() {} -func (x *OauthProviderInfo) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[5] +func (x *UserReq) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -651,135 +782,114 @@ func (x *OauthProviderInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use OauthProviderInfo.ProtoReflect.Descriptor instead. -func (*OauthProviderInfo) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{5} +// Deprecated: Use UserReq.ProtoReflect.Descriptor instead. +func (*UserReq) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{8} } -func (x *OauthProviderInfo) GetID() int64 { +func (x *UserReq) GetID() int64 { if x != nil { return x.ID } return 0 } -func (x *OauthProviderInfo) GetCreatedAt() string { - if x != nil { - return x.CreatedAt - } - return "" -} - -func (x *OauthProviderInfo) GetUpdatedAt() string { +func (x *UserReq) GetUsername() string { if x != nil { - return x.UpdatedAt + return x.Username } return "" } -func (x *OauthProviderInfo) GetName() string { +func (x *UserReq) GetPhoneNumber() string { if x != nil { - return x.Name + return x.PhoneNumber } return "" } -func (x *OauthProviderInfo) GetClientId() string { +func (x *UserReq) GetEmail() string { if x != nil { - return x.ClientId + return x.Email } return "" } -func (x *OauthProviderInfo) GetClientSecret() string { +func (x *UserReq) GetNickname() string { if x != nil { - return x.ClientSecret + return x.Nickname } return "" } -func (x *OauthProviderInfo) GetRedirectUrl() string { +func (x *UserReq) GetWithRole() bool { if x != nil { - return x.RedirectUrl + return x.WithRole } - return "" + return false } -func (x *OauthProviderInfo) GetScopes() string { +func (x *UserReq) GetWithSocial() bool { if x != nil { - return x.Scopes + return x.WithSocial } - return "" + return false } -func (x *OauthProviderInfo) GetAuthUrl() string { +func (x *UserReq) GetWithDepartment() bool { if x != nil { - return x.AuthUrl + return x.WithDepartment } - return "" + return false } -func (x *OauthProviderInfo) GetTokenUrl() string { +func (x *UserReq) GetWithToken() bool { if x != nil { - return x.TokenUrl + return x.WithToken } - return "" + return false } -func (x *OauthProviderInfo) GetInfoUrl() string { +func (x *UserReq) GetWithLoginRecord() bool { if x != nil { - return x.InfoUrl + return x.WithLoginRecord } - return "" + return false } -func (x *OauthProviderInfo) GetDescription() string { +func (x *UserReq) GetPage() *Pagination { if x != nil { - return x.Description + return x.Page } - return "" + return nil } -func (x *OauthProviderInfo) GetSystem() bool { - if x != nil { - return x.System - } - return false -} - -func (x *OauthProviderInfo) GetInit() bool { - if x != nil { - return x.Init - } - return false -} - -type RoleListResp struct { +type GetUserRolesReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Page *Pagination `protobuf:"bytes,1,opt,name=page,proto3,oneof" json:"page,omitempty"` - Data []*RoleInfo `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` + Page *Pagination `protobuf:"bytes,1,opt,name=page,proto3,oneof" json:"page,omitempty"` + UserId int64 `protobuf:"varint,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` } -func (x *RoleListResp) Reset() { - *x = RoleListResp{} +func (x *GetUserRolesReq) Reset() { + *x = GetUserRolesReq{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[6] + mi := &file_rpc_core_core_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RoleListResp) String() string { +func (x *GetUserRolesReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RoleListResp) ProtoMessage() {} +func (*GetUserRolesReq) ProtoMessage() {} -func (x *RoleListResp) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[6] +func (x *GetUserRolesReq) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -790,50 +900,51 @@ func (x *RoleListResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RoleListResp.ProtoReflect.Descriptor instead. -func (*RoleListResp) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{6} +// Deprecated: Use GetUserRolesReq.ProtoReflect.Descriptor instead. +func (*GetUserRolesReq) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{9} } -func (x *RoleListResp) GetPage() *Pagination { +func (x *GetUserRolesReq) GetPage() *Pagination { if x != nil { return x.Page } return nil } -func (x *RoleListResp) GetData() []*RoleInfo { +func (x *GetUserRolesReq) GetUserId() int64 { if x != nil { - return x.Data + return x.UserId } - return nil + return 0 } -type IDReq struct { +type DepartmentListResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Page *Pagination `protobuf:"bytes,1,opt,name=page,proto3,oneof" json:"page,omitempty"` + Data []*DepartmentInfo `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` } -func (x *IDReq) Reset() { - *x = IDReq{} +func (x *DepartmentListResp) Reset() { + *x = DepartmentListResp{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[7] + mi := &file_rpc_core_core_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IDReq) String() string { +func (x *DepartmentListResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IDReq) ProtoMessage() {} +func (*DepartmentListResp) ProtoMessage() {} -func (x *IDReq) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[7] +func (x *DepartmentListResp) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -844,57 +955,51 @@ func (x *IDReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IDReq.ProtoReflect.Descriptor instead. -func (*IDReq) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{7} +// Deprecated: Use DepartmentListResp.ProtoReflect.Descriptor instead. +func (*DepartmentListResp) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{10} } -func (x *IDReq) GetID() int64 { +func (x *DepartmentListResp) GetPage() *Pagination { if x != nil { - return x.ID + return x.Page } - return 0 + return nil } -// DistrictInfo 地址单体结构 -type DistrictInfo struct { +func (x *DepartmentListResp) GetData() []*DepartmentInfo { + if x != nil { + return x.Data + } + return nil +} + +type DictionaryDetailListResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - CreatedAt string `protobuf:"bytes,2,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - UpdatedAt string `protobuf:"bytes,3,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` - ShortName string `protobuf:"bytes,5,opt,name=short_name,json=shortName,proto3" json:"short_name,omitempty"` - Code string `protobuf:"bytes,6,opt,name=code,proto3" json:"code,omitempty"` - Province string `protobuf:"bytes,7,opt,name=province,proto3" json:"province,omitempty"` - City string `protobuf:"bytes,8,opt,name=city,proto3" json:"city,omitempty"` - Area string `protobuf:"bytes,9,opt,name=area,proto3" json:"area,omitempty"` - Street string `protobuf:"bytes,10,opt,name=street,proto3" json:"street,omitempty"` - Level uint32 `protobuf:"varint,11,opt,name=level,proto3" json:"level,omitempty"` - Latitude float64 `protobuf:"fixed64,12,opt,name=latitude,proto3" json:"latitude,omitempty"` - Longitude float64 `protobuf:"fixed64,13,opt,name=longitude,proto3" json:"longitude,omitempty"` - Children []*DistrictInfo `protobuf:"bytes,20,rep,name=children,proto3" json:"children,omitempty"` + Page *Pagination `protobuf:"bytes,1,opt,name=page,proto3,oneof" json:"page,omitempty"` + Data []*DictionaryDetailInfo `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` } -func (x *DistrictInfo) Reset() { - *x = DistrictInfo{} +func (x *DictionaryDetailListResp) Reset() { + *x = DictionaryDetailListResp{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[8] + mi := &file_rpc_core_core_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DistrictInfo) String() string { +func (x *DictionaryDetailListResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DistrictInfo) ProtoMessage() {} +func (*DictionaryDetailListResp) ProtoMessage() {} -func (x *DistrictInfo) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[8] +func (x *DictionaryDetailListResp) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -905,134 +1010,110 @@ func (x *DistrictInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DistrictInfo.ProtoReflect.Descriptor instead. -func (*DistrictInfo) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{8} -} - -func (x *DistrictInfo) GetID() int64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *DistrictInfo) GetCreatedAt() string { - if x != nil { - return x.CreatedAt - } - return "" -} - -func (x *DistrictInfo) GetUpdatedAt() string { - if x != nil { - return x.UpdatedAt - } - return "" +// Deprecated: Use DictionaryDetailListResp.ProtoReflect.Descriptor instead. +func (*DictionaryDetailListResp) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{11} } -func (x *DistrictInfo) GetName() string { +func (x *DictionaryDetailListResp) GetPage() *Pagination { if x != nil { - return x.Name + return x.Page } - return "" + return nil } -func (x *DistrictInfo) GetShortName() string { +func (x *DictionaryDetailListResp) GetData() []*DictionaryDetailInfo { if x != nil { - return x.ShortName + return x.Data } - return "" + return nil } -func (x *DistrictInfo) GetCode() string { - if x != nil { - return x.Code - } - return "" -} +type DistrictListResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *DistrictInfo) GetProvince() string { - if x != nil { - return x.Province - } - return "" + Page *Pagination `protobuf:"bytes,1,opt,name=page,proto3,oneof" json:"page,omitempty"` + Data []*DistrictInfo `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` } -func (x *DistrictInfo) GetCity() string { - if x != nil { - return x.City +func (x *DistrictListResp) Reset() { + *x = DistrictListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_rpc_core_core_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *DistrictInfo) GetArea() string { - if x != nil { - return x.Area - } - return "" +func (x *DistrictListResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *DistrictInfo) GetStreet() string { - if x != nil { - return x.Street - } - return "" -} +func (*DistrictListResp) ProtoMessage() {} -func (x *DistrictInfo) GetLevel() uint32 { - if x != nil { - return x.Level +func (x *DistrictListResp) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_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 0 + return mi.MessageOf(x) } -func (x *DistrictInfo) GetLatitude() float64 { - if x != nil { - return x.Latitude - } - return 0 +// Deprecated: Use DistrictListResp.ProtoReflect.Descriptor instead. +func (*DistrictListResp) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{12} } -func (x *DistrictInfo) GetLongitude() float64 { +func (x *DistrictListResp) GetPage() *Pagination { if x != nil { - return x.Longitude + return x.Page } - return 0 + return nil } -func (x *DistrictInfo) GetChildren() []*DistrictInfo { +func (x *DistrictListResp) GetData() []*DistrictInfo { if x != nil { - return x.Children + return x.Data } return nil } -type DistrictTree struct { +type OauthProviderReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Tree []*DistrictInfo `protobuf:"bytes,1,rep,name=tree,proto3" json:"tree,omitempty"` + ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + ClientId string `protobuf:"bytes,3,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + System *bool `protobuf:"varint,4,opt,name=system,proto3,oneof" json:"system,omitempty"` + Init *bool `protobuf:"varint,5,opt,name=init,proto3,oneof" json:"init,omitempty"` + Page *Pagination `protobuf:"bytes,10,opt,name=page,proto3,oneof" json:"page,omitempty"` } -func (x *DistrictTree) Reset() { - *x = DistrictTree{} +func (x *OauthProviderReq) Reset() { + *x = OauthProviderReq{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[9] + mi := &file_rpc_core_core_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DistrictTree) String() string { +func (x *OauthProviderReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DistrictTree) ProtoMessage() {} +func (*OauthProviderReq) ProtoMessage() {} -func (x *DistrictTree) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[9] +func (x *OauthProviderReq) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1043,43 +1124,79 @@ func (x *DistrictTree) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DistrictTree.ProtoReflect.Descriptor instead. -func (*DistrictTree) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{9} +// Deprecated: Use OauthProviderReq.ProtoReflect.Descriptor instead. +func (*OauthProviderReq) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{13} } -func (x *DistrictTree) GetTree() []*DistrictInfo { +func (x *OauthProviderReq) GetID() int64 { if x != nil { - return x.Tree + return x.ID + } + return 0 +} + +func (x *OauthProviderReq) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *OauthProviderReq) GetClientId() string { + if x != nil { + return x.ClientId + } + return "" +} + +func (x *OauthProviderReq) GetSystem() bool { + if x != nil && x.System != nil { + return *x.System + } + return false +} + +func (x *OauthProviderReq) GetInit() bool { + if x != nil && x.Init != nil { + return *x.Init + } + return false +} + +func (x *OauthProviderReq) GetPage() *Pagination { + if x != nil { + return x.Page } return nil } -type DistrictCodeReq struct { +type CallbackReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` + State string `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"` + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` } -func (x *DistrictCodeReq) Reset() { - *x = DistrictCodeReq{} +func (x *CallbackReq) Reset() { + *x = CallbackReq{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[10] + mi := &file_rpc_core_core_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DistrictCodeReq) String() string { +func (x *CallbackReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DistrictCodeReq) ProtoMessage() {} +func (*CallbackReq) ProtoMessage() {} -func (x *DistrictCodeReq) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[10] +func (x *CallbackReq) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1090,44 +1207,50 @@ func (x *DistrictCodeReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DistrictCodeReq.ProtoReflect.Descriptor instead. -func (*DistrictCodeReq) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{10} +// Deprecated: Use CallbackReq.ProtoReflect.Descriptor instead. +func (*CallbackReq) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{14} } -func (x *DistrictCodeReq) GetCode() string { +func (x *CallbackReq) GetState() string { + if x != nil { + return x.State + } + return "" +} + +func (x *CallbackReq) GetCode() string { if x != nil { return x.Code } return "" } -type GetDistrictNameReq struct { +type OauthRedirectResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` - Separator string `protobuf:"bytes,2,opt,name=separator,proto3" json:"separator,omitempty"` + Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` } -func (x *GetDistrictNameReq) Reset() { - *x = GetDistrictNameReq{} +func (x *OauthRedirectResp) Reset() { + *x = OauthRedirectResp{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[11] + mi := &file_rpc_core_core_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetDistrictNameReq) String() string { +func (x *OauthRedirectResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetDistrictNameReq) ProtoMessage() {} +func (*OauthRedirectResp) ProtoMessage() {} -func (x *GetDistrictNameReq) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[11] +func (x *OauthRedirectResp) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1138,58 +1261,57 @@ func (x *GetDistrictNameReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetDistrictNameReq.ProtoReflect.Descriptor instead. -func (*GetDistrictNameReq) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{11} -} - -func (x *GetDistrictNameReq) GetCode() string { - if x != nil { - return x.Code - } - return "" +// Deprecated: Use OauthRedirectResp.ProtoReflect.Descriptor instead. +func (*OauthRedirectResp) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{15} } -func (x *GetDistrictNameReq) GetSeparator() string { +func (x *OauthRedirectResp) GetUrl() string { if x != nil { - return x.Separator + return x.Url } return "" } -type LoginRecordInfo struct { +type UserInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - CreatedAt string `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - UpdatedAt string `protobuf:"bytes,4,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - UserId int64 `protobuf:"varint,5,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - LastLoginAt string `protobuf:"bytes,6,opt,name=last_login_at,json=lastLoginAt,proto3" json:"last_login_at,omitempty"` - LastLoginIpv4 string `protobuf:"bytes,7,opt,name=last_login_ipv4,json=lastLoginIpv4,proto3" json:"last_login_ipv4,omitempty"` - LastLoginDevice string `protobuf:"bytes,8,opt,name=last_login_device,json=lastLoginDevice,proto3" json:"last_login_device,omitempty"` - LastLoginUa string `protobuf:"bytes,9,opt,name=last_login_ua,json=lastLoginUa,proto3" json:"last_login_ua,omitempty"` - LoginCount uint64 `protobuf:"varint,10,opt,name=login_count,json=loginCount,proto3" json:"login_count,omitempty"` + ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` + CreatedAt string `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + UpdatedAt string `protobuf:"bytes,4,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + Username string `protobuf:"bytes,5,opt,name=username,proto3" json:"username,omitempty"` + PhoneNumber *string `protobuf:"bytes,6,opt,name=phone_number,json=phoneNumber,proto3,oneof" json:"phone_number,omitempty"` + Email *string `protobuf:"bytes,7,opt,name=email,proto3,oneof" json:"email,omitempty"` + Password string `protobuf:"bytes,8,opt,name=password,proto3" json:"password,omitempty"` + Nickname *string `protobuf:"bytes,9,opt,name=nickname,proto3,oneof" json:"nickname,omitempty"` + Metas map[string]string `protobuf:"bytes,10,rep,name=metas,proto3" json:"metas,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Roles []*RoleInfo `protobuf:"bytes,20,rep,name=roles,proto3" json:"roles,omitempty"` + Socials []*UserSocialInfo `protobuf:"bytes,21,rep,name=socials,proto3" json:"socials,omitempty"` + Departments []*DepartmentInfo `protobuf:"bytes,22,rep,name=departments,proto3" json:"departments,omitempty"` + Tokens []*TokenInfo `protobuf:"bytes,23,rep,name=tokens,proto3" json:"tokens,omitempty"` + LoginRecord *LoginRecordInfo `protobuf:"bytes,24,opt,name=login_record,json=loginRecord,proto3" json:"login_record,omitempty"` } -func (x *LoginRecordInfo) Reset() { - *x = LoginRecordInfo{} +func (x *UserInfo) Reset() { + *x = UserInfo{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[12] + mi := &file_rpc_core_core_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LoginRecordInfo) String() string { +func (x *UserInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LoginRecordInfo) ProtoMessage() {} +func (*UserInfo) ProtoMessage() {} -func (x *LoginRecordInfo) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[12] +func (x *UserInfo) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1200,72 +1322,114 @@ func (x *LoginRecordInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LoginRecordInfo.ProtoReflect.Descriptor instead. -func (*LoginRecordInfo) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{12} +// Deprecated: Use UserInfo.ProtoReflect.Descriptor instead. +func (*UserInfo) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{16} } -func (x *LoginRecordInfo) GetID() int64 { +func (x *UserInfo) GetID() int64 { if x != nil { return x.ID } return 0 } -func (x *LoginRecordInfo) GetCreatedAt() string { +func (x *UserInfo) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *UserInfo) GetCreatedAt() string { if x != nil { return x.CreatedAt } return "" } -func (x *LoginRecordInfo) GetUpdatedAt() string { +func (x *UserInfo) GetUpdatedAt() string { if x != nil { return x.UpdatedAt } return "" } -func (x *LoginRecordInfo) GetUserId() int64 { +func (x *UserInfo) GetUsername() string { if x != nil { - return x.UserId + return x.Username } - return 0 + return "" } -func (x *LoginRecordInfo) GetLastLoginAt() string { - if x != nil { - return x.LastLoginAt +func (x *UserInfo) GetPhoneNumber() string { + if x != nil && x.PhoneNumber != nil { + return *x.PhoneNumber } return "" } -func (x *LoginRecordInfo) GetLastLoginIpv4() string { - if x != nil { - return x.LastLoginIpv4 +func (x *UserInfo) GetEmail() string { + if x != nil && x.Email != nil { + return *x.Email } return "" } -func (x *LoginRecordInfo) GetLastLoginDevice() string { +func (x *UserInfo) GetPassword() string { if x != nil { - return x.LastLoginDevice + return x.Password } return "" } -func (x *LoginRecordInfo) GetLastLoginUa() string { - if x != nil { - return x.LastLoginUa +func (x *UserInfo) GetNickname() string { + if x != nil && x.Nickname != nil { + return *x.Nickname } return "" } -func (x *LoginRecordInfo) GetLoginCount() uint64 { +func (x *UserInfo) GetMetas() map[string]string { if x != nil { - return x.LoginCount + return x.Metas } - return 0 + return nil +} + +func (x *UserInfo) GetRoles() []*RoleInfo { + if x != nil { + return x.Roles + } + return nil +} + +func (x *UserInfo) GetSocials() []*UserSocialInfo { + if x != nil { + return x.Socials + } + return nil +} + +func (x *UserInfo) GetDepartments() []*DepartmentInfo { + if x != nil { + return x.Departments + } + return nil +} + +func (x *UserInfo) GetTokens() []*TokenInfo { + if x != nil { + return x.Tokens + } + return nil +} + +func (x *UserInfo) GetLoginRecord() *LoginRecordInfo { + if x != nil { + return x.LoginRecord + } + return nil } type UserRoleReq struct { @@ -1281,7 +1445,7 @@ type UserRoleReq struct { func (x *UserRoleReq) Reset() { *x = UserRoleReq{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[13] + mi := &file_rpc_core_core_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1294,7 +1458,7 @@ func (x *UserRoleReq) String() string { func (*UserRoleReq) ProtoMessage() {} func (x *UserRoleReq) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[13] + mi := &file_rpc_core_core_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1307,7 +1471,7 @@ func (x *UserRoleReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UserRoleReq.ProtoReflect.Descriptor instead. func (*UserRoleReq) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{13} + return file_rpc_core_core_proto_rawDescGZIP(), []int{17} } func (x *UserRoleReq) GetUserId() int64 { @@ -1331,30 +1495,38 @@ func (x *UserRoleReq) GetRoleCodes() []string { return nil } -// Base message -type Empty struct { +type DictionaryInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields -} -func (x *Empty) Reset() { - *x = Empty{} - if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` + CreatedAt string `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + UpdatedAt string `protobuf:"bytes,4,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + Title string `protobuf:"bytes,5,opt,name=title,proto3" json:"title,omitempty"` + Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,7,opt,name=description,proto3" json:"description,omitempty"` + Details []*DictionaryDetailInfo `protobuf:"bytes,10,rep,name=details,proto3" json:"details,omitempty"` +} + +func (x *DictionaryInfo) Reset() { + *x = DictionaryInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_rpc_core_core_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } } -func (x *Empty) String() string { +func (x *DictionaryInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Empty) ProtoMessage() {} +func (*DictionaryInfo) ProtoMessage() {} -func (x *Empty) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[14] +func (x *DictionaryInfo) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1365,37 +1537,101 @@ func (x *Empty) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Empty.ProtoReflect.Descriptor instead. -func (*Empty) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{14} +// Deprecated: Use DictionaryInfo.ProtoReflect.Descriptor instead. +func (*DictionaryInfo) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{18} } -type DictionaryDetailListResp struct { +func (x *DictionaryInfo) GetID() int64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *DictionaryInfo) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *DictionaryInfo) GetCreatedAt() string { + if x != nil { + return x.CreatedAt + } + return "" +} + +func (x *DictionaryInfo) GetUpdatedAt() string { + if x != nil { + return x.UpdatedAt + } + return "" +} + +func (x *DictionaryInfo) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *DictionaryInfo) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DictionaryInfo) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *DictionaryInfo) GetDetails() []*DictionaryDetailInfo { + if x != nil { + return x.Details + } + return nil +} + +type DictionaryDetailInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Page *Pagination `protobuf:"bytes,1,opt,name=page,proto3,oneof" json:"page,omitempty"` - Data []*DictionaryDetailInfo `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` + ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` + CreatedAt string `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + UpdatedAt string `protobuf:"bytes,4,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + Title string `protobuf:"bytes,5,opt,name=title,proto3" json:"title,omitempty"` + Key string `protobuf:"bytes,6,opt,name=key,proto3" json:"key,omitempty"` + Value string `protobuf:"bytes,7,opt,name=value,proto3" json:"value,omitempty"` + Sort uint32 `protobuf:"varint,8,opt,name=sort,proto3" json:"sort,omitempty"` + DictionaryId int64 `protobuf:"varint,9,opt,name=dictionary_id,json=dictionaryId,proto3" json:"dictionary_id,omitempty"` + Dictionary *DictionaryInfo `protobuf:"bytes,10,opt,name=dictionary,proto3" json:"dictionary,omitempty"` } -func (x *DictionaryDetailListResp) Reset() { - *x = DictionaryDetailListResp{} +func (x *DictionaryDetailInfo) Reset() { + *x = DictionaryDetailInfo{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[15] + mi := &file_rpc_core_core_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DictionaryDetailListResp) String() string { +func (x *DictionaryDetailInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DictionaryDetailListResp) ProtoMessage() {} +func (*DictionaryDetailInfo) ProtoMessage() {} -func (x *DictionaryDetailListResp) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[15] +func (x *DictionaryDetailInfo) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1406,21 +1642,77 @@ func (x *DictionaryDetailListResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DictionaryDetailListResp.ProtoReflect.Descriptor instead. -func (*DictionaryDetailListResp) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{15} +// Deprecated: Use DictionaryDetailInfo.ProtoReflect.Descriptor instead. +func (*DictionaryDetailInfo) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{19} } -func (x *DictionaryDetailListResp) GetPage() *Pagination { +func (x *DictionaryDetailInfo) GetID() int64 { if x != nil { - return x.Page + return x.ID } - return nil + return 0 } -func (x *DictionaryDetailListResp) GetData() []*DictionaryDetailInfo { +func (x *DictionaryDetailInfo) GetStatus() string { if x != nil { - return x.Data + return x.Status + } + return "" +} + +func (x *DictionaryDetailInfo) GetCreatedAt() string { + if x != nil { + return x.CreatedAt + } + return "" +} + +func (x *DictionaryDetailInfo) GetUpdatedAt() string { + if x != nil { + return x.UpdatedAt + } + return "" +} + +func (x *DictionaryDetailInfo) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *DictionaryDetailInfo) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *DictionaryDetailInfo) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +func (x *DictionaryDetailInfo) GetSort() uint32 { + if x != nil { + return x.Sort + } + return 0 +} + +func (x *DictionaryDetailInfo) GetDictionaryId() int64 { + if x != nil { + return x.DictionaryId + } + return 0 +} + +func (x *DictionaryDetailInfo) GetDictionary() *DictionaryInfo { + if x != nil { + return x.Dictionary } return nil } @@ -1445,7 +1737,7 @@ type DistrictReq struct { func (x *DistrictReq) Reset() { *x = DistrictReq{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[16] + mi := &file_rpc_core_core_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1458,7 +1750,7 @@ func (x *DistrictReq) String() string { func (*DistrictReq) ProtoMessage() {} func (x *DistrictReq) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[16] + mi := &file_rpc_core_core_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1471,7 +1763,7 @@ func (x *DistrictReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DistrictReq.ProtoReflect.Descriptor instead. func (*DistrictReq) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{16} + return file_rpc_core_core_proto_rawDescGZIP(), []int{20} } func (x *DistrictReq) GetCode() string { @@ -1544,32 +1836,31 @@ func (x *DistrictReq) GetQueryType() DistrictQueryType { return DistrictQueryType_Normal } -type OauthLoginReq struct { +type DistrictCodeReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - State string `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"` - Provider string `protobuf:"bytes,2,opt,name=provider,proto3" json:"provider,omitempty"` + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` } -func (x *OauthLoginReq) Reset() { - *x = OauthLoginReq{} +func (x *DistrictCodeReq) Reset() { + *x = DistrictCodeReq{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[17] + mi := &file_rpc_core_core_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *OauthLoginReq) String() string { +func (x *DistrictCodeReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*OauthLoginReq) ProtoMessage() {} +func (*DistrictCodeReq) ProtoMessage() {} -func (x *OauthLoginReq) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[17] +func (x *DistrictCodeReq) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1580,51 +1871,46 @@ func (x *OauthLoginReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use OauthLoginReq.ProtoReflect.Descriptor instead. -func (*OauthLoginReq) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{17} -} - -func (x *OauthLoginReq) GetState() string { - if x != nil { - return x.State - } - return "" +// Deprecated: Use DistrictCodeReq.ProtoReflect.Descriptor instead. +func (*DistrictCodeReq) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{21} } -func (x *OauthLoginReq) GetProvider() string { +func (x *DistrictCodeReq) GetCode() string { if x != nil { - return x.Provider + return x.Code } return "" } -type GetUserRolesReq struct { +// 分页参数 +type Pagination struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Page *Pagination `protobuf:"bytes,1,opt,name=page,proto3,oneof" json:"page,omitempty"` - UserId int64 `protobuf:"varint,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Size uint64 `protobuf:"varint,1,opt,name=size,proto3" json:"size,omitempty"` + Total uint64 `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"` + Current uint64 `protobuf:"varint,3,opt,name=current,proto3" json:"current,omitempty"` } -func (x *GetUserRolesReq) Reset() { - *x = GetUserRolesReq{} +func (x *Pagination) Reset() { + *x = Pagination{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[18] + mi := &file_rpc_core_core_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetUserRolesReq) String() string { +func (x *Pagination) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetUserRolesReq) ProtoMessage() {} +func (*Pagination) ProtoMessage() {} -func (x *GetUserRolesReq) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[18] +func (x *Pagination) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1635,53 +1921,58 @@ func (x *GetUserRolesReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetUserRolesReq.ProtoReflect.Descriptor instead. -func (*GetUserRolesReq) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{18} +// Deprecated: Use Pagination.ProtoReflect.Descriptor instead. +func (*Pagination) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{22} } -func (x *GetUserRolesReq) GetPage() *Pagination { +func (x *Pagination) GetSize() uint64 { if x != nil { - return x.Page + return x.Size } - return nil + return 0 } -func (x *GetUserRolesReq) GetUserId() int64 { +func (x *Pagination) GetTotal() uint64 { if x != nil { - return x.UserId + return x.Total } return 0 } -// 分页参数 -type Pagination struct { +func (x *Pagination) GetCurrent() uint64 { + if x != nil { + return x.Current + } + return 0 +} + +type GetDistrictNameReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Size uint64 `protobuf:"varint,1,opt,name=size,proto3" json:"size,omitempty"` - Total uint64 `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"` - Current uint64 `protobuf:"varint,3,opt,name=current,proto3" json:"current,omitempty"` + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` + Separator string `protobuf:"bytes,2,opt,name=separator,proto3" json:"separator,omitempty"` } -func (x *Pagination) Reset() { - *x = Pagination{} +func (x *GetDistrictNameReq) Reset() { + *x = GetDistrictNameReq{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[19] + mi := &file_rpc_core_core_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Pagination) String() string { +func (x *GetDistrictNameReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Pagination) ProtoMessage() {} +func (*GetDistrictNameReq) ProtoMessage() {} -func (x *Pagination) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[19] +func (x *GetDistrictNameReq) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1692,64 +1983,58 @@ func (x *Pagination) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Pagination.ProtoReflect.Descriptor instead. -func (*Pagination) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{19} -} - -func (x *Pagination) GetSize() uint64 { - if x != nil { - return x.Size - } - return 0 +// Deprecated: Use GetDistrictNameReq.ProtoReflect.Descriptor instead. +func (*GetDistrictNameReq) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{23} } -func (x *Pagination) GetTotal() uint64 { +func (x *GetDistrictNameReq) GetCode() string { if x != nil { - return x.Total + return x.Code } - return 0 + return "" } -func (x *Pagination) GetCurrent() uint64 { +func (x *GetDistrictNameReq) GetSeparator() string { if x != nil { - return x.Current + return x.Separator } - return 0 + return "" } -type DictionaryInfo struct { +type LoginRecordInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` - CreatedAt string `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - UpdatedAt string `protobuf:"bytes,4,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - Title string `protobuf:"bytes,5,opt,name=title,proto3" json:"title,omitempty"` - Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` - Description string `protobuf:"bytes,7,opt,name=description,proto3" json:"description,omitempty"` - Details []*DictionaryDetailInfo `protobuf:"bytes,10,rep,name=details,proto3" json:"details,omitempty"` + ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + CreatedAt string `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + UpdatedAt string `protobuf:"bytes,4,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + UserId int64 `protobuf:"varint,5,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + LastLoginAt string `protobuf:"bytes,6,opt,name=last_login_at,json=lastLoginAt,proto3" json:"last_login_at,omitempty"` + LastLoginIpv4 string `protobuf:"bytes,7,opt,name=last_login_ipv4,json=lastLoginIpv4,proto3" json:"last_login_ipv4,omitempty"` + LastLoginDevice string `protobuf:"bytes,8,opt,name=last_login_device,json=lastLoginDevice,proto3" json:"last_login_device,omitempty"` + LastLoginUa string `protobuf:"bytes,9,opt,name=last_login_ua,json=lastLoginUa,proto3" json:"last_login_ua,omitempty"` + LoginCount uint64 `protobuf:"varint,10,opt,name=login_count,json=loginCount,proto3" json:"login_count,omitempty"` } -func (x *DictionaryInfo) Reset() { - *x = DictionaryInfo{} +func (x *LoginRecordInfo) Reset() { + *x = LoginRecordInfo{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[20] + mi := &file_rpc_core_core_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DictionaryInfo) String() string { +func (x *LoginRecordInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DictionaryInfo) ProtoMessage() {} +func (*LoginRecordInfo) ProtoMessage() {} -func (x *DictionaryInfo) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[20] +func (x *LoginRecordInfo) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1760,93 +2045,112 @@ func (x *DictionaryInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DictionaryInfo.ProtoReflect.Descriptor instead. -func (*DictionaryInfo) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{20} +// Deprecated: Use LoginRecordInfo.ProtoReflect.Descriptor instead. +func (*LoginRecordInfo) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{24} } -func (x *DictionaryInfo) GetID() int64 { +func (x *LoginRecordInfo) GetID() int64 { if x != nil { return x.ID } return 0 } -func (x *DictionaryInfo) GetStatus() string { +func (x *LoginRecordInfo) GetCreatedAt() string { if x != nil { - return x.Status + return x.CreatedAt } return "" } -func (x *DictionaryInfo) GetCreatedAt() string { +func (x *LoginRecordInfo) GetUpdatedAt() string { if x != nil { - return x.CreatedAt + return x.UpdatedAt } return "" } -func (x *DictionaryInfo) GetUpdatedAt() string { +func (x *LoginRecordInfo) GetUserId() int64 { if x != nil { - return x.UpdatedAt + return x.UserId + } + return 0 +} + +func (x *LoginRecordInfo) GetLastLoginAt() string { + if x != nil { + return x.LastLoginAt } return "" } -func (x *DictionaryInfo) GetTitle() string { +func (x *LoginRecordInfo) GetLastLoginIpv4() string { if x != nil { - return x.Title + return x.LastLoginIpv4 } return "" } -func (x *DictionaryInfo) GetName() string { +func (x *LoginRecordInfo) GetLastLoginDevice() string { if x != nil { - return x.Name + return x.LastLoginDevice } return "" } -func (x *DictionaryInfo) GetDescription() string { +func (x *LoginRecordInfo) GetLastLoginUa() string { if x != nil { - return x.Description + return x.LastLoginUa } return "" } -func (x *DictionaryInfo) GetDetails() []*DictionaryDetailInfo { +func (x *LoginRecordInfo) GetLoginCount() uint64 { if x != nil { - return x.Details + return x.LoginCount } - return nil + return 0 } -type OauthProviderListResp struct { +type OauthProviderInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Page *Pagination `protobuf:"bytes,1,opt,name=page,proto3,oneof" json:"page,omitempty"` - Data []*OauthProviderInfo `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` + ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + CreatedAt string `protobuf:"bytes,2,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + UpdatedAt string `protobuf:"bytes,3,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + ClientId string `protobuf:"bytes,5,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + ClientSecret string `protobuf:"bytes,6,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret,omitempty"` + RedirectUrl string `protobuf:"bytes,7,opt,name=redirect_url,json=redirectUrl,proto3" json:"redirect_url,omitempty"` + Scopes string `protobuf:"bytes,8,opt,name=scopes,proto3" json:"scopes,omitempty"` + AuthUrl string `protobuf:"bytes,9,opt,name=auth_url,json=authUrl,proto3" json:"auth_url,omitempty"` + TokenUrl string `protobuf:"bytes,10,opt,name=token_url,json=tokenUrl,proto3" json:"token_url,omitempty"` + InfoUrl string `protobuf:"bytes,11,opt,name=info_url,json=infoUrl,proto3" json:"info_url,omitempty"` + Description string `protobuf:"bytes,12,opt,name=description,proto3" json:"description,omitempty"` + System bool `protobuf:"varint,13,opt,name=system,proto3" json:"system,omitempty"` + Init bool `protobuf:"varint,14,opt,name=init,proto3" json:"init,omitempty"` } -func (x *OauthProviderListResp) Reset() { - *x = OauthProviderListResp{} +func (x *OauthProviderInfo) Reset() { + *x = OauthProviderInfo{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[21] + mi := &file_rpc_core_core_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *OauthProviderListResp) String() string { +func (x *OauthProviderInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*OauthProviderListResp) ProtoMessage() {} +func (*OauthProviderInfo) ProtoMessage() {} -func (x *OauthProviderListResp) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[21] +func (x *OauthProviderInfo) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1857,98 +2161,135 @@ func (x *OauthProviderListResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use OauthProviderListResp.ProtoReflect.Descriptor instead. -func (*OauthProviderListResp) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{21} +// Deprecated: Use OauthProviderInfo.ProtoReflect.Descriptor instead. +func (*OauthProviderInfo) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{25} } -func (x *OauthProviderListResp) GetPage() *Pagination { +func (x *OauthProviderInfo) GetID() int64 { if x != nil { - return x.Page + return x.ID } - return nil + return 0 } -func (x *OauthProviderListResp) GetData() []*OauthProviderInfo { +func (x *OauthProviderInfo) GetCreatedAt() string { if x != nil { - return x.Data + return x.CreatedAt } - return nil + return "" } -type TokenUserReq 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"` +func (x *OauthProviderInfo) GetUpdatedAt() string { + if x != nil { + return x.UpdatedAt + } + return "" } -func (x *TokenUserReq) Reset() { - *x = TokenUserReq{} - if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *OauthProviderInfo) GetName() string { + if x != nil { + return x.Name } + return "" } -func (x *TokenUserReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *OauthProviderInfo) GetClientId() string { + if x != nil { + return x.ClientId + } + return "" } -func (*TokenUserReq) ProtoMessage() {} +func (x *OauthProviderInfo) GetClientSecret() string { + if x != nil { + return x.ClientSecret + } + return "" +} -func (x *TokenUserReq) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *OauthProviderInfo) GetRedirectUrl() string { + if x != nil { + return x.RedirectUrl } - return mi.MessageOf(x) + return "" } -// Deprecated: Use TokenUserReq.ProtoReflect.Descriptor instead. -func (*TokenUserReq) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{22} +func (x *OauthProviderInfo) GetScopes() string { + if x != nil { + return x.Scopes + } + return "" } -func (x *TokenUserReq) GetUserId() int64 { +func (x *OauthProviderInfo) GetAuthUrl() string { if x != nil { - return x.UserId + return x.AuthUrl } - return 0 + return "" } -type UserSocialListResp struct { - state protoimpl.MessageState +func (x *OauthProviderInfo) GetTokenUrl() string { + if x != nil { + return x.TokenUrl + } + return "" +} + +func (x *OauthProviderInfo) GetInfoUrl() string { + if x != nil { + return x.InfoUrl + } + return "" +} + +func (x *OauthProviderInfo) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *OauthProviderInfo) GetSystem() bool { + if x != nil { + return x.System + } + return false +} + +func (x *OauthProviderInfo) GetInit() bool { + if x != nil { + return x.Init + } + return false +} + +type OauthLoginReq struct { + state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Page *Pagination `protobuf:"bytes,1,opt,name=page,proto3,oneof" json:"page,omitempty"` - Data []*UserSocialInfo `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` + State string `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"` + Provider string `protobuf:"bytes,2,opt,name=provider,proto3" json:"provider,omitempty"` } -func (x *UserSocialListResp) Reset() { - *x = UserSocialListResp{} +func (x *OauthLoginReq) Reset() { + *x = OauthLoginReq{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[23] + mi := &file_rpc_core_core_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UserSocialListResp) String() string { +func (x *OauthLoginReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UserSocialListResp) ProtoMessage() {} +func (*OauthLoginReq) ProtoMessage() {} -func (x *UserSocialListResp) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[23] +func (x *OauthLoginReq) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1959,52 +2300,50 @@ func (x *UserSocialListResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UserSocialListResp.ProtoReflect.Descriptor instead. -func (*UserSocialListResp) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{23} +// Deprecated: Use OauthLoginReq.ProtoReflect.Descriptor instead. +func (*OauthLoginReq) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{26} } -func (x *UserSocialListResp) GetPage() *Pagination { +func (x *OauthLoginReq) GetState() string { if x != nil { - return x.Page + return x.State } - return nil + return "" } -func (x *UserSocialListResp) GetData() []*UserSocialInfo { +func (x *OauthLoginReq) GetProvider() string { if x != nil { - return x.Data + return x.Provider } - return nil + return "" } -type GetDistrictNameResp struct { +type TokenUserReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - NameList []string `protobuf:"bytes,3,rep,name=name_list,json=nameList,proto3" json:"name_list,omitempty"` + UserId int64 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` } -func (x *GetDistrictNameResp) Reset() { - *x = GetDistrictNameResp{} +func (x *TokenUserReq) Reset() { + *x = TokenUserReq{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[24] + mi := &file_rpc_core_core_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetDistrictNameResp) String() string { +func (x *TokenUserReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetDistrictNameResp) ProtoMessage() {} +func (*TokenUserReq) ProtoMessage() {} -func (x *GetDistrictNameResp) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[24] +func (x *TokenUserReq) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2015,30 +2354,16 @@ func (x *GetDistrictNameResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetDistrictNameResp.ProtoReflect.Descriptor instead. -func (*GetDistrictNameResp) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{24} -} - -func (x *GetDistrictNameResp) GetCode() string { - if x != nil { - return x.Code - } - return "" -} - -func (x *GetDistrictNameResp) GetName() string { - if x != nil { - return x.Name - } - return "" +// Deprecated: Use TokenUserReq.ProtoReflect.Descriptor instead. +func (*TokenUserReq) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{27} } -func (x *GetDistrictNameResp) GetNameList() []string { +func (x *TokenUserReq) GetUserId() int64 { if x != nil { - return x.NameList + return x.UserId } - return nil + return 0 } type TokenReq struct { @@ -2058,7 +2383,7 @@ type TokenReq struct { func (x *TokenReq) Reset() { *x = TokenReq{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[25] + mi := &file_rpc_core_core_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2071,7 +2396,7 @@ func (x *TokenReq) String() string { func (*TokenReq) ProtoMessage() {} func (x *TokenReq) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[25] + mi := &file_rpc_core_core_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2084,7 +2409,7 @@ func (x *TokenReq) ProtoReflect() protoreflect.Message { // Deprecated: Use TokenReq.ProtoReflect.Descriptor instead. func (*TokenReq) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{25} + return file_rpc_core_core_proto_rawDescGZIP(), []int{28} } func (x *TokenReq) GetID() int64 { @@ -2136,41 +2461,32 @@ func (x *TokenReq) GetPage() *Pagination { return nil } -type UserReq struct { +type TokenListResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` - PhoneNumber string `protobuf:"bytes,3,opt,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"` - Email string `protobuf:"bytes,4,opt,name=email,proto3" json:"email,omitempty"` - Nickname string `protobuf:"bytes,5,opt,name=nickname,proto3" json:"nickname,omitempty"` - WithRole bool `protobuf:"varint,6,opt,name=with_role,json=withRole,proto3" json:"with_role,omitempty"` - WithSocial bool `protobuf:"varint,7,opt,name=with_social,json=withSocial,proto3" json:"with_social,omitempty"` - WithDepartment bool `protobuf:"varint,8,opt,name=with_department,json=withDepartment,proto3" json:"with_department,omitempty"` - WithToken bool `protobuf:"varint,9,opt,name=with_token,json=withToken,proto3" json:"with_token,omitempty"` - WithLoginRecord bool `protobuf:"varint,10,opt,name=with_login_record,json=withLoginRecord,proto3" json:"with_login_record,omitempty"` - Page *Pagination `protobuf:"bytes,20,opt,name=page,proto3,oneof" json:"page,omitempty"` + Page *Pagination `protobuf:"bytes,1,opt,name=page,proto3,oneof" json:"page,omitempty"` + Data []*TokenInfo `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` } -func (x *UserReq) Reset() { - *x = UserReq{} +func (x *TokenListResp) Reset() { + *x = TokenListResp{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[26] + mi := &file_rpc_core_core_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UserReq) String() string { +func (x *TokenListResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UserReq) ProtoMessage() {} +func (*TokenListResp) ProtoMessage() {} -func (x *UserReq) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[26] +func (x *TokenListResp) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2181,126 +2497,149 @@ func (x *UserReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UserReq.ProtoReflect.Descriptor instead. -func (*UserReq) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{26} +// Deprecated: Use TokenListResp.ProtoReflect.Descriptor instead. +func (*TokenListResp) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{29} } -func (x *UserReq) GetID() int64 { +func (x *TokenListResp) GetPage() *Pagination { if x != nil { - return x.ID + return x.Page } - return 0 + return nil } -func (x *UserReq) GetUsername() string { +func (x *TokenListResp) GetData() []*TokenInfo { if x != nil { - return x.Username + return x.Data } - return "" + return nil } -func (x *UserReq) GetPhoneNumber() string { - if x != nil { - return x.PhoneNumber - } - return "" +type DictionaryDetailReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Page *Pagination `protobuf:"bytes,1,opt,name=page,proto3,oneof" json:"page,omitempty"` + ID int64 `protobuf:"varint,2,opt,name=ID,proto3" json:"ID,omitempty"` + DictId int64 `protobuf:"varint,3,opt,name=dict_id,json=dictId,proto3" json:"dict_id,omitempty"` + Title string `protobuf:"bytes,4,opt,name=title,proto3" json:"title,omitempty"` + Key string `protobuf:"bytes,5,opt,name=key,proto3" json:"key,omitempty"` + Value string `protobuf:"bytes,6,opt,name=value,proto3" json:"value,omitempty"` + WithDictionary bool `protobuf:"varint,7,opt,name=with_dictionary,json=withDictionary,proto3" json:"with_dictionary,omitempty"` } -func (x *UserReq) GetEmail() string { - if x != nil { - return x.Email +func (x *DictionaryDetailReq) Reset() { + *x = DictionaryDetailReq{} + if protoimpl.UnsafeEnabled { + mi := &file_rpc_core_core_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *UserReq) GetNickname() string { - if x != nil { - return x.Nickname - } - return "" +func (x *DictionaryDetailReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *UserReq) GetWithRole() bool { - if x != nil { - return x.WithRole +func (*DictionaryDetailReq) ProtoMessage() {} + +func (x *DictionaryDetailReq) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return false + return mi.MessageOf(x) } -func (x *UserReq) GetWithSocial() bool { +// Deprecated: Use DictionaryDetailReq.ProtoReflect.Descriptor instead. +func (*DictionaryDetailReq) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{30} +} + +func (x *DictionaryDetailReq) GetPage() *Pagination { if x != nil { - return x.WithSocial + return x.Page } - return false + return nil } -func (x *UserReq) GetWithDepartment() bool { +func (x *DictionaryDetailReq) GetID() int64 { if x != nil { - return x.WithDepartment + return x.ID } - return false + return 0 } -func (x *UserReq) GetWithToken() bool { +func (x *DictionaryDetailReq) GetDictId() int64 { if x != nil { - return x.WithToken + return x.DictId } - return false + return 0 } -func (x *UserReq) GetWithLoginRecord() bool { +func (x *DictionaryDetailReq) GetTitle() string { if x != nil { - return x.WithLoginRecord + return x.Title } - return false + return "" } -func (x *UserReq) GetPage() *Pagination { +func (x *DictionaryDetailReq) GetKey() string { if x != nil { - return x.Page + return x.Key } - return nil + return "" } -type UserSocialInfo struct { +func (x *DictionaryDetailReq) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +func (x *DictionaryDetailReq) GetWithDictionary() bool { + if x != nil { + return x.WithDictionary + } + return false +} + +type DictionaryReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - CreatedAt string `protobuf:"bytes,2,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - UpdatedAt string `protobuf:"bytes,3,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - UserId int64 `protobuf:"varint,4,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - Provider string `protobuf:"bytes,5,opt,name=provider,proto3" json:"provider,omitempty"` - AccessToken string `protobuf:"bytes,6,opt,name=access_token,json=accessToken,proto3" json:"access_token,omitempty"` - RefreshToken string `protobuf:"bytes,7,opt,name=refresh_token,json=refreshToken,proto3" json:"refresh_token,omitempty"` - Uid string `protobuf:"bytes,8,opt,name=uid,proto3" json:"uid,omitempty"` - OpenId string `protobuf:"bytes,9,opt,name=open_id,json=openId,proto3" json:"open_id,omitempty"` - UnionId string `protobuf:"bytes,10,opt,name=union_id,json=unionId,proto3" json:"union_id,omitempty"` - Key string `protobuf:"bytes,11,opt,name=key,proto3" json:"key,omitempty"` - ExpiresIn uint64 `protobuf:"varint,12,opt,name=expires_in,json=expiresIn,proto3" json:"expires_in,omitempty"` - UserProfile string `protobuf:"bytes,13,opt,name=user_profile,json=userProfile,proto3" json:"user_profile,omitempty"` - User *UserInfo `protobuf:"bytes,14,opt,name=user,proto3" json:"user,omitempty"` + ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"` + WithDetails bool `protobuf:"varint,4,opt,name=with_details,json=withDetails,proto3" json:"with_details,omitempty"` + Page *Pagination `protobuf:"bytes,10,opt,name=page,proto3,oneof" json:"page,omitempty"` } -func (x *UserSocialInfo) Reset() { - *x = UserSocialInfo{} +func (x *DictionaryReq) Reset() { + *x = DictionaryReq{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[27] + mi := &file_rpc_core_core_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UserSocialInfo) String() string { +func (x *DictionaryReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UserSocialInfo) ProtoMessage() {} +func (*DictionaryReq) ProtoMessage() {} -func (x *UserSocialInfo) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[27] +func (x *DictionaryReq) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2311,190 +2650,72 @@ func (x *UserSocialInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UserSocialInfo.ProtoReflect.Descriptor instead. -func (*UserSocialInfo) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{27} +// Deprecated: Use DictionaryReq.ProtoReflect.Descriptor instead. +func (*DictionaryReq) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{31} } -func (x *UserSocialInfo) GetID() int64 { +func (x *DictionaryReq) GetID() int64 { if x != nil { return x.ID } return 0 } -func (x *UserSocialInfo) GetCreatedAt() string { - if x != nil { - return x.CreatedAt - } - return "" -} - -func (x *UserSocialInfo) GetUpdatedAt() string { - if x != nil { - return x.UpdatedAt - } - return "" -} - -func (x *UserSocialInfo) GetUserId() int64 { - if x != nil { - return x.UserId - } - return 0 -} - -func (x *UserSocialInfo) GetProvider() string { - if x != nil { - return x.Provider - } - return "" -} - -func (x *UserSocialInfo) GetAccessToken() string { - if x != nil { - return x.AccessToken - } - return "" -} - -func (x *UserSocialInfo) GetRefreshToken() string { - if x != nil { - return x.RefreshToken - } - return "" -} - -func (x *UserSocialInfo) GetUid() string { - if x != nil { - return x.Uid - } - return "" -} - -func (x *UserSocialInfo) GetOpenId() string { - if x != nil { - return x.OpenId - } - return "" -} - -func (x *UserSocialInfo) GetUnionId() string { - if x != nil { - return x.UnionId - } - return "" -} - -func (x *UserSocialInfo) GetKey() string { +func (x *DictionaryReq) GetName() string { if x != nil { - return x.Key + return x.Name } return "" } -func (x *UserSocialInfo) GetExpiresIn() uint64 { - if x != nil { - return x.ExpiresIn - } - return 0 -} - -func (x *UserSocialInfo) GetUserProfile() string { +func (x *DictionaryReq) GetTitle() string { if x != nil { - return x.UserProfile + return x.Title } return "" } -func (x *UserSocialInfo) GetUser() *UserInfo { +func (x *DictionaryReq) GetWithDetails() bool { if x != nil { - return x.User - } - return nil -} - -type TokenListResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Page *Pagination `protobuf:"bytes,1,opt,name=page,proto3,oneof" json:"page,omitempty"` - Data []*TokenInfo `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` -} - -func (x *TokenListResp) Reset() { - *x = TokenListResp{} - if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *TokenListResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TokenListResp) ProtoMessage() {} - -func (x *TokenListResp) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_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 x.WithDetails } - return mi.MessageOf(x) -} - -// Deprecated: Use TokenListResp.ProtoReflect.Descriptor instead. -func (*TokenListResp) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{28} + return false } -func (x *TokenListResp) GetPage() *Pagination { +func (x *DictionaryReq) GetPage() *Pagination { if x != nil { return x.Page } return nil } -func (x *TokenListResp) GetData() []*TokenInfo { - if x != nil { - return x.Data - } - return nil -} - -type UserListResp struct { +type RoleListResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Page *Pagination `protobuf:"bytes,1,opt,name=page,proto3,oneof" json:"page,omitempty"` - Data []*UserInfo `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` + Data []*RoleInfo `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` } -func (x *UserListResp) Reset() { - *x = UserListResp{} +func (x *RoleListResp) Reset() { + *x = RoleListResp{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[29] + mi := &file_rpc_core_core_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UserListResp) String() string { +func (x *RoleListResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UserListResp) ProtoMessage() {} +func (*RoleListResp) ProtoMessage() {} -func (x *UserListResp) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[29] +func (x *RoleListResp) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2505,193 +2726,48 @@ func (x *UserListResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UserListResp.ProtoReflect.Descriptor instead. -func (*UserListResp) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{29} +// Deprecated: Use RoleListResp.ProtoReflect.Descriptor instead. +func (*RoleListResp) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{32} } -func (x *UserListResp) GetPage() *Pagination { +func (x *RoleListResp) GetPage() *Pagination { if x != nil { return x.Page } return nil } -func (x *UserListResp) GetData() []*UserInfo { +func (x *RoleListResp) GetData() []*RoleInfo { if x != nil { return x.Data } return nil } -// 基础回执 -type BaseResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` -} - -func (x *BaseResp) Reset() { - *x = BaseResp{} - if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BaseResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BaseResp) ProtoMessage() {} - -func (x *BaseResp) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[30] - 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 BaseResp.ProtoReflect.Descriptor instead. -func (*BaseResp) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{30} -} - -func (x *BaseResp) GetCode() int32 { - if x != nil { - return x.Code - } - return 0 -} - -func (x *BaseResp) GetMsg() string { - if x != nil { - return x.Msg - } - return "" -} - -type DeleteDictionaryDetailReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Ids []int64 `protobuf:"varint,1,rep,packed,name=ids,proto3" json:"ids,omitempty"` - DictId int64 `protobuf:"varint,2,opt,name=dict_id,json=dictId,proto3" json:"dict_id,omitempty"` -} - -func (x *DeleteDictionaryDetailReq) Reset() { - *x = DeleteDictionaryDetailReq{} - if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DeleteDictionaryDetailReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteDictionaryDetailReq) ProtoMessage() {} - -func (x *DeleteDictionaryDetailReq) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[31] - 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 DeleteDictionaryDetailReq.ProtoReflect.Descriptor instead. -func (*DeleteDictionaryDetailReq) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{31} -} - -func (x *DeleteDictionaryDetailReq) GetIds() []int64 { - if x != nil { - return x.Ids - } - return nil -} - -func (x *DeleteDictionaryDetailReq) GetDictId() int64 { - if x != nil { - return x.DictId - } - return 0 -} - -type RecordReq 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"` -} - -func (x *RecordReq) Reset() { - *x = RecordReq{} - if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RecordReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RecordReq) ProtoMessage() {} - -func (x *RecordReq) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[32] - 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 RecordReq.ProtoReflect.Descriptor instead. -func (*RecordReq) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{32} -} - -func (x *RecordReq) GetUserId() int64 { - if x != nil { - return x.UserId - } - return 0 -} - -type OauthRedirectResp struct { +type UserSocialInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` + ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + CreatedAt string `protobuf:"bytes,2,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + UpdatedAt string `protobuf:"bytes,3,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + UserId int64 `protobuf:"varint,4,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Provider string `protobuf:"bytes,5,opt,name=provider,proto3" json:"provider,omitempty"` + AccessToken string `protobuf:"bytes,6,opt,name=access_token,json=accessToken,proto3" json:"access_token,omitempty"` + RefreshToken string `protobuf:"bytes,7,opt,name=refresh_token,json=refreshToken,proto3" json:"refresh_token,omitempty"` + Uid string `protobuf:"bytes,8,opt,name=uid,proto3" json:"uid,omitempty"` + OpenId string `protobuf:"bytes,9,opt,name=open_id,json=openId,proto3" json:"open_id,omitempty"` + UnionId string `protobuf:"bytes,10,opt,name=union_id,json=unionId,proto3" json:"union_id,omitempty"` + Key string `protobuf:"bytes,11,opt,name=key,proto3" json:"key,omitempty"` + ExpiresIn uint64 `protobuf:"varint,12,opt,name=expires_in,json=expiresIn,proto3" json:"expires_in,omitempty"` + UserProfile string `protobuf:"bytes,13,opt,name=user_profile,json=userProfile,proto3" json:"user_profile,omitempty"` + User *UserInfo `protobuf:"bytes,14,opt,name=user,proto3" json:"user,omitempty"` } -func (x *OauthRedirectResp) Reset() { - *x = OauthRedirectResp{} +func (x *UserSocialInfo) Reset() { + *x = UserSocialInfo{} if protoimpl.UnsafeEnabled { mi := &file_rpc_core_core_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2699,13 +2775,13 @@ func (x *OauthRedirectResp) Reset() { } } -func (x *OauthRedirectResp) String() string { +func (x *UserSocialInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*OauthRedirectResp) ProtoMessage() {} +func (*UserSocialInfo) ProtoMessage() {} -func (x *OauthRedirectResp) ProtoReflect() protoreflect.Message { +func (x *UserSocialInfo) ProtoReflect() protoreflect.Message { mi := &file_rpc_core_core_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2717,234 +2793,141 @@ func (x *OauthRedirectResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use OauthRedirectResp.ProtoReflect.Descriptor instead. -func (*OauthRedirectResp) Descriptor() ([]byte, []int) { +// Deprecated: Use UserSocialInfo.ProtoReflect.Descriptor instead. +func (*UserSocialInfo) Descriptor() ([]byte, []int) { return file_rpc_core_core_proto_rawDescGZIP(), []int{33} } -func (x *OauthRedirectResp) GetUrl() string { - if x != nil { - return x.Url - } - return "" -} - -type RoleInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` - CreatedAt string `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - UpdatedAt string `protobuf:"bytes,4,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - Code string `protobuf:"bytes,5,opt,name=code,proto3" json:"code,omitempty"` - Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` - Description string `protobuf:"bytes,7,opt,name=description,proto3" json:"description,omitempty"` - Users []*UserInfo `protobuf:"bytes,10,rep,name=users,proto3" json:"users,omitempty"` -} - -func (x *RoleInfo) Reset() { - *x = RoleInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RoleInfo) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RoleInfo) ProtoMessage() {} - -func (x *RoleInfo) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[34] - 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 RoleInfo.ProtoReflect.Descriptor instead. -func (*RoleInfo) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{34} -} - -func (x *RoleInfo) GetID() int64 { +func (x *UserSocialInfo) GetID() int64 { if x != nil { return x.ID } return 0 } -func (x *RoleInfo) GetStatus() string { - if x != nil { - return x.Status - } - return "" -} - -func (x *RoleInfo) GetCreatedAt() string { +func (x *UserSocialInfo) GetCreatedAt() string { if x != nil { return x.CreatedAt } return "" } -func (x *RoleInfo) GetUpdatedAt() string { - if x != nil { - return x.UpdatedAt - } - return "" -} - -func (x *RoleInfo) GetCode() string { - if x != nil { - return x.Code - } - return "" -} - -func (x *RoleInfo) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *RoleInfo) GetDescription() string { +func (x *UserSocialInfo) GetUpdatedAt() string { if x != nil { - return x.Description + return x.UpdatedAt } return "" } -func (x *RoleInfo) GetUsers() []*UserInfo { +func (x *UserSocialInfo) GetUserId() int64 { if x != nil { - return x.Users + return x.UserId } - return nil + return 0 } -type RoleReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Code string `protobuf:"bytes,3,opt,name=code,proto3" json:"code,omitempty"` - WithUser bool `protobuf:"varint,4,opt,name=with_user,json=withUser,proto3" json:"with_user,omitempty"` - Page *Pagination `protobuf:"bytes,10,opt,name=page,proto3,oneof" json:"page,omitempty"` +func (x *UserSocialInfo) GetProvider() string { + if x != nil { + return x.Provider + } + return "" } -func (x *RoleReq) Reset() { - *x = RoleReq{} - if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *UserSocialInfo) GetAccessToken() string { + if x != nil { + return x.AccessToken } + return "" } -func (x *RoleReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *UserSocialInfo) GetRefreshToken() string { + if x != nil { + return x.RefreshToken + } + return "" } -func (*RoleReq) ProtoMessage() {} - -func (x *RoleReq) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[35] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *UserSocialInfo) GetUid() string { + if x != nil { + return x.Uid } - return mi.MessageOf(x) + return "" } -// Deprecated: Use RoleReq.ProtoReflect.Descriptor instead. -func (*RoleReq) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{35} +func (x *UserSocialInfo) GetOpenId() string { + if x != nil { + return x.OpenId + } + return "" } -func (x *RoleReq) GetID() int64 { +func (x *UserSocialInfo) GetUnionId() string { if x != nil { - return x.ID + return x.UnionId } - return 0 + return "" } -func (x *RoleReq) GetName() string { +func (x *UserSocialInfo) GetKey() string { if x != nil { - return x.Name + return x.Key } return "" } -func (x *RoleReq) GetCode() string { +func (x *UserSocialInfo) GetExpiresIn() uint64 { if x != nil { - return x.Code + return x.ExpiresIn } - return "" + return 0 } -func (x *RoleReq) GetWithUser() bool { +func (x *UserSocialInfo) GetUserProfile() string { if x != nil { - return x.WithUser + return x.UserProfile } - return false + return "" } -func (x *RoleReq) GetPage() *Pagination { +func (x *UserSocialInfo) GetUser() *UserInfo { if x != nil { - return x.Page + return x.User } return nil } -type DictionaryDetailInfo struct { +type DepartmentReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` - CreatedAt string `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - UpdatedAt string `protobuf:"bytes,4,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - Title string `protobuf:"bytes,5,opt,name=title,proto3" json:"title,omitempty"` - Key string `protobuf:"bytes,6,opt,name=key,proto3" json:"key,omitempty"` - Value string `protobuf:"bytes,7,opt,name=value,proto3" json:"value,omitempty"` - Sort uint32 `protobuf:"varint,8,opt,name=sort,proto3" json:"sort,omitempty"` - DictionaryId int64 `protobuf:"varint,9,opt,name=dictionary_id,json=dictionaryId,proto3" json:"dictionary_id,omitempty"` - Dictionary *DictionaryInfo `protobuf:"bytes,10,opt,name=dictionary,proto3" json:"dictionary,omitempty"` + ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + LeaderId int64 `protobuf:"varint,3,opt,name=leader_id,json=leaderId,proto3" json:"leader_id,omitempty"` + ParentId int64 `protobuf:"varint,4,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"` + WithLeader bool `protobuf:"varint,5,opt,name=with_leader,json=withLeader,proto3" json:"with_leader,omitempty"` + WithUser bool `protobuf:"varint,6,opt,name=with_user,json=withUser,proto3" json:"with_user,omitempty"` + WithChildren bool `protobuf:"varint,7,opt,name=with_children,json=withChildren,proto3" json:"with_children,omitempty"` + Page *Pagination `protobuf:"bytes,10,opt,name=page,proto3,oneof" json:"page,omitempty"` } -func (x *DictionaryDetailInfo) Reset() { - *x = DictionaryDetailInfo{} +func (x *DepartmentReq) Reset() { + *x = DepartmentReq{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[36] + mi := &file_rpc_core_core_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DictionaryDetailInfo) String() string { +func (x *DepartmentReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DictionaryDetailInfo) ProtoMessage() {} +func (*DepartmentReq) ProtoMessage() {} -func (x *DictionaryDetailInfo) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[36] +func (x *DepartmentReq) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2955,107 +2938,95 @@ func (x *DictionaryDetailInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DictionaryDetailInfo.ProtoReflect.Descriptor instead. -func (*DictionaryDetailInfo) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{36} +// Deprecated: Use DepartmentReq.ProtoReflect.Descriptor instead. +func (*DepartmentReq) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{34} } -func (x *DictionaryDetailInfo) GetID() int64 { +func (x *DepartmentReq) GetID() int64 { if x != nil { return x.ID } return 0 } -func (x *DictionaryDetailInfo) GetStatus() string { - if x != nil { - return x.Status - } - return "" -} - -func (x *DictionaryDetailInfo) GetCreatedAt() string { - if x != nil { - return x.CreatedAt - } - return "" -} - -func (x *DictionaryDetailInfo) GetUpdatedAt() string { +func (x *DepartmentReq) GetName() string { if x != nil { - return x.UpdatedAt + return x.Name } return "" } -func (x *DictionaryDetailInfo) GetTitle() string { +func (x *DepartmentReq) GetLeaderId() int64 { if x != nil { - return x.Title + return x.LeaderId } - return "" + return 0 } -func (x *DictionaryDetailInfo) GetKey() string { +func (x *DepartmentReq) GetParentId() int64 { if x != nil { - return x.Key + return x.ParentId } - return "" + return 0 } -func (x *DictionaryDetailInfo) GetValue() string { +func (x *DepartmentReq) GetWithLeader() bool { if x != nil { - return x.Value + return x.WithLeader } - return "" + return false } -func (x *DictionaryDetailInfo) GetSort() uint32 { +func (x *DepartmentReq) GetWithUser() bool { if x != nil { - return x.Sort + return x.WithUser } - return 0 + return false } -func (x *DictionaryDetailInfo) GetDictionaryId() int64 { +func (x *DepartmentReq) GetWithChildren() bool { if x != nil { - return x.DictionaryId + return x.WithChildren } - return 0 + return false } -func (x *DictionaryDetailInfo) GetDictionary() *DictionaryInfo { +func (x *DepartmentReq) GetPage() *Pagination { if x != nil { - return x.Dictionary + return x.Page } return nil } -type DistrictListResp struct { +// 基础回执带ID +type BaseIDResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Page *Pagination `protobuf:"bytes,1,opt,name=page,proto3,oneof" json:"page,omitempty"` - Data []*DistrictInfo `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` + ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` + Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"` } -func (x *DistrictListResp) Reset() { - *x = DistrictListResp{} +func (x *BaseIDResp) Reset() { + *x = BaseIDResp{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[37] + mi := &file_rpc_core_core_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DistrictListResp) String() string { +func (x *BaseIDResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DistrictListResp) ProtoMessage() {} +func (*BaseIDResp) ProtoMessage() {} -func (x *DistrictListResp) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[37] +func (x *BaseIDResp) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3066,55 +3037,58 @@ func (x *DistrictListResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DistrictListResp.ProtoReflect.Descriptor instead. -func (*DistrictListResp) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{37} +// Deprecated: Use BaseIDResp.ProtoReflect.Descriptor instead. +func (*BaseIDResp) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{35} } -func (x *DistrictListResp) GetPage() *Pagination { +func (x *BaseIDResp) GetID() int64 { if x != nil { - return x.Page + return x.ID } - return nil + return 0 } -func (x *DistrictListResp) GetData() []*DistrictInfo { +func (x *BaseIDResp) GetCode() int32 { if x != nil { - return x.Data + return x.Code } - return nil + return 0 } -type OauthProviderReq struct { +func (x *BaseIDResp) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +type DictionaryListResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - ClientId string `protobuf:"bytes,3,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - System *bool `protobuf:"varint,4,opt,name=system,proto3,oneof" json:"system,omitempty"` - Init *bool `protobuf:"varint,5,opt,name=init,proto3,oneof" json:"init,omitempty"` - Page *Pagination `protobuf:"bytes,10,opt,name=page,proto3,oneof" json:"page,omitempty"` + Page *Pagination `protobuf:"bytes,1,opt,name=page,proto3,oneof" json:"page,omitempty"` + Data []*DictionaryInfo `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` } -func (x *OauthProviderReq) Reset() { - *x = OauthProviderReq{} +func (x *DictionaryListResp) Reset() { + *x = DictionaryListResp{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[38] + mi := &file_rpc_core_core_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *OauthProviderReq) String() string { +func (x *DictionaryListResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*OauthProviderReq) ProtoMessage() {} +func (*DictionaryListResp) ProtoMessage() {} -func (x *OauthProviderReq) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[38] +func (x *DictionaryListResp) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3125,92 +3099,64 @@ func (x *OauthProviderReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use OauthProviderReq.ProtoReflect.Descriptor instead. -func (*OauthProviderReq) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{38} -} - -func (x *OauthProviderReq) GetID() int64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *OauthProviderReq) GetName() string { - if x != nil { - return x.Name - } - return "" +// Deprecated: Use DictionaryListResp.ProtoReflect.Descriptor instead. +func (*DictionaryListResp) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{36} } -func (x *OauthProviderReq) GetClientId() string { +func (x *DictionaryListResp) GetPage() *Pagination { if x != nil { - return x.ClientId - } - return "" -} - -func (x *OauthProviderReq) GetSystem() bool { - if x != nil && x.System != nil { - return *x.System - } - return false -} - -func (x *OauthProviderReq) GetInit() bool { - if x != nil && x.Init != nil { - return *x.Init + return x.Page } - return false + return nil } -func (x *OauthProviderReq) GetPage() *Pagination { +func (x *DictionaryListResp) GetData() []*DictionaryInfo { if x != nil { - return x.Page + return x.Data } return nil } -type UserInfo struct { +// DistrictInfo 地址单体结构 +type DistrictInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` - CreatedAt string `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - UpdatedAt string `protobuf:"bytes,4,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - Username string `protobuf:"bytes,5,opt,name=username,proto3" json:"username,omitempty"` - PhoneNumber *string `protobuf:"bytes,6,opt,name=phone_number,json=phoneNumber,proto3,oneof" json:"phone_number,omitempty"` - Email *string `protobuf:"bytes,7,opt,name=email,proto3,oneof" json:"email,omitempty"` - Password string `protobuf:"bytes,8,opt,name=password,proto3" json:"password,omitempty"` - Nickname *string `protobuf:"bytes,9,opt,name=nickname,proto3,oneof" json:"nickname,omitempty"` - Metas map[string]string `protobuf:"bytes,10,rep,name=metas,proto3" json:"metas,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Roles []*RoleInfo `protobuf:"bytes,20,rep,name=roles,proto3" json:"roles,omitempty"` - Socials []*UserSocialInfo `protobuf:"bytes,21,rep,name=socials,proto3" json:"socials,omitempty"` - Departments []*DepartmentInfo `protobuf:"bytes,22,rep,name=departments,proto3" json:"departments,omitempty"` - Tokens []*TokenInfo `protobuf:"bytes,23,rep,name=tokens,proto3" json:"tokens,omitempty"` - LoginRecord *LoginRecordInfo `protobuf:"bytes,24,opt,name=login_record,json=loginRecord,proto3" json:"login_record,omitempty"` + ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + CreatedAt string `protobuf:"bytes,2,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + UpdatedAt string `protobuf:"bytes,3,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + ShortName string `protobuf:"bytes,5,opt,name=short_name,json=shortName,proto3" json:"short_name,omitempty"` + Code string `protobuf:"bytes,6,opt,name=code,proto3" json:"code,omitempty"` + Province string `protobuf:"bytes,7,opt,name=province,proto3" json:"province,omitempty"` + City string `protobuf:"bytes,8,opt,name=city,proto3" json:"city,omitempty"` + Area string `protobuf:"bytes,9,opt,name=area,proto3" json:"area,omitempty"` + Street string `protobuf:"bytes,10,opt,name=street,proto3" json:"street,omitempty"` + Level uint32 `protobuf:"varint,11,opt,name=level,proto3" json:"level,omitempty"` + Latitude float64 `protobuf:"fixed64,12,opt,name=latitude,proto3" json:"latitude,omitempty"` + Longitude float64 `protobuf:"fixed64,13,opt,name=longitude,proto3" json:"longitude,omitempty"` + Children []*DistrictInfo `protobuf:"bytes,20,rep,name=children,proto3" json:"children,omitempty"` } -func (x *UserInfo) Reset() { - *x = UserInfo{} +func (x *DistrictInfo) Reset() { + *x = DistrictInfo{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[39] + mi := &file_rpc_core_core_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UserInfo) String() string { +func (x *DistrictInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UserInfo) ProtoMessage() {} +func (*DistrictInfo) ProtoMessage() {} -func (x *UserInfo) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[39] +func (x *DistrictInfo) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3221,149 +3167,185 @@ func (x *UserInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UserInfo.ProtoReflect.Descriptor instead. -func (*UserInfo) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{39} +// Deprecated: Use DistrictInfo.ProtoReflect.Descriptor instead. +func (*DistrictInfo) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{37} } -func (x *UserInfo) GetID() int64 { +func (x *DistrictInfo) GetID() int64 { if x != nil { return x.ID } return 0 } -func (x *UserInfo) GetStatus() string { +func (x *DistrictInfo) GetCreatedAt() string { if x != nil { - return x.Status + return x.CreatedAt } return "" } -func (x *UserInfo) GetCreatedAt() string { +func (x *DistrictInfo) GetUpdatedAt() string { if x != nil { - return x.CreatedAt + return x.UpdatedAt } return "" } -func (x *UserInfo) GetUpdatedAt() string { +func (x *DistrictInfo) GetName() string { if x != nil { - return x.UpdatedAt + return x.Name } return "" } -func (x *UserInfo) GetUsername() string { +func (x *DistrictInfo) GetShortName() string { if x != nil { - return x.Username + return x.ShortName } return "" } -func (x *UserInfo) GetPhoneNumber() string { - if x != nil && x.PhoneNumber != nil { - return *x.PhoneNumber +func (x *DistrictInfo) GetCode() string { + if x != nil { + return x.Code } return "" } -func (x *UserInfo) GetEmail() string { - if x != nil && x.Email != nil { - return *x.Email +func (x *DistrictInfo) GetProvince() string { + if x != nil { + return x.Province } return "" } -func (x *UserInfo) GetPassword() string { +func (x *DistrictInfo) GetCity() string { if x != nil { - return x.Password + return x.City } return "" } -func (x *UserInfo) GetNickname() string { - if x != nil && x.Nickname != nil { - return *x.Nickname +func (x *DistrictInfo) GetArea() string { + if x != nil { + return x.Area } return "" } -func (x *UserInfo) GetMetas() map[string]string { +func (x *DistrictInfo) GetStreet() string { if x != nil { - return x.Metas + return x.Street } - return nil + return "" } -func (x *UserInfo) GetRoles() []*RoleInfo { +func (x *DistrictInfo) GetLevel() uint32 { if x != nil { - return x.Roles + return x.Level } - return nil + return 0 } -func (x *UserInfo) GetSocials() []*UserSocialInfo { +func (x *DistrictInfo) GetLatitude() float64 { if x != nil { - return x.Socials + return x.Latitude } - return nil + return 0 } -func (x *UserInfo) GetDepartments() []*DepartmentInfo { +func (x *DistrictInfo) GetLongitude() float64 { if x != nil { - return x.Departments + return x.Longitude } - return nil + return 0 } -func (x *UserInfo) GetTokens() []*TokenInfo { +func (x *DistrictInfo) GetChildren() []*DistrictInfo { if x != nil { - return x.Tokens + return x.Children } return nil } -func (x *UserInfo) GetLoginRecord() *LoginRecordInfo { +type DistrictTree struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Tree []*DistrictInfo `protobuf:"bytes,1,rep,name=tree,proto3" json:"tree,omitempty"` +} + +func (x *DistrictTree) Reset() { + *x = DistrictTree{} + if protoimpl.UnsafeEnabled { + mi := &file_rpc_core_core_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DistrictTree) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DistrictTree) ProtoMessage() {} + +func (x *DistrictTree) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[38] + 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 DistrictTree.ProtoReflect.Descriptor instead. +func (*DistrictTree) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{38} +} + +func (x *DistrictTree) GetTree() []*DistrictInfo { if x != nil { - return x.LoginRecord + return x.Tree } return nil } -type UserSocialReq struct { +type RoleReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - UserId int64 `protobuf:"varint,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - Provider string `protobuf:"bytes,3,opt,name=provider,proto3" json:"provider,omitempty"` - AccessToken string `protobuf:"bytes,4,opt,name=access_token,json=accessToken,proto3" json:"access_token,omitempty"` - Uid string `protobuf:"bytes,5,opt,name=uid,proto3" json:"uid,omitempty"` - OpenId string `protobuf:"bytes,6,opt,name=open_id,json=openId,proto3" json:"open_id,omitempty"` - UnionId string `protobuf:"bytes,7,opt,name=union_id,json=unionId,proto3" json:"union_id,omitempty"` - WithUser bool `protobuf:"varint,8,opt,name=with_user,json=withUser,proto3" json:"with_user,omitempty"` - Page *Pagination `protobuf:"bytes,10,opt,name=page,proto3,oneof" json:"page,omitempty"` + ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Code string `protobuf:"bytes,3,opt,name=code,proto3" json:"code,omitempty"` + WithUser bool `protobuf:"varint,4,opt,name=with_user,json=withUser,proto3" json:"with_user,omitempty"` + Page *Pagination `protobuf:"bytes,10,opt,name=page,proto3,oneof" json:"page,omitempty"` } -func (x *UserSocialReq) Reset() { - *x = UserSocialReq{} +func (x *RoleReq) Reset() { + *x = RoleReq{} if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[40] + mi := &file_rpc_core_core_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UserSocialReq) String() string { +func (x *RoleReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UserSocialReq) ProtoMessage() {} +func (*RoleReq) ProtoMessage() {} -func (x *UserSocialReq) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[40] +func (x *RoleReq) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3374,70 +3356,97 @@ func (x *UserSocialReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UserSocialReq.ProtoReflect.Descriptor instead. -func (*UserSocialReq) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{40} +// Deprecated: Use RoleReq.ProtoReflect.Descriptor instead. +func (*RoleReq) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{39} } -func (x *UserSocialReq) GetID() int64 { +func (x *RoleReq) GetID() int64 { if x != nil { return x.ID } return 0 } -func (x *UserSocialReq) GetUserId() int64 { +func (x *RoleReq) GetName() string { if x != nil { - return x.UserId + return x.Name } - return 0 + return "" } -func (x *UserSocialReq) GetProvider() string { +func (x *RoleReq) GetCode() string { if x != nil { - return x.Provider + return x.Code } return "" } -func (x *UserSocialReq) GetAccessToken() string { +func (x *RoleReq) GetWithUser() bool { if x != nil { - return x.AccessToken + return x.WithUser } - return "" + return false } -func (x *UserSocialReq) GetUid() string { +func (x *RoleReq) GetPage() *Pagination { if x != nil { - return x.Uid + return x.Page } - return "" + return nil } -func (x *UserSocialReq) GetOpenId() string { - if x != nil { - return x.OpenId +type UserListResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Page *Pagination `protobuf:"bytes,1,opt,name=page,proto3,oneof" json:"page,omitempty"` + Data []*UserInfo `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` +} + +func (x *UserListResp) Reset() { + *x = UserListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_rpc_core_core_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *UserSocialReq) GetUnionId() string { - if x != nil { - return x.UnionId +func (x *UserListResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserListResp) ProtoMessage() {} + +func (x *UserListResp) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (x *UserSocialReq) GetWithUser() bool { +// Deprecated: Use UserListResp.ProtoReflect.Descriptor instead. +func (*UserListResp) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{40} +} + +func (x *UserListResp) GetPage() *Pagination { if x != nil { - return x.WithUser + return x.Page } - return false + return nil } -func (x *UserSocialReq) GetPage() *Pagination { +func (x *UserListResp) GetData() []*UserInfo { if x != nil { - return x.Page + return x.Data } return nil } @@ -3489,19 +3498,16 @@ func (x *IDsReq) GetIds() []int64 { return nil } -// 基础回执带ID -type BaseIDResp struct { +type IDReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` - Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"` + ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` } -func (x *BaseIDResp) Reset() { - *x = BaseIDResp{} +func (x *IDReq) Reset() { + *x = IDReq{} if protoimpl.UnsafeEnabled { mi := &file_rpc_core_core_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -3509,13 +3515,13 @@ func (x *BaseIDResp) Reset() { } } -func (x *BaseIDResp) String() string { +func (x *IDReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BaseIDResp) ProtoMessage() {} +func (*IDReq) ProtoMessage() {} -func (x *BaseIDResp) ProtoReflect() protoreflect.Message { +func (x *IDReq) ProtoReflect() protoreflect.Message { mi := &file_rpc_core_core_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -3527,53 +3533,35 @@ func (x *BaseIDResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BaseIDResp.ProtoReflect.Descriptor instead. -func (*BaseIDResp) Descriptor() ([]byte, []int) { +// Deprecated: Use IDReq.ProtoReflect.Descriptor instead. +func (*IDReq) Descriptor() ([]byte, []int) { return file_rpc_core_core_proto_rawDescGZIP(), []int{42} } -func (x *BaseIDResp) GetID() int64 { +func (x *IDReq) GetID() int64 { if x != nil { return x.ID } return 0 } -func (x *BaseIDResp) GetCode() int32 { - if x != nil { - return x.Code - } - return 0 -} - -func (x *BaseIDResp) GetMsg() string { - if x != nil { - return x.Msg - } - return "" -} - -type DepartmentInfo struct { +type RoleInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` - CreatedAt string `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - UpdatedAt string `protobuf:"bytes,4,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` - LeaderId int64 `protobuf:"varint,6,opt,name=leader_id,json=leaderId,proto3" json:"leader_id,omitempty"` - Remark string `protobuf:"bytes,7,opt,name=remark,proto3" json:"remark,omitempty"` - ParentId int64 `protobuf:"varint,8,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"` - Parent *DepartmentInfo `protobuf:"bytes,10,opt,name=parent,proto3" json:"parent,omitempty"` - Children []*DepartmentInfo `protobuf:"bytes,11,rep,name=children,proto3" json:"children,omitempty"` - Users []*UserInfo `protobuf:"bytes,12,rep,name=users,proto3" json:"users,omitempty"` - Leader *UserInfo `protobuf:"bytes,13,opt,name=leader,proto3" json:"leader,omitempty"` + ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` + CreatedAt string `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + UpdatedAt string `protobuf:"bytes,4,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + Code string `protobuf:"bytes,5,opt,name=code,proto3" json:"code,omitempty"` + Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,7,opt,name=description,proto3" json:"description,omitempty"` + Users []*UserInfo `protobuf:"bytes,10,rep,name=users,proto3" json:"users,omitempty"` } -func (x *DepartmentInfo) Reset() { - *x = DepartmentInfo{} +func (x *RoleInfo) Reset() { + *x = RoleInfo{} if protoimpl.UnsafeEnabled { mi := &file_rpc_core_core_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -3581,13 +3569,13 @@ func (x *DepartmentInfo) Reset() { } } -func (x *DepartmentInfo) String() string { +func (x *RoleInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DepartmentInfo) ProtoMessage() {} +func (*RoleInfo) ProtoMessage() {} -func (x *DepartmentInfo) ProtoReflect() protoreflect.Message { +func (x *RoleInfo) ProtoReflect() protoreflect.Message { mi := &file_rpc_core_core_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -3599,161 +3587,187 @@ func (x *DepartmentInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DepartmentInfo.ProtoReflect.Descriptor instead. -func (*DepartmentInfo) Descriptor() ([]byte, []int) { +// Deprecated: Use RoleInfo.ProtoReflect.Descriptor instead. +func (*RoleInfo) Descriptor() ([]byte, []int) { return file_rpc_core_core_proto_rawDescGZIP(), []int{43} } -func (x *DepartmentInfo) GetID() int64 { +func (x *RoleInfo) GetID() int64 { if x != nil { return x.ID } return 0 } -func (x *DepartmentInfo) GetStatus() string { +func (x *RoleInfo) GetStatus() string { if x != nil { return x.Status } return "" } -func (x *DepartmentInfo) GetCreatedAt() string { +func (x *RoleInfo) GetCreatedAt() string { if x != nil { return x.CreatedAt } return "" } -func (x *DepartmentInfo) GetUpdatedAt() string { +func (x *RoleInfo) GetUpdatedAt() string { if x != nil { return x.UpdatedAt } return "" } -func (x *DepartmentInfo) GetName() string { +func (x *RoleInfo) GetCode() string { if x != nil { - return x.Name + return x.Code } return "" } -func (x *DepartmentInfo) GetLeaderId() int64 { +func (x *RoleInfo) GetName() string { if x != nil { - return x.LeaderId + return x.Name } - return 0 + return "" } -func (x *DepartmentInfo) GetRemark() string { +func (x *RoleInfo) GetDescription() string { if x != nil { - return x.Remark + return x.Description } return "" } -func (x *DepartmentInfo) GetParentId() int64 { +func (x *RoleInfo) GetUsers() []*UserInfo { if x != nil { - return x.ParentId + return x.Users } - return 0 + return nil } -func (x *DepartmentInfo) GetParent() *DepartmentInfo { - if x != nil { - return x.Parent +type UserSocialReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID int64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + UserId int64 `protobuf:"varint,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Provider string `protobuf:"bytes,3,opt,name=provider,proto3" json:"provider,omitempty"` + AccessToken string `protobuf:"bytes,4,opt,name=access_token,json=accessToken,proto3" json:"access_token,omitempty"` + Uid string `protobuf:"bytes,5,opt,name=uid,proto3" json:"uid,omitempty"` + OpenId string `protobuf:"bytes,6,opt,name=open_id,json=openId,proto3" json:"open_id,omitempty"` + UnionId string `protobuf:"bytes,7,opt,name=union_id,json=unionId,proto3" json:"union_id,omitempty"` + WithUser bool `protobuf:"varint,8,opt,name=with_user,json=withUser,proto3" json:"with_user,omitempty"` + Page *Pagination `protobuf:"bytes,10,opt,name=page,proto3,oneof" json:"page,omitempty"` +} + +func (x *UserSocialReq) Reset() { + *x = UserSocialReq{} + if protoimpl.UnsafeEnabled { + mi := &file_rpc_core_core_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *DepartmentInfo) GetChildren() []*DepartmentInfo { - if x != nil { - return x.Children +func (x *UserSocialReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserSocialReq) ProtoMessage() {} + +func (x *UserSocialReq) ProtoReflect() protoreflect.Message { + mi := &file_rpc_core_core_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *DepartmentInfo) GetUsers() []*UserInfo { +// Deprecated: Use UserSocialReq.ProtoReflect.Descriptor instead. +func (*UserSocialReq) Descriptor() ([]byte, []int) { + return file_rpc_core_core_proto_rawDescGZIP(), []int{44} +} + +func (x *UserSocialReq) GetID() int64 { if x != nil { - return x.Users + return x.ID } - return nil + return 0 } -func (x *DepartmentInfo) GetLeader() *UserInfo { +func (x *UserSocialReq) GetUserId() int64 { if x != nil { - return x.Leader + return x.UserId } - return nil + return 0 } -type DictionaryListResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Page *Pagination `protobuf:"bytes,1,opt,name=page,proto3,oneof" json:"page,omitempty"` - Data []*DictionaryInfo `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` +func (x *UserSocialReq) GetProvider() string { + if x != nil { + return x.Provider + } + return "" } -func (x *DictionaryListResp) Reset() { - *x = DictionaryListResp{} - if protoimpl.UnsafeEnabled { - mi := &file_rpc_core_core_proto_msgTypes[44] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *UserSocialReq) GetAccessToken() string { + if x != nil { + return x.AccessToken } + return "" } -func (x *DictionaryListResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *UserSocialReq) GetUid() string { + if x != nil { + return x.Uid + } + return "" } -func (*DictionaryListResp) ProtoMessage() {} - -func (x *DictionaryListResp) ProtoReflect() protoreflect.Message { - mi := &file_rpc_core_core_proto_msgTypes[44] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *UserSocialReq) GetOpenId() string { + if x != nil { + return x.OpenId } - return mi.MessageOf(x) + return "" } -// Deprecated: Use DictionaryListResp.ProtoReflect.Descriptor instead. -func (*DictionaryListResp) Descriptor() ([]byte, []int) { - return file_rpc_core_core_proto_rawDescGZIP(), []int{44} +func (x *UserSocialReq) GetUnionId() string { + if x != nil { + return x.UnionId + } + return "" } -func (x *DictionaryListResp) GetPage() *Pagination { +func (x *UserSocialReq) GetWithUser() bool { if x != nil { - return x.Page + return x.WithUser } - return nil + return false } -func (x *DictionaryListResp) GetData() []*DictionaryInfo { +func (x *UserSocialReq) GetPage() *Pagination { if x != nil { - return x.Data + return x.Page } return nil } -type CallbackReq struct { +// Base message +type Empty struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - State string `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"` - Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` } -func (x *CallbackReq) Reset() { - *x = CallbackReq{} +func (x *Empty) Reset() { + *x = Empty{} if protoimpl.UnsafeEnabled { mi := &file_rpc_core_core_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -3761,13 +3775,13 @@ func (x *CallbackReq) Reset() { } } -func (x *CallbackReq) String() string { +func (x *Empty) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CallbackReq) ProtoMessage() {} +func (*Empty) ProtoMessage() {} -func (x *CallbackReq) ProtoReflect() protoreflect.Message { +func (x *Empty) ProtoReflect() protoreflect.Message { mi := &file_rpc_core_core_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -3779,523 +3793,509 @@ func (x *CallbackReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CallbackReq.ProtoReflect.Descriptor instead. -func (*CallbackReq) Descriptor() ([]byte, []int) { +// Deprecated: Use Empty.ProtoReflect.Descriptor instead. +func (*Empty) Descriptor() ([]byte, []int) { return file_rpc_core_core_proto_rawDescGZIP(), []int{45} } -func (x *CallbackReq) GetState() string { - if x != nil { - return x.State - } - return "" -} - -func (x *CallbackReq) GetCode() string { - if x != nil { - return x.Code - } - return "" -} - var File_rpc_core_core_proto protoreflect.FileDescriptor var file_rpc_core_core_proto_rawDesc = []byte{ 0x0a, 0x13, 0x72, 0x70, 0x63, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x84, 0x02, 0x0a, 0x0d, - 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, - 0x0a, 0x09, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x77, - 0x69, 0x74, 0x68, 0x5f, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0a, 0x77, 0x69, 0x74, 0x68, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, - 0x77, 0x69, 0x74, 0x68, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x08, 0x77, 0x69, 0x74, 0x68, 0x55, 0x73, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x77, 0x69, 0x74, - 0x68, 0x5f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x29, - 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, - 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, - 0x67, 0x65, 0x22, 0x72, 0x0a, 0x12, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x8a, 0x03, 0x0a, 0x0e, + 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6c, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1b, 0x0a, + 0x09, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, + 0x64, 0x72, 0x65, 0x6e, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x24, 0x0a, 0x05, 0x75, 0x73, + 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, + 0x12, 0x26, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x46, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x03, 0x52, 0x03, 0x69, 0x64, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x69, 0x63, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x64, 0x69, 0x63, 0x74, 0x49, 0x64, + 0x22, 0x72, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x69, 0x61, + 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x70, 0x61, 0x67, 0x65, 0x22, 0x30, 0x0a, 0x08, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x5a, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6c, 0x69, + 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0x24, 0x0a, 0x09, 0x52, 0x65, 0x63, 0x6f, 0x72, 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, 0x78, 0x0a, 0x15, 0x4f, 0x61, 0x75, 0x74, + 0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, + 0x67, 0x65, 0x22, 0xad, 0x02, 0x0a, 0x09, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x41, 0x74, 0x12, 0x22, + 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x75, 0x73, + 0x65, 0x72, 0x22, 0xf0, 0x02, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1a, + 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x68, + 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, + 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, + 0x61, 0x69, 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, + 0x1b, 0x0a, 0x09, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x08, 0x77, 0x69, 0x74, 0x68, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, + 0x77, 0x69, 0x74, 0x68, 0x5f, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0a, 0x77, 0x69, 0x74, 0x68, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x12, 0x27, 0x0a, + 0x0f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x77, 0x69, 0x74, 0x68, 0x44, 0x65, 0x70, 0x61, + 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x77, 0x69, 0x74, 0x68, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6c, 0x6f, + 0x67, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0f, 0x77, 0x69, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x70, 0x61, 0x67, 0x65, 0x22, 0x5e, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, - 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x22, 0xa0, 0x01, 0x0a, 0x0d, 0x44, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, - 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x22, 0xd9, 0x01, 0x0a, 0x13, 0x44, 0x69, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, - 0x71, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, 0x17, 0x0a, 0x07, - 0x64, 0x69, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x64, - 0x69, 0x63, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x64, 0x69, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x77, 0x69, - 0x74, 0x68, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x70, 0x61, 0x67, 0x65, 0x22, 0xad, 0x02, 0x0a, 0x09, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, - 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, - 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x74, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x22, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x93, 0x03, 0x0a, 0x11, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1d, 0x0a, 0x0a, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, - 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55, - 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x75, - 0x74, 0x68, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x75, - 0x74, 0x68, 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x75, - 0x72, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x55, - 0x72, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x6e, 0x66, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x06, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x22, 0x66, 0x0a, 0x0c, 0x52, - 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x29, 0x0a, 0x04, 0x70, + 0x88, 0x01, 0x01, 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, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x70, 0x61, 0x67, 0x65, 0x22, 0x72, 0x0a, 0x12, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, + 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x70, - 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x6f, 0x6c, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, - 0x61, 0x67, 0x65, 0x22, 0x17, 0x0a, 0x05, 0x49, 0x44, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 0x22, 0xff, 0x02, 0x0a, - 0x0c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1d, 0x0a, - 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x65, 0x70, 0x61, + 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x22, 0x7e, 0x0a, 0x18, 0x44, 0x69, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x22, 0x6e, 0x0a, 0x10, 0x44, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x29, 0x0a, + 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, + 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, + 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x22, 0xd1, 0x01, 0x0a, 0x10, 0x4f, 0x61, + 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x1b, 0x0a, 0x06, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x00, 0x52, 0x06, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x69, 0x6e, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x04, 0x69, 0x6e, + 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x02, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x69, 0x6e, 0x69, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x22, 0x37, 0x0a, + 0x0b, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x25, 0x0a, 0x11, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x52, + 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, + 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x90, 0x05, + 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, + 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1f, 0x0a, 0x08, 0x6e, + 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, + 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x05, + 0x6d, 0x65, 0x74, 0x61, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x61, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x6d, 0x65, 0x74, 0x61, 0x73, 0x12, 0x24, 0x0a, + 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x72, 0x6f, + 0x6c, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x07, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x15, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x73, 0x6f, 0x63, 0x69, + 0x61, 0x6c, 0x73, 0x12, 0x36, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, + 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x06, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x72, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x0b, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x38, + 0x0a, 0x0a, 0x4d, 0x65, 0x74, 0x61, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x68, 0x6f, + 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x6d, + 0x61, 0x69, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x60, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 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, 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x65, + 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x72, 0x6f, 0x6c, 0x65, + 0x49, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x43, 0x6f, 0x64, + 0x65, 0x73, 0x22, 0xf8, 0x01, 0x0a, 0x0e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, + 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, + 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1d, 0x0a, 0x0a, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, - 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, - 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x65, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x61, 0x72, 0x65, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, - 0x18, 0x0c, 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, 0x0d, 0x20, - 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x2e, - 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x22, 0x36, - 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x54, 0x72, 0x65, 0x65, 0x12, 0x26, - 0x0a, 0x04, 0x74, 0x72, 0x65, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x04, 0x74, 0x72, 0x65, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x46, 0x0a, - 0x12, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x70, 0x61, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x70, 0x61, - 0x72, 0x61, 0x74, 0x6f, 0x72, 0x22, 0xb5, 0x02, 0x0a, 0x0f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x22, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x61, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, - 0x69, 0x6e, 0x41, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x67, - 0x69, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, - 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x70, 0x76, 0x34, 0x12, 0x2a, 0x0a, 0x11, - 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, - 0x69, 0x6e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, - 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x75, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x55, 0x61, 0x12, 0x1f, 0x0a, 0x0b, - 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x60, 0x0a, - 0x0b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 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, 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x73, - 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x22, - 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x7e, 0x0a, 0x18, 0x44, 0x69, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0xa9, 0x02, + 0x0a, 0x14, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, + 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, + 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x23, + 0x0a, 0x0d, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, + 0x79, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x0a, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, + 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, + 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, + 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x22, 0xb4, 0x02, 0x0a, 0x0b, 0x44, 0x69, + 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, + 0x04, 0x61, 0x72, 0x65, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x65, + 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x22, 0xb4, 0x02, 0x0a, 0x0b, 0x44, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, - 0x61, 0x72, 0x65, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x65, 0x61, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, - 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x63, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x22, + 0x36, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x63, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x67, 0x65, + 0x22, 0x25, 0x0a, 0x0f, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x50, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, + 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x46, 0x0a, 0x12, 0x47, 0x65, 0x74, + 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, + 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x22, 0xb5, 0x02, 0x0a, 0x0f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, + 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x41, 0x74, + 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x69, + 0x70, 0x76, 0x34, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x4c, + 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x70, 0x76, 0x34, 0x12, 0x2a, 0x0a, 0x11, 0x6c, 0x61, 0x73, 0x74, + 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x67, + 0x69, 0x6e, 0x5f, 0x75, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, + 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x55, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x67, 0x69, + 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6c, + 0x6f, 0x67, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, 0x03, 0x0a, 0x11, 0x4f, 0x61, + 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, + 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, + 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x23, + 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, + 0x75, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x19, + 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x75, + 0x72, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x6e, 0x66, 0x6f, 0x55, 0x72, + 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x69, + 0x6e, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x22, 0x41, 0x0a, 0x0d, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x22, 0x5e, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, - 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, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, - 0x67, 0x65, 0x22, 0x50, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, - 0x73, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x22, 0xf8, 0x01, 0x0a, 0x0e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, - 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, - 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x07, 0x64, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, - 0x78, 0x0a, 0x15, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x22, 0x27, 0x0a, 0x0c, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 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, 0x22, 0x72, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, + 0x65, 0x72, 0x22, 0x27, 0x0a, 0x0c, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 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, 0x22, 0xd9, 0x01, 0x0a, 0x08, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 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, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x75, + 0x73, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x77, 0x69, 0x74, 0x68, 0x55, + 0x73, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x22, 0x68, 0x0a, 0x0d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x6f, 0x63, - 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x22, 0x5a, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, - 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x22, 0xd9, 0x01, 0x0a, 0x08, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x12, + 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x67, + 0x65, 0x22, 0xd9, 0x01, 0x0a, 0x13, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, 0x67, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x67, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x02, 0x49, 0x44, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x69, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x64, 0x69, 0x63, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, + 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x77, + 0x69, 0x74, 0x68, 0x5f, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x77, 0x69, 0x74, 0x68, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x72, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x22, 0xa0, 0x01, + 0x0a, 0x0d, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 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, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x68, 0x6f, 0x6e, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, - 0x09, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x08, 0x77, 0x69, 0x74, 0x68, 0x55, 0x73, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, - 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, - 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x22, 0xf0, - 0x02, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, - 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, - 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x68, - 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, - 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 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, 0x1b, 0x0a, 0x09, 0x77, - 0x69, 0x74, 0x68, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, - 0x77, 0x69, 0x74, 0x68, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x69, 0x74, 0x68, - 0x5f, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x77, - 0x69, 0x74, 0x68, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x77, 0x69, 0x74, - 0x68, 0x5f, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0e, 0x77, 0x69, 0x74, 0x68, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x77, 0x69, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, - 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x77, 0x69, - 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x29, 0x0a, - 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, - 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x67, - 0x65, 0x22, 0x99, 0x03, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x69, 0x74, + 0x68, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0b, 0x77, 0x69, 0x74, 0x68, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x29, 0x0a, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x67, 0x65, + 0x22, 0x66, 0x0a, 0x0c, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x22, 0x99, 0x03, 0x0a, 0x0e, 0x55, 0x73, 0x65, + 0x72, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1d, 0x0a, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x21, + 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, + 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x70, 0x65, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x49, + 0x64, 0x12, 0x19, 0x0a, 0x08, 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1d, + 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x12, 0x21, 0x0a, + 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x12, 0x22, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, + 0x75, 0x73, 0x65, 0x72, 0x22, 0x84, 0x02, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6c, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6c, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x77, 0x69, 0x74, 0x68, 0x4c, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x75, 0x73, + 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x77, 0x69, 0x74, 0x68, 0x55, 0x73, + 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x63, 0x68, 0x69, 0x6c, 0x64, + 0x72, 0x65, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x43, + 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x22, 0x42, 0x0a, 0x0a, 0x42, + 0x61, 0x73, 0x65, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, + 0x72, 0x0a, 0x12, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, + 0x61, 0x67, 0x65, 0x22, 0xff, 0x02, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, - 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, - 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, - 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x75, 0x6e, - 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x75, 0x6e, - 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, - 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x65, 0x78, 0x70, - 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x73, - 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x22, 0x0a, 0x04, 0x75, 0x73, 0x65, - 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x68, 0x0a, - 0x0d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x29, - 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, - 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x22, 0x66, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x22, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x22, - 0x30, 0x0a, 0x08, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, - 0x67, 0x22, 0x46, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x10, - 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x69, 0x64, 0x73, - 0x12, 0x17, 0x0a, 0x07, 0x64, 0x69, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x06, 0x64, 0x69, 0x63, 0x74, 0x49, 0x64, 0x22, 0x24, 0x0a, 0x09, 0x52, 0x65, 0x63, - 0x6f, 0x72, 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, - 0x25, 0x0a, 0x11, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0xe0, 0x01, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x22, 0x92, 0x01, 0x0a, 0x07, 0x52, 0x6f, - 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, - 0x09, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x08, 0x77, 0x69, 0x74, 0x68, 0x55, 0x73, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, - 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, - 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x22, 0xa9, - 0x02, 0x0a, 0x14, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, - 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, - 0x74, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, - 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, - 0x23, 0x0a, 0x0d, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x69, 0x64, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x72, 0x79, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x0a, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x72, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, - 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x22, 0x6e, 0x0a, 0x10, 0x44, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x29, - 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, - 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x22, 0xd1, 0x01, 0x0a, 0x10, 0x4f, - 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x06, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x04, 0x69, - 0x6e, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x02, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x22, 0x90, - 0x05, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, - 0x0c, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x88, 0x01, 0x01, - 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1f, 0x0a, 0x08, - 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, - 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, - 0x05, 0x6d, 0x65, 0x74, 0x61, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x65, 0x74, - 0x61, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x6d, 0x65, 0x74, 0x61, 0x73, 0x12, 0x24, - 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x72, - 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x07, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x73, 0x18, - 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x73, 0x6f, 0x63, - 0x69, 0x61, 0x6c, 0x73, 0x12, 0x36, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x0b, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x06, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x72, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x0b, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, - 0x38, 0x0a, 0x0a, 0x4d, 0x65, 0x74, 0x61, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x68, - 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, - 0x6d, 0x61, 0x69, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x8e, 0x02, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, - 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x02, 0x49, 0x44, 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, 0x1a, 0x0a, 0x08, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, - 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x17, 0x0a, - 0x07, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x6f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x08, + 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x68, 0x6f, 0x72, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x65, + 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x65, 0x61, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x74, 0x72, 0x65, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6c, + 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x0c, 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, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, + 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x2e, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, + 0x6e, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x68, 0x69, + 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x22, 0x36, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, + 0x74, 0x54, 0x72, 0x65, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x74, 0x72, 0x65, 0x65, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x74, 0x72, 0x65, 0x65, 0x22, 0x92, 0x01, + 0x0a, 0x07, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x77, 0x69, 0x74, 0x68, 0x55, 0x73, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, - 0x67, 0x65, 0x22, 0x1a, 0x0a, 0x06, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, - 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0x42, - 0x0a, 0x0a, 0x42, 0x61, 0x73, 0x65, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, - 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, - 0x73, 0x67, 0x22, 0x8a, 0x03, 0x0a, 0x0e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, - 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, - 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x08, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, - 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, - 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x2c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, - 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, - 0x30, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x0b, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, - 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, - 0x6e, 0x12, 0x24, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, - 0x72, 0x0a, 0x12, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, - 0x61, 0x67, 0x65, 0x22, 0x37, 0x0a, 0x0b, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, - 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x2a, 0x97, 0x01, 0x0a, + 0x67, 0x65, 0x22, 0x66, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x22, 0x1a, 0x0a, 0x06, 0x49, 0x44, + 0x73, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x03, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0x17, 0x0a, 0x05, 0x49, 0x44, 0x52, 0x65, 0x71, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 0x22, + 0xe0, 0x01, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x05, + 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x75, 0x73, 0x65, + 0x72, 0x73, 0x22, 0x8e, 0x02, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x69, 0x61, + 0x6c, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x02, 0x49, 0x44, 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, 0x1a, 0x0a, + 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x10, 0x0a, 0x03, + 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x17, + 0x0a, 0x07, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x75, 0x6e, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x75, 0x6e, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x77, 0x69, 0x74, 0x68, 0x55, 0x73, 0x65, 0x72, 0x12, + 0x29, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, + 0x00, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, + 0x61, 0x67, 0x65, 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x2a, 0x97, 0x01, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x06, 0x0a, 0x02, 0x45, 0x51, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x45, 0x51, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x49, 0x4e, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x10, 0x03, 0x12, 0x06, 0x0a, @@ -4310,7 +4310,7 @@ var file_rpc_core_core_proto_rawDesc = []byte{ 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x42, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x73, 0x10, 0x03, 0x32, 0xfa, 0x17, 0x0a, 0x04, 0x43, 0x6f, 0x72, 0x65, + 0x72, 0x65, 0x6e, 0x74, 0x73, 0x10, 0x03, 0x32, 0x8c, 0x18, 0x0a, 0x04, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x2b, 0x0a, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x0b, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, @@ -4339,171 +4339,172 @@ var file_rpc_core_core_proto_rawDesc = []byte{ 0x70, 0x12, 0x38, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x14, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x11, 0x67, + 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x11, 0x67, 0x65, 0x74, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x0d, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, - 0x12, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x0d, 0x67, 0x65, 0x74, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x72, 0x79, 0x12, 0x0d, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x30, 0x0a, 0x10, 0x64, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x0c, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x16, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, - 0x6f, 0x1a, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x44, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x44, 0x0a, 0x16, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x69, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x17, 0x67, 0x65, 0x74, - 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, - 0x1e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, - 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x4c, 0x0a, 0x13, 0x67, 0x65, 0x74, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x19, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, + 0x12, 0x13, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x3a, 0x0a, 0x0d, 0x67, 0x65, 0x74, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, + 0x12, 0x13, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x30, 0x0a, 0x10, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x12, + 0x0c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, + 0x16, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, + 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, + 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, + 0x6e, 0x66, 0x6f, 0x1a, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x49, + 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x44, 0x0a, 0x16, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, + 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, + 0x1a, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, + 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x17, 0x67, + 0x65, 0x74, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, - 0x71, 0x1a, 0x1a, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x49, 0x0a, - 0x16, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, - 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1f, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, 0x0b, 0x67, 0x65, 0x74, 0x44, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x12, 0x15, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x12, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x0f, 0x67, 0x65, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, - 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x11, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x3c, 0x0a, 0x0f, 0x67, 0x65, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x54, - 0x72, 0x65, 0x65, 0x12, 0x15, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x54, 0x72, 0x65, 0x65, 0x12, 0x46, - 0x0a, 0x0f, 0x67, 0x65, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x18, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x09, 0x67, 0x65, 0x74, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x12, 0x0f, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x6f, 0x67, 0x69, - 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2f, 0x0a, 0x06, 0x72, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x15, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x6f, 0x67, - 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0e, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x13, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x12, 0x17, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x10, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3e, - 0x0a, 0x13, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, + 0x71, 0x1a, 0x1e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x4c, 0x0a, 0x13, 0x67, 0x65, 0x74, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x19, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x49, 0x0a, 0x16, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1f, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, + 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, 0x0b, 0x67, 0x65, + 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x12, 0x15, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, + 0x1a, 0x12, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x0f, 0x67, 0x65, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x11, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0f, 0x67, 0x65, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, + 0x74, 0x54, 0x72, 0x65, 0x65, 0x12, 0x15, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x54, 0x72, 0x65, 0x65, + 0x12, 0x46, 0x0a, 0x0f, 0x67, 0x65, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x18, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x69, + 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x09, 0x67, 0x65, 0x74, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x0f, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x6f, + 0x67, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2f, 0x0a, + 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x15, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, + 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0e, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, + 0x0a, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x17, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4f, 0x61, 0x75, - 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0e, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4b, - 0x0a, 0x14, 0x67, 0x65, 0x74, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4f, 0x61, - 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1b, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x10, 0x67, - 0x65, 0x74, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, - 0x16, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4f, + 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x10, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x3e, 0x0a, 0x13, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x17, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x33, 0x0a, 0x13, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x0c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x49, - 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0a, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x4c, 0x6f, - 0x67, 0x69, 0x6e, 0x12, 0x13, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, - 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x4f, 0x61, 0x75, 0x74, 0x68, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x32, 0x0a, 0x0d, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, - 0x63, 0x6b, 0x12, 0x11, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, - 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x6f, 0x6c, 0x65, 0x12, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x1a, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x49, - 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2c, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, - 0x6f, 0x6c, 0x65, 0x12, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0b, 0x67, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x0d, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, - 0x71, 0x1a, 0x12, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x28, 0x0a, 0x07, 0x67, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, - 0x12, 0x0d, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, - 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x2a, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x0c, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0b, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x0f, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x10, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, - 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x0f, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0e, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, - 0x0c, 0x67, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0e, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x08, 0x67, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x0e, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x0f, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x2b, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x0c, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x37, 0x0a, 0x11, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x41, 0x6c, 0x6c, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x12, 0x12, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x1a, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x49, - 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2c, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0b, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x0d, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x1a, 0x12, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x28, 0x0a, 0x07, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x12, 0x0d, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, - 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x2a, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0c, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0c, 0x55, - 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x11, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0e, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, - 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x52, 0x6f, 0x6c, 0x65, - 0x12, 0x11, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, + 0x1a, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x4b, 0x0a, 0x14, 0x67, 0x65, 0x74, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x1a, 0x1b, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, + 0x10, 0x67, 0x65, 0x74, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x12, 0x16, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x33, 0x0a, 0x13, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x61, 0x75, 0x74, + 0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x0c, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, + 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0a, 0x6f, 0x61, 0x75, 0x74, 0x68, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x13, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4f, 0x61, 0x75, + 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x32, 0x0a, 0x0d, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x43, 0x61, 0x6c, 0x6c, + 0x62, 0x61, 0x63, 0x6b, 0x12, 0x11, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x6c, + 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x6f, 0x6c, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, + 0x65, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2c, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x6f, 0x6c, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0b, 0x67, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0d, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x6f, 0x6c, 0x65, + 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x28, 0x0a, 0x07, 0x67, 0x65, 0x74, 0x52, 0x6f, + 0x6c, 0x65, 0x12, 0x0d, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, + 0x71, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x2a, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, + 0x0c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, + 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x0f, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x10, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x2e, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x0f, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x1a, + 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x33, 0x0a, 0x0c, 0x67, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, + 0x13, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x08, 0x67, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x12, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, + 0x1a, 0x0f, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x2b, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x12, 0x0c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x0e, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x37, + 0x0a, 0x11, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x41, 0x6c, 0x6c, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x12, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, + 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, + 0x65, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2c, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0b, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0d, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x28, 0x0a, 0x07, 0x67, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x12, 0x0d, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x2a, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, + 0x0c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, + 0x0c, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x11, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, + 0x1a, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x33, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x52, 0x6f, + 0x6c, 0x65, 0x12, 0x11, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, + 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2c, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6c, 0x65, + 0x61, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x0b, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x2c, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6c, 0x65, 0x61, 0x72, - 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x0b, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x49, 0x44, 0x52, 0x65, - 0x71, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x39, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, - 0x73, 0x12, 0x15, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x10, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, - 0x12, 0x14, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x69, - 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, - 0x73, 0x65, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x12, 0x14, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x49, 0x6e, - 0x66, 0x6f, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x42, 0x0a, 0x11, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x53, 0x6f, 0x63, - 0x69, 0x61, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x13, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0d, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x12, 0x13, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x30, 0x0a, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x12, 0x0c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x49, 0x44, - 0x73, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x42, 0x08, 0x5a, 0x06, 0x2e, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, + 0x6c, 0x65, 0x73, 0x12, 0x15, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, + 0x0a, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x69, + 0x61, 0x6c, 0x12, 0x14, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x6f, + 0x63, 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x10, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x42, 0x61, 0x73, 0x65, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, 0x10, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x12, 0x14, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, + 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x11, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x53, + 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x13, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x18, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0d, 0x67, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x12, 0x13, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x14, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x30, 0x0a, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x12, 0x0c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x61, + 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x42, 0x08, 0x5a, 0x06, 0x2e, 0x2f, 0x63, 0x6f, 0x72, 0x65, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -4523,209 +4524,209 @@ var file_rpc_core_core_proto_msgTypes = make([]protoimpl.MessageInfo, 47) var file_rpc_core_core_proto_goTypes = []interface{}{ (Operator)(0), // 0: core.Operator (DistrictQueryType)(0), // 1: core.DistrictQueryType - (*DepartmentReq)(nil), // 2: core.DepartmentReq - (*DepartmentListResp)(nil), // 3: core.DepartmentListResp - (*DictionaryReq)(nil), // 4: core.DictionaryReq - (*DictionaryDetailReq)(nil), // 5: core.DictionaryDetailReq - (*TokenInfo)(nil), // 6: core.TokenInfo - (*OauthProviderInfo)(nil), // 7: core.OauthProviderInfo - (*RoleListResp)(nil), // 8: core.RoleListResp - (*IDReq)(nil), // 9: core.IDReq - (*DistrictInfo)(nil), // 10: core.DistrictInfo - (*DistrictTree)(nil), // 11: core.DistrictTree - (*DistrictCodeReq)(nil), // 12: core.DistrictCodeReq - (*GetDistrictNameReq)(nil), // 13: core.GetDistrictNameReq - (*LoginRecordInfo)(nil), // 14: core.LoginRecordInfo - (*UserRoleReq)(nil), // 15: core.UserRoleReq - (*Empty)(nil), // 16: core.Empty - (*DictionaryDetailListResp)(nil), // 17: core.DictionaryDetailListResp - (*DistrictReq)(nil), // 18: core.DistrictReq - (*OauthLoginReq)(nil), // 19: core.OauthLoginReq - (*GetUserRolesReq)(nil), // 20: core.GetUserRolesReq - (*Pagination)(nil), // 21: core.Pagination - (*DictionaryInfo)(nil), // 22: core.DictionaryInfo - (*OauthProviderListResp)(nil), // 23: core.OauthProviderListResp - (*TokenUserReq)(nil), // 24: core.TokenUserReq - (*UserSocialListResp)(nil), // 25: core.UserSocialListResp - (*GetDistrictNameResp)(nil), // 26: core.GetDistrictNameResp - (*TokenReq)(nil), // 27: core.TokenReq - (*UserReq)(nil), // 28: core.UserReq - (*UserSocialInfo)(nil), // 29: core.UserSocialInfo - (*TokenListResp)(nil), // 30: core.TokenListResp - (*UserListResp)(nil), // 31: core.UserListResp - (*BaseResp)(nil), // 32: core.BaseResp - (*DeleteDictionaryDetailReq)(nil), // 33: core.DeleteDictionaryDetailReq - (*RecordReq)(nil), // 34: core.RecordReq - (*OauthRedirectResp)(nil), // 35: core.OauthRedirectResp - (*RoleInfo)(nil), // 36: core.RoleInfo - (*RoleReq)(nil), // 37: core.RoleReq - (*DictionaryDetailInfo)(nil), // 38: core.DictionaryDetailInfo - (*DistrictListResp)(nil), // 39: core.DistrictListResp - (*OauthProviderReq)(nil), // 40: core.OauthProviderReq - (*UserInfo)(nil), // 41: core.UserInfo - (*UserSocialReq)(nil), // 42: core.UserSocialReq + (*DepartmentInfo)(nil), // 2: core.DepartmentInfo + (*DeleteDictionaryDetailReq)(nil), // 3: core.DeleteDictionaryDetailReq + (*UserSocialListResp)(nil), // 4: core.UserSocialListResp + (*BaseResp)(nil), // 5: core.BaseResp + (*GetDistrictNameResp)(nil), // 6: core.GetDistrictNameResp + (*RecordReq)(nil), // 7: core.RecordReq + (*OauthProviderListResp)(nil), // 8: core.OauthProviderListResp + (*TokenInfo)(nil), // 9: core.TokenInfo + (*UserReq)(nil), // 10: core.UserReq + (*GetUserRolesReq)(nil), // 11: core.GetUserRolesReq + (*DepartmentListResp)(nil), // 12: core.DepartmentListResp + (*DictionaryDetailListResp)(nil), // 13: core.DictionaryDetailListResp + (*DistrictListResp)(nil), // 14: core.DistrictListResp + (*OauthProviderReq)(nil), // 15: core.OauthProviderReq + (*CallbackReq)(nil), // 16: core.CallbackReq + (*OauthRedirectResp)(nil), // 17: core.OauthRedirectResp + (*UserInfo)(nil), // 18: core.UserInfo + (*UserRoleReq)(nil), // 19: core.UserRoleReq + (*DictionaryInfo)(nil), // 20: core.DictionaryInfo + (*DictionaryDetailInfo)(nil), // 21: core.DictionaryDetailInfo + (*DistrictReq)(nil), // 22: core.DistrictReq + (*DistrictCodeReq)(nil), // 23: core.DistrictCodeReq + (*Pagination)(nil), // 24: core.Pagination + (*GetDistrictNameReq)(nil), // 25: core.GetDistrictNameReq + (*LoginRecordInfo)(nil), // 26: core.LoginRecordInfo + (*OauthProviderInfo)(nil), // 27: core.OauthProviderInfo + (*OauthLoginReq)(nil), // 28: core.OauthLoginReq + (*TokenUserReq)(nil), // 29: core.TokenUserReq + (*TokenReq)(nil), // 30: core.TokenReq + (*TokenListResp)(nil), // 31: core.TokenListResp + (*DictionaryDetailReq)(nil), // 32: core.DictionaryDetailReq + (*DictionaryReq)(nil), // 33: core.DictionaryReq + (*RoleListResp)(nil), // 34: core.RoleListResp + (*UserSocialInfo)(nil), // 35: core.UserSocialInfo + (*DepartmentReq)(nil), // 36: core.DepartmentReq + (*BaseIDResp)(nil), // 37: core.BaseIDResp + (*DictionaryListResp)(nil), // 38: core.DictionaryListResp + (*DistrictInfo)(nil), // 39: core.DistrictInfo + (*DistrictTree)(nil), // 40: core.DistrictTree + (*RoleReq)(nil), // 41: core.RoleReq + (*UserListResp)(nil), // 42: core.UserListResp (*IDsReq)(nil), // 43: core.IDsReq - (*BaseIDResp)(nil), // 44: core.BaseIDResp - (*DepartmentInfo)(nil), // 45: core.DepartmentInfo - (*DictionaryListResp)(nil), // 46: core.DictionaryListResp - (*CallbackReq)(nil), // 47: core.CallbackReq + (*IDReq)(nil), // 44: core.IDReq + (*RoleInfo)(nil), // 45: core.RoleInfo + (*UserSocialReq)(nil), // 46: core.UserSocialReq + (*Empty)(nil), // 47: core.Empty nil, // 48: core.UserInfo.MetasEntry } var file_rpc_core_core_proto_depIdxs = []int32{ - 21, // 0: core.DepartmentReq.page:type_name -> core.Pagination - 21, // 1: core.DepartmentListResp.page:type_name -> core.Pagination - 45, // 2: core.DepartmentListResp.data:type_name -> core.DepartmentInfo - 21, // 3: core.DictionaryReq.page:type_name -> core.Pagination - 21, // 4: core.DictionaryDetailReq.page:type_name -> core.Pagination - 41, // 5: core.TokenInfo.user:type_name -> core.UserInfo - 21, // 6: core.RoleListResp.page:type_name -> core.Pagination - 36, // 7: core.RoleListResp.data:type_name -> core.RoleInfo - 10, // 8: core.DistrictInfo.children:type_name -> core.DistrictInfo - 10, // 9: core.DistrictTree.tree:type_name -> core.DistrictInfo - 21, // 10: core.DictionaryDetailListResp.page:type_name -> core.Pagination - 38, // 11: core.DictionaryDetailListResp.data:type_name -> core.DictionaryDetailInfo - 21, // 12: core.DistrictReq.page:type_name -> core.Pagination - 1, // 13: core.DistrictReq.query_type:type_name -> core.DistrictQueryType - 21, // 14: core.GetUserRolesReq.page:type_name -> core.Pagination - 38, // 15: core.DictionaryInfo.details:type_name -> core.DictionaryDetailInfo - 21, // 16: core.OauthProviderListResp.page:type_name -> core.Pagination - 7, // 17: core.OauthProviderListResp.data:type_name -> core.OauthProviderInfo - 21, // 18: core.UserSocialListResp.page:type_name -> core.Pagination - 29, // 19: core.UserSocialListResp.data:type_name -> core.UserSocialInfo - 21, // 20: core.TokenReq.page:type_name -> core.Pagination - 21, // 21: core.UserReq.page:type_name -> core.Pagination - 41, // 22: core.UserSocialInfo.user:type_name -> core.UserInfo - 21, // 23: core.TokenListResp.page:type_name -> core.Pagination - 6, // 24: core.TokenListResp.data:type_name -> core.TokenInfo - 21, // 25: core.UserListResp.page:type_name -> core.Pagination - 41, // 26: core.UserListResp.data:type_name -> core.UserInfo - 41, // 27: core.RoleInfo.users:type_name -> core.UserInfo - 21, // 28: core.RoleReq.page:type_name -> core.Pagination - 22, // 29: core.DictionaryDetailInfo.dictionary:type_name -> core.DictionaryInfo - 21, // 30: core.DistrictListResp.page:type_name -> core.Pagination - 10, // 31: core.DistrictListResp.data:type_name -> core.DistrictInfo - 21, // 32: core.OauthProviderReq.page:type_name -> core.Pagination - 48, // 33: core.UserInfo.metas:type_name -> core.UserInfo.MetasEntry - 36, // 34: core.UserInfo.roles:type_name -> core.RoleInfo - 29, // 35: core.UserInfo.socials:type_name -> core.UserSocialInfo - 45, // 36: core.UserInfo.departments:type_name -> core.DepartmentInfo - 6, // 37: core.UserInfo.tokens:type_name -> core.TokenInfo - 14, // 38: core.UserInfo.login_record:type_name -> core.LoginRecordInfo - 21, // 39: core.UserSocialReq.page:type_name -> core.Pagination - 45, // 40: core.DepartmentInfo.parent:type_name -> core.DepartmentInfo - 45, // 41: core.DepartmentInfo.children:type_name -> core.DepartmentInfo - 41, // 42: core.DepartmentInfo.users:type_name -> core.UserInfo - 41, // 43: core.DepartmentInfo.leader:type_name -> core.UserInfo - 21, // 44: core.DictionaryListResp.page:type_name -> core.Pagination - 22, // 45: core.DictionaryListResp.data:type_name -> core.DictionaryInfo - 16, // 46: core.Core.initDatabase:input_type -> core.Empty - 45, // 47: core.Core.createDepartment:input_type -> core.DepartmentInfo - 45, // 48: core.Core.updateDepartment:input_type -> core.DepartmentInfo - 2, // 49: core.Core.getDepartmentList:input_type -> core.DepartmentReq - 2, // 50: core.Core.getDepartment:input_type -> core.DepartmentReq + 2, // 0: core.DepartmentInfo.parent:type_name -> core.DepartmentInfo + 2, // 1: core.DepartmentInfo.children:type_name -> core.DepartmentInfo + 18, // 2: core.DepartmentInfo.users:type_name -> core.UserInfo + 18, // 3: core.DepartmentInfo.leader:type_name -> core.UserInfo + 24, // 4: core.UserSocialListResp.page:type_name -> core.Pagination + 35, // 5: core.UserSocialListResp.data:type_name -> core.UserSocialInfo + 24, // 6: core.OauthProviderListResp.page:type_name -> core.Pagination + 27, // 7: core.OauthProviderListResp.data:type_name -> core.OauthProviderInfo + 18, // 8: core.TokenInfo.user:type_name -> core.UserInfo + 24, // 9: core.UserReq.page:type_name -> core.Pagination + 24, // 10: core.GetUserRolesReq.page:type_name -> core.Pagination + 24, // 11: core.DepartmentListResp.page:type_name -> core.Pagination + 2, // 12: core.DepartmentListResp.data:type_name -> core.DepartmentInfo + 24, // 13: core.DictionaryDetailListResp.page:type_name -> core.Pagination + 21, // 14: core.DictionaryDetailListResp.data:type_name -> core.DictionaryDetailInfo + 24, // 15: core.DistrictListResp.page:type_name -> core.Pagination + 39, // 16: core.DistrictListResp.data:type_name -> core.DistrictInfo + 24, // 17: core.OauthProviderReq.page:type_name -> core.Pagination + 48, // 18: core.UserInfo.metas:type_name -> core.UserInfo.MetasEntry + 45, // 19: core.UserInfo.roles:type_name -> core.RoleInfo + 35, // 20: core.UserInfo.socials:type_name -> core.UserSocialInfo + 2, // 21: core.UserInfo.departments:type_name -> core.DepartmentInfo + 9, // 22: core.UserInfo.tokens:type_name -> core.TokenInfo + 26, // 23: core.UserInfo.login_record:type_name -> core.LoginRecordInfo + 21, // 24: core.DictionaryInfo.details:type_name -> core.DictionaryDetailInfo + 20, // 25: core.DictionaryDetailInfo.dictionary:type_name -> core.DictionaryInfo + 24, // 26: core.DistrictReq.page:type_name -> core.Pagination + 1, // 27: core.DistrictReq.query_type:type_name -> core.DistrictQueryType + 24, // 28: core.TokenReq.page:type_name -> core.Pagination + 24, // 29: core.TokenListResp.page:type_name -> core.Pagination + 9, // 30: core.TokenListResp.data:type_name -> core.TokenInfo + 24, // 31: core.DictionaryDetailReq.page:type_name -> core.Pagination + 24, // 32: core.DictionaryReq.page:type_name -> core.Pagination + 24, // 33: core.RoleListResp.page:type_name -> core.Pagination + 45, // 34: core.RoleListResp.data:type_name -> core.RoleInfo + 18, // 35: core.UserSocialInfo.user:type_name -> core.UserInfo + 24, // 36: core.DepartmentReq.page:type_name -> core.Pagination + 24, // 37: core.DictionaryListResp.page:type_name -> core.Pagination + 20, // 38: core.DictionaryListResp.data:type_name -> core.DictionaryInfo + 39, // 39: core.DistrictInfo.children:type_name -> core.DistrictInfo + 39, // 40: core.DistrictTree.tree:type_name -> core.DistrictInfo + 24, // 41: core.RoleReq.page:type_name -> core.Pagination + 24, // 42: core.UserListResp.page:type_name -> core.Pagination + 18, // 43: core.UserListResp.data:type_name -> core.UserInfo + 18, // 44: core.RoleInfo.users:type_name -> core.UserInfo + 24, // 45: core.UserSocialReq.page:type_name -> core.Pagination + 47, // 46: core.Core.initDatabase:input_type -> core.Empty + 2, // 47: core.Core.createDepartment:input_type -> core.DepartmentInfo + 2, // 48: core.Core.updateDepartment:input_type -> core.DepartmentInfo + 36, // 49: core.Core.getDepartmentList:input_type -> core.DepartmentReq + 36, // 50: core.Core.getDepartment:input_type -> core.DepartmentReq 43, // 51: core.Core.deleteDepartment:input_type -> core.IDsReq - 22, // 52: core.Core.createDictionary:input_type -> core.DictionaryInfo - 22, // 53: core.Core.updateDictionary:input_type -> core.DictionaryInfo - 28, // 54: core.Core.getDictionaryList:input_type -> core.UserReq - 28, // 55: core.Core.getDictionary:input_type -> core.UserReq + 20, // 52: core.Core.createDictionary:input_type -> core.DictionaryInfo + 20, // 53: core.Core.updateDictionary:input_type -> core.DictionaryInfo + 33, // 54: core.Core.getDictionaryList:input_type -> core.DictionaryReq + 33, // 55: core.Core.getDictionary:input_type -> core.DictionaryReq 43, // 56: core.Core.deleteDictionary:input_type -> core.IDsReq - 38, // 57: core.Core.createDictionaryDetail:input_type -> core.DictionaryDetailInfo - 38, // 58: core.Core.updateDictionaryDetail:input_type -> core.DictionaryDetailInfo - 5, // 59: core.Core.getDictionaryDetailList:input_type -> core.DictionaryDetailReq - 5, // 60: core.Core.getDictionaryDetail:input_type -> core.DictionaryDetailReq - 33, // 61: core.Core.deleteDictionaryDetail:input_type -> core.DeleteDictionaryDetailReq - 12, // 62: core.Core.getDistrict:input_type -> core.DistrictCodeReq - 18, // 63: core.Core.getDistrictList:input_type -> core.DistrictReq - 12, // 64: core.Core.getDistrictTree:input_type -> core.DistrictCodeReq - 13, // 65: core.Core.getDistrictName:input_type -> core.GetDistrictNameReq - 34, // 66: core.Core.getRecord:input_type -> core.RecordReq - 14, // 67: core.Core.record:input_type -> core.LoginRecordInfo - 7, // 68: core.Core.createOauthProvider:input_type -> core.OauthProviderInfo - 7, // 69: core.Core.updateOauthProvider:input_type -> core.OauthProviderInfo - 40, // 70: core.Core.getOauthProviderList:input_type -> core.OauthProviderReq - 40, // 71: core.Core.getOauthProvider:input_type -> core.OauthProviderReq + 21, // 57: core.Core.createDictionaryDetail:input_type -> core.DictionaryDetailInfo + 21, // 58: core.Core.updateDictionaryDetail:input_type -> core.DictionaryDetailInfo + 32, // 59: core.Core.getDictionaryDetailList:input_type -> core.DictionaryDetailReq + 32, // 60: core.Core.getDictionaryDetail:input_type -> core.DictionaryDetailReq + 3, // 61: core.Core.deleteDictionaryDetail:input_type -> core.DeleteDictionaryDetailReq + 23, // 62: core.Core.getDistrict:input_type -> core.DistrictCodeReq + 22, // 63: core.Core.getDistrictList:input_type -> core.DistrictReq + 23, // 64: core.Core.getDistrictTree:input_type -> core.DistrictCodeReq + 25, // 65: core.Core.getDistrictName:input_type -> core.GetDistrictNameReq + 7, // 66: core.Core.getRecord:input_type -> core.RecordReq + 26, // 67: core.Core.record:input_type -> core.LoginRecordInfo + 27, // 68: core.Core.createOauthProvider:input_type -> core.OauthProviderInfo + 27, // 69: core.Core.updateOauthProvider:input_type -> core.OauthProviderInfo + 15, // 70: core.Core.getOauthProviderList:input_type -> core.OauthProviderReq + 15, // 71: core.Core.getOauthProvider:input_type -> core.OauthProviderReq 43, // 72: core.Core.deleteOauthProvider:input_type -> core.IDsReq - 19, // 73: core.Core.oauthLogin:input_type -> core.OauthLoginReq - 47, // 74: core.Core.oauthCallback:input_type -> core.CallbackReq - 36, // 75: core.Core.createRole:input_type -> core.RoleInfo - 36, // 76: core.Core.updateRole:input_type -> core.RoleInfo - 37, // 77: core.Core.getRoleList:input_type -> core.RoleReq - 37, // 78: core.Core.getRole:input_type -> core.RoleReq + 28, // 73: core.Core.oauthLogin:input_type -> core.OauthLoginReq + 16, // 74: core.Core.oauthCallback:input_type -> core.CallbackReq + 45, // 75: core.Core.createRole:input_type -> core.RoleInfo + 45, // 76: core.Core.updateRole:input_type -> core.RoleInfo + 41, // 77: core.Core.getRoleList:input_type -> core.RoleReq + 41, // 78: core.Core.getRole:input_type -> core.RoleReq 43, // 79: core.Core.deleteRole:input_type -> core.IDsReq - 6, // 80: core.Core.createToken:input_type -> core.TokenInfo - 6, // 81: core.Core.updateToken:input_type -> core.TokenInfo - 27, // 82: core.Core.getTokenList:input_type -> core.TokenReq - 27, // 83: core.Core.getToken:input_type -> core.TokenReq + 9, // 80: core.Core.createToken:input_type -> core.TokenInfo + 9, // 81: core.Core.updateToken:input_type -> core.TokenInfo + 30, // 82: core.Core.getTokenList:input_type -> core.TokenReq + 30, // 83: core.Core.getToken:input_type -> core.TokenReq 43, // 84: core.Core.deleteToken:input_type -> core.IDsReq - 24, // 85: core.Core.blockUserAllToken:input_type -> core.TokenUserReq - 41, // 86: core.Core.createUser:input_type -> core.UserInfo - 41, // 87: core.Core.updateUser:input_type -> core.UserInfo - 28, // 88: core.Core.getUserList:input_type -> core.UserReq - 28, // 89: core.Core.getUser:input_type -> core.UserReq + 29, // 85: core.Core.blockUserAllToken:input_type -> core.TokenUserReq + 18, // 86: core.Core.createUser:input_type -> core.UserInfo + 18, // 87: core.Core.updateUser:input_type -> core.UserInfo + 10, // 88: core.Core.getUserList:input_type -> core.UserReq + 10, // 89: core.Core.getUser:input_type -> core.UserReq 43, // 90: core.Core.deleteUser:input_type -> core.IDsReq - 15, // 91: core.Core.UserBindRole:input_type -> core.UserRoleReq - 15, // 92: core.Core.UserUnbindRole:input_type -> core.UserRoleReq - 9, // 93: core.Core.UserClearRole:input_type -> core.IDReq - 20, // 94: core.Core.GetUserRoles:input_type -> core.GetUserRolesReq - 29, // 95: core.Core.createUserSocial:input_type -> core.UserSocialInfo - 29, // 96: core.Core.updateUserSocial:input_type -> core.UserSocialInfo - 42, // 97: core.Core.getUserSocialList:input_type -> core.UserSocialReq - 42, // 98: core.Core.getUserSocial:input_type -> core.UserSocialReq + 19, // 91: core.Core.UserBindRole:input_type -> core.UserRoleReq + 19, // 92: core.Core.UserUnbindRole:input_type -> core.UserRoleReq + 44, // 93: core.Core.UserClearRole:input_type -> core.IDReq + 11, // 94: core.Core.GetUserRoles:input_type -> core.GetUserRolesReq + 35, // 95: core.Core.createUserSocial:input_type -> core.UserSocialInfo + 35, // 96: core.Core.updateUserSocial:input_type -> core.UserSocialInfo + 46, // 97: core.Core.getUserSocialList:input_type -> core.UserSocialReq + 46, // 98: core.Core.getUserSocial:input_type -> core.UserSocialReq 43, // 99: core.Core.deleteUserSocial:input_type -> core.IDsReq - 32, // 100: core.Core.initDatabase:output_type -> core.BaseResp - 44, // 101: core.Core.createDepartment:output_type -> core.BaseIDResp - 32, // 102: core.Core.updateDepartment:output_type -> core.BaseResp - 3, // 103: core.Core.getDepartmentList:output_type -> core.DepartmentListResp - 45, // 104: core.Core.getDepartment:output_type -> core.DepartmentInfo - 32, // 105: core.Core.deleteDepartment:output_type -> core.BaseResp - 44, // 106: core.Core.createDictionary:output_type -> core.BaseIDResp - 32, // 107: core.Core.updateDictionary:output_type -> core.BaseResp - 31, // 108: core.Core.getDictionaryList:output_type -> core.UserListResp - 22, // 109: core.Core.getDictionary:output_type -> core.DictionaryInfo - 32, // 110: core.Core.deleteDictionary:output_type -> core.BaseResp - 44, // 111: core.Core.createDictionaryDetail:output_type -> core.BaseIDResp - 32, // 112: core.Core.updateDictionaryDetail:output_type -> core.BaseResp - 17, // 113: core.Core.getDictionaryDetailList:output_type -> core.DictionaryDetailListResp - 38, // 114: core.Core.getDictionaryDetail:output_type -> core.DictionaryDetailInfo - 32, // 115: core.Core.deleteDictionaryDetail:output_type -> core.BaseResp - 10, // 116: core.Core.getDistrict:output_type -> core.DistrictInfo - 39, // 117: core.Core.getDistrictList:output_type -> core.DistrictListResp - 11, // 118: core.Core.getDistrictTree:output_type -> core.DistrictTree - 26, // 119: core.Core.getDistrictName:output_type -> core.GetDistrictNameResp - 14, // 120: core.Core.getRecord:output_type -> core.LoginRecordInfo - 32, // 121: core.Core.record:output_type -> core.BaseResp - 44, // 122: core.Core.createOauthProvider:output_type -> core.BaseIDResp - 32, // 123: core.Core.updateOauthProvider:output_type -> core.BaseResp - 23, // 124: core.Core.getOauthProviderList:output_type -> core.OauthProviderListResp - 7, // 125: core.Core.getOauthProvider:output_type -> core.OauthProviderInfo - 32, // 126: core.Core.deleteOauthProvider:output_type -> core.BaseResp - 35, // 127: core.Core.oauthLogin:output_type -> core.OauthRedirectResp - 41, // 128: core.Core.oauthCallback:output_type -> core.UserInfo - 44, // 129: core.Core.createRole:output_type -> core.BaseIDResp - 32, // 130: core.Core.updateRole:output_type -> core.BaseResp - 8, // 131: core.Core.getRoleList:output_type -> core.RoleListResp - 36, // 132: core.Core.getRole:output_type -> core.RoleInfo - 32, // 133: core.Core.deleteRole:output_type -> core.BaseResp - 44, // 134: core.Core.createToken:output_type -> core.BaseIDResp - 32, // 135: core.Core.updateToken:output_type -> core.BaseResp - 30, // 136: core.Core.getTokenList:output_type -> core.TokenListResp - 6, // 137: core.Core.getToken:output_type -> core.TokenInfo - 32, // 138: core.Core.deleteToken:output_type -> core.BaseResp - 32, // 139: core.Core.blockUserAllToken:output_type -> core.BaseResp - 44, // 140: core.Core.createUser:output_type -> core.BaseIDResp - 32, // 141: core.Core.updateUser:output_type -> core.BaseResp - 31, // 142: core.Core.getUserList:output_type -> core.UserListResp - 41, // 143: core.Core.getUser:output_type -> core.UserInfo - 32, // 144: core.Core.deleteUser:output_type -> core.BaseResp - 32, // 145: core.Core.UserBindRole:output_type -> core.BaseResp - 32, // 146: core.Core.UserUnbindRole:output_type -> core.BaseResp - 32, // 147: core.Core.UserClearRole:output_type -> core.BaseResp - 8, // 148: core.Core.GetUserRoles:output_type -> core.RoleListResp - 44, // 149: core.Core.createUserSocial:output_type -> core.BaseIDResp - 32, // 150: core.Core.updateUserSocial:output_type -> core.BaseResp - 25, // 151: core.Core.getUserSocialList:output_type -> core.UserSocialListResp - 29, // 152: core.Core.getUserSocial:output_type -> core.UserSocialInfo - 32, // 153: core.Core.deleteUserSocial:output_type -> core.BaseResp + 5, // 100: core.Core.initDatabase:output_type -> core.BaseResp + 37, // 101: core.Core.createDepartment:output_type -> core.BaseIDResp + 5, // 102: core.Core.updateDepartment:output_type -> core.BaseResp + 12, // 103: core.Core.getDepartmentList:output_type -> core.DepartmentListResp + 2, // 104: core.Core.getDepartment:output_type -> core.DepartmentInfo + 5, // 105: core.Core.deleteDepartment:output_type -> core.BaseResp + 37, // 106: core.Core.createDictionary:output_type -> core.BaseIDResp + 5, // 107: core.Core.updateDictionary:output_type -> core.BaseResp + 38, // 108: core.Core.getDictionaryList:output_type -> core.DictionaryListResp + 20, // 109: core.Core.getDictionary:output_type -> core.DictionaryInfo + 5, // 110: core.Core.deleteDictionary:output_type -> core.BaseResp + 37, // 111: core.Core.createDictionaryDetail:output_type -> core.BaseIDResp + 5, // 112: core.Core.updateDictionaryDetail:output_type -> core.BaseResp + 13, // 113: core.Core.getDictionaryDetailList:output_type -> core.DictionaryDetailListResp + 21, // 114: core.Core.getDictionaryDetail:output_type -> core.DictionaryDetailInfo + 5, // 115: core.Core.deleteDictionaryDetail:output_type -> core.BaseResp + 39, // 116: core.Core.getDistrict:output_type -> core.DistrictInfo + 14, // 117: core.Core.getDistrictList:output_type -> core.DistrictListResp + 40, // 118: core.Core.getDistrictTree:output_type -> core.DistrictTree + 6, // 119: core.Core.getDistrictName:output_type -> core.GetDistrictNameResp + 26, // 120: core.Core.getRecord:output_type -> core.LoginRecordInfo + 5, // 121: core.Core.record:output_type -> core.BaseResp + 37, // 122: core.Core.createOauthProvider:output_type -> core.BaseIDResp + 5, // 123: core.Core.updateOauthProvider:output_type -> core.BaseResp + 8, // 124: core.Core.getOauthProviderList:output_type -> core.OauthProviderListResp + 27, // 125: core.Core.getOauthProvider:output_type -> core.OauthProviderInfo + 5, // 126: core.Core.deleteOauthProvider:output_type -> core.BaseResp + 17, // 127: core.Core.oauthLogin:output_type -> core.OauthRedirectResp + 18, // 128: core.Core.oauthCallback:output_type -> core.UserInfo + 37, // 129: core.Core.createRole:output_type -> core.BaseIDResp + 5, // 130: core.Core.updateRole:output_type -> core.BaseResp + 34, // 131: core.Core.getRoleList:output_type -> core.RoleListResp + 45, // 132: core.Core.getRole:output_type -> core.RoleInfo + 5, // 133: core.Core.deleteRole:output_type -> core.BaseResp + 37, // 134: core.Core.createToken:output_type -> core.BaseIDResp + 5, // 135: core.Core.updateToken:output_type -> core.BaseResp + 31, // 136: core.Core.getTokenList:output_type -> core.TokenListResp + 9, // 137: core.Core.getToken:output_type -> core.TokenInfo + 5, // 138: core.Core.deleteToken:output_type -> core.BaseResp + 5, // 139: core.Core.blockUserAllToken:output_type -> core.BaseResp + 37, // 140: core.Core.createUser:output_type -> core.BaseIDResp + 5, // 141: core.Core.updateUser:output_type -> core.BaseResp + 42, // 142: core.Core.getUserList:output_type -> core.UserListResp + 18, // 143: core.Core.getUser:output_type -> core.UserInfo + 5, // 144: core.Core.deleteUser:output_type -> core.BaseResp + 5, // 145: core.Core.UserBindRole:output_type -> core.BaseResp + 5, // 146: core.Core.UserUnbindRole:output_type -> core.BaseResp + 5, // 147: core.Core.UserClearRole:output_type -> core.BaseResp + 34, // 148: core.Core.GetUserRoles:output_type -> core.RoleListResp + 37, // 149: core.Core.createUserSocial:output_type -> core.BaseIDResp + 5, // 150: core.Core.updateUserSocial:output_type -> core.BaseResp + 4, // 151: core.Core.getUserSocialList:output_type -> core.UserSocialListResp + 35, // 152: core.Core.getUserSocial:output_type -> core.UserSocialInfo + 5, // 153: core.Core.deleteUserSocial:output_type -> core.BaseResp 100, // [100:154] is the sub-list for method output_type 46, // [46:100] is the sub-list for method input_type 46, // [46:46] is the sub-list for extension type_name @@ -4740,7 +4741,7 @@ func file_rpc_core_core_proto_init() { } if !protoimpl.UnsafeEnabled { file_rpc_core_core_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DepartmentReq); i { + switch v := v.(*DepartmentInfo); i { case 0: return &v.state case 1: @@ -4752,7 +4753,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DepartmentListResp); i { + switch v := v.(*DeleteDictionaryDetailReq); i { case 0: return &v.state case 1: @@ -4764,7 +4765,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DictionaryReq); i { + switch v := v.(*UserSocialListResp); i { case 0: return &v.state case 1: @@ -4776,7 +4777,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DictionaryDetailReq); i { + switch v := v.(*BaseResp); i { case 0: return &v.state case 1: @@ -4788,7 +4789,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TokenInfo); i { + switch v := v.(*GetDistrictNameResp); i { case 0: return &v.state case 1: @@ -4800,7 +4801,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OauthProviderInfo); i { + switch v := v.(*RecordReq); i { case 0: return &v.state case 1: @@ -4812,7 +4813,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RoleListResp); i { + switch v := v.(*OauthProviderListResp); i { case 0: return &v.state case 1: @@ -4824,7 +4825,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IDReq); i { + switch v := v.(*TokenInfo); i { case 0: return &v.state case 1: @@ -4836,7 +4837,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DistrictInfo); i { + switch v := v.(*UserReq); i { case 0: return &v.state case 1: @@ -4848,7 +4849,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DistrictTree); i { + switch v := v.(*GetUserRolesReq); i { case 0: return &v.state case 1: @@ -4860,7 +4861,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DistrictCodeReq); i { + switch v := v.(*DepartmentListResp); i { case 0: return &v.state case 1: @@ -4872,7 +4873,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetDistrictNameReq); i { + switch v := v.(*DictionaryDetailListResp); i { case 0: return &v.state case 1: @@ -4884,7 +4885,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LoginRecordInfo); i { + switch v := v.(*DistrictListResp); i { case 0: return &v.state case 1: @@ -4896,7 +4897,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserRoleReq); i { + switch v := v.(*OauthProviderReq); i { case 0: return &v.state case 1: @@ -4908,7 +4909,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Empty); i { + switch v := v.(*CallbackReq); i { case 0: return &v.state case 1: @@ -4920,7 +4921,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DictionaryDetailListResp); i { + switch v := v.(*OauthRedirectResp); i { case 0: return &v.state case 1: @@ -4932,7 +4933,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DistrictReq); i { + switch v := v.(*UserInfo); i { case 0: return &v.state case 1: @@ -4944,7 +4945,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OauthLoginReq); i { + switch v := v.(*UserRoleReq); i { case 0: return &v.state case 1: @@ -4956,7 +4957,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserRolesReq); i { + switch v := v.(*DictionaryInfo); i { case 0: return &v.state case 1: @@ -4968,7 +4969,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Pagination); i { + switch v := v.(*DictionaryDetailInfo); i { case 0: return &v.state case 1: @@ -4980,7 +4981,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DictionaryInfo); i { + switch v := v.(*DistrictReq); i { case 0: return &v.state case 1: @@ -4992,7 +4993,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OauthProviderListResp); i { + switch v := v.(*DistrictCodeReq); i { case 0: return &v.state case 1: @@ -5004,7 +5005,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TokenUserReq); i { + switch v := v.(*Pagination); i { case 0: return &v.state case 1: @@ -5016,7 +5017,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserSocialListResp); i { + switch v := v.(*GetDistrictNameReq); i { case 0: return &v.state case 1: @@ -5028,7 +5029,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetDistrictNameResp); i { + switch v := v.(*LoginRecordInfo); i { case 0: return &v.state case 1: @@ -5040,7 +5041,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TokenReq); i { + switch v := v.(*OauthProviderInfo); i { case 0: return &v.state case 1: @@ -5052,7 +5053,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserReq); i { + switch v := v.(*OauthLoginReq); i { case 0: return &v.state case 1: @@ -5064,7 +5065,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserSocialInfo); i { + switch v := v.(*TokenUserReq); i { case 0: return &v.state case 1: @@ -5076,7 +5077,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TokenListResp); i { + switch v := v.(*TokenReq); i { case 0: return &v.state case 1: @@ -5088,7 +5089,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserListResp); i { + switch v := v.(*TokenListResp); i { case 0: return &v.state case 1: @@ -5100,7 +5101,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BaseResp); i { + switch v := v.(*DictionaryDetailReq); i { case 0: return &v.state case 1: @@ -5112,7 +5113,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteDictionaryDetailReq); i { + switch v := v.(*DictionaryReq); i { case 0: return &v.state case 1: @@ -5124,7 +5125,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RecordReq); i { + switch v := v.(*RoleListResp); i { case 0: return &v.state case 1: @@ -5136,7 +5137,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OauthRedirectResp); i { + switch v := v.(*UserSocialInfo); i { case 0: return &v.state case 1: @@ -5148,7 +5149,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RoleInfo); i { + switch v := v.(*DepartmentReq); i { case 0: return &v.state case 1: @@ -5160,7 +5161,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RoleReq); i { + switch v := v.(*BaseIDResp); i { case 0: return &v.state case 1: @@ -5172,7 +5173,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DictionaryDetailInfo); i { + switch v := v.(*DictionaryListResp); i { case 0: return &v.state case 1: @@ -5184,7 +5185,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DistrictListResp); i { + switch v := v.(*DistrictInfo); i { case 0: return &v.state case 1: @@ -5196,7 +5197,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OauthProviderReq); i { + switch v := v.(*DistrictTree); i { case 0: return &v.state case 1: @@ -5208,7 +5209,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserInfo); i { + switch v := v.(*RoleReq); i { case 0: return &v.state case 1: @@ -5220,7 +5221,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserSocialReq); i { + switch v := v.(*UserListResp); i { case 0: return &v.state case 1: @@ -5244,7 +5245,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BaseIDResp); i { + switch v := v.(*IDReq); i { case 0: return &v.state case 1: @@ -5256,7 +5257,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DepartmentInfo); i { + switch v := v.(*RoleInfo); i { case 0: return &v.state case 1: @@ -5268,7 +5269,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DictionaryListResp); i { + switch v := v.(*UserSocialReq); i { case 0: return &v.state case 1: @@ -5280,7 +5281,7 @@ func file_rpc_core_core_proto_init() { } } file_rpc_core_core_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CallbackReq); i { + switch v := v.(*Empty); i { case 0: return &v.state case 1: @@ -5292,23 +5293,23 @@ func file_rpc_core_core_proto_init() { } } } - file_rpc_core_core_proto_msgTypes[0].OneofWrappers = []interface{}{} - file_rpc_core_core_proto_msgTypes[1].OneofWrappers = []interface{}{} file_rpc_core_core_proto_msgTypes[2].OneofWrappers = []interface{}{} - file_rpc_core_core_proto_msgTypes[3].OneofWrappers = []interface{}{} file_rpc_core_core_proto_msgTypes[6].OneofWrappers = []interface{}{} - file_rpc_core_core_proto_msgTypes[15].OneofWrappers = []interface{}{} + file_rpc_core_core_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_rpc_core_core_proto_msgTypes[9].OneofWrappers = []interface{}{} + file_rpc_core_core_proto_msgTypes[10].OneofWrappers = []interface{}{} + file_rpc_core_core_proto_msgTypes[11].OneofWrappers = []interface{}{} + file_rpc_core_core_proto_msgTypes[12].OneofWrappers = []interface{}{} + file_rpc_core_core_proto_msgTypes[13].OneofWrappers = []interface{}{} file_rpc_core_core_proto_msgTypes[16].OneofWrappers = []interface{}{} - file_rpc_core_core_proto_msgTypes[18].OneofWrappers = []interface{}{} - file_rpc_core_core_proto_msgTypes[21].OneofWrappers = []interface{}{} - file_rpc_core_core_proto_msgTypes[23].OneofWrappers = []interface{}{} - file_rpc_core_core_proto_msgTypes[25].OneofWrappers = []interface{}{} - file_rpc_core_core_proto_msgTypes[26].OneofWrappers = []interface{}{} + file_rpc_core_core_proto_msgTypes[20].OneofWrappers = []interface{}{} file_rpc_core_core_proto_msgTypes[28].OneofWrappers = []interface{}{} file_rpc_core_core_proto_msgTypes[29].OneofWrappers = []interface{}{} - file_rpc_core_core_proto_msgTypes[35].OneofWrappers = []interface{}{} - file_rpc_core_core_proto_msgTypes[37].OneofWrappers = []interface{}{} - file_rpc_core_core_proto_msgTypes[38].OneofWrappers = []interface{}{} + file_rpc_core_core_proto_msgTypes[30].OneofWrappers = []interface{}{} + file_rpc_core_core_proto_msgTypes[31].OneofWrappers = []interface{}{} + file_rpc_core_core_proto_msgTypes[32].OneofWrappers = []interface{}{} + file_rpc_core_core_proto_msgTypes[34].OneofWrappers = []interface{}{} + file_rpc_core_core_proto_msgTypes[36].OneofWrappers = []interface{}{} file_rpc_core_core_proto_msgTypes[39].OneofWrappers = []interface{}{} file_rpc_core_core_proto_msgTypes[40].OneofWrappers = []interface{}{} file_rpc_core_core_proto_msgTypes[44].OneofWrappers = []interface{}{} diff --git a/rpc/core/types/core/core_grpc.pb.go b/rpc/core/types/core/core_grpc.pb.go index 17f1baa..9033e65 100644 --- a/rpc/core/types/core/core_grpc.pb.go +++ b/rpc/core/types/core/core_grpc.pb.go @@ -41,9 +41,9 @@ type CoreClient interface { // group: dictionary UpdateDictionary(ctx context.Context, in *DictionaryInfo, opts ...grpc.CallOption) (*BaseResp, error) // group: dictionary - GetDictionaryList(ctx context.Context, in *UserReq, opts ...grpc.CallOption) (*UserListResp, error) + GetDictionaryList(ctx context.Context, in *DictionaryReq, opts ...grpc.CallOption) (*DictionaryListResp, error) // group: dictionary - GetDictionary(ctx context.Context, in *UserReq, opts ...grpc.CallOption) (*DictionaryInfo, error) + GetDictionary(ctx context.Context, in *DictionaryReq, opts ...grpc.CallOption) (*DictionaryInfo, error) // group: dictionary DeleteDictionary(ctx context.Context, in *IDsReq, opts ...grpc.CallOption) (*BaseResp, error) // Details @@ -227,8 +227,8 @@ func (c *coreClient) UpdateDictionary(ctx context.Context, in *DictionaryInfo, o return out, nil } -func (c *coreClient) GetDictionaryList(ctx context.Context, in *UserReq, opts ...grpc.CallOption) (*UserListResp, error) { - out := new(UserListResp) +func (c *coreClient) GetDictionaryList(ctx context.Context, in *DictionaryReq, opts ...grpc.CallOption) (*DictionaryListResp, error) { + out := new(DictionaryListResp) err := c.cc.Invoke(ctx, "/core.Core/getDictionaryList", in, out, opts...) if err != nil { return nil, err @@ -236,7 +236,7 @@ func (c *coreClient) GetDictionaryList(ctx context.Context, in *UserReq, opts .. return out, nil } -func (c *coreClient) GetDictionary(ctx context.Context, in *UserReq, opts ...grpc.CallOption) (*DictionaryInfo, error) { +func (c *coreClient) GetDictionary(ctx context.Context, in *DictionaryReq, opts ...grpc.CallOption) (*DictionaryInfo, error) { out := new(DictionaryInfo) err := c.cc.Invoke(ctx, "/core.Core/getDictionary", in, out, opts...) if err != nil { @@ -664,9 +664,9 @@ type CoreServer interface { // group: dictionary UpdateDictionary(context.Context, *DictionaryInfo) (*BaseResp, error) // group: dictionary - GetDictionaryList(context.Context, *UserReq) (*UserListResp, error) + GetDictionaryList(context.Context, *DictionaryReq) (*DictionaryListResp, error) // group: dictionary - GetDictionary(context.Context, *UserReq) (*DictionaryInfo, error) + GetDictionary(context.Context, *DictionaryReq) (*DictionaryInfo, error) // group: dictionary DeleteDictionary(context.Context, *IDsReq) (*BaseResp, error) // Details @@ -799,10 +799,10 @@ func (UnimplementedCoreServer) CreateDictionary(context.Context, *DictionaryInfo func (UnimplementedCoreServer) UpdateDictionary(context.Context, *DictionaryInfo) (*BaseResp, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateDictionary not implemented") } -func (UnimplementedCoreServer) GetDictionaryList(context.Context, *UserReq) (*UserListResp, error) { +func (UnimplementedCoreServer) GetDictionaryList(context.Context, *DictionaryReq) (*DictionaryListResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetDictionaryList not implemented") } -func (UnimplementedCoreServer) GetDictionary(context.Context, *UserReq) (*DictionaryInfo, error) { +func (UnimplementedCoreServer) GetDictionary(context.Context, *DictionaryReq) (*DictionaryInfo, error) { return nil, status.Errorf(codes.Unimplemented, "method GetDictionary not implemented") } func (UnimplementedCoreServer) DeleteDictionary(context.Context, *IDsReq) (*BaseResp, error) { @@ -1095,7 +1095,7 @@ func _Core_UpdateDictionary_Handler(srv interface{}, ctx context.Context, dec fu } func _Core_GetDictionaryList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UserReq) + in := new(DictionaryReq) if err := dec(in); err != nil { return nil, err } @@ -1107,13 +1107,13 @@ func _Core_GetDictionaryList_Handler(srv interface{}, ctx context.Context, dec f FullMethod: "/core.Core/getDictionaryList", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CoreServer).GetDictionaryList(ctx, req.(*UserReq)) + return srv.(CoreServer).GetDictionaryList(ctx, req.(*DictionaryReq)) } return interceptor(ctx, in, info, handler) } func _Core_GetDictionary_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UserReq) + in := new(DictionaryReq) if err := dec(in); err != nil { return nil, err } @@ -1125,7 +1125,7 @@ func _Core_GetDictionary_Handler(srv interface{}, ctx context.Context, dec func( FullMethod: "/core.Core/getDictionary", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CoreServer).GetDictionary(ctx, req.(*UserReq)) + return srv.(CoreServer).GetDictionary(ctx, req.(*DictionaryReq)) } return interceptor(ctx, in, info, handler) }