@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.
@@ -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",
@@ -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.272",
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
  }