@arbiwallet/contracts 1.0.272 → 1.0.274
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/gen/exchange_core.ts +28 -0
- package/gen/exchange_rates.ts +4 -0
- package/gen/user.ts +64 -0
- package/package.json +1 -1
- package/proto/exchange_core.proto +17 -0
- package/proto/exchange_rates.proto +4 -0
- package/proto/user.proto +58 -0
package/gen/exchange_core.ts
CHANGED
|
@@ -18,6 +18,8 @@ export interface AuthManagerContext {
|
|
|
18
18
|
canCrossOffice: boolean;
|
|
19
19
|
requestId?: string | undefined;
|
|
20
20
|
clientType?: string | undefined;
|
|
21
|
+
permissions: string[];
|
|
22
|
+
isSuperAdmin: boolean;
|
|
21
23
|
}
|
|
22
24
|
|
|
23
25
|
export interface CreateExchangeOrderRequest {
|
|
@@ -98,6 +100,7 @@ export interface CreateExchangeDealRequest {
|
|
|
98
100
|
customerSource?: string | undefined;
|
|
99
101
|
customerReferrer?: string | undefined;
|
|
100
102
|
receipts: number[];
|
|
103
|
+
officeId?: string | undefined;
|
|
101
104
|
}
|
|
102
105
|
|
|
103
106
|
export interface CreateExchangeDealResult {
|
|
@@ -333,6 +336,15 @@ export interface CancelExchangeDealResponse {
|
|
|
333
336
|
validationErrors?: { [key: string]: any } | undefined;
|
|
334
337
|
}
|
|
335
338
|
|
|
339
|
+
export interface GetUserIdsWithDealsInPeriodRequest {
|
|
340
|
+
dateFrom?: string | undefined;
|
|
341
|
+
dateTo?: string | undefined;
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
export interface GetUserIdsWithDealsInPeriodResponse {
|
|
345
|
+
userIds: number[];
|
|
346
|
+
}
|
|
347
|
+
|
|
336
348
|
export interface ExchangeCalculationsFiltersRequest {
|
|
337
349
|
dateFrom?: string | undefined;
|
|
338
350
|
dateTo?: string | undefined;
|
|
@@ -345,6 +357,7 @@ export interface ExchangeCalculationsFiltersRequest {
|
|
|
345
357
|
/** no_payment | with_payment | with_exchange | completed */
|
|
346
358
|
status?: string | undefined;
|
|
347
359
|
search?: string | undefined;
|
|
360
|
+
authManagerContext?: AuthManagerContext | undefined;
|
|
348
361
|
}
|
|
349
362
|
|
|
350
363
|
export interface ExchangeDealsFiltersRequest {
|
|
@@ -411,6 +424,7 @@ export interface HandlePaymentWebhookResponse {
|
|
|
411
424
|
export interface GetExchangePaymentsRequest {
|
|
412
425
|
page?: number | undefined;
|
|
413
426
|
limit?: number | undefined;
|
|
427
|
+
authManagerContext?: AuthManagerContext | undefined;
|
|
414
428
|
}
|
|
415
429
|
|
|
416
430
|
export interface GetExchangePaymentsItem {
|
|
@@ -462,6 +476,7 @@ export interface GetExchangePaymentResponse {
|
|
|
462
476
|
export interface SearchExchangePaymentRequest {
|
|
463
477
|
search: string;
|
|
464
478
|
limit: number;
|
|
479
|
+
authManagerContext?: AuthManagerContext | undefined;
|
|
465
480
|
}
|
|
466
481
|
|
|
467
482
|
export interface SearchExchangePaymentItem {
|
|
@@ -476,6 +491,7 @@ export interface SearchExchangePaymentResponse {
|
|
|
476
491
|
|
|
477
492
|
export interface PrealoadExchangePaymentForSearchRequest {
|
|
478
493
|
paymentId: string;
|
|
494
|
+
authManagerContext?: AuthManagerContext | undefined;
|
|
479
495
|
}
|
|
480
496
|
|
|
481
497
|
export interface PrealoadExchangePaymentForSearchResponse {
|
|
@@ -606,6 +622,10 @@ export interface ExchangeCoreServiceClient {
|
|
|
606
622
|
|
|
607
623
|
cancelExchangeDeal(request: CancelExchangeDealRequest): Observable<CancelExchangeDealResponse>;
|
|
608
624
|
|
|
625
|
+
getUserIdsWithDealsInPeriod(
|
|
626
|
+
request: GetUserIdsWithDealsInPeriodRequest,
|
|
627
|
+
): Observable<GetUserIdsWithDealsInPeriodResponse>;
|
|
628
|
+
|
|
609
629
|
createExchangePayment(request: CreateExchangePaymentRequest): Observable<CreateExchangePaymentResponse>;
|
|
610
630
|
|
|
611
631
|
handlePaymentWebhook(request: HandlePaymentWebhookRequest): Observable<HandlePaymentWebhookResponse>;
|
|
@@ -678,6 +698,13 @@ export interface ExchangeCoreServiceController {
|
|
|
678
698
|
request: CancelExchangeDealRequest,
|
|
679
699
|
): Promise<CancelExchangeDealResponse> | Observable<CancelExchangeDealResponse> | CancelExchangeDealResponse;
|
|
680
700
|
|
|
701
|
+
getUserIdsWithDealsInPeriod(
|
|
702
|
+
request: GetUserIdsWithDealsInPeriodRequest,
|
|
703
|
+
):
|
|
704
|
+
| Promise<GetUserIdsWithDealsInPeriodResponse>
|
|
705
|
+
| Observable<GetUserIdsWithDealsInPeriodResponse>
|
|
706
|
+
| GetUserIdsWithDealsInPeriodResponse;
|
|
707
|
+
|
|
681
708
|
createExchangePayment(
|
|
682
709
|
request: CreateExchangePaymentRequest,
|
|
683
710
|
): Promise<CreateExchangePaymentResponse> | Observable<CreateExchangePaymentResponse> | CreateExchangePaymentResponse;
|
|
@@ -739,6 +766,7 @@ export function ExchangeCoreServiceControllerMethods() {
|
|
|
739
766
|
"updateExchangeDeal",
|
|
740
767
|
"completeExchangeDeal",
|
|
741
768
|
"cancelExchangeDeal",
|
|
769
|
+
"getUserIdsWithDealsInPeriod",
|
|
742
770
|
"createExchangePayment",
|
|
743
771
|
"handlePaymentWebhook",
|
|
744
772
|
"getExchangePayments",
|
package/gen/exchange_rates.ts
CHANGED
|
@@ -242,6 +242,8 @@ export interface AuthManagerContext {
|
|
|
242
242
|
canCrossOffice: boolean;
|
|
243
243
|
requestId?: string | undefined;
|
|
244
244
|
clientType?: string | undefined;
|
|
245
|
+
permissions: string[];
|
|
246
|
+
isSuperAdmin: boolean;
|
|
245
247
|
}
|
|
246
248
|
|
|
247
249
|
export interface CalculateExchangeRequest {
|
|
@@ -321,6 +323,7 @@ export interface GetExchangeCalculationHistoryRequest {
|
|
|
321
323
|
search?: string | undefined;
|
|
322
324
|
page?: number | undefined;
|
|
323
325
|
pageSize?: number | undefined;
|
|
326
|
+
authManagerContext?: AuthManagerContext | undefined;
|
|
324
327
|
}
|
|
325
328
|
|
|
326
329
|
export interface ExchangeCalculationFiltersRequest {
|
|
@@ -335,6 +338,7 @@ export interface ExchangeCalculationFiltersRequest {
|
|
|
335
338
|
/** no_payment | with_payment | with_exchange | completed */
|
|
336
339
|
status?: string | undefined;
|
|
337
340
|
search?: string | undefined;
|
|
341
|
+
authManagerContext?: AuthManagerContext | undefined;
|
|
338
342
|
}
|
|
339
343
|
|
|
340
344
|
export interface ExchangeCalculationHistoryAppliedFilters {
|
package/gen/user.ts
CHANGED
|
@@ -67,6 +67,20 @@ export interface UserResponse {
|
|
|
67
67
|
cardFirstName?: string | undefined;
|
|
68
68
|
cardLastName?: string | undefined;
|
|
69
69
|
crmCustomerId?: number | undefined;
|
|
70
|
+
referrerUserId?: number | undefined;
|
|
71
|
+
refPercent?: number | undefined;
|
|
72
|
+
referralVolume?: number | undefined;
|
|
73
|
+
exchangesCount?: number | undefined;
|
|
74
|
+
exchangeCountLastYear?: number | undefined;
|
|
75
|
+
totalAmount?: number | undefined;
|
|
76
|
+
avgCheck?: number | undefined;
|
|
77
|
+
firstExchangeAt?: string | undefined;
|
|
78
|
+
lastExchangeAt?: string | undefined;
|
|
79
|
+
lifePeriod?: number | undefined;
|
|
80
|
+
lifePeriodYear?: number | undefined;
|
|
81
|
+
frequency?: number | undefined;
|
|
82
|
+
ltv?: number | undefined;
|
|
83
|
+
userSearchUpdatedAt?: string | undefined;
|
|
70
84
|
}
|
|
71
85
|
|
|
72
86
|
export interface UpdateUserRequest {
|
|
@@ -91,6 +105,16 @@ export interface ListUsersRequest {
|
|
|
91
105
|
search?: string | undefined;
|
|
92
106
|
statusValue?: UserStatus | undefined;
|
|
93
107
|
registrationTypeValue?: string | undefined;
|
|
108
|
+
sources: string[];
|
|
109
|
+
tags: string[];
|
|
110
|
+
referrerUserId?: number | undefined;
|
|
111
|
+
registrationFrom?: string | undefined;
|
|
112
|
+
registrationTo?: string | undefined;
|
|
113
|
+
dealFrom?: string | undefined;
|
|
114
|
+
dealTo?: string | undefined;
|
|
115
|
+
lastDealFrom?: string | undefined;
|
|
116
|
+
lastDealTo?: string | undefined;
|
|
117
|
+
sort?: string | undefined;
|
|
94
118
|
}
|
|
95
119
|
|
|
96
120
|
export interface ListUsersResponse {
|
|
@@ -100,6 +124,39 @@ export interface ListUsersResponse {
|
|
|
100
124
|
limit: number;
|
|
101
125
|
}
|
|
102
126
|
|
|
127
|
+
export interface UserSearchExchangeStats {
|
|
128
|
+
exchangesCount: number;
|
|
129
|
+
exchangeCountLastYear: number;
|
|
130
|
+
totalAmount: number;
|
|
131
|
+
avgCheck: number;
|
|
132
|
+
firstExchangeAt?: string | undefined;
|
|
133
|
+
lastExchangeAt?: string | undefined;
|
|
134
|
+
lifePeriod?: number | undefined;
|
|
135
|
+
lifePeriodYear?: number | undefined;
|
|
136
|
+
frequency?: number | undefined;
|
|
137
|
+
ltv?: number | undefined;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
export interface UserSearchReferralStats {
|
|
141
|
+
referrerUserId?: number | undefined;
|
|
142
|
+
refPercent?: number | undefined;
|
|
143
|
+
referralVolume: number;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
export interface UserSearchStatsUpdate {
|
|
147
|
+
userId: number;
|
|
148
|
+
exchangeStats: UserSearchExchangeStats | undefined;
|
|
149
|
+
referralStats: UserSearchReferralStats | undefined;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
export interface UpdateUserSearchStatsRequest {
|
|
153
|
+
items: UserSearchStatsUpdate[];
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
export interface UpdateUserSearchStatsResponse {
|
|
157
|
+
updatedCount: number;
|
|
158
|
+
}
|
|
159
|
+
|
|
103
160
|
export interface GetUserFullNamesByIdsRequest {
|
|
104
161
|
userIds: number[];
|
|
105
162
|
}
|
|
@@ -518,6 +575,8 @@ export interface UserServiceClient {
|
|
|
518
575
|
|
|
519
576
|
listUsers(request: ListUsersRequest): Observable<ListUsersResponse>;
|
|
520
577
|
|
|
578
|
+
updateUserSearchStats(request: UpdateUserSearchStatsRequest): Observable<UpdateUserSearchStatsResponse>;
|
|
579
|
+
|
|
521
580
|
/** Батч-резолв полных имен пользователей по их id (для enrichment в других сервисах). */
|
|
522
581
|
|
|
523
582
|
getUserFullNamesByIds(request: GetUserFullNamesByIdsRequest): Observable<GetUserFullNamesByIdsResponse>;
|
|
@@ -652,6 +711,10 @@ export interface UserServiceController {
|
|
|
652
711
|
|
|
653
712
|
listUsers(request: ListUsersRequest): Promise<ListUsersResponse> | Observable<ListUsersResponse> | ListUsersResponse;
|
|
654
713
|
|
|
714
|
+
updateUserSearchStats(
|
|
715
|
+
request: UpdateUserSearchStatsRequest,
|
|
716
|
+
): Promise<UpdateUserSearchStatsResponse> | Observable<UpdateUserSearchStatsResponse> | UpdateUserSearchStatsResponse;
|
|
717
|
+
|
|
655
718
|
/** Батч-резолв полных имен пользователей по их id (для enrichment в других сервисах). */
|
|
656
719
|
|
|
657
720
|
getUserFullNamesByIds(
|
|
@@ -886,6 +949,7 @@ export function UserServiceControllerMethods() {
|
|
|
886
949
|
"updateUser",
|
|
887
950
|
"updateUserStatus",
|
|
888
951
|
"listUsers",
|
|
952
|
+
"updateUserSearchStats",
|
|
889
953
|
"getUserFullNamesByIds",
|
|
890
954
|
"resolveUserForTransfer",
|
|
891
955
|
"getCrmSession",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arbiwallet/contracts",
|
|
3
3
|
"descriptions": "Generate and manage smart contracts for ArbiWallet",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.274",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"generate": "protoc -I ./proto ./proto/*.proto --ts_proto_out=./gen --ts_proto_opt=nestJs=true,package=omit"
|
|
7
7
|
},
|
|
@@ -20,6 +20,7 @@ service ExchangeCoreService {
|
|
|
20
20
|
rpc UpdateExchangeDeal(UpdateExchangeDealRequest) returns (UpdateExchangeDealResponse);
|
|
21
21
|
rpc CompleteExchangeDeal(CompleteExchangeDealRequest) returns (CompleteExchangeDealResponse);
|
|
22
22
|
rpc CancelExchangeDeal(CancelExchangeDealRequest) returns (CancelExchangeDealResponse);
|
|
23
|
+
rpc GetUserIdsWithDealsInPeriod(GetUserIdsWithDealsInPeriodRequest) returns (GetUserIdsWithDealsInPeriodResponse);
|
|
23
24
|
|
|
24
25
|
rpc CreateExchangePayment(CreateExchangePaymentRequest) returns (CreateExchangePaymentResponse);
|
|
25
26
|
rpc HandlePaymentWebhook(HandlePaymentWebhookRequest) returns (HandlePaymentWebhookResponse);
|
|
@@ -42,6 +43,8 @@ message AuthManagerContext {
|
|
|
42
43
|
bool can_cross_office = 3;
|
|
43
44
|
optional string request_id = 4;
|
|
44
45
|
optional string client_type = 5;
|
|
46
|
+
repeated string permissions = 6;
|
|
47
|
+
bool is_super_admin = 7;
|
|
45
48
|
}
|
|
46
49
|
|
|
47
50
|
message CreateExchangeOrderRequest {
|
|
@@ -131,6 +134,7 @@ message CreateExchangeDealRequest {
|
|
|
131
134
|
optional string customer_referrer = 24;
|
|
132
135
|
|
|
133
136
|
repeated double receipts = 25;
|
|
137
|
+
optional string office_id = 26;
|
|
134
138
|
}
|
|
135
139
|
|
|
136
140
|
message CreateExchangeDealResult {
|
|
@@ -378,6 +382,15 @@ message CancelExchangeDealResponse {
|
|
|
378
382
|
optional google.protobuf.Struct validationErrors = 4;
|
|
379
383
|
}
|
|
380
384
|
|
|
385
|
+
message GetUserIdsWithDealsInPeriodRequest {
|
|
386
|
+
optional string date_from = 1;
|
|
387
|
+
optional string date_to = 2;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
message GetUserIdsWithDealsInPeriodResponse {
|
|
391
|
+
repeated int32 user_ids = 1;
|
|
392
|
+
}
|
|
393
|
+
|
|
381
394
|
message ExchangeCalculationsFiltersRequest {
|
|
382
395
|
optional string date_from = 1;
|
|
383
396
|
optional string date_to = 2;
|
|
@@ -387,6 +400,7 @@ message ExchangeCalculationsFiltersRequest {
|
|
|
387
400
|
optional string output_currency = 6;
|
|
388
401
|
optional string status = 7; // no_payment | with_payment | with_exchange | completed
|
|
389
402
|
optional string search = 8;
|
|
403
|
+
optional AuthManagerContext auth_manager_context = 9;
|
|
390
404
|
}
|
|
391
405
|
|
|
392
406
|
message ExchangeDealsFiltersRequest {
|
|
@@ -454,6 +468,7 @@ message HandlePaymentWebhookResponse {
|
|
|
454
468
|
message GetExchangePaymentsRequest {
|
|
455
469
|
optional int32 page = 1;
|
|
456
470
|
optional int32 limit = 2;
|
|
471
|
+
optional AuthManagerContext auth_manager_context = 3;
|
|
457
472
|
}
|
|
458
473
|
|
|
459
474
|
message GetExchangePaymentsItem {
|
|
@@ -499,6 +514,7 @@ message GetExchangePaymentResponse {
|
|
|
499
514
|
message SearchExchangePaymentRequest {
|
|
500
515
|
string search = 1;
|
|
501
516
|
int32 limit = 2;
|
|
517
|
+
optional AuthManagerContext auth_manager_context = 3;
|
|
502
518
|
}
|
|
503
519
|
|
|
504
520
|
message SearchExchangePaymentItem {
|
|
@@ -513,6 +529,7 @@ message SearchExchangePaymentResponse {
|
|
|
513
529
|
|
|
514
530
|
message PrealoadExchangePaymentForSearchRequest {
|
|
515
531
|
string payment_id = 1;
|
|
532
|
+
optional AuthManagerContext auth_manager_context = 2;
|
|
516
533
|
}
|
|
517
534
|
|
|
518
535
|
message PrealoadExchangePaymentForSearchResponse {
|
|
@@ -246,6 +246,8 @@ message AuthManagerContext {
|
|
|
246
246
|
bool can_cross_office = 3;
|
|
247
247
|
optional string request_id = 4;
|
|
248
248
|
optional string client_type = 5;
|
|
249
|
+
repeated string permissions = 6;
|
|
250
|
+
bool is_super_admin = 7;
|
|
249
251
|
}
|
|
250
252
|
|
|
251
253
|
message CalculateExchangeRequest {
|
|
@@ -323,6 +325,7 @@ message GetExchangeCalculationHistoryRequest {
|
|
|
323
325
|
optional string search = 8;
|
|
324
326
|
optional int32 page = 9;
|
|
325
327
|
optional int32 page_size = 10;
|
|
328
|
+
optional AuthManagerContext auth_manager_context = 11;
|
|
326
329
|
}
|
|
327
330
|
|
|
328
331
|
message ExchangeCalculationFiltersRequest {
|
|
@@ -334,6 +337,7 @@ message ExchangeCalculationFiltersRequest {
|
|
|
334
337
|
optional string output_currency = 6;
|
|
335
338
|
optional string status = 7; // no_payment | with_payment | with_exchange | completed
|
|
336
339
|
optional string search = 8;
|
|
340
|
+
optional AuthManagerContext auth_manager_context = 9;
|
|
337
341
|
}
|
|
338
342
|
|
|
339
343
|
message ExchangeCalculationHistoryAppliedFilters {
|
package/proto/user.proto
CHANGED
|
@@ -6,6 +6,7 @@ service UserService {
|
|
|
6
6
|
rpc UpdateUser (UpdateUserRequest) returns (UserResponse);
|
|
7
7
|
rpc UpdateUserStatus (UpdateUserStatusRequest) returns (UserResponse);
|
|
8
8
|
rpc ListUsers (ListUsersRequest) returns (ListUsersResponse);
|
|
9
|
+
rpc UpdateUserSearchStats (UpdateUserSearchStatsRequest) returns (UpdateUserSearchStatsResponse);
|
|
9
10
|
// Батч-резолв полных имен пользователей по их id (для enrichment в других сервисах).
|
|
10
11
|
rpc GetUserFullNamesByIds (GetUserFullNamesByIdsRequest) returns (GetUserFullNamesByIdsResponse);
|
|
11
12
|
// Ровно одно из полей: user_id, email, phone, telegram_username → id получателя для внутреннего перевода.
|
|
@@ -107,6 +108,20 @@ message UserResponse {
|
|
|
107
108
|
optional string card_first_name = 20;
|
|
108
109
|
optional string card_last_name = 21;
|
|
109
110
|
optional int32 crm_customer_id = 22;
|
|
111
|
+
optional int32 referrer_user_id = 23;
|
|
112
|
+
optional double ref_percent = 24;
|
|
113
|
+
optional double referral_volume = 25;
|
|
114
|
+
optional int32 exchanges_count = 26;
|
|
115
|
+
optional int32 exchange_count_last_year = 27;
|
|
116
|
+
optional double total_amount = 28;
|
|
117
|
+
optional double avg_check = 29;
|
|
118
|
+
optional string first_exchange_at = 30;
|
|
119
|
+
optional string last_exchange_at = 31;
|
|
120
|
+
optional double life_period = 32;
|
|
121
|
+
optional double life_period_year = 33;
|
|
122
|
+
optional double frequency = 34;
|
|
123
|
+
optional double ltv = 35;
|
|
124
|
+
optional string user_search_updated_at = 36;
|
|
110
125
|
}
|
|
111
126
|
|
|
112
127
|
message UpdateUserRequest {
|
|
@@ -142,6 +157,16 @@ message ListUsersRequest {
|
|
|
142
157
|
optional string search = 5;
|
|
143
158
|
optional UserStatus status_value = 6;
|
|
144
159
|
optional string registration_type_value = 7;
|
|
160
|
+
repeated string sources = 8;
|
|
161
|
+
repeated string tags = 9;
|
|
162
|
+
optional int32 referrer_user_id = 10;
|
|
163
|
+
optional string registration_from = 11;
|
|
164
|
+
optional string registration_to = 12;
|
|
165
|
+
optional string deal_from = 13;
|
|
166
|
+
optional string deal_to = 14;
|
|
167
|
+
optional string last_deal_from = 15;
|
|
168
|
+
optional string last_deal_to = 16;
|
|
169
|
+
optional string sort = 17;
|
|
145
170
|
}
|
|
146
171
|
|
|
147
172
|
message ListUsersResponse {
|
|
@@ -151,6 +176,39 @@ message ListUsersResponse {
|
|
|
151
176
|
int32 limit = 4;
|
|
152
177
|
}
|
|
153
178
|
|
|
179
|
+
message UserSearchExchangeStats {
|
|
180
|
+
int32 exchanges_count = 1;
|
|
181
|
+
int32 exchange_count_last_year = 2;
|
|
182
|
+
double total_amount = 3;
|
|
183
|
+
double avg_check = 4;
|
|
184
|
+
optional string first_exchange_at = 5;
|
|
185
|
+
optional string last_exchange_at = 6;
|
|
186
|
+
optional double life_period = 7;
|
|
187
|
+
optional double life_period_year = 8;
|
|
188
|
+
optional double frequency = 9;
|
|
189
|
+
optional double ltv = 10;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
message UserSearchReferralStats {
|
|
193
|
+
optional int32 referrer_user_id = 1;
|
|
194
|
+
optional double ref_percent = 2;
|
|
195
|
+
double referral_volume = 3;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
message UserSearchStatsUpdate {
|
|
199
|
+
int32 user_id = 1;
|
|
200
|
+
UserSearchExchangeStats exchange_stats = 2;
|
|
201
|
+
UserSearchReferralStats referral_stats = 3;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
message UpdateUserSearchStatsRequest {
|
|
205
|
+
repeated UserSearchStatsUpdate items = 1;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
message UpdateUserSearchStatsResponse {
|
|
209
|
+
int32 updated_count = 1;
|
|
210
|
+
}
|
|
211
|
+
|
|
154
212
|
message GetUserFullNamesByIdsRequest {
|
|
155
213
|
repeated int32 user_ids = 1;
|
|
156
214
|
}
|