Compare commits
	
		
			No commits in common. "6d2537671298e9eab25259c1241926314c71db5e" and "6b9b4e9f3a03096a78b632ae68e45d33dae65a83" have entirely different histories.
		
	
	
		
			6d25376712
			...
			6b9b4e9f3a
		
	
		
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -1,554 +0,0 @@ | |||||||
| /* |  | ||||||
|  * Licensed to the Apache Software Foundation (ASF) under one or more |  | ||||||
|  * contributor license agreements.  See the NOTICE file distributed with |  | ||||||
|  * this work for additional information regarding copyright ownership. |  | ||||||
|  * The ASF licenses this file to You under the Apache License, Version 2.0 |  | ||||||
|  * (the "License"); you may not use this file except in compliance with |  | ||||||
|  * the License.  You may obtain a copy of the License at |  | ||||||
|  * |  | ||||||
|  *     http://www.apache.org/licenses/LICENSE-2.0 |  | ||||||
|  * |  | ||||||
|  * Unless required by applicable law or agreed to in writing, software |  | ||||||
|  * distributed under the License is distributed on an "AS IS" BASIS, |  | ||||||
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |  | ||||||
|  * See the License for the specific language governing permissions and |  | ||||||
|  * limitations under the License. |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| syntax = "proto3"; |  | ||||||
| package account; |  | ||||||
| import "github.com/mwitkow/go-proto-validators@v0.3.2/validator.proto"; |  | ||||||
| 
 |  | ||||||
| option go_package = "./;account"; |  | ||||||
| 
 |  | ||||||
| service Account { |  | ||||||
|   rpc Login (LoginRequest) returns (TokenInfo) {} |  | ||||||
|   rpc RefreshToken (RefreshTokenRequest) returns (TokenInfo) {} //刷新token |  | ||||||
|   rpc Logout (DecryptJwtRequest) returns (CommonResponse) {} |  | ||||||
|   rpc WxApp (WxAppRequest) returns (WxAppResponse) {}//获取微信公众号记录 |  | ||||||
|   rpc WxUserInfo (WxUserOrCreateRequest) returns (WxUserResponse) {}//获取微信用户信息 |  | ||||||
|   rpc WxUserCreate (WxUserOrCreateRequest) returns (WxUserResponse) {}//创建微信用户 |  | ||||||
|   rpc WxUserUpdate (WxUserUpdateRequest) returns (WxUserResponse) {}//更新微信用户 |  | ||||||
|   rpc WxGetOpenIdByCode (WxGetOpenIdByCodeRequest) returns (WxGetOpenIdByCodeResponse) {}//仅校验之前发送的验证码 |  | ||||||
|   rpc WxBoxLogin (WxGetOpenIdByCodeRequest) returns (WxBoxUserInfo) {}//微信小程序登陆并且获取详情 |  | ||||||
|   rpc WxBoxUserInfoByOpenId (WxBoxUserInfoRequest) returns (WxBoxUserInfo) {}//微信小程序登陆并且获取详情 |  | ||||||
|   rpc WxBoxTelNumByCode (WxGetOpenIdByCodeRequest) returns (WxBoxTelNumByCodeResponse) {}//小程序获取手机号 |  | ||||||
|   rpc WxBoxUpdateUser (WxBoxUserInfo) returns (CommonResponse) {}//更新用户信息 |  | ||||||
|   rpc WxBoxCreateUser (WxBoxUserInfo) returns (CommonResponse) {}//更新用户信息 |  | ||||||
|   rpc FddCreateUser (FddCreateUserRequest) returns (CommonResponse) {}//同步法大大数据 |  | ||||||
|   rpc FddUpdateUser (FddCreateUserRequest) returns (CommonResponse) {}//同步法大大数据 |  | ||||||
|   rpc OffLine (CommonRequest) returns (CommonResponse) {} |  | ||||||
|   rpc OnlineLog (LoginInfosByUserIdRequest) returns (LoginLogsResponse) {}//根据用户id获取登录的信息 |  | ||||||
|   rpc OnlineLogById (OnlineLogByIdRequest) returns (LoginLog) {}//根据用户id获取登录的信息 |  | ||||||
|   rpc CheckPwd (CheckPwdRequest) returns (UpdateResponse) {}//检测密码是否正确 |  | ||||||
|   rpc Register (RegistRequest) returns (RequestStatus) {} |  | ||||||
|   rpc SendMsg (SendMsgRequest) returns (SendMsgStatusResponse) {} //登陆发送验证码 |  | ||||||
|   rpc SendCustomMsg (SendCustomMsgRequest) returns (SendMsgStatusResponse) {}//定制化发送内容 |  | ||||||
|   rpc SendExCustomMsg (SendCustomMsgRequest) returns (SendMsgStatusResponse) {}//定制化发送内容 |  | ||||||
|   rpc SendMsgRegister (SendMsgRequest) returns (SendMsgStatusResponse) {}//注册发送 |  | ||||||
|   rpc CheckMsg (CheckMsgRequest) returns (SendMsgStatusResponse) {} |  | ||||||
|   rpc SendNewTelNumMsg (SendNewTelNumMsgRequest) returns (SendMsgStatusResponse) {}//发送新账号验证码,不携带新号码 |  | ||||||
|   rpc UpdateTelNum (SendNewTelNumMsgRequest) returns (SendMsgStatusResponse) {}//更新新手机号,校验新号码验证码 |  | ||||||
|   rpc Authentication (AuthenticationRequest) returns (RequestStatus) {} |  | ||||||
|   rpc DecryptJwt (DecryptJwtRequest) returns (DecryptJwtResponse) {}//最好放在调用方 |  | ||||||
|   rpc Info (InfoRequest) returns (InfoResponse) {} |  | ||||||
|   rpc JobNumGetInfo (JobNumGetInfoRequest) returns (InfoResponse) {} |  | ||||||
|   rpc List (ListRequest) returns (ListResponse) {} |  | ||||||
|   rpc RandList (ListRequest) returns (ListResponse) {} |  | ||||||
|   rpc ListByIDs (ListByIDsRequest) returns (ListResponse) {} |  | ||||||
|   rpc Remove (RemoveRequest) returns (RemoveResponse) {} |  | ||||||
|   rpc WriteOff (RemoveRequest) returns (RemoveResponse) {} //用户注销 |  | ||||||
|   rpc Update (UpdateRequest) returns (UpdateResponse) {} |  | ||||||
|   rpc PrivacyInfo (PrivacyInfoRequest) returns (AccountInfo) {} |  | ||||||
|   rpc UsersByTel (UsersByTelRequest) returns (ListResponse) {} |  | ||||||
|   rpc UserByTel (UserByTelRequest) returns (InfoResponse) {} |  | ||||||
|   rpc OnlySendMsg (SendMsgRequest) returns (SendMsgStatusResponse) {} //仅发验证码 |  | ||||||
|   rpc OnlyCheckMsg (CheckMsgRequest) returns (SendMsgStatusResponse) {}//仅校验之前发送的验证码 |  | ||||||
|   rpc CreateClockDevice(CreateClockDeviceRequest) returns(ClockDeviceResponse){} //创建打卡机设备 |  | ||||||
|   rpc UpdateClockDevice(UpdateClockDeviceRequest) returns(ClockDeviceResponse){} //更新打卡机设备 |  | ||||||
|   rpc RemoveClockDevice(RemoveClockDeviceRequest) returns(ClockDeviceResponse){} //删除打卡机设备 |  | ||||||
|   rpc ClockDeviceList(ClockDeviceListRequest) returns(ClockDeviceListResponse){} //打卡机设备列表 |  | ||||||
|   rpc ClockDeviceInfo(ClockDeviceInfoRequest) returns(ClockDeviceInfoResponse){} //打卡机设备详情 |  | ||||||
|   rpc ClockDeviceSingleUntie(RemoveClockDeviceRequest) returns(ClockDeviceResponse){} //单人解绑打卡机 |  | ||||||
|   rpc ClockDeviceBatchBind(ClockBatchListResponse) returns(ClockDeviceInfoResponse){} //批量绑定打卡机 |  | ||||||
|   rpc ClockDeviceBatchUntie(ClockBatchBindRequest) returns(ClockDeviceInfoResponse){} //批量解绑打卡机 |  | ||||||
|   rpc ClockDeviceBatchList(ClockBatchBindRequest) returns(ClockBatchListResponse){} //查询绑定关系 |  | ||||||
|   rpc UpdateDeviceRelevance(ClockUserDeviceBatch) returns(ClockDeviceResponse){} //更新绑定中间表 |  | ||||||
|   rpc MailAccountByNickName(MailAccountByNickNameRequest) returns(MaiAccountResponse){} //根据昵称姓名获取昵称的邮箱和拼音名称 |  | ||||||
|   rpc CreateMaiAccount(CreateMaiAccountRequest) returns(CommonResponse){} //生成邮箱号 |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message MailAccountByNickNameRequest { |  | ||||||
|   string Domain                       = 1 [json_name = "domain",(validator.field) = {string_not_empty: true,human_error: "70001"}]; |  | ||||||
|   string NickName                     = 2 [json_name = "nickName",(validator.field) = {length_lt: 20,string_not_empty: true,human_error: "70005"}]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message CreateMaiAccountRequest { |  | ||||||
|   uint32 ID        = 1 ; |  | ||||||
|   string nickName      = 2; |  | ||||||
|   string domain        = 3 ; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message MaiAccountResponse { |  | ||||||
|   string englishName        = 1 ; |  | ||||||
|   string mailAccount      = 2; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message FddCreateUserRequest { |  | ||||||
|   string openid        = 1 ; |  | ||||||
|   uint32 wxUserId      = 2; |  | ||||||
|   //string UserId        = 3; |  | ||||||
|   string customerId    = 4; |  | ||||||
|   bool   isVerify      = 5; |  | ||||||
|   string   transactionNo      = 6; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message WxBoxUserInfoRequest { |  | ||||||
|   string openid        = 2 ; |  | ||||||
|   string ghId         = 3; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message WxGetOpenIdByCodeRequest { |  | ||||||
|   string code         = 1 ; |  | ||||||
|   string state        = 2 ; |  | ||||||
|   string ghId         = 3; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message WxGetOpenIdByCodeResponse { |  | ||||||
|   string openId         = 1 ; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message WxBoxTelNumByCodeResponse { |  | ||||||
|   string telNum         = 1 ; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message WxBoxUserInfo { |  | ||||||
|   string openId       = 1 ; |  | ||||||
|   string ghId         = 2 ; |  | ||||||
|   bool isNew          = 3 ; |  | ||||||
|   UserInfo user       = 4 ; |  | ||||||
|   uint32 wxUserId     = 5 ; |  | ||||||
|   FddInfo fdd         = 6 ; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message FddInfo { |  | ||||||
|   uint64    ID              = 1 ; |  | ||||||
|   string    customerId      = 2 ; |  | ||||||
|   bool      isVerify        = 3 ; |  | ||||||
|   string    transactionNo   = 4; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message UserInfo { |  | ||||||
|   uint64    ID              = 1 ; |  | ||||||
|   string    nickName        = 3 ; |  | ||||||
|   string    telNum          = 5 ; |  | ||||||
|   string    avatar          = 7 ; |  | ||||||
|   string    createAt        = 8 ; |  | ||||||
|   uint64    realNameID      = 9 ; |  | ||||||
|   string    realName        = 10; |  | ||||||
|   string    iDNum           = 11; |  | ||||||
|   string    domain          = 12; |  | ||||||
|   string    realIDImgA      = 17; |  | ||||||
|   string    realIDImgB      = 18; |  | ||||||
|   string    realNameIDName = 19; |  | ||||||
|   string    video = 20; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message CommonRequest { |  | ||||||
|   uint64 ID         = 1 [json_name = "ID"]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message WxAppRequest { |  | ||||||
|   string GhId         = 1 [json_name = "ID"]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message WxAppResponse { |  | ||||||
|   string AppID        = 1 [json_name = "appID"]; |  | ||||||
|   string AppSecret    = 2 [json_name = "appSecret"]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message WxUserUpdateRequest { |  | ||||||
|   uint32 wxID          = 1 [json_name = "wxId" ,(validator.field) = {string_not_empty: true,human_error: "缺少参数wxID"} ]; |  | ||||||
|   uint32 userID        = 2 [json_name = "userID"]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message WxUserOrCreateRequest { |  | ||||||
|   string OpenID        = 1 [json_name = "openID" ,(validator.field) = {string_not_empty: true,human_error: "缺少openid"} ]; |  | ||||||
|   string GhID          = 2 [json_name = "ghID" ,(validator.field) = {string_not_empty: true,human_error: "缺少参数ghid"} ]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message WxUserResponse { |  | ||||||
|   string OpenID        = 1 [json_name = "openID"]; |  | ||||||
|   uint32 UserID        = 2 [json_name = "userID"]; |  | ||||||
|   string GhID          = 3 [json_name = "ghID"]; |  | ||||||
|   string RoleAuth      = 4 [json_name = "roleAuth"]; |  | ||||||
|   uint32 ID            = 5 [json_name = "ID"]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| message LoginLogsResponse { |  | ||||||
|   repeated LoginLog Data     = 1 [json_name = "data"]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message LoginLog { |  | ||||||
|   string Domain     = 1 [json_name = "domain"]; |  | ||||||
|   uint64 ID         = 2 [json_name = "ID"]; |  | ||||||
|   uint64 UserId     = 3 [json_name = "userId"]; |  | ||||||
|   string Ip         = 4 [json_name = "ip"]; |  | ||||||
|   string Token      = 5 [json_name = "token"]; |  | ||||||
|   uint64 Status     = 6 [json_name = "status"]; |  | ||||||
|   string ExpireDate = 7 [json_name = "expireDate"]; |  | ||||||
|   string LastDate   = 8 [json_name = "lastDate"]; |  | ||||||
|   string LogoutDate = 9 [json_name = "logoutDate"]; |  | ||||||
|   string CreatedAt  = 10 [json_name = "createdAt"]; |  | ||||||
|   string Address    = 11 [json_name = "address"]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message OnlineLogByIdRequest { |  | ||||||
|   string Domain = 1 [json_name = "domain"]; |  | ||||||
|   uint64 ID     = 2 [json_name = "ID"]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message LoginInfosByUserIdRequest { |  | ||||||
|   string Domain     = 1 [json_name = "domain"]; |  | ||||||
|   uint64 UserId     = 2 [json_name = "userId"]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message SendNewTelNumMsgRequest { |  | ||||||
|   string Domain     = 1 [json_name = "domain",(validator.field) = {string_not_empty: true,human_error: "70001"} ]; |  | ||||||
|   uint64 ID         = 2 [json_name = "ID",(validator.field) = {string_not_empty: true,human_error: "缺少参数"} ]; |  | ||||||
|   string NewTelNum  = 3 [json_name = "newTelNum"]; |  | ||||||
|   string Code       = 4 [json_name = "code"]; |  | ||||||
|   string Project    = 5 [json_name = "project"]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message UserByTelRequest { |  | ||||||
|   string Domain   = 1 [json_name = "domain",(validator.field) = {string_not_empty: true,human_error: "70001"} ]; |  | ||||||
|   string Tel =2 [json_name = "tel"]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message CommonResponse { |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message UsersByTelRequest { |  | ||||||
|   string Domain   = 1 [json_name = "domain",(validator.field) = {string_not_empty: true,human_error: "70001"} ]; |  | ||||||
|   repeated string Tels =2 [json_name = "tels"]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message ListByIDsRequest { |  | ||||||
|   string Domain   = 1 [json_name = "domain",(validator.field) = {string_not_empty: true,human_error: "70001"} ]; |  | ||||||
|   repeated uint64 IDs = 2 [json_name = "IDs"]; |  | ||||||
|   uint64 OrderType = 3 [json_name = "OrderType"]; |  | ||||||
|   uint64 Page = 4 [json_name = "page"]; |  | ||||||
|   uint64 PageSize = 5 [json_name = "pageSize"]; |  | ||||||
|   string NickName = 6 [json_name = "nickName"]; |  | ||||||
|   repeated string InvitationCode  = 7 [json_name = "invitationCode"]; |  | ||||||
| 
 |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message SendMsgRequest { |  | ||||||
|   string Domain   = 1 [json_name = "domain",(validator.field) = {string_not_empty: true,human_error: "70001"} ]; |  | ||||||
|   string TelNum   = 2 [json_name = "telNum",(validator.field) = {regex: "^1\\d{10}$",human_error: "70002"}]; |  | ||||||
|   string Project  = 3 [json_name = "project"]; |  | ||||||
|   uint32 signNo  = 4; |  | ||||||
|   uint32 mId  = 5; |  | ||||||
|   string scope  = 6;//标记模块 |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message SendCustomMsgRequest { |  | ||||||
|   string Domain   = 1 [json_name = "domain",(validator.field) = {string_not_empty: true,human_error: "70001"} ]; |  | ||||||
|   string TelNum   = 2 [json_name = "telNum",(validator.field) = {regex: "^1\\d{10}$",human_error: "70002"}]; |  | ||||||
|   string Project  = 3 [json_name = "project"]; |  | ||||||
|   string Url      = 4 [json_name = "Url"]; |  | ||||||
|   uint64 ID       = 5 [json_name = "ID"]; |  | ||||||
|   uint64 MId      = 6 [json_name = "mId"]; |  | ||||||
|   uint64 Location = 7 [json_name = "location"]; |  | ||||||
|   uint32 SigNo = 8 [json_name = "sigNo"]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message CheckMsgRequest { |  | ||||||
|   string Domain   = 1 [json_name = "domain",(validator.field) = {string_not_empty: true,human_error: "70001"} ]; |  | ||||||
|   string TelNum   = 2 [json_name = "telNum",(validator.field) = {regex: "^1\\d{10}$",human_error: "70002"}]; |  | ||||||
|   string Code     = 3 [json_name = "code",(validator.field) = {string_not_empty: true,human_error: "70003"} ]; |  | ||||||
|   string scope    = 4;//标记模块 |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message SendMsgStatusResponse { |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message RemoveRequest { |  | ||||||
|   string Domain   = 1 [json_name = "domain",(validator.field) = {string_not_empty: true,human_error: "70001"} ]; |  | ||||||
|   uint64 ID       = 2 [json_name = "ID",(validator.field) = {int_gt: 0,human_error: "70004"} ]; |  | ||||||
|   string code = 3; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message RemoveResponse { |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message UpdateRequest { |  | ||||||
|   uint64 ID                           = 1 [json_name = "ID"];  //ID |  | ||||||
|   string Domain                       = 2 [json_name = "domain",(validator.field) = {string_not_empty: true,human_error: "70001"} ]; |  | ||||||
|   string NickName                     = 3 [json_name = "nickName"]; |  | ||||||
|   string Password                     = 4 [json_name = "password"];  //密码 |  | ||||||
|   string Avatar                       = 5 [json_name = "avatar"];    //头像 |  | ||||||
|   string Status                       = 7 [json_name = "status"]; |  | ||||||
|   string TelNum                       = 8 [json_name = "telNum"]; |  | ||||||
|   string EnterDate                    = 14 [json_name = "enterDate"]; |  | ||||||
|   Extend Extend                       = 17 [json_name = "extend"]; |  | ||||||
|   string Title                        = 18 [json_name = "title"]; |  | ||||||
|   string  JobNum                      = 19 [json_name = "jobNum"]; |  | ||||||
|   string BirthDate                    = 20 [json_name = "birthDate"]; |  | ||||||
|   uint64 Sex                          = 21 [json_name = "sex"]; |  | ||||||
|   string IdNum                        = 22 [json_name = "idNum"]; |  | ||||||
|   string RealName                     = 23 [json_name = "realName"]; |  | ||||||
|   string InvitationCode               = 24 [json_name = "invitationCode"]; |  | ||||||
|   string LeftDate                     = 25 [json_name = "leftDate"]; |  | ||||||
|   string Remark                       = 26 [json_name = "remark"]; |  | ||||||
|   string recentImg = 27; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message UpdateResponse { |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message PrivacyInfoRequest { |  | ||||||
|   uint64 ID                           = 1 [json_name = "ID"];  //ID |  | ||||||
|   string Domain                       = 2 [json_name = "domain",(validator.field) = {string_not_empty: true,human_error: "70001"} ]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message ListRequest { |  | ||||||
|   string Domain   = 1 [json_name = "domain",(validator.field) = {string_not_empty: true,human_error: "70001"} ]; |  | ||||||
|   uint64 PageSize    = 2 [json_name = "pageSize"]; |  | ||||||
|   uint64 Page   = 3 [json_name = "page"]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message ListResponse { |  | ||||||
|   string Status                 = 1 [json_name = "status"]; |  | ||||||
|   uint64 Count                  = 2 [json_name = "count"]; |  | ||||||
|   repeated AccountInfo Data     = 3 [json_name = "data"]; |  | ||||||
|   uint64 AllCount               = 4 [json_name = "allCount"]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message InfoRequest { |  | ||||||
|   string Domain   = 1 [json_name = "domain",(validator.field) = {string_not_empty: true,human_error: "70001"} ]; |  | ||||||
|   uint64 ID       = 2 [json_name = "id"]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message InfoResponse { |  | ||||||
|   string      Status    = 1 [json_name = "status"]; |  | ||||||
|   AccountInfo Info    = 2 [json_name = "accountInfo"]; |  | ||||||
|   bool        IsExist     = 3 [json_name = "isExist"]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message DecryptJwtResponse { |  | ||||||
|   string Domain     = 1 [json_name = "status"]; |  | ||||||
|   uint64 ID         = 2 [json_name = "id"]; |  | ||||||
|   string Account    = 3 [json_name = "account"]; |  | ||||||
|   string NickName   = 4 [json_name = "nickName"]; |  | ||||||
|   bool   IsOffline  = 5 [json_name = "isOffline"]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message DecryptJwtRequest { |  | ||||||
|   string token = 1 [json_name = "token"]; |  | ||||||
|   string Domain = 2 [json_name = "Domain"]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message CheckPwdRequest { |  | ||||||
|   string Token = 1 [json_name = "token"]; |  | ||||||
|   string Password = 2 [json_name = "password"]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message AuthenticationRequest { |  | ||||||
|   string Name = 1 [json_name = "name"]; |  | ||||||
|   string IDNum = 2 [json_name = "idNum",(validator.field) = {length_eq: 18,human_error: "70006"}]; |  | ||||||
|   string Token = 3 [json_name = "token"]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message RequestStatus { |  | ||||||
|   string Status = 1 [json_name = "status"]; |  | ||||||
|   uint64 ID     = 2 [json_name = "ID"]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message RegistRequest { |  | ||||||
|   string Domain                       = 1 [json_name = "domain",(validator.field) = {string_not_empty: true,human_error: "70001"}]; |  | ||||||
|   string NickName                     = 2 [json_name = "nickName",(validator.field) = {length_lt: 20,string_not_empty: true,human_error: "70005"}]; |  | ||||||
|   string TelNum                       = 3 [json_name = "telNum",(validator.field) = {regex: "^1\\d{10}$",human_error: "70002"}]; |  | ||||||
|   string Password                     = 4 [json_name = "password",(validator.field) = {length_gt: 5,human_error: "70007"}];  //密码 |  | ||||||
|   string Avatar                       = 5 [json_name = "avatar"];    //头像 |  | ||||||
|   string EnterDate                    = 14 [json_name = "enterDate"]; |  | ||||||
|   Extend Extend                       = 15 [json_name = "extend"]; |  | ||||||
|   string JobNum                       = 16 [json_name = "JobNum"]; //工号 |  | ||||||
|   string Code                         = 17 [json_name = "code"]; //工号 |  | ||||||
|   string IdNum                        = 18 [json_name = "idNum"]; //年龄 |  | ||||||
|   string RealName                     = 19 [json_name = "realName"]; // |  | ||||||
|   string RecentImg = 20; |  | ||||||
|   string RealIDImgA = 21; |  | ||||||
|   string RealIDImgB = 22; |  | ||||||
|   string Video = 23; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message LoginRequest { |  | ||||||
|   string Domain     = 1 [json_name = "domain",(validator.field) = {string_not_empty: true,human_error: "70001"} ]; |  | ||||||
|   string TelNum     = 2 [json_name = "telNum",(validator.field) = {regex: "^1\\d{10}$",human_error: "70002"}]; |  | ||||||
|   string Code       = 3 [json_name = "code"]; |  | ||||||
|   string Password   = 4 [json_name = "password"]; |  | ||||||
|   string Ip         = 5 [json_name = "ip"]; |  | ||||||
|   bool passCheckIp       = 6 ; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message TokenInfo { |  | ||||||
|   AccountInfo AccountInfo   = 1 [json_name = "accountInfo"]; |  | ||||||
|   string Token              = 2 [json_name = "token"]; |  | ||||||
|   string RefreshToken            = 4 [json_name = "refresh"]; |  | ||||||
|   bool IsSampleAddress      = 3 [json_name = "isSampleAddress"]; |  | ||||||
|   string nowAddress        = 5 [json_name = "nowAddress"]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message Extend { |  | ||||||
|   string JumpTo = 1 [json_name = "jumpTo"]; |  | ||||||
|   string Lang = 2 [json_name = "lang"]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message Department { |  | ||||||
|   uint64 ID = 1 [json_name = "ID"]; |  | ||||||
|   string Name = 2 [json_name = "name"]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // The response message containing the greetings |  | ||||||
| message AccountInfo { |  | ||||||
|   uint64    ID              = 1 [json_name = "id"]; |  | ||||||
|   string    Account         = 2 [json_name = "account"]; |  | ||||||
|   string    NickName        = 3 [json_name = "nickName"]; |  | ||||||
|   int64     Type            = 4 [json_name = "type"]; |  | ||||||
|   string    TelNum          = 5 [json_name = "telNum"]; |  | ||||||
|   string    Status          = 6 [json_name = "status"]; |  | ||||||
|   string    Avatar          = 7 [json_name = "avatar"]; |  | ||||||
|   string    CreateAt        = 8 [json_name = "createAt"]; |  | ||||||
|   uint64    RealNameID      = 9 [json_name = "realNameID"]; |  | ||||||
|   string    RealName        = 10 [json_name = "realName"]; |  | ||||||
|   string    IDNum           = 11 [json_name = "iDNum"]; |  | ||||||
|   string    MnemonicWords   = 12 [json_name = "mnemonicWords"]; |  | ||||||
|   uint64    IsNeedChange    = 13 [json_name = "isNeedChange"]; |  | ||||||
|   string    EnterDate       = 14 [json_name = "enterDate"]; |  | ||||||
|   float     WorkYear        = 15 [json_name = "workYear"]; |  | ||||||
|   string    Domain          = 16 [json_name = "domain"]; |  | ||||||
|   Extend    Extend          = 17 [json_name = "extend"]; |  | ||||||
|   string    JobNum          = 18 [json_name = "jobNum"]; |  | ||||||
|   string    BirthDate       = 19 [json_name = "birth_date"]; |  | ||||||
|   uint64    Age             = 20 [json_name = "age"]; |  | ||||||
|   uint64    Sex             = 21 [json_name = "sex"]; |  | ||||||
|   string    Title           = 22 [json_name = "title"]; |  | ||||||
|   repeated Department   Departments          = 23 [json_name = "departments"]; |  | ||||||
|   string    Ip              = 24 [json_name = "ip"]; |  | ||||||
|   string    LoginDate       = 25 [json_name = "loginDate"]; |  | ||||||
|   string    InvitationCode  = 26 [json_name = "invitationCode"]; |  | ||||||
|   uint64    NowLogId        = 27 [json_name = "nowLogId"]; |  | ||||||
|   bool      CanScan         = 28 [json_name = "canScan"]; |  | ||||||
|   string    LeftDate        = 29 [json_name = "leftDate"]; |  | ||||||
|   repeated  PositionUser  Positions = 30 [json_name = "positions"]; |  | ||||||
|   string    Remark        = 31 [json_name = "remark"]; |  | ||||||
|   string recentImg =32; |  | ||||||
|   repeated ClockUser clocks = 33; |  | ||||||
|   string mailAccount  = 34; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message RefreshTokenRequest { |  | ||||||
|   string    refreshToken    = 1 ; |  | ||||||
|   string    domain          = 2; |  | ||||||
|   string    ip              = 3 ; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message PositionUser { |  | ||||||
|   uint64            PositionID          = 1     [json_name = "positionID"]; |  | ||||||
|   string            PositionName        = 2     [json_name = "positionName"]; |  | ||||||
|   uint64            DepartmentId        = 3     [json_name = "departmentId"]; |  | ||||||
|   string            DepartmentCode      = 4     [json_name = "departmentCode"]; |  | ||||||
|   string            DepartmentName      = 5     [json_name = "departmentName"]; |  | ||||||
|   uint64            UserId              = 6     [json_name = "userId"]; |  | ||||||
|   string            UserName            = 7     [json_name = "userName"]; |  | ||||||
| } |  | ||||||
| message JobNumGetInfoRequest{ |  | ||||||
|   string jobNum = 1; |  | ||||||
|   string    domain          = 2; |  | ||||||
| } |  | ||||||
| message CreateClockDeviceRequest{ |  | ||||||
|   string deviceNum =1; |  | ||||||
|   string deviceName =2; |  | ||||||
|   string deviceSite = 3; |  | ||||||
| } |  | ||||||
| message UpdateClockDeviceRequest{ |  | ||||||
|   uint64 id = 1; |  | ||||||
|   string deviceNum =2; |  | ||||||
|   string deviceName =3; |  | ||||||
|   string deviceSite = 4; |  | ||||||
| } |  | ||||||
| message ClockDeviceResponse{ |  | ||||||
| 
 |  | ||||||
| } |  | ||||||
| message RemoveClockDeviceRequest{ |  | ||||||
|   uint64 id = 1; |  | ||||||
| } |  | ||||||
| message ClockDeviceListRequest{ |  | ||||||
|   uint64 id =1; |  | ||||||
|   string deviceSite = 2; |  | ||||||
|   string deviceNum = 3; |  | ||||||
|   string deviceName = 4; |  | ||||||
|   uint64 page = 5 ; |  | ||||||
|   uint64 pageSize = 6 ; |  | ||||||
|   repeated uint64 ids = 7; |  | ||||||
| } |  | ||||||
| message ClockDeviceListResponse{ |  | ||||||
|   uint64 count =1; |  | ||||||
|   repeated ClockDeviceInfo data = 2; |  | ||||||
| } |  | ||||||
| message ClockUser{ |  | ||||||
|   uint64 id       =1; |  | ||||||
|   string createdAt =2; |  | ||||||
|   string updatedAt =3; |  | ||||||
|   string deletedAt =4; |  | ||||||
|   uint64 deviceID  =5; |  | ||||||
|   uint64 userId    =6; |  | ||||||
|   uint64 status    =7; |  | ||||||
|   ClockDeviceInfo device = 8; |  | ||||||
| } |  | ||||||
| message ClockDeviceInfo { |  | ||||||
|   uint64 id = 1 ; |  | ||||||
|   string createAt = 2 ; |  | ||||||
|   string updateAt = 3 ; |  | ||||||
|   string deviceSite = 4; |  | ||||||
|   string deviceNum = 5; |  | ||||||
|   string deviceName = 6; |  | ||||||
|   uint64 userNum = 7; |  | ||||||
|   repeated ClockUserRel data = 8 ; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message ClockDeviceInfoResponse{ |  | ||||||
|   uint64 count = 1; |  | ||||||
|   repeated ClockUserRel data = 2 ; |  | ||||||
| } |  | ||||||
| message ClockUserRel { |  | ||||||
|   uint64    id = 1 ; |  | ||||||
|   string    createAt = 2 ; |  | ||||||
|   string    updateAt = 3; |  | ||||||
|   string    nickName = 4 ; |  | ||||||
|   string    jobNum = 5 ; |  | ||||||
| } |  | ||||||
| message ClockDeviceInfoRequest{ |  | ||||||
|   uint64 id = 1; |  | ||||||
|   uint64 page = 2 ; |  | ||||||
|   uint64 pageSize = 3 ; |  | ||||||
| } |  | ||||||
| message ClockBatchBindRequest{ |  | ||||||
|   uint64 id = 1; |  | ||||||
|   repeated uint64 userId = 2; |  | ||||||
|   repeated uint64 deviceId =3; |  | ||||||
| } |  | ||||||
| message ClockBatchListResponse{ |  | ||||||
|  repeated ClockUserDeviceBatch data = 1; |  | ||||||
| } |  | ||||||
| message ClockUserDeviceBatch{ |  | ||||||
|   uint64 userId = 1; |  | ||||||
|   uint64 deviceId = 2; |  | ||||||
|   string JobNum = 3; |  | ||||||
|   string deviceNum = 4; |  | ||||||
|   string deviceName = 5; |  | ||||||
| } |  | ||||||
| @ -1,428 +0,0 @@ | |||||||
| // Code generated by protoc-gen-gogo. DO NOT EDIT.
 |  | ||||||
| // source: api/account/account.proto
 |  | ||||||
| 
 |  | ||||||
| package account |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	fmt "fmt" |  | ||||||
| 	proto "github.com/golang/protobuf/proto" |  | ||||||
| 	_ "github.com/mwitkow/go-proto-validators" |  | ||||||
| 	github_com_mwitkow_go_proto_validators "github.com/mwitkow/go-proto-validators" |  | ||||||
| 	math "math" |  | ||||||
| 	regexp "regexp" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Reference imports to suppress errors if they are not otherwise used.
 |  | ||||||
| var _ = proto.Marshal |  | ||||||
| var _ = fmt.Errorf |  | ||||||
| var _ = math.Inf |  | ||||||
| 
 |  | ||||||
| func (this *MailAccountByNickNameRequest) Validate() error { |  | ||||||
| 	if this.Domain == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Domain", fmt.Errorf(`70001`)) |  | ||||||
| 	} |  | ||||||
| 	if this.NickName == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("NickName", fmt.Errorf(`70005`)) |  | ||||||
| 	} |  | ||||||
| 	if !(len(this.NickName) < 20) { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("NickName", fmt.Errorf(`70005`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *CreateMaiAccountRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *MaiAccountResponse) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *FddCreateUserRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *WxBoxUserInfoRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *WxGetOpenIdByCodeRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *WxGetOpenIdByCodeResponse) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *WxBoxTelNumByCodeResponse) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *WxBoxUserInfo) Validate() error { |  | ||||||
| 	if this.User != nil { |  | ||||||
| 		if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.User); err != nil { |  | ||||||
| 			return github_com_mwitkow_go_proto_validators.FieldError("User", err) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	if this.Fdd != nil { |  | ||||||
| 		if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Fdd); err != nil { |  | ||||||
| 			return github_com_mwitkow_go_proto_validators.FieldError("Fdd", err) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *FddInfo) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *UserInfo) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *CommonRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *WxAppRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *WxAppResponse) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *WxUserUpdateRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *WxUserOrCreateRequest) Validate() error { |  | ||||||
| 	if this.OpenID == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("OpenID", fmt.Errorf(`缺少openid`)) |  | ||||||
| 	} |  | ||||||
| 	if this.GhID == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("GhID", fmt.Errorf(`缺少参数ghid`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *WxUserResponse) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *LoginLogsResponse) Validate() error { |  | ||||||
| 	for _, item := range this.Data { |  | ||||||
| 		if item != nil { |  | ||||||
| 			if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { |  | ||||||
| 				return github_com_mwitkow_go_proto_validators.FieldError("Data", err) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *LoginLog) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *OnlineLogByIdRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *LoginInfosByUserIdRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *SendNewTelNumMsgRequest) Validate() error { |  | ||||||
| 	if this.Domain == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Domain", fmt.Errorf(`70001`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *UserByTelRequest) Validate() error { |  | ||||||
| 	if this.Domain == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Domain", fmt.Errorf(`70001`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *CommonResponse) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *UsersByTelRequest) Validate() error { |  | ||||||
| 	if this.Domain == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Domain", fmt.Errorf(`70001`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ListByIDsRequest) Validate() error { |  | ||||||
| 	if this.Domain == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Domain", fmt.Errorf(`70001`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| var _regex_SendMsgRequest_TelNum = regexp.MustCompile(`^1\d{10}$`) |  | ||||||
| 
 |  | ||||||
| func (this *SendMsgRequest) Validate() error { |  | ||||||
| 	if this.Domain == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Domain", fmt.Errorf(`70001`)) |  | ||||||
| 	} |  | ||||||
| 	if !_regex_SendMsgRequest_TelNum.MatchString(this.TelNum) { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("TelNum", fmt.Errorf(`70002`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| var _regex_SendCustomMsgRequest_TelNum = regexp.MustCompile(`^1\d{10}$`) |  | ||||||
| 
 |  | ||||||
| func (this *SendCustomMsgRequest) Validate() error { |  | ||||||
| 	if this.Domain == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Domain", fmt.Errorf(`70001`)) |  | ||||||
| 	} |  | ||||||
| 	if !_regex_SendCustomMsgRequest_TelNum.MatchString(this.TelNum) { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("TelNum", fmt.Errorf(`70002`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| var _regex_CheckMsgRequest_TelNum = regexp.MustCompile(`^1\d{10}$`) |  | ||||||
| 
 |  | ||||||
| func (this *CheckMsgRequest) Validate() error { |  | ||||||
| 	if this.Domain == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Domain", fmt.Errorf(`70001`)) |  | ||||||
| 	} |  | ||||||
| 	if !_regex_CheckMsgRequest_TelNum.MatchString(this.TelNum) { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("TelNum", fmt.Errorf(`70002`)) |  | ||||||
| 	} |  | ||||||
| 	if this.Code == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Code", fmt.Errorf(`70003`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *SendMsgStatusResponse) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *RemoveRequest) Validate() error { |  | ||||||
| 	if this.Domain == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Domain", fmt.Errorf(`70001`)) |  | ||||||
| 	} |  | ||||||
| 	if !(this.ID > 0) { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("ID", fmt.Errorf(`70004`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *RemoveResponse) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *UpdateRequest) Validate() error { |  | ||||||
| 	if this.Domain == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Domain", fmt.Errorf(`70001`)) |  | ||||||
| 	} |  | ||||||
| 	if this.Extend != nil { |  | ||||||
| 		if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Extend); err != nil { |  | ||||||
| 			return github_com_mwitkow_go_proto_validators.FieldError("Extend", err) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *UpdateResponse) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *PrivacyInfoRequest) Validate() error { |  | ||||||
| 	if this.Domain == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Domain", fmt.Errorf(`70001`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ListRequest) Validate() error { |  | ||||||
| 	if this.Domain == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Domain", fmt.Errorf(`70001`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ListResponse) Validate() error { |  | ||||||
| 	for _, item := range this.Data { |  | ||||||
| 		if item != nil { |  | ||||||
| 			if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { |  | ||||||
| 				return github_com_mwitkow_go_proto_validators.FieldError("Data", err) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *InfoRequest) Validate() error { |  | ||||||
| 	if this.Domain == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Domain", fmt.Errorf(`70001`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *InfoResponse) Validate() error { |  | ||||||
| 	if this.Info != nil { |  | ||||||
| 		if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Info); err != nil { |  | ||||||
| 			return github_com_mwitkow_go_proto_validators.FieldError("Info", err) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *DecryptJwtResponse) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *DecryptJwtRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *CheckPwdRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *AuthenticationRequest) Validate() error { |  | ||||||
| 	if !(len(this.IDNum) == 18) { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("IDNum", fmt.Errorf(`70006`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *RequestStatus) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| var _regex_RegistRequest_TelNum = regexp.MustCompile(`^1\d{10}$`) |  | ||||||
| 
 |  | ||||||
| func (this *RegistRequest) Validate() error { |  | ||||||
| 	if this.Domain == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Domain", fmt.Errorf(`70001`)) |  | ||||||
| 	} |  | ||||||
| 	if this.NickName == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("NickName", fmt.Errorf(`70005`)) |  | ||||||
| 	} |  | ||||||
| 	if !(len(this.NickName) < 20) { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("NickName", fmt.Errorf(`70005`)) |  | ||||||
| 	} |  | ||||||
| 	if !_regex_RegistRequest_TelNum.MatchString(this.TelNum) { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("TelNum", fmt.Errorf(`70002`)) |  | ||||||
| 	} |  | ||||||
| 	if !(len(this.Password) > 5) { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Password", fmt.Errorf(`70007`)) |  | ||||||
| 	} |  | ||||||
| 	if this.Extend != nil { |  | ||||||
| 		if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Extend); err != nil { |  | ||||||
| 			return github_com_mwitkow_go_proto_validators.FieldError("Extend", err) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| var _regex_LoginRequest_TelNum = regexp.MustCompile(`^1\d{10}$`) |  | ||||||
| 
 |  | ||||||
| func (this *LoginRequest) Validate() error { |  | ||||||
| 	if this.Domain == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Domain", fmt.Errorf(`70001`)) |  | ||||||
| 	} |  | ||||||
| 	if !_regex_LoginRequest_TelNum.MatchString(this.TelNum) { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("TelNum", fmt.Errorf(`70002`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *TokenInfo) Validate() error { |  | ||||||
| 	if this.AccountInfo != nil { |  | ||||||
| 		if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.AccountInfo); err != nil { |  | ||||||
| 			return github_com_mwitkow_go_proto_validators.FieldError("AccountInfo", err) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *Extend) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *Department) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *AccountInfo) Validate() error { |  | ||||||
| 	if this.Extend != nil { |  | ||||||
| 		if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Extend); err != nil { |  | ||||||
| 			return github_com_mwitkow_go_proto_validators.FieldError("Extend", err) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	for _, item := range this.Departments { |  | ||||||
| 		if item != nil { |  | ||||||
| 			if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { |  | ||||||
| 				return github_com_mwitkow_go_proto_validators.FieldError("Departments", err) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	for _, item := range this.Positions { |  | ||||||
| 		if item != nil { |  | ||||||
| 			if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { |  | ||||||
| 				return github_com_mwitkow_go_proto_validators.FieldError("Positions", err) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	for _, item := range this.Clocks { |  | ||||||
| 		if item != nil { |  | ||||||
| 			if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { |  | ||||||
| 				return github_com_mwitkow_go_proto_validators.FieldError("Clocks", err) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *RefreshTokenRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *PositionUser) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *JobNumGetInfoRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *CreateClockDeviceRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *UpdateClockDeviceRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ClockDeviceResponse) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *RemoveClockDeviceRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ClockDeviceListRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ClockDeviceListResponse) Validate() error { |  | ||||||
| 	for _, item := range this.Data { |  | ||||||
| 		if item != nil { |  | ||||||
| 			if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { |  | ||||||
| 				return github_com_mwitkow_go_proto_validators.FieldError("Data", err) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ClockUser) Validate() error { |  | ||||||
| 	if this.Device != nil { |  | ||||||
| 		if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Device); err != nil { |  | ||||||
| 			return github_com_mwitkow_go_proto_validators.FieldError("Device", err) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ClockDeviceInfo) Validate() error { |  | ||||||
| 	for _, item := range this.Data { |  | ||||||
| 		if item != nil { |  | ||||||
| 			if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { |  | ||||||
| 				return github_com_mwitkow_go_proto_validators.FieldError("Data", err) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ClockDeviceInfoResponse) Validate() error { |  | ||||||
| 	for _, item := range this.Data { |  | ||||||
| 		if item != nil { |  | ||||||
| 			if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { |  | ||||||
| 				return github_com_mwitkow_go_proto_validators.FieldError("Data", err) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ClockUserRel) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ClockDeviceInfoRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ClockBatchBindRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ClockBatchListResponse) Validate() error { |  | ||||||
| 	for _, item := range this.Data { |  | ||||||
| 		if item != nil { |  | ||||||
| 			if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { |  | ||||||
| 				return github_com_mwitkow_go_proto_validators.FieldError("Data", err) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ClockUserDeviceBatch) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										10283
									
								
								api/artist/artist.pb.go
									
									
									
									
									
								
							
							
						
						
									
										10283
									
								
								api/artist/artist.pb.go
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -1,604 +0,0 @@ | |||||||
| // Code generated by protoc-gen-gogo. DO NOT EDIT.
 |  | ||||||
| // source: pb/artist.proto
 |  | ||||||
| 
 |  | ||||||
| package artist |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	fmt "fmt" |  | ||||||
| 	proto "github.com/golang/protobuf/proto" |  | ||||||
| 	_ "github.com/mwitkow/go-proto-validators" |  | ||||||
| 	github_com_mwitkow_go_proto_validators "github.com/mwitkow/go-proto-validators" |  | ||||||
| 	_ "google.golang.org/protobuf/types/descriptorpb" |  | ||||||
| 	_ "google.golang.org/protobuf/types/known/emptypb" |  | ||||||
| 	math "math" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Reference imports to suppress errors if they are not otherwise used.
 |  | ||||||
| var _ = proto.Marshal |  | ||||||
| var _ = fmt.Errorf |  | ||||||
| var _ = math.Inf |  | ||||||
| 
 |  | ||||||
| func (this *ArtistListRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ArtistListResponse) Validate() error { |  | ||||||
| 	for _, item := range this.Data { |  | ||||||
| 		if item != nil { |  | ||||||
| 			if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { |  | ||||||
| 				return github_com_mwitkow_go_proto_validators.FieldError("Data", err) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ProfileRequest) Validate() error { |  | ||||||
| 	if this.Name == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Name", fmt.Errorf(`画家名字不能为空`)) |  | ||||||
| 	} |  | ||||||
| 	if !(this.JoinShow > 0) { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("JoinShow", fmt.Errorf(`请选择是否参加画展`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ProfileResponse) Validate() error { |  | ||||||
| 	if this.DataInfo != nil { |  | ||||||
| 		if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.DataInfo); err != nil { |  | ||||||
| 			return github_com_mwitkow_go_proto_validators.FieldError("DataInfo", err) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ProfileResponse_Data) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *MediaRequest) Validate() error { |  | ||||||
| 	if this.Uid == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Uid", fmt.Errorf(`画家Id不能为空`)) |  | ||||||
| 	} |  | ||||||
| 	for _, item := range this.InterviewVideos { |  | ||||||
| 		if item != nil { |  | ||||||
| 			if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { |  | ||||||
| 				return github_com_mwitkow_go_proto_validators.FieldError("InterviewVideos", err) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	for _, item := range this.ThirdPartyVideos { |  | ||||||
| 		if item != nil { |  | ||||||
| 			if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { |  | ||||||
| 				return github_com_mwitkow_go_proto_validators.FieldError("ThirdPartyVideos", err) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *MediaRequest_VideosMap) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *IndexRequest) Validate() error { |  | ||||||
| 	if this.Uid == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Uid", fmt.Errorf(`画家Id不能为空`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *IndexResponse) Validate() error { |  | ||||||
| 	if this.DataInfo != nil { |  | ||||||
| 		if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.DataInfo); err != nil { |  | ||||||
| 			return github_com_mwitkow_go_proto_validators.FieldError("DataInfo", err) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *IndexResponse_Data) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *MediaResponse) Validate() error { |  | ||||||
| 	if this.DataInfo != nil { |  | ||||||
| 		if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.DataInfo); err != nil { |  | ||||||
| 			return github_com_mwitkow_go_proto_validators.FieldError("DataInfo", err) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *MediaResponse_Data) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *HonorRequest) Validate() error { |  | ||||||
| 	if this.Uid == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Uid", fmt.Errorf(`画家Id不能为空`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *HonorResponse) Validate() error { |  | ||||||
| 	if this.DataInfo != nil { |  | ||||||
| 		if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.DataInfo); err != nil { |  | ||||||
| 			return github_com_mwitkow_go_proto_validators.FieldError("DataInfo", err) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *HonorResponse_HonorResData) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *UploadMediaRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *UploadMediaResponse) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *DetailRequest) Validate() error { |  | ||||||
| 	if this.Uid == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Uid", fmt.Errorf(`画家Id不能为空`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *DetailResponse) Validate() error { |  | ||||||
| 	if this.ProfileInfo != nil { |  | ||||||
| 		if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.ProfileInfo); err != nil { |  | ||||||
| 			return github_com_mwitkow_go_proto_validators.FieldError("ProfileInfo", err) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	if this.MediaInfo != nil { |  | ||||||
| 		if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.MediaInfo); err != nil { |  | ||||||
| 			return github_com_mwitkow_go_proto_validators.FieldError("MediaInfo", err) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	for _, item := range this.HonorInfo { |  | ||||||
| 		if item != nil { |  | ||||||
| 			if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { |  | ||||||
| 				return github_com_mwitkow_go_proto_validators.FieldError("HonorInfo", err) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *DelRequest) Validate() error { |  | ||||||
| 	if this.Uid == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Uid", fmt.Errorf(`画家Id不能为空`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *DelResponse) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *HonorDelRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *HonorDelResponse) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ArtistInfo) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *CreateArtistBatchRequest) Validate() error { |  | ||||||
| 	for _, item := range this.ArtistInfoBatch { |  | ||||||
| 		if item != nil { |  | ||||||
| 			if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { |  | ||||||
| 				return github_com_mwitkow_go_proto_validators.FieldError("ArtistInfoBatch", err) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *CreateArtistBatchResponse) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ArtIdNameRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ArtIdNameResponse) Validate() error { |  | ||||||
| 	for _, item := range this.Items { |  | ||||||
| 		if item != nil { |  | ||||||
| 			if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { |  | ||||||
| 				return github_com_mwitkow_go_proto_validators.FieldError("Items", err) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ArtIdNameResponse_IdKvName) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ArtistInfoRequest) Validate() error { |  | ||||||
| 	if this.Uid == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Uid", fmt.Errorf(`画家Id不能为空`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ArtistInfoResponse) Validate() error { |  | ||||||
| 	if this.ProfileInfo != nil { |  | ||||||
| 		if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.ProfileInfo); err != nil { |  | ||||||
| 			return github_com_mwitkow_go_proto_validators.FieldError("ProfileInfo", err) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	if this.MediaRequest != nil { |  | ||||||
| 		if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.MediaRequest); err != nil { |  | ||||||
| 			return github_com_mwitkow_go_proto_validators.FieldError("MediaRequest", err) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	if this.ArtistChainInfo != nil { |  | ||||||
| 		if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.ArtistChainInfo); err != nil { |  | ||||||
| 			return github_com_mwitkow_go_proto_validators.FieldError("ArtistChainInfo", err) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ArtistInfoResponse_ArtistChainField) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ArtistDataRequest) Validate() error { |  | ||||||
| 	for _, item := range this.Uids { |  | ||||||
| 		if item == "" { |  | ||||||
| 			return github_com_mwitkow_go_proto_validators.FieldError("Uids", fmt.Errorf(`画家Id不能为空`)) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ArtistDataResponse) Validate() error { |  | ||||||
| 	for _, item := range this.Data { |  | ||||||
| 		if item != nil { |  | ||||||
| 			if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { |  | ||||||
| 				return github_com_mwitkow_go_proto_validators.FieldError("Data", err) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ArtistDataResponseInfo) Validate() error { |  | ||||||
| 	if this.ProfileInfo != nil { |  | ||||||
| 		if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.ProfileInfo); err != nil { |  | ||||||
| 			return github_com_mwitkow_go_proto_validators.FieldError("ProfileInfo", err) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	if this.MediaRequest != nil { |  | ||||||
| 		if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.MediaRequest); err != nil { |  | ||||||
| 			return github_com_mwitkow_go_proto_validators.FieldError("MediaRequest", err) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *InvitationAddRequest) Validate() error { |  | ||||||
| 	for _, item := range this.ArtistUuids { |  | ||||||
| 		if item == "" { |  | ||||||
| 			return github_com_mwitkow_go_proto_validators.FieldError("ArtistUuids", fmt.Errorf(`请选择画家`)) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	if this.Address == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Address", fmt.Errorf(`地址不能为空`)) |  | ||||||
| 	} |  | ||||||
| 	if this.InvitationDesc == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("InvitationDesc", fmt.Errorf(`邀请函主题不能为空`)) |  | ||||||
| 	} |  | ||||||
| 	if this.ShowDesc == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("ShowDesc", fmt.Errorf(`画展主题不能为空`)) |  | ||||||
| 	} |  | ||||||
| 	if this.ShowTime == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("ShowTime", fmt.Errorf(`时间不能为空`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *InvitationAddResponse) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *InvitationUpdateRequest) Validate() error { |  | ||||||
| 	if this.Uuid == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Uuid", fmt.Errorf(`标识错误`)) |  | ||||||
| 	} |  | ||||||
| 	if this.ArtistUuid == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("ArtistUuid", fmt.Errorf(`请选择画家`)) |  | ||||||
| 	} |  | ||||||
| 	if this.Address == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Address", fmt.Errorf(`地址不能为空`)) |  | ||||||
| 	} |  | ||||||
| 	if this.InvitationDesc == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("InvitationDesc", fmt.Errorf(`邀请函主题不能为空`)) |  | ||||||
| 	} |  | ||||||
| 	if this.ShowDesc == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("ShowDesc", fmt.Errorf(`画展主题不能为空`)) |  | ||||||
| 	} |  | ||||||
| 	if this.ShowTime == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("ShowTime", fmt.Errorf(`时间不能为空`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *InvitationUpdateResponse) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *InvitationDelRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *InvitationDelResponse) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *InvitationListRequest) Validate() error { |  | ||||||
| 	if this.ArtistUuid == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("ArtistUuid", fmt.Errorf(`请选择画家`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *InvitationListResponse) Validate() error { |  | ||||||
| 	for _, item := range this.Data { |  | ||||||
| 		if item != nil { |  | ||||||
| 			if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { |  | ||||||
| 				return github_com_mwitkow_go_proto_validators.FieldError("Data", err) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *InvitationInfoRequest) Validate() error { |  | ||||||
| 	if this.Uuid == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Uuid", fmt.Errorf(`请选择数据`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *InvitationInfoResponse) Validate() error { |  | ||||||
| 	if this.Info != nil { |  | ||||||
| 		if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Info); err != nil { |  | ||||||
| 			return github_com_mwitkow_go_proto_validators.FieldError("Info", err) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ContractAddRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ContractAddResponse) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ContractUpdateResponse) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ContractListRequest) Validate() error { |  | ||||||
| 	if this.Uid == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Uid", fmt.Errorf(`请选择画家`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ContractListResponse) Validate() error { |  | ||||||
| 	for _, item := range this.Data { |  | ||||||
| 		if item != nil { |  | ||||||
| 			if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { |  | ||||||
| 				return github_com_mwitkow_go_proto_validators.FieldError("Data", err) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ArtistChainUpdateRequest) Validate() error { |  | ||||||
| 	if this.ArtistUuid == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("ArtistUuid", fmt.Errorf(`请选择画家`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ArtistChainUpdateResponse) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ExportArtistRequest) Validate() error { |  | ||||||
| 	if this.ColumnId == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("ColumnId", fmt.Errorf(`请选择字段`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ExportArtistResponse) Validate() error { |  | ||||||
| 	for _, item := range this.Data { |  | ||||||
| 		if item != nil { |  | ||||||
| 			if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { |  | ||||||
| 				return github_com_mwitkow_go_proto_validators.FieldError("Data", err) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ExportArtistResponse_Info) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ExportFieldListRequest) Validate() error { |  | ||||||
| 	if !(this.ExportType > 0) { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("ExportType", fmt.Errorf(`导出类型必须大于0`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ExportFieldListResponse) Validate() error { |  | ||||||
| 	for _, item := range this.Data { |  | ||||||
| 		if item != nil { |  | ||||||
| 			if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { |  | ||||||
| 				return github_com_mwitkow_go_proto_validators.FieldError("Data", err) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ExportFieldListResponse_Info) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *GetInfoByUuidsRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *GetInfoByUuidsResponse) Validate() error { |  | ||||||
| 	for _, item := range this.Data { |  | ||||||
| 		if item != nil { |  | ||||||
| 			if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { |  | ||||||
| 				return github_com_mwitkow_go_proto_validators.FieldError("Data", err) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *GetInfoByUuidsResponse_Info) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *GetCardIdWithImgReq) Validate() error { |  | ||||||
| 	if this.CardFace == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("CardFace", fmt.Errorf(`身份证照片不能为空`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *GetCardIdWithImgResp) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ArtistDetailDataReq) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ArtistDetailDataResp) Validate() error { |  | ||||||
| 	for _, item := range this.Data { |  | ||||||
| 		if item != nil { |  | ||||||
| 			if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { |  | ||||||
| 				return github_com_mwitkow_go_proto_validators.FieldError("Data", err) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *ArtistDetailDataResp_Info) Validate() error { |  | ||||||
| 	if this.ProfileInfo != nil { |  | ||||||
| 		if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.ProfileInfo); err != nil { |  | ||||||
| 			return github_com_mwitkow_go_proto_validators.FieldError("ProfileInfo", err) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	if this.MediaInfo != nil { |  | ||||||
| 		if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.MediaInfo); err != nil { |  | ||||||
| 			return github_com_mwitkow_go_proto_validators.FieldError("MediaInfo", err) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	for _, item := range this.HonorInfo { |  | ||||||
| 		if item != nil { |  | ||||||
| 			if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { |  | ||||||
| 				return github_com_mwitkow_go_proto_validators.FieldError("HonorInfo", err) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *IdcardConvertArtistIdRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *IdcardConvertArtistIdResponse) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *CheckCaaCertNumRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *CheckCaaCertNumResponse) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *UpdateInsourceReq) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *UpdateInsourceNoneResp) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *DelContractReq) Validate() error { |  | ||||||
| 	if !(this.Id > 0) { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Id", fmt.Errorf(`合同唯一标识缺失`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *DelContractResp) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *FindArtistUsePhoneRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *OneQueryReq) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *OneQueryResp) Validate() error { |  | ||||||
| 	for _, item := range this.Data { |  | ||||||
| 		if item != nil { |  | ||||||
| 			if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { |  | ||||||
| 				return github_com_mwitkow_go_proto_validators.FieldError("Data", err) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *OneQueryResp_Info) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *AddIndexesLogReq) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *IndexesLogReq) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *IndexesLogResp) Validate() error { |  | ||||||
| 	for _, item := range this.SendLog { |  | ||||||
| 		if item != nil { |  | ||||||
| 			if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { |  | ||||||
| 				return github_com_mwitkow_go_proto_validators.FieldError("SendLog", err) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	for _, item := range this.EditLog { |  | ||||||
| 		if item != nil { |  | ||||||
| 			if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { |  | ||||||
| 				return github_com_mwitkow_go_proto_validators.FieldError("EditLog", err) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *IndexesLogResp_SendInfo) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *IndexesLogResp_EditInfo) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *GetIndexRequest) Validate() error { |  | ||||||
| 	if this.Uid == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("Uid", fmt.Errorf(`画家Id不能为空`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *GetIndexDataResp) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *SaveCertInfoRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *SaveCertInfoResponse) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *CreateChainMnemonicRequest) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *CreateChainMnemonicResponse) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *HonorCountReq) Validate() error { |  | ||||||
| 	if this.ArtistUid == "" { |  | ||||||
| 		return github_com_mwitkow_go_proto_validators.FieldError("ArtistUid", fmt.Errorf(`画家ID不能为空`)) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *HonorCountResp) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *LowArtist) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *LowArtistListReq) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *LowArtistListResp) Validate() error { |  | ||||||
| 	for _, item := range this.Data { |  | ||||||
| 		if item != nil { |  | ||||||
| 			if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { |  | ||||||
| 				return github_com_mwitkow_go_proto_validators.FieldError("Data", err) |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *BatchUpdLowArtistReq) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *SaveLowArtistResp) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *OneQueryAuditReq) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (this *OneQueryAuditResp) Validate() error { |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -1,862 +0,0 @@ | |||||||
| syntax = "proto2"; |  | ||||||
| package validate; |  | ||||||
| 
 |  | ||||||
| option go_package = "github.com/envoyproxy/protoc-gen-validate/validate"; |  | ||||||
| option java_package = "io.envoyproxy.pgv.validate"; |  | ||||||
| 
 |  | ||||||
| import "google/protobuf/descriptor.proto"; |  | ||||||
| import "google/protobuf/duration.proto"; |  | ||||||
| import "google/protobuf/timestamp.proto"; |  | ||||||
| 
 |  | ||||||
| // Validation rules applied at the message level |  | ||||||
| extend google.protobuf.MessageOptions { |  | ||||||
|   // Disabled nullifies any validation rules for this message, including any |  | ||||||
|   // message fields associated with it that do support validation. |  | ||||||
|   optional bool disabled = 1071; |  | ||||||
|   // Ignore skips generation of validation methods for this message. |  | ||||||
|   optional bool ignored = 1072; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Validation rules applied at the oneof level |  | ||||||
| extend google.protobuf.OneofOptions { |  | ||||||
|   // Required ensures that exactly one the field options in a oneof is set; |  | ||||||
|   // validation fails if no fields in the oneof are set. |  | ||||||
|   optional bool required = 1071; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Validation rules applied at the field level |  | ||||||
| extend google.protobuf.FieldOptions { |  | ||||||
|   // Rules specify the validations to be performed on this field. By default, |  | ||||||
|   // no validation is performed against a field. |  | ||||||
|   optional FieldRules rules = 1071; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // FieldRules encapsulates the rules for each type of field. Depending on the |  | ||||||
| // field, the correct set should be used to ensure proper validations. |  | ||||||
| message FieldRules { |  | ||||||
|   optional MessageRules message = 17; |  | ||||||
|   oneof type { |  | ||||||
|     // Scalar Field Types |  | ||||||
|     FloatRules    float    = 1; |  | ||||||
|     DoubleRules   double   = 2; |  | ||||||
|     Int32Rules    int32    = 3; |  | ||||||
|     Int64Rules    int64    = 4; |  | ||||||
|     UInt32Rules   uint32   = 5; |  | ||||||
|     UInt64Rules   uint64   = 6; |  | ||||||
|     SInt32Rules   sint32   = 7; |  | ||||||
|     SInt64Rules   sint64   = 8; |  | ||||||
|     Fixed32Rules  fixed32  = 9; |  | ||||||
|     Fixed64Rules  fixed64  = 10; |  | ||||||
|     SFixed32Rules sfixed32 = 11; |  | ||||||
|     SFixed64Rules sfixed64 = 12; |  | ||||||
|     BoolRules     bool     = 13; |  | ||||||
|     StringRules   string   = 14; |  | ||||||
|     BytesRules    bytes    = 15; |  | ||||||
| 
 |  | ||||||
|     // Complex Field Types |  | ||||||
|     EnumRules     enum     = 16; |  | ||||||
|     RepeatedRules repeated = 18; |  | ||||||
|     MapRules      map      = 19; |  | ||||||
| 
 |  | ||||||
|     // Well-Known Field Types |  | ||||||
|     AnyRules       any       = 20; |  | ||||||
|     DurationRules  duration  = 21; |  | ||||||
|     TimestampRules timestamp = 22; |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // FloatRules describes the constraints applied to `float` values |  | ||||||
| message FloatRules { |  | ||||||
|   // Const specifies that this field must be exactly the specified value |  | ||||||
|   optional float const = 1; |  | ||||||
| 
 |  | ||||||
|   // Lt specifies that this field must be less than the specified value, |  | ||||||
|   // exclusive |  | ||||||
|   optional float lt = 2; |  | ||||||
| 
 |  | ||||||
|   // Lte specifies that this field must be less than or equal to the |  | ||||||
|   // specified value, inclusive |  | ||||||
|   optional float lte = 3; |  | ||||||
| 
 |  | ||||||
|   // Gt specifies that this field must be greater than the specified value, |  | ||||||
|   // exclusive. If the value of Gt is larger than a specified Lt or Lte, the |  | ||||||
|   // range is reversed. |  | ||||||
|   optional float gt = 4; |  | ||||||
| 
 |  | ||||||
|   // Gte specifies that this field must be greater than or equal to the |  | ||||||
|   // specified value, inclusive. If the value of Gte is larger than a |  | ||||||
|   // specified Lt or Lte, the range is reversed. |  | ||||||
|   optional float gte = 5; |  | ||||||
| 
 |  | ||||||
|   // In specifies that this field must be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated float in = 6; |  | ||||||
| 
 |  | ||||||
|   // NotIn specifies that this field cannot be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated float not_in = 7; |  | ||||||
| 
 |  | ||||||
|   // IgnoreEmpty specifies that the validation rules of this field should be |  | ||||||
|   // evaluated only if the field is not empty |  | ||||||
|   optional bool ignore_empty = 8; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // DoubleRules describes the constraints applied to `double` values |  | ||||||
| message DoubleRules { |  | ||||||
|   // Const specifies that this field must be exactly the specified value |  | ||||||
|   optional double const = 1; |  | ||||||
| 
 |  | ||||||
|   // Lt specifies that this field must be less than the specified value, |  | ||||||
|   // exclusive |  | ||||||
|   optional double lt = 2; |  | ||||||
| 
 |  | ||||||
|   // Lte specifies that this field must be less than or equal to the |  | ||||||
|   // specified value, inclusive |  | ||||||
|   optional double lte = 3; |  | ||||||
| 
 |  | ||||||
|   // Gt specifies that this field must be greater than the specified value, |  | ||||||
|   // exclusive. If the value of Gt is larger than a specified Lt or Lte, the |  | ||||||
|   // range is reversed. |  | ||||||
|   optional double gt = 4; |  | ||||||
| 
 |  | ||||||
|   // Gte specifies that this field must be greater than or equal to the |  | ||||||
|   // specified value, inclusive. If the value of Gte is larger than a |  | ||||||
|   // specified Lt or Lte, the range is reversed. |  | ||||||
|   optional double gte = 5; |  | ||||||
| 
 |  | ||||||
|   // In specifies that this field must be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated double in = 6; |  | ||||||
| 
 |  | ||||||
|   // NotIn specifies that this field cannot be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated double not_in = 7; |  | ||||||
| 
 |  | ||||||
|   // IgnoreEmpty specifies that the validation rules of this field should be |  | ||||||
|   // evaluated only if the field is not empty |  | ||||||
|   optional bool ignore_empty = 8; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Int32Rules describes the constraints applied to `int32` values |  | ||||||
| message Int32Rules { |  | ||||||
|   // Const specifies that this field must be exactly the specified value |  | ||||||
|   optional int32 const = 1; |  | ||||||
| 
 |  | ||||||
|   // Lt specifies that this field must be less than the specified value, |  | ||||||
|   // exclusive |  | ||||||
|   optional int32 lt = 2; |  | ||||||
| 
 |  | ||||||
|   // Lte specifies that this field must be less than or equal to the |  | ||||||
|   // specified value, inclusive |  | ||||||
|   optional int32 lte = 3; |  | ||||||
| 
 |  | ||||||
|   // Gt specifies that this field must be greater than the specified value, |  | ||||||
|   // exclusive. If the value of Gt is larger than a specified Lt or Lte, the |  | ||||||
|   // range is reversed. |  | ||||||
|   optional int32 gt = 4; |  | ||||||
| 
 |  | ||||||
|   // Gte specifies that this field must be greater than or equal to the |  | ||||||
|   // specified value, inclusive. If the value of Gte is larger than a |  | ||||||
|   // specified Lt or Lte, the range is reversed. |  | ||||||
|   optional int32 gte = 5; |  | ||||||
| 
 |  | ||||||
|   // In specifies that this field must be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated int32 in = 6; |  | ||||||
| 
 |  | ||||||
|   // NotIn specifies that this field cannot be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated int32 not_in = 7; |  | ||||||
| 
 |  | ||||||
|   // IgnoreEmpty specifies that the validation rules of this field should be |  | ||||||
|   // evaluated only if the field is not empty |  | ||||||
|   optional bool ignore_empty = 8; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Int64Rules describes the constraints applied to `int64` values |  | ||||||
| message Int64Rules { |  | ||||||
|   // Const specifies that this field must be exactly the specified value |  | ||||||
|   optional int64 const = 1; |  | ||||||
| 
 |  | ||||||
|   // Lt specifies that this field must be less than the specified value, |  | ||||||
|   // exclusive |  | ||||||
|   optional int64 lt = 2; |  | ||||||
| 
 |  | ||||||
|   // Lte specifies that this field must be less than or equal to the |  | ||||||
|   // specified value, inclusive |  | ||||||
|   optional int64 lte = 3; |  | ||||||
| 
 |  | ||||||
|   // Gt specifies that this field must be greater than the specified value, |  | ||||||
|   // exclusive. If the value of Gt is larger than a specified Lt or Lte, the |  | ||||||
|   // range is reversed. |  | ||||||
|   optional int64 gt = 4; |  | ||||||
| 
 |  | ||||||
|   // Gte specifies that this field must be greater than or equal to the |  | ||||||
|   // specified value, inclusive. If the value of Gte is larger than a |  | ||||||
|   // specified Lt or Lte, the range is reversed. |  | ||||||
|   optional int64 gte = 5; |  | ||||||
| 
 |  | ||||||
|   // In specifies that this field must be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated int64 in = 6; |  | ||||||
| 
 |  | ||||||
|   // NotIn specifies that this field cannot be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated int64 not_in = 7; |  | ||||||
| 
 |  | ||||||
|   // IgnoreEmpty specifies that the validation rules of this field should be |  | ||||||
|   // evaluated only if the field is not empty |  | ||||||
|   optional bool ignore_empty = 8; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // UInt32Rules describes the constraints applied to `uint32` values |  | ||||||
| message UInt32Rules { |  | ||||||
|   // Const specifies that this field must be exactly the specified value |  | ||||||
|   optional uint32 const = 1; |  | ||||||
| 
 |  | ||||||
|   // Lt specifies that this field must be less than the specified value, |  | ||||||
|   // exclusive |  | ||||||
|   optional uint32 lt = 2; |  | ||||||
| 
 |  | ||||||
|   // Lte specifies that this field must be less than or equal to the |  | ||||||
|   // specified value, inclusive |  | ||||||
|   optional uint32 lte = 3; |  | ||||||
| 
 |  | ||||||
|   // Gt specifies that this field must be greater than the specified value, |  | ||||||
|   // exclusive. If the value of Gt is larger than a specified Lt or Lte, the |  | ||||||
|   // range is reversed. |  | ||||||
|   optional uint32 gt = 4; |  | ||||||
| 
 |  | ||||||
|   // Gte specifies that this field must be greater than or equal to the |  | ||||||
|   // specified value, inclusive. If the value of Gte is larger than a |  | ||||||
|   // specified Lt or Lte, the range is reversed. |  | ||||||
|   optional uint32 gte = 5; |  | ||||||
| 
 |  | ||||||
|   // In specifies that this field must be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated uint32 in = 6; |  | ||||||
| 
 |  | ||||||
|   // NotIn specifies that this field cannot be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated uint32 not_in = 7; |  | ||||||
| 
 |  | ||||||
|   // IgnoreEmpty specifies that the validation rules of this field should be |  | ||||||
|   // evaluated only if the field is not empty |  | ||||||
|   optional bool ignore_empty = 8; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // UInt64Rules describes the constraints applied to `uint64` values |  | ||||||
| message UInt64Rules { |  | ||||||
|   // Const specifies that this field must be exactly the specified value |  | ||||||
|   optional uint64 const = 1; |  | ||||||
| 
 |  | ||||||
|   // Lt specifies that this field must be less than the specified value, |  | ||||||
|   // exclusive |  | ||||||
|   optional uint64 lt = 2; |  | ||||||
| 
 |  | ||||||
|   // Lte specifies that this field must be less than or equal to the |  | ||||||
|   // specified value, inclusive |  | ||||||
|   optional uint64 lte = 3; |  | ||||||
| 
 |  | ||||||
|   // Gt specifies that this field must be greater than the specified value, |  | ||||||
|   // exclusive. If the value of Gt is larger than a specified Lt or Lte, the |  | ||||||
|   // range is reversed. |  | ||||||
|   optional uint64 gt = 4; |  | ||||||
| 
 |  | ||||||
|   // Gte specifies that this field must be greater than or equal to the |  | ||||||
|   // specified value, inclusive. If the value of Gte is larger than a |  | ||||||
|   // specified Lt or Lte, the range is reversed. |  | ||||||
|   optional uint64 gte = 5; |  | ||||||
| 
 |  | ||||||
|   // In specifies that this field must be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated uint64 in = 6; |  | ||||||
| 
 |  | ||||||
|   // NotIn specifies that this field cannot be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated uint64 not_in = 7; |  | ||||||
| 
 |  | ||||||
|   // IgnoreEmpty specifies that the validation rules of this field should be |  | ||||||
|   // evaluated only if the field is not empty |  | ||||||
|   optional bool ignore_empty = 8; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // SInt32Rules describes the constraints applied to `sint32` values |  | ||||||
| message SInt32Rules { |  | ||||||
|   // Const specifies that this field must be exactly the specified value |  | ||||||
|   optional sint32 const = 1; |  | ||||||
| 
 |  | ||||||
|   // Lt specifies that this field must be less than the specified value, |  | ||||||
|   // exclusive |  | ||||||
|   optional sint32 lt = 2; |  | ||||||
| 
 |  | ||||||
|   // Lte specifies that this field must be less than or equal to the |  | ||||||
|   // specified value, inclusive |  | ||||||
|   optional sint32 lte = 3; |  | ||||||
| 
 |  | ||||||
|   // Gt specifies that this field must be greater than the specified value, |  | ||||||
|   // exclusive. If the value of Gt is larger than a specified Lt or Lte, the |  | ||||||
|   // range is reversed. |  | ||||||
|   optional sint32 gt = 4; |  | ||||||
| 
 |  | ||||||
|   // Gte specifies that this field must be greater than or equal to the |  | ||||||
|   // specified value, inclusive. If the value of Gte is larger than a |  | ||||||
|   // specified Lt or Lte, the range is reversed. |  | ||||||
|   optional sint32 gte = 5; |  | ||||||
| 
 |  | ||||||
|   // In specifies that this field must be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated sint32 in = 6; |  | ||||||
| 
 |  | ||||||
|   // NotIn specifies that this field cannot be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated sint32 not_in = 7; |  | ||||||
| 
 |  | ||||||
|   // IgnoreEmpty specifies that the validation rules of this field should be |  | ||||||
|   // evaluated only if the field is not empty |  | ||||||
|   optional bool ignore_empty = 8; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // SInt64Rules describes the constraints applied to `sint64` values |  | ||||||
| message SInt64Rules { |  | ||||||
|   // Const specifies that this field must be exactly the specified value |  | ||||||
|   optional sint64 const = 1; |  | ||||||
| 
 |  | ||||||
|   // Lt specifies that this field must be less than the specified value, |  | ||||||
|   // exclusive |  | ||||||
|   optional sint64 lt = 2; |  | ||||||
| 
 |  | ||||||
|   // Lte specifies that this field must be less than or equal to the |  | ||||||
|   // specified value, inclusive |  | ||||||
|   optional sint64 lte = 3; |  | ||||||
| 
 |  | ||||||
|   // Gt specifies that this field must be greater than the specified value, |  | ||||||
|   // exclusive. If the value of Gt is larger than a specified Lt or Lte, the |  | ||||||
|   // range is reversed. |  | ||||||
|   optional sint64 gt = 4; |  | ||||||
| 
 |  | ||||||
|   // Gte specifies that this field must be greater than or equal to the |  | ||||||
|   // specified value, inclusive. If the value of Gte is larger than a |  | ||||||
|   // specified Lt or Lte, the range is reversed. |  | ||||||
|   optional sint64 gte = 5; |  | ||||||
| 
 |  | ||||||
|   // In specifies that this field must be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated sint64 in = 6; |  | ||||||
| 
 |  | ||||||
|   // NotIn specifies that this field cannot be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated sint64 not_in = 7; |  | ||||||
| 
 |  | ||||||
|   // IgnoreEmpty specifies that the validation rules of this field should be |  | ||||||
|   // evaluated only if the field is not empty |  | ||||||
|   optional bool ignore_empty = 8; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Fixed32Rules describes the constraints applied to `fixed32` values |  | ||||||
| message Fixed32Rules { |  | ||||||
|   // Const specifies that this field must be exactly the specified value |  | ||||||
|   optional fixed32 const = 1; |  | ||||||
| 
 |  | ||||||
|   // Lt specifies that this field must be less than the specified value, |  | ||||||
|   // exclusive |  | ||||||
|   optional fixed32 lt = 2; |  | ||||||
| 
 |  | ||||||
|   // Lte specifies that this field must be less than or equal to the |  | ||||||
|   // specified value, inclusive |  | ||||||
|   optional fixed32 lte = 3; |  | ||||||
| 
 |  | ||||||
|   // Gt specifies that this field must be greater than the specified value, |  | ||||||
|   // exclusive. If the value of Gt is larger than a specified Lt or Lte, the |  | ||||||
|   // range is reversed. |  | ||||||
|   optional fixed32 gt = 4; |  | ||||||
| 
 |  | ||||||
|   // Gte specifies that this field must be greater than or equal to the |  | ||||||
|   // specified value, inclusive. If the value of Gte is larger than a |  | ||||||
|   // specified Lt or Lte, the range is reversed. |  | ||||||
|   optional fixed32 gte = 5; |  | ||||||
| 
 |  | ||||||
|   // In specifies that this field must be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated fixed32 in = 6; |  | ||||||
| 
 |  | ||||||
|   // NotIn specifies that this field cannot be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated fixed32 not_in = 7; |  | ||||||
| 
 |  | ||||||
|   // IgnoreEmpty specifies that the validation rules of this field should be |  | ||||||
|   // evaluated only if the field is not empty |  | ||||||
|   optional bool ignore_empty = 8; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Fixed64Rules describes the constraints applied to `fixed64` values |  | ||||||
| message Fixed64Rules { |  | ||||||
|   // Const specifies that this field must be exactly the specified value |  | ||||||
|   optional fixed64 const = 1; |  | ||||||
| 
 |  | ||||||
|   // Lt specifies that this field must be less than the specified value, |  | ||||||
|   // exclusive |  | ||||||
|   optional fixed64 lt = 2; |  | ||||||
| 
 |  | ||||||
|   // Lte specifies that this field must be less than or equal to the |  | ||||||
|   // specified value, inclusive |  | ||||||
|   optional fixed64 lte = 3; |  | ||||||
| 
 |  | ||||||
|   // Gt specifies that this field must be greater than the specified value, |  | ||||||
|   // exclusive. If the value of Gt is larger than a specified Lt or Lte, the |  | ||||||
|   // range is reversed. |  | ||||||
|   optional fixed64 gt = 4; |  | ||||||
| 
 |  | ||||||
|   // Gte specifies that this field must be greater than or equal to the |  | ||||||
|   // specified value, inclusive. If the value of Gte is larger than a |  | ||||||
|   // specified Lt or Lte, the range is reversed. |  | ||||||
|   optional fixed64 gte = 5; |  | ||||||
| 
 |  | ||||||
|   // In specifies that this field must be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated fixed64 in = 6; |  | ||||||
| 
 |  | ||||||
|   // NotIn specifies that this field cannot be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated fixed64 not_in = 7; |  | ||||||
| 
 |  | ||||||
|   // IgnoreEmpty specifies that the validation rules of this field should be |  | ||||||
|   // evaluated only if the field is not empty |  | ||||||
|   optional bool ignore_empty = 8; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // SFixed32Rules describes the constraints applied to `sfixed32` values |  | ||||||
| message SFixed32Rules { |  | ||||||
|   // Const specifies that this field must be exactly the specified value |  | ||||||
|   optional sfixed32 const = 1; |  | ||||||
| 
 |  | ||||||
|   // Lt specifies that this field must be less than the specified value, |  | ||||||
|   // exclusive |  | ||||||
|   optional sfixed32 lt = 2; |  | ||||||
| 
 |  | ||||||
|   // Lte specifies that this field must be less than or equal to the |  | ||||||
|   // specified value, inclusive |  | ||||||
|   optional sfixed32 lte = 3; |  | ||||||
| 
 |  | ||||||
|   // Gt specifies that this field must be greater than the specified value, |  | ||||||
|   // exclusive. If the value of Gt is larger than a specified Lt or Lte, the |  | ||||||
|   // range is reversed. |  | ||||||
|   optional sfixed32 gt = 4; |  | ||||||
| 
 |  | ||||||
|   // Gte specifies that this field must be greater than or equal to the |  | ||||||
|   // specified value, inclusive. If the value of Gte is larger than a |  | ||||||
|   // specified Lt or Lte, the range is reversed. |  | ||||||
|   optional sfixed32 gte = 5; |  | ||||||
| 
 |  | ||||||
|   // In specifies that this field must be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated sfixed32 in = 6; |  | ||||||
| 
 |  | ||||||
|   // NotIn specifies that this field cannot be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated sfixed32 not_in = 7; |  | ||||||
| 
 |  | ||||||
|   // IgnoreEmpty specifies that the validation rules of this field should be |  | ||||||
|   // evaluated only if the field is not empty |  | ||||||
|   optional bool ignore_empty = 8; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // SFixed64Rules describes the constraints applied to `sfixed64` values |  | ||||||
| message SFixed64Rules { |  | ||||||
|   // Const specifies that this field must be exactly the specified value |  | ||||||
|   optional sfixed64 const = 1; |  | ||||||
| 
 |  | ||||||
|   // Lt specifies that this field must be less than the specified value, |  | ||||||
|   // exclusive |  | ||||||
|   optional sfixed64 lt = 2; |  | ||||||
| 
 |  | ||||||
|   // Lte specifies that this field must be less than or equal to the |  | ||||||
|   // specified value, inclusive |  | ||||||
|   optional sfixed64 lte = 3; |  | ||||||
| 
 |  | ||||||
|   // Gt specifies that this field must be greater than the specified value, |  | ||||||
|   // exclusive. If the value of Gt is larger than a specified Lt or Lte, the |  | ||||||
|   // range is reversed. |  | ||||||
|   optional sfixed64 gt = 4; |  | ||||||
| 
 |  | ||||||
|   // Gte specifies that this field must be greater than or equal to the |  | ||||||
|   // specified value, inclusive. If the value of Gte is larger than a |  | ||||||
|   // specified Lt or Lte, the range is reversed. |  | ||||||
|   optional sfixed64 gte = 5; |  | ||||||
| 
 |  | ||||||
|   // In specifies that this field must be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated sfixed64 in = 6; |  | ||||||
| 
 |  | ||||||
|   // NotIn specifies that this field cannot be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated sfixed64 not_in = 7; |  | ||||||
| 
 |  | ||||||
|   // IgnoreEmpty specifies that the validation rules of this field should be |  | ||||||
|   // evaluated only if the field is not empty |  | ||||||
|   optional bool ignore_empty = 8; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // BoolRules describes the constraints applied to `bool` values |  | ||||||
| message BoolRules { |  | ||||||
|   // Const specifies that this field must be exactly the specified value |  | ||||||
|   optional bool const = 1; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // StringRules describe the constraints applied to `string` values |  | ||||||
| message StringRules { |  | ||||||
|   // Const specifies that this field must be exactly the specified value |  | ||||||
|   optional string const = 1; |  | ||||||
| 
 |  | ||||||
|   // Len specifies that this field must be the specified number of |  | ||||||
|   // characters (Unicode code points). Note that the number of |  | ||||||
|   // characters may differ from the number of bytes in the string. |  | ||||||
|   optional uint64 len = 19; |  | ||||||
| 
 |  | ||||||
|   // MinLen specifies that this field must be the specified number of |  | ||||||
|   // characters (Unicode code points) at a minimum. Note that the number of |  | ||||||
|   // characters may differ from the number of bytes in the string. |  | ||||||
|   optional uint64 min_len = 2; |  | ||||||
| 
 |  | ||||||
|   // MaxLen specifies that this field must be the specified number of |  | ||||||
|   // characters (Unicode code points) at a maximum. Note that the number of |  | ||||||
|   // characters may differ from the number of bytes in the string. |  | ||||||
|   optional uint64 max_len = 3; |  | ||||||
| 
 |  | ||||||
|   // LenBytes specifies that this field must be the specified number of bytes |  | ||||||
|   optional uint64 len_bytes = 20; |  | ||||||
| 
 |  | ||||||
|   // MinBytes specifies that this field must be the specified number of bytes |  | ||||||
|   // at a minimum |  | ||||||
|   optional uint64 min_bytes = 4; |  | ||||||
| 
 |  | ||||||
|   // MaxBytes specifies that this field must be the specified number of bytes |  | ||||||
|   // at a maximum |  | ||||||
|   optional uint64 max_bytes = 5; |  | ||||||
| 
 |  | ||||||
|   // Pattern specifes that this field must match against the specified |  | ||||||
|   // regular expression (RE2 syntax). The included expression should elide |  | ||||||
|   // any delimiters. |  | ||||||
|   optional string pattern  = 6; |  | ||||||
| 
 |  | ||||||
|   // Prefix specifies that this field must have the specified substring at |  | ||||||
|   // the beginning of the string. |  | ||||||
|   optional string prefix   = 7; |  | ||||||
| 
 |  | ||||||
|   // Suffix specifies that this field must have the specified substring at |  | ||||||
|   // the end of the string. |  | ||||||
|   optional string suffix   = 8; |  | ||||||
| 
 |  | ||||||
|   // Contains specifies that this field must have the specified substring |  | ||||||
|   // anywhere in the string. |  | ||||||
|   optional string contains = 9; |  | ||||||
| 
 |  | ||||||
|   // NotContains specifies that this field cannot have the specified substring |  | ||||||
|   // anywhere in the string. |  | ||||||
|   optional string not_contains = 23; |  | ||||||
| 
 |  | ||||||
|   // In specifies that this field must be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated string in     = 10; |  | ||||||
| 
 |  | ||||||
|   // NotIn specifies that this field cannot be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated string not_in = 11; |  | ||||||
| 
 |  | ||||||
|   // WellKnown rules provide advanced constraints against common string |  | ||||||
|   // patterns |  | ||||||
|   oneof well_known { |  | ||||||
|     // Email specifies that the field must be a valid email address as |  | ||||||
|     // defined by RFC 5322 |  | ||||||
|     bool email    = 12; |  | ||||||
| 
 |  | ||||||
|     // Hostname specifies that the field must be a valid hostname as |  | ||||||
|     // defined by RFC 1034. This constraint does not support |  | ||||||
|     // internationalized domain names (IDNs). |  | ||||||
|     bool hostname = 13; |  | ||||||
| 
 |  | ||||||
|     // Ip specifies that the field must be a valid IP (v4 or v6) address. |  | ||||||
|     // Valid IPv6 addresses should not include surrounding square brackets. |  | ||||||
|     bool ip       = 14; |  | ||||||
| 
 |  | ||||||
|     // Ipv4 specifies that the field must be a valid IPv4 address. |  | ||||||
|     bool ipv4     = 15; |  | ||||||
| 
 |  | ||||||
|     // Ipv6 specifies that the field must be a valid IPv6 address. Valid |  | ||||||
|     // IPv6 addresses should not include surrounding square brackets. |  | ||||||
|     bool ipv6     = 16; |  | ||||||
| 
 |  | ||||||
|     // Uri specifies that the field must be a valid, absolute URI as defined |  | ||||||
|     // by RFC 3986 |  | ||||||
|     bool uri      = 17; |  | ||||||
| 
 |  | ||||||
|     // UriRef specifies that the field must be a valid URI as defined by RFC |  | ||||||
|     // 3986 and may be relative or absolute. |  | ||||||
|     bool uri_ref  = 18; |  | ||||||
| 
 |  | ||||||
|     // Address specifies that the field must be either a valid hostname as |  | ||||||
|     // defined by RFC 1034 (which does not support internationalized domain |  | ||||||
|     // names or IDNs), or it can be a valid IP (v4 or v6). |  | ||||||
|     bool address  = 21; |  | ||||||
| 
 |  | ||||||
|     // Uuid specifies that the field must be a valid UUID as defined by |  | ||||||
|     // RFC 4122 |  | ||||||
|     bool uuid     = 22; |  | ||||||
| 
 |  | ||||||
|     // WellKnownRegex specifies a common well known pattern defined as a regex. |  | ||||||
|     KnownRegex well_known_regex = 24; |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   // This applies to regexes HTTP_HEADER_NAME and HTTP_HEADER_VALUE to enable |  | ||||||
|   // strict header validation. |  | ||||||
|   // By default, this is true, and HTTP header validations are RFC-compliant. |  | ||||||
|   // Setting to false will enable a looser validations that only disallows |  | ||||||
|   // \r\n\0 characters, which can be used to bypass header matching rules. |  | ||||||
|   optional bool strict = 25 [default = true]; |  | ||||||
| 
 |  | ||||||
|   // IgnoreEmpty specifies that the validation rules of this field should be |  | ||||||
|   // evaluated only if the field is not empty |  | ||||||
|   optional bool ignore_empty = 26; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // WellKnownRegex contain some well-known patterns. |  | ||||||
| enum KnownRegex { |  | ||||||
|   UNKNOWN = 0; |  | ||||||
| 
 |  | ||||||
|   // HTTP header name as defined by RFC 7230. |  | ||||||
|   HTTP_HEADER_NAME = 1; |  | ||||||
| 
 |  | ||||||
|   // HTTP header value as defined by RFC 7230. |  | ||||||
|   HTTP_HEADER_VALUE = 2; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // BytesRules describe the constraints applied to `bytes` values |  | ||||||
| message BytesRules { |  | ||||||
|   // Const specifies that this field must be exactly the specified value |  | ||||||
|   optional bytes const = 1; |  | ||||||
| 
 |  | ||||||
|   // Len specifies that this field must be the specified number of bytes |  | ||||||
|   optional uint64 len = 13; |  | ||||||
| 
 |  | ||||||
|   // MinLen specifies that this field must be the specified number of bytes |  | ||||||
|   // at a minimum |  | ||||||
|   optional uint64 min_len = 2; |  | ||||||
| 
 |  | ||||||
|   // MaxLen specifies that this field must be the specified number of bytes |  | ||||||
|   // at a maximum |  | ||||||
|   optional uint64 max_len = 3; |  | ||||||
| 
 |  | ||||||
|   // Pattern specifes that this field must match against the specified |  | ||||||
|   // regular expression (RE2 syntax). The included expression should elide |  | ||||||
|   // any delimiters. |  | ||||||
|   optional string pattern  = 4; |  | ||||||
| 
 |  | ||||||
|   // Prefix specifies that this field must have the specified bytes at the |  | ||||||
|   // beginning of the string. |  | ||||||
|   optional bytes  prefix   = 5; |  | ||||||
| 
 |  | ||||||
|   // Suffix specifies that this field must have the specified bytes at the |  | ||||||
|   // end of the string. |  | ||||||
|   optional bytes  suffix   = 6; |  | ||||||
| 
 |  | ||||||
|   // Contains specifies that this field must have the specified bytes |  | ||||||
|   // anywhere in the string. |  | ||||||
|   optional bytes  contains = 7; |  | ||||||
| 
 |  | ||||||
|   // In specifies that this field must be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated bytes in     = 8; |  | ||||||
| 
 |  | ||||||
|   // NotIn specifies that this field cannot be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated bytes not_in = 9; |  | ||||||
| 
 |  | ||||||
|   // WellKnown rules provide advanced constraints against common byte |  | ||||||
|   // patterns |  | ||||||
|   oneof well_known { |  | ||||||
|     // Ip specifies that the field must be a valid IP (v4 or v6) address in |  | ||||||
|     // byte format |  | ||||||
|     bool ip   = 10; |  | ||||||
| 
 |  | ||||||
|     // Ipv4 specifies that the field must be a valid IPv4 address in byte |  | ||||||
|     // format |  | ||||||
|     bool ipv4 = 11; |  | ||||||
| 
 |  | ||||||
|     // Ipv6 specifies that the field must be a valid IPv6 address in byte |  | ||||||
|     // format |  | ||||||
|     bool ipv6 = 12; |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   // IgnoreEmpty specifies that the validation rules of this field should be |  | ||||||
|   // evaluated only if the field is not empty |  | ||||||
|   optional bool ignore_empty = 14; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // EnumRules describe the constraints applied to enum values |  | ||||||
| message EnumRules { |  | ||||||
|   // Const specifies that this field must be exactly the specified value |  | ||||||
|   optional int32 const        = 1; |  | ||||||
| 
 |  | ||||||
|   // DefinedOnly specifies that this field must be only one of the defined |  | ||||||
|   // values for this enum, failing on any undefined value. |  | ||||||
|   optional bool  defined_only = 2; |  | ||||||
| 
 |  | ||||||
|   // In specifies that this field must be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated int32 in           = 3; |  | ||||||
| 
 |  | ||||||
|   // NotIn specifies that this field cannot be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated int32 not_in       = 4; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // MessageRules describe the constraints applied to embedded message values. |  | ||||||
| // For message-type fields, validation is performed recursively. |  | ||||||
| message MessageRules { |  | ||||||
|   // Skip specifies that the validation rules of this field should not be |  | ||||||
|   // evaluated |  | ||||||
|   optional bool skip     = 1; |  | ||||||
| 
 |  | ||||||
|   // Required specifies that this field must be set |  | ||||||
|   optional bool required = 2; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // RepeatedRules describe the constraints applied to `repeated` values |  | ||||||
| message RepeatedRules { |  | ||||||
|   // MinItems specifies that this field must have the specified number of |  | ||||||
|   // items at a minimum |  | ||||||
|   optional uint64 min_items = 1; |  | ||||||
| 
 |  | ||||||
|   // MaxItems specifies that this field must have the specified number of |  | ||||||
|   // items at a maximum |  | ||||||
|   optional uint64 max_items = 2; |  | ||||||
| 
 |  | ||||||
|   // Unique specifies that all elements in this field must be unique. This |  | ||||||
|   // contraint is only applicable to scalar and enum types (messages are not |  | ||||||
|   // supported). |  | ||||||
|   optional bool   unique    = 3; |  | ||||||
| 
 |  | ||||||
|   // Items specifies the contraints to be applied to each item in the field. |  | ||||||
|   // Repeated message fields will still execute validation against each item |  | ||||||
|   // unless skip is specified here. |  | ||||||
|   optional FieldRules items = 4; |  | ||||||
| 
 |  | ||||||
|   // IgnoreEmpty specifies that the validation rules of this field should be |  | ||||||
|   // evaluated only if the field is not empty |  | ||||||
|   optional bool ignore_empty = 5; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // MapRules describe the constraints applied to `map` values |  | ||||||
| message MapRules { |  | ||||||
|   // MinPairs specifies that this field must have the specified number of |  | ||||||
|   // KVs at a minimum |  | ||||||
|   optional uint64 min_pairs = 1; |  | ||||||
| 
 |  | ||||||
|   // MaxPairs specifies that this field must have the specified number of |  | ||||||
|   // KVs at a maximum |  | ||||||
|   optional uint64 max_pairs = 2; |  | ||||||
| 
 |  | ||||||
|   // NoSparse specifies values in this field cannot be unset. This only |  | ||||||
|   // applies to map's with message value types. |  | ||||||
|   optional bool no_sparse = 3; |  | ||||||
| 
 |  | ||||||
|   // Keys specifies the constraints to be applied to each key in the field. |  | ||||||
|   optional FieldRules keys   = 4; |  | ||||||
| 
 |  | ||||||
|   // Values specifies the constraints to be applied to the value of each key |  | ||||||
|   // in the field. Message values will still have their validations evaluated |  | ||||||
|   // unless skip is specified here. |  | ||||||
|   optional FieldRules values = 5; |  | ||||||
| 
 |  | ||||||
|   // IgnoreEmpty specifies that the validation rules of this field should be |  | ||||||
|   // evaluated only if the field is not empty |  | ||||||
|   optional bool ignore_empty = 6; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // AnyRules describe constraints applied exclusively to the |  | ||||||
| // `google.protobuf.Any` well-known type |  | ||||||
| message AnyRules { |  | ||||||
|   // Required specifies that this field must be set |  | ||||||
|   optional bool required = 1; |  | ||||||
| 
 |  | ||||||
|   // In specifies that this field's `type_url` must be equal to one of the |  | ||||||
|   // specified values. |  | ||||||
|   repeated string in     = 2; |  | ||||||
| 
 |  | ||||||
|   // NotIn specifies that this field's `type_url` must not be equal to any of |  | ||||||
|   // the specified values. |  | ||||||
|   repeated string not_in = 3; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // DurationRules describe the constraints applied exclusively to the |  | ||||||
| // `google.protobuf.Duration` well-known type |  | ||||||
| message DurationRules { |  | ||||||
|   // Required specifies that this field must be set |  | ||||||
|   optional bool required = 1; |  | ||||||
| 
 |  | ||||||
|   // Const specifies that this field must be exactly the specified value |  | ||||||
|   optional google.protobuf.Duration const = 2; |  | ||||||
| 
 |  | ||||||
|   // Lt specifies that this field must be less than the specified value, |  | ||||||
|   // exclusive |  | ||||||
|   optional google.protobuf.Duration lt = 3; |  | ||||||
| 
 |  | ||||||
|   // Lt specifies that this field must be less than the specified value, |  | ||||||
|   // inclusive |  | ||||||
|   optional google.protobuf.Duration lte = 4; |  | ||||||
| 
 |  | ||||||
|   // Gt specifies that this field must be greater than the specified value, |  | ||||||
|   // exclusive |  | ||||||
|   optional google.protobuf.Duration gt = 5; |  | ||||||
| 
 |  | ||||||
|   // Gte specifies that this field must be greater than the specified value, |  | ||||||
|   // inclusive |  | ||||||
|   optional google.protobuf.Duration gte = 6; |  | ||||||
| 
 |  | ||||||
|   // In specifies that this field must be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated google.protobuf.Duration in = 7; |  | ||||||
| 
 |  | ||||||
|   // NotIn specifies that this field cannot be equal to one of the specified |  | ||||||
|   // values |  | ||||||
|   repeated google.protobuf.Duration not_in = 8; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // TimestampRules describe the constraints applied exclusively to the |  | ||||||
| // `google.protobuf.Timestamp` well-known type |  | ||||||
| message TimestampRules { |  | ||||||
|   // Required specifies that this field must be set |  | ||||||
|   optional bool required = 1; |  | ||||||
| 
 |  | ||||||
|   // Const specifies that this field must be exactly the specified value |  | ||||||
|   optional google.protobuf.Timestamp const = 2; |  | ||||||
| 
 |  | ||||||
|   // Lt specifies that this field must be less than the specified value, |  | ||||||
|   // exclusive |  | ||||||
|   optional google.protobuf.Timestamp lt = 3; |  | ||||||
| 
 |  | ||||||
|   // Lte specifies that this field must be less than the specified value, |  | ||||||
|   // inclusive |  | ||||||
|   optional google.protobuf.Timestamp lte = 4; |  | ||||||
| 
 |  | ||||||
|   // Gt specifies that this field must be greater than the specified value, |  | ||||||
|   // exclusive |  | ||||||
|   optional google.protobuf.Timestamp gt = 5; |  | ||||||
| 
 |  | ||||||
|   // Gte specifies that this field must be greater than the specified value, |  | ||||||
|   // inclusive |  | ||||||
|   optional google.protobuf.Timestamp gte = 6; |  | ||||||
| 
 |  | ||||||
|   // LtNow specifies that this must be less than the current time. LtNow |  | ||||||
|   // can only be used with the Within rule. |  | ||||||
|   optional bool lt_now  = 7; |  | ||||||
| 
 |  | ||||||
|   // GtNow specifies that this must be greater than the current time. GtNow |  | ||||||
|   // can only be used with the Within rule. |  | ||||||
|   optional bool gt_now  = 8; |  | ||||||
| 
 |  | ||||||
|   // Within specifies that this field must be within this duration of the |  | ||||||
|   // current time. This constraint can be used alone or with the LtNow and |  | ||||||
|   // GtNow rules. |  | ||||||
|   optional google.protobuf.Duration within = 9; |  | ||||||
| } |  | ||||||
| @ -1,78 +0,0 @@ | |||||||
| // Copyright 2016 Michal Witkowski. All Rights Reserved. |  | ||||||
| // See LICENSE for licensing terms. |  | ||||||
| 
 |  | ||||||
| // Protocol Buffers extensions for defining auto-generateable validators for messages. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| syntax = "proto2"; |  | ||||||
| package validator; |  | ||||||
| 
 |  | ||||||
| import "google/protobuf/descriptor.proto"; |  | ||||||
| 
 |  | ||||||
| option go_package = "github.com/mwitkow/go-proto-validators;validator"; |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| extend google.protobuf.FieldOptions { |  | ||||||
|   optional FieldValidator field = 65020; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| extend google.protobuf.OneofOptions { |  | ||||||
|   optional OneofValidator oneof = 65021; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message FieldValidator { |  | ||||||
|   // Uses a Golang RE2-syntax regex to match the field contents. |  | ||||||
|   optional string regex = 1; |  | ||||||
|   // Field value of integer strictly greater than this value. |  | ||||||
|   optional int64 int_gt = 2; |  | ||||||
|   // Field value of integer strictly smaller than this value. |  | ||||||
|   optional int64 int_lt = 3; |  | ||||||
|   // Used for nested message types, requires that the message type exists. |  | ||||||
|   optional bool msg_exists = 4; |  | ||||||
|   // Human error specifies a user-customizable error that is visible to the user. |  | ||||||
|   optional string human_error = 5; |  | ||||||
|   // Field value of double strictly greater than this value. |  | ||||||
|   // Note that this value can only take on a valid floating point |  | ||||||
|   // value. Use together with float_epsilon if you need something more specific. |  | ||||||
|   optional double float_gt = 6; |  | ||||||
|   // Field value of double strictly smaller than this value. |  | ||||||
|   // Note that this value can only take on a valid floating point |  | ||||||
|   // value. Use together with float_epsilon if you need something more specific. |  | ||||||
|   optional double float_lt = 7; |  | ||||||
|   // Field value of double describing the epsilon within which |  | ||||||
|   // any comparison should be considered to be true. For example, |  | ||||||
|   // when using float_gt = 0.35, using a float_epsilon of 0.05 |  | ||||||
|   // would mean that any value above 0.30 is acceptable. It can be |  | ||||||
|   // thought of as a {float_value_condition} +- {float_epsilon}. |  | ||||||
|   // If unset, no correction for floating point inaccuracies in |  | ||||||
|   // comparisons will be attempted. |  | ||||||
|   optional double float_epsilon = 8; |  | ||||||
|   // Floating-point value compared to which the field content should be greater or equal. |  | ||||||
|   optional double float_gte = 9; |  | ||||||
|   // Floating-point value compared to which the field content should be smaller or equal. |  | ||||||
|   optional double float_lte = 10; |  | ||||||
|   // Used for string fields, requires the string to be not empty (i.e different from ""). |  | ||||||
|   optional bool string_not_empty = 11; |  | ||||||
|   // Repeated field with at least this number of elements. |  | ||||||
|   optional int64 repeated_count_min = 12; |  | ||||||
|   // Repeated field with at most this number of elements. |  | ||||||
|   optional int64 repeated_count_max = 13; |  | ||||||
|   // Field value of length greater than this value. |  | ||||||
|   optional int64 length_gt = 14; |  | ||||||
|   // Field value of length smaller than this value. |  | ||||||
|   optional int64 length_lt = 15; |  | ||||||
|   // Field value of length strictly equal to this value. |  | ||||||
|   optional int64 length_eq = 16; |  | ||||||
|   // Requires that the value is in the enum. |  | ||||||
|   optional bool is_in_enum = 17; |  | ||||||
|   // Ensures that a string value is in UUID format. |  | ||||||
|   // uuid_ver specifies the valid UUID versions. Valid values are: 0-5. |  | ||||||
|   // If uuid_ver is 0 all UUID versions are accepted. |  | ||||||
|   optional int32 uuid_ver = 18; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| message OneofValidator { |  | ||||||
|   // Require that one of the oneof fields is set. |  | ||||||
|   optional bool required = 1; |  | ||||||
| } |  | ||||||
| @ -35,10 +35,9 @@ type RegisterInfo struct { | |||||||
| 	IdCard      string `protobuf:"bytes,6,opt,name=idCard,proto3" json:"idCard"` | 	IdCard      string `protobuf:"bytes,6,opt,name=idCard,proto3" json:"idCard"` | ||||||
| 	Address     string `protobuf:"bytes,7,opt,name=address,proto3" json:"address"` | 	Address     string `protobuf:"bytes,7,opt,name=address,proto3" json:"address"` | ||||||
| 	IdCardPhoto string `protobuf:"bytes,8,opt,name=idCardPhoto,proto3" json:"idCardPhoto"` | 	IdCardPhoto string `protobuf:"bytes,8,opt,name=idCardPhoto,proto3" json:"idCardPhoto"` | ||||||
| 	IdCardBackPhoto string `protobuf:"bytes,9,opt,name=idCardBackPhoto,proto3" json:"idCardBackPhoto"` | 	ArtistPhoto string `protobuf:"bytes,9,opt,name=artistPhoto,proto3" json:"artistPhoto"` | ||||||
| 	ArtistPhoto     string `protobuf:"bytes,10,opt,name=artistPhoto,proto3" json:"artistPhoto"` | 	CreatedAt   string `protobuf:"bytes,10,opt,name=createdAt,proto3" json:"createdAt"` | ||||||
| 	CreatedAt       string `protobuf:"bytes,11,opt,name=createdAt,proto3" json:"createdAt"` | 	UpdatedAt   string `protobuf:"bytes,11,opt,name=updatedAt,proto3" json:"updatedAt"` | ||||||
| 	UpdatedAt       string `protobuf:"bytes,12,opt,name=updatedAt,proto3" json:"updatedAt"` |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (x *RegisterInfo) Reset() { | func (x *RegisterInfo) Reset() { | ||||||
| @ -129,13 +128,6 @@ func (x *RegisterInfo) GetIdCardPhoto() string { | |||||||
| 	return "" | 	return "" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (x *RegisterInfo) GetIdCardBackPhoto() string { |  | ||||||
| 	if x != nil { |  | ||||||
| 		return x.IdCardBackPhoto |  | ||||||
| 	} |  | ||||||
| 	return "" |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func (x *RegisterInfo) GetArtistPhoto() string { | func (x *RegisterInfo) GetArtistPhoto() string { | ||||||
| 	if x != nil { | 	if x != nil { | ||||||
| 		return x.ArtistPhoto | 		return x.ArtistPhoto | ||||||
| @ -482,10 +474,9 @@ type ExportInfo struct { | |||||||
| 	IdCard      string `protobuf:"bytes,6,opt,name=idCard,proto3" json:"idCard"` | 	IdCard      string `protobuf:"bytes,6,opt,name=idCard,proto3" json:"idCard"` | ||||||
| 	Address     string `protobuf:"bytes,7,opt,name=address,proto3" json:"address"` | 	Address     string `protobuf:"bytes,7,opt,name=address,proto3" json:"address"` | ||||||
| 	IdCardPhoto string `protobuf:"bytes,8,opt,name=idCardPhoto,proto3" json:"idCardPhoto"` | 	IdCardPhoto string `protobuf:"bytes,8,opt,name=idCardPhoto,proto3" json:"idCardPhoto"` | ||||||
| 	IdCardBackPhoto string `protobuf:"bytes,9,opt,name=idCardBackPhoto,proto3" json:"idCardBackPhoto"` | 	ArtistPhoto string `protobuf:"bytes,9,opt,name=artistPhoto,proto3" json:"artistPhoto"` | ||||||
| 	ArtistPhoto     string `protobuf:"bytes,10,opt,name=artistPhoto,proto3" json:"artistPhoto"` | 	CreatedAt   string `protobuf:"bytes,10,opt,name=createdAt,proto3" json:"createdAt"` | ||||||
| 	CreatedAt       string `protobuf:"bytes,11,opt,name=createdAt,proto3" json:"createdAt"` | 	UpdatedAt   string `protobuf:"bytes,11,opt,name=updatedAt,proto3" json:"updatedAt"` | ||||||
| 	UpdatedAt       string `protobuf:"bytes,12,opt,name=updatedAt,proto3" json:"updatedAt"` |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (x *ExportInfo) Reset() { | func (x *ExportInfo) Reset() { | ||||||
| @ -562,13 +553,6 @@ func (x *ExportInfo) GetIdCardPhoto() string { | |||||||
| 	return "" | 	return "" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (x *ExportInfo) GetIdCardBackPhoto() string { |  | ||||||
| 	if x != nil { |  | ||||||
| 		return x.IdCardBackPhoto |  | ||||||
| 	} |  | ||||||
| 	return "" |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func (x *ExportInfo) GetArtistPhoto() string { | func (x *ExportInfo) GetArtistPhoto() string { | ||||||
| 	if x != nil { | 	if x != nil { | ||||||
| 		return x.ArtistPhoto | 		return x.ArtistPhoto | ||||||
| @ -652,7 +636,7 @@ var file_pb_exhibition_proto_rawDesc = []byte{ | |||||||
| 	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, | 	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, | ||||||
| 	0x6e, 0x1a, 0x12, 0x70, 0x62, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x2e, | 	0x6e, 0x1a, 0x12, 0x70, 0x62, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x2e, | ||||||
| 	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x70, 0x62, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, | 	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x70, 0x62, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, | ||||||
| 	0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe2, 0x02, 0x0a, 0x0c, 0x52, | 	0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb8, 0x02, 0x0a, 0x0c, 0x52, | ||||||
| 	0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, | 	0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, | ||||||
| 	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, | 	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, | ||||||
| 	0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, | 	0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, | ||||||
| @ -666,94 +650,89 @@ var file_pb_exhibition_proto_rawDesc = []byte{ | |||||||
| 	0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, | 	0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, | ||||||
| 	0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x50, | 	0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x50, | ||||||
| 	0x68, 0x6f, 0x74, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x43, 0x61, | 	0x68, 0x6f, 0x74, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x43, 0x61, | ||||||
| 	0x72, 0x64, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x64, 0x43, 0x61, 0x72, | 	0x72, 0x64, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, | ||||||
| 	0x64, 0x42, 0x61, 0x63, 0x6b, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, | 	0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, | ||||||
| 	0x52, 0x0f, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x50, 0x68, 0x6f, 0x74, | 	0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, | ||||||
| 	0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, | 	0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, | ||||||
| 	0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, | 	0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, | ||||||
| 	0x6f, 0x74, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, | 	0x65, 0x64, 0x41, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, | ||||||
| 	0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, | 	0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x58, 0x0a, 0x16, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x67, | ||||||
| 	0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0c, | 	0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, | ||||||
| 	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, | 	0x2c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, | ||||||
| 	0x58, 0x0a, 0x16, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, | 	0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, | ||||||
| 	0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2c, 0x0a, 0x04, 0x64, 0x61, 0x74, | 	0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, | ||||||
| 	0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, | 	0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, | ||||||
| 	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, | 	0x6a, 0x0a, 0x0e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x73, | ||||||
| 	0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, | 	0x70, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, | ||||||
| 	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x6a, 0x0a, 0x0e, 0x43, 0x68, 0x65, | 	0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6d, | ||||||
| 	0x63, 0x6b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x69, | 	0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2c, 0x0a, | ||||||
| 	0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, | 	0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x65, 0x78, | ||||||
| 	0x45, 0x78, 0x69, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, | 	0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, | ||||||
| 	0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, | 	0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x87, 0x01, 0x0a, 0x0d, | ||||||
| 	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, | 	0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, | ||||||
| 	0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, | 	0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, | ||||||
| 	0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x87, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, | 	0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, | ||||||
| 	0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, | 	0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, | ||||||
| 	0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, | 	0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, | ||||||
| 	0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, | 	0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6f, 0x72, 0x74, 0x4b, | ||||||
| 	0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, | 	0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x6f, 0x72, 0x74, 0x4b, 0x65, | ||||||
| 	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, | 	0x79, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, | ||||||
| 	0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6f, 0x72, 0x74, 0x4b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, | 	0x04, 0x73, 0x6f, 0x72, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, | ||||||
| 	0x28, 0x05, 0x52, 0x07, 0x73, 0x6f, 0x72, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x73, | 	0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, | ||||||
| 	0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x22, | 	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, | ||||||
| 	0x96, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, | 	0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, | ||||||
| 	0x73, 0x70, 0x12, 0x2c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, | 	0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, | ||||||
| 	0x32, 0x18, 0x2e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, | 	0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, | ||||||
| 	0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, | 	0x70, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, | ||||||
| 	0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, | 	0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, | ||||||
| 	0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x03, | 	0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x10, 0x0a, 0x03, | ||||||
| 	0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, | 	0x6d, 0x73, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x11, | ||||||
| 	0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, | 	0x0a, 0x0f, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, | ||||||
| 	0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x05, 0x20, | 	0x71, 0x22, 0x92, 0x02, 0x0a, 0x0a, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, | ||||||
| 	0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x11, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x6f, | 	0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, | ||||||
| 	0x72, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x22, 0xbc, 0x02, 0x0a, 0x0a, | 	0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, | ||||||
| 	0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, | 	0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, | ||||||
| 	0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, | 	0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x68, 0x6f, 0x6e, | ||||||
| 	0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, | 	0x65, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x68, 0x6f, 0x6e, | ||||||
| 	0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, | 	0x65, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x18, 0x06, | ||||||
| 	0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x05, | 	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, | ||||||
| 	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x16, | 	0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, | ||||||
| 	0x0a, 0x06, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, | 	0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, | ||||||
| 	0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, | 	0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x43, | ||||||
| 	0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, | 	0x61, 0x72, 0x64, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, | ||||||
| 	0x12, 0x20, 0x0a, 0x0b, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, | 	0x73, 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, | ||||||
| 	0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x50, 0x68, 0x6f, | 	0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, | ||||||
| 	0x74, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x42, 0x61, 0x63, 0x6b, | 	0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, | ||||||
| 	0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x64, 0x43, | 	0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, | ||||||
| 	0x61, 0x72, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x20, 0x0a, 0x0b, | 	0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, | ||||||
| 	0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, | 	0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x50, 0x0a, 0x10, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, | ||||||
| 	0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x1c, | 	0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x04, 0x64, 0x61, | ||||||
| 	0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, | 	0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x65, 0x78, 0x68, 0x69, 0x62, | ||||||
| 	0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, | 	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, | ||||||
| 	0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, | 	0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, | ||||||
| 	0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x50, 0x0a, 0x10, 0x45, 0x78, | 	0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x32, 0xc4, 0x02, 0x0a, 0x0a, 0x45, 0x78, 0x68, | ||||||
| 	0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, | 	0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, 0x6b, | ||||||
| 	0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x65, | 	0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x2e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, | ||||||
| 	0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, |  | ||||||
| 	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, |  | ||||||
| 	0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x32, 0xc4, 0x02, 0x0a, |  | ||||||
| 	0x0a, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x0a, 0x43, |  | ||||||
| 	0x68, 0x65, 0x63, 0x6b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x2e, 0x65, 0x78, 0x68, 0x69, |  | ||||||
| 	0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, |  | ||||||
| 	0x6e, 0x66, 0x6f, 0x1a, 0x1a, 0x2e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, |  | ||||||
| 	0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, |  | ||||||
| 	0x52, 0x0a, 0x12, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, |  | ||||||
| 	0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x18, 0x2e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, |  | ||||||
| 	0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x1a, | 	0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x1a, | ||||||
| 	0x22, 0x2e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x61, 0x76, | 	0x1a, 0x2e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x65, | ||||||
| 	0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, | 	0x63, 0x6b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x52, 0x0a, 0x12, 0x53, | ||||||
| 	0x65, 0x73, 0x70, 0x12, 0x4b, 0x0a, 0x12, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, | 	0x61, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, | ||||||
| 	0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x65, 0x78, 0x68, 0x69, | 	0x64, 0x12, 0x18, 0x2e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, | ||||||
| 	0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, | 	0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x22, 0x2e, 0x65, 0x78, | ||||||
| 	0x74, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, | 	0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x67, | ||||||
| 	0x6e, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, | 	0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, | ||||||
| 	0x12, 0x51, 0x0a, 0x14, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, | 	0x4b, 0x0a, 0x12, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, | ||||||
| 	0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1b, 0x2e, 0x65, 0x78, 0x68, 0x69, 0x62, | 	0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, | ||||||
| 	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x63, 0x6f, | 	0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, | ||||||
| 	0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, | 	0x1a, 0x1a, 0x2e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, | ||||||
| 	0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, | 	0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x14, | ||||||
| 	0x65, 0x73, 0x70, 0x42, 0x11, 0x5a, 0x0f, 0x2e, 0x2f, 0x70, 0x62, 0x2f, 0x65, 0x78, 0x68, 0x69, | 	0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, | ||||||
| 	0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, | 	0x63, 0x6f, 0x72, 0x64, 0x12, 0x1b, 0x2e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, | ||||||
|  | 	0x6e, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, | ||||||
|  | 	0x71, 0x1a, 0x1c, 0x2e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, | ||||||
|  | 	0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x42, | ||||||
|  | 	0x11, 0x5a, 0x0f, 0x2e, 0x2f, 0x70, 0x62, 0x2f, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, | ||||||
|  | 	0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| var ( | var ( | ||||||
|  | |||||||
| @ -11,15 +11,6 @@ dubbo: | |||||||
|       max-call-send-msg-size: 8000000 |       max-call-send-msg-size: 8000000 | ||||||
|       max-call-recv-msg-size: 8000000 |       max-call-recv-msg-size: 8000000 | ||||||
|     references: |     references: | ||||||
|       AccountClientImpl: |  | ||||||
|         protocol: tri |  | ||||||
|         interface: com.fontree.microservices.common.Account |  | ||||||
|         filter: cshutdown,sign,fonDomainFilter,fonValidateFilter |  | ||||||
|         timeout: 15s |  | ||||||
|         retries: 0 |  | ||||||
|         params: |  | ||||||
|           .accessKeyId: "Accountksl" |  | ||||||
|           .secretAccessKey: "BSDY-FDF1-Fontree_account" |  | ||||||
|       ExhibitionClientImpl: |       ExhibitionClientImpl: | ||||||
|         protocol: tri |         protocol: tri | ||||||
|         interface: com.fontree.microservices.common.Exhibition |         interface: com.fontree.microservices.common.Exhibition | ||||||
|  | |||||||
| @ -11,15 +11,6 @@ dubbo: | |||||||
|       max-call-send-msg-size: 8000000 |       max-call-send-msg-size: 8000000 | ||||||
|       max-call-recv-msg-size: 8000000 |       max-call-recv-msg-size: 8000000 | ||||||
|     references: |     references: | ||||||
|       AccountClientImpl: |  | ||||||
|         protocol: tri |  | ||||||
|         interface: com.fontree.microservices.common.Account |  | ||||||
|         filter: cshutdown,sign,fonDomainFilter,fonValidateFilter |  | ||||||
|         timeout: 15s |  | ||||||
|         retries: 0 |  | ||||||
|         params: |  | ||||||
|           .accessKeyId: "Accountksl" |  | ||||||
|           .secretAccessKey: "BSDY-FDF1-Fontree_account" |  | ||||||
|       ExhibitionClientImpl: |       ExhibitionClientImpl: | ||||||
|         protocol: tri |         protocol: tri | ||||||
|         interface: com.fontree.microservices.common.Exhibition |         interface: com.fontree.microservices.common.Exhibition | ||||||
|  | |||||||
| @ -11,15 +11,6 @@ dubbo: | |||||||
|       max-call-send-msg-size: 8000000 |       max-call-send-msg-size: 8000000 | ||||||
|       max-call-recv-msg-size: 8000000 |       max-call-recv-msg-size: 8000000 | ||||||
|     references: |     references: | ||||||
|       AccountClientImpl: |  | ||||||
|         protocol: tri |  | ||||||
|         interface: com.fontree.microservices.common.Account |  | ||||||
|         filter: cshutdown,sign,fonDomainFilter,fonValidateFilter |  | ||||||
|         timeout: 15s |  | ||||||
|         retries: 0 |  | ||||||
|         params: |  | ||||||
|           .accessKeyId: "Accountksl" |  | ||||||
|           .secretAccessKey: "BSDY-FDF1-Fontree_account" |  | ||||||
|       ExhibitionClientImpl: |       ExhibitionClientImpl: | ||||||
|         protocol: tri |         protocol: tri | ||||||
|         interface: com.fontree.microservices.common.Exhibition |         interface: com.fontree.microservices.common.Exhibition | ||||||
|  | |||||||
| @ -25,19 +25,13 @@ func NewRouter() *gin.Engine { | |||||||
| 	{ | 	{ | ||||||
| 		upload.POST("img", common.UploadImg) | 		upload.POST("img", common.UploadImg) | ||||||
| 	} | 	} | ||||||
| 	check := auth.Group("account") |  | ||||||
| 	{ |  | ||||||
| 		check.POST("send_code", service.OnlySend)   // 发送验证码
 |  | ||||||
| 		check.POST("check_code", service.OnlyCheck) // 检查验证码
 |  | ||||||
| 
 | 
 | ||||||
| 	} |  | ||||||
| 	registerAuth := auth.Group("register") | 	registerAuth := auth.Group("register") | ||||||
| 	{ | 	{ | ||||||
| 		registerAuth.POST("register_record_list", service.RegisterList) //报名列表
 | 		registerAuth.POST("register_record_list", service.RegisterList) | ||||||
| 		registerAuth.POST("check_by_phone", service.CheckByPhone)       //检索手机号
 | 		registerAuth.POST("check_by_phone", service.CheckByPhone) | ||||||
| 		registerAuth.POST("save_register_info", service.SaveRegister)   //保存
 | 		registerAuth.POST("save_register_info", service.SaveRegister) | ||||||
| 		registerAuth.POST("export_register", service.ExportRegister)    //导出
 | 		registerAuth.POST("export_register", service.ExportRegister) | ||||||
| 		registerAuth.POST("scan_id_card", service.GetCardIdWithImg)     //扫描身份证图片获取信息
 |  | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	//静态文件
 | 	//静态文件
 | ||||||
|  | |||||||
| @ -1,55 +0,0 @@ | |||||||
| package service |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"github.com/exhibition-main/api/account" |  | ||||||
| 	appconfig "github.com/exhibition-main/internal/config" |  | ||||||
| 	"github.com/exhibition-main/internal/msg" |  | ||||||
| 	"github.com/exhibition-main/internal/response" |  | ||||||
| 	"github.com/gin-gonic/gin" |  | ||||||
| 	"github.com/gin-gonic/gin/binding" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // OnlySend 用户登录操作
 |  | ||||||
| func OnlySend(c *gin.Context) { |  | ||||||
| 
 |  | ||||||
| 	var req account.SendMsgRequest |  | ||||||
| 
 |  | ||||||
| 	if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { |  | ||||||
| 		response.ResponseQuickMsg(c, msg.Fail, msg.INVALID_PARAMS, nil) |  | ||||||
| 		return |  | ||||||
| 	} |  | ||||||
| 	req.Domain = appconfig.Data.System.Domain |  | ||||||
| 	req.Scope = "exhibition" |  | ||||||
| 
 |  | ||||||
| 	res, err := AccountProvider.OnlySendMsg(c, &req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		response.ResponseQuickMsg(c, msg.Fail, err.Error(), nil) |  | ||||||
| 		return |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	response.ResponseQuickMsg(c, msg.Ok, msg.SUCCESS, res) |  | ||||||
| 	return |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // OnlyCheck 检测
 |  | ||||||
| func OnlyCheck(c *gin.Context) { |  | ||||||
| 
 |  | ||||||
| 	var req account.CheckMsgRequest |  | ||||||
| 
 |  | ||||||
| 	if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { |  | ||||||
| 		response.ResponseQuickMsg(c, msg.Fail, msg.INVALID_PARAMS, nil) |  | ||||||
| 		return |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	req.Domain = appconfig.Data.System.Domain |  | ||||||
| 	req.Scope = "exhibition" |  | ||||||
| 
 |  | ||||||
| 	res, err := AccountProvider.OnlyCheckMsg(c, &req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		response.ResponseQuickMsg(c, msg.Fail, err.Error(), nil) |  | ||||||
| 		return |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	response.ResponseQuickMsg(c, msg.Ok, msg.SUCCESS, res) |  | ||||||
| 	return |  | ||||||
| } |  | ||||||
| @ -3,19 +3,13 @@ package service | |||||||
| import ( | import ( | ||||||
| 	"dubbo.apache.org/dubbo-go/v3/config" | 	"dubbo.apache.org/dubbo-go/v3/config" | ||||||
| 	_ "dubbo.apache.org/dubbo-go/v3/imports" | 	_ "dubbo.apache.org/dubbo-go/v3/imports" | ||||||
| 	"github.com/exhibition-main/api/account" |  | ||||||
| 	"github.com/exhibition-main/api/artist" |  | ||||||
| 	"github.com/exhibition-main/api/exhibition" | 	"github.com/exhibition-main/api/exhibition" | ||||||
| 	appConfig "github.com/exhibition-main/internal/config" | 	appConfig "github.com/exhibition-main/internal/config" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| var GrpcExhibitionClientImpl = new(exhibition.ExhibitionClientImpl) | var GrpcExhibitionClientImpl = new(exhibition.ExhibitionClientImpl) | ||||||
| var AccountProvider = new(account.AccountClientImpl) |  | ||||||
| var GrpcArtistImpl = new(artist.ArtistClientImpl) |  | ||||||
| 
 | 
 | ||||||
| func init() { | func init() { | ||||||
| 	config.SetConsumerService(GrpcArtistImpl) |  | ||||||
| 	config.SetConsumerService(AccountProvider) |  | ||||||
| 	config.SetConsumerService(GrpcExhibitionClientImpl) | 	config.SetConsumerService(GrpcExhibitionClientImpl) | ||||||
| 	appConfig.GetOptions() | 	appConfig.GetOptions() | ||||||
| 	if err := config.Load(); err != nil { | 	if err := config.Load(); err != nil { | ||||||
|  | |||||||
| @ -4,7 +4,6 @@ import ( | |||||||
| 	"context" | 	"context" | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"github.com/dubbogo/gost/log/logger" | 	"github.com/dubbogo/gost/log/logger" | ||||||
| 	"github.com/exhibition-main/api/artist" |  | ||||||
| 	"github.com/exhibition-main/api/exhibition" | 	"github.com/exhibition-main/api/exhibition" | ||||||
| 	"github.com/exhibition-main/internal/config" | 	"github.com/exhibition-main/internal/config" | ||||||
| 	"github.com/exhibition-main/internal/model" | 	"github.com/exhibition-main/internal/model" | ||||||
| @ -130,24 +129,3 @@ func ExportRegister(c *gin.Context) { | |||||||
| 	return | 	return | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
| 
 |  | ||||||
| func GetCardIdWithImg(c *gin.Context) { |  | ||||||
| 	var listReq artist.GetCardIdWithImgReq |  | ||||||
| 	if err := c.ShouldBind(&listReq); err != nil { |  | ||||||
| 		logger.Errorf("GetCardIdWithImg ShouldBind err", err) |  | ||||||
| 		response.ResponseQuickMsg(c, msg.Fail, err.Error(), nil) |  | ||||||
| 		return |  | ||||||
| 	} |  | ||||||
| 	if err := listReq.Validate(); err != nil { |  | ||||||
| 		err = utils.SubstrError(err) |  | ||||||
| 		response.ResponseQuickMsg(c, msg.Fail, err.Error(), nil) |  | ||||||
| 		return |  | ||||||
| 	} |  | ||||||
| 	resp, err := GrpcArtistImpl.GetCardIdWithImg(context.Background(), &listReq) |  | ||||||
| 	if err != nil { |  | ||||||
| 		response.ResponseQuickMsg(c, msg.Fail, err.Error(), nil) |  | ||||||
| 		return |  | ||||||
| 	} |  | ||||||
| 	response.ResponseQuickMsg(c, msg.Ok, resp.Msg, resp) |  | ||||||
| 	return |  | ||||||
| } |  | ||||||
|  | |||||||
| @ -1,13 +0,0 @@ | |||||||
| package utils |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"errors" |  | ||||||
| 	"strings" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| func SubstrError(err error) (sErr error) { |  | ||||||
| 	start := strings.Index(err.Error(), ":") |  | ||||||
| 	msg := err.Error()[start+2:] |  | ||||||
| 	sErr = errors.New(msg) |  | ||||||
| 	return |  | ||||||
| } |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user