@arbiwallet/contracts 1.0.279 → 1.0.281

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.
@@ -361,6 +361,30 @@ export interface BatchGetUserDealStatsResponse {
361
361
  items: UserDealStats[];
362
362
  }
363
363
 
364
+ export interface GetUserMetricsRequest {
365
+ userId: number;
366
+ dateFrom?: string | undefined;
367
+ dateTo?: string | undefined;
368
+ }
369
+
370
+ export interface UserDebtByCurrency {
371
+ currency: string;
372
+ amount: number;
373
+ }
374
+
375
+ export interface UserMetricsSnapshot {
376
+ totalProfit: number;
377
+ dealsCount: number;
378
+ clientDebt: UserDebtByCurrency[];
379
+ averageMarkup: number;
380
+ averageCheck: number;
381
+ }
382
+
383
+ export interface GetUserMetricsResponse {
384
+ period: UserMetricsSnapshot | undefined;
385
+ today: UserMetricsSnapshot | undefined;
386
+ }
387
+
364
388
  export interface ExchangeCalculationsFiltersRequest {
365
389
  dateFrom?: string | undefined;
366
390
  dateTo?: string | undefined;
@@ -660,6 +684,8 @@ export interface ExchangeCoreServiceClient {
660
684
 
661
685
  batchGetUserDealStats(request: BatchGetUserDealStatsRequest): Observable<BatchGetUserDealStatsResponse>;
662
686
 
687
+ getUserMetrics(request: GetUserMetricsRequest): Observable<GetUserMetricsResponse>;
688
+
663
689
  createExchangePayment(request: CreateExchangePaymentRequest): Observable<CreateExchangePaymentResponse>;
664
690
 
665
691
  handlePaymentWebhook(request: HandlePaymentWebhookRequest): Observable<HandlePaymentWebhookResponse>;
@@ -743,6 +769,10 @@ export interface ExchangeCoreServiceController {
743
769
  request: BatchGetUserDealStatsRequest,
744
770
  ): Promise<BatchGetUserDealStatsResponse> | Observable<BatchGetUserDealStatsResponse> | BatchGetUserDealStatsResponse;
745
771
 
772
+ getUserMetrics(
773
+ request: GetUserMetricsRequest,
774
+ ): Promise<GetUserMetricsResponse> | Observable<GetUserMetricsResponse> | GetUserMetricsResponse;
775
+
746
776
  createExchangePayment(
747
777
  request: CreateExchangePaymentRequest,
748
778
  ): Promise<CreateExchangePaymentResponse> | Observable<CreateExchangePaymentResponse> | CreateExchangePaymentResponse;
@@ -806,6 +836,7 @@ export function ExchangeCoreServiceControllerMethods() {
806
836
  "cancelExchangeDeal",
807
837
  "getUserIdsWithDealsInPeriod",
808
838
  "batchGetUserDealStats",
839
+ "getUserMetrics",
809
840
  "createExchangePayment",
810
841
  "handlePaymentWebhook",
811
842
  "getExchangePayments",
package/gen/referral.ts CHANGED
@@ -102,6 +102,48 @@ export interface GetReferralSummaryResponse {
102
102
  availableUsdtBalance: string;
103
103
  }
104
104
 
105
+ export interface AdminGetReferralProfileByUserIdRequest {
106
+ userId: number;
107
+ }
108
+
109
+ export interface AdminReferralProfileByUserIdResponse {
110
+ profileId: string;
111
+ userId: number;
112
+ refCode: string;
113
+ referrerUserId?: number | undefined;
114
+ bonusType: ReferralBonusType;
115
+ refPercent: string;
116
+ status: ReferralProfileStatus;
117
+ createdAt: string;
118
+ updatedAt: string;
119
+ /** true, если в рамках AdminUpdateReferralProfileByUserId был установлен referrer_user_id. */
120
+ referrerChanged: boolean;
121
+ }
122
+
123
+ export interface AdminUpdateReferralProfileByUserIdRequest {
124
+ userId: number;
125
+ /**
126
+ * Разрешено только если у профиля еще нет реферера.
127
+ * Если текущий реферер уже задан, сервис возвращает ошибку REFERRER_ALREADY_SET.
128
+ */
129
+ referrerUserId?: number | undefined;
130
+ bonusType?: ReferralBonusType | undefined;
131
+ refPercent?: string | undefined;
132
+ refCode?: string | undefined;
133
+ changedBy?: string | undefined;
134
+ }
135
+
136
+ export interface GetUserReferralMetricsRequest {
137
+ walletUserId: string;
138
+ dateFrom?: string | undefined;
139
+ dateTo?: string | undefined;
140
+ }
141
+
142
+ export interface GetUserReferralMetricsResponse {
143
+ referralsCount: number;
144
+ referralsToday: number;
145
+ }
146
+
105
147
  export interface ListReferralsRequest {
106
148
  walletUserId: string;
107
149
  page?: number | undefined;
@@ -282,6 +324,20 @@ export interface ReferralServiceClient {
282
324
 
283
325
  getReferralSummary(request: GetReferralSummaryRequest): Observable<GetReferralSummaryResponse>;
284
326
 
327
+ /** CRM admin: получить реферальный профиль для формы редактирования пользователя. */
328
+
329
+ adminGetReferralProfileByUserId(
330
+ request: AdminGetReferralProfileByUserIdRequest,
331
+ ): Observable<AdminReferralProfileByUserIdResponse>;
332
+
333
+ /** CRM admin: обновить реферальный профиль (реферер, тип начисления, процент, ref code). */
334
+
335
+ adminUpdateReferralProfileByUserId(
336
+ request: AdminUpdateReferralProfileByUserIdRequest,
337
+ ): Observable<AdminReferralProfileByUserIdResponse>;
338
+
339
+ getUserReferralMetrics(request: GetUserReferralMetricsRequest): Observable<GetUserReferralMetricsResponse>;
340
+
285
341
  listReferrals(request: ListReferralsRequest): Observable<ListReferralsResponse>;
286
342
 
287
343
  getReferredUserIds(request: GetReferredUserIdsRequest): Observable<GetReferredUserIdsResponse>;
@@ -331,6 +387,31 @@ export interface ReferralServiceController {
331
387
  request: GetReferralSummaryRequest,
332
388
  ): Promise<GetReferralSummaryResponse> | Observable<GetReferralSummaryResponse> | GetReferralSummaryResponse;
333
389
 
390
+ /** CRM admin: получить реферальный профиль для формы редактирования пользователя. */
391
+
392
+ adminGetReferralProfileByUserId(
393
+ request: AdminGetReferralProfileByUserIdRequest,
394
+ ):
395
+ | Promise<AdminReferralProfileByUserIdResponse>
396
+ | Observable<AdminReferralProfileByUserIdResponse>
397
+ | AdminReferralProfileByUserIdResponse;
398
+
399
+ /** CRM admin: обновить реферальный профиль (реферер, тип начисления, процент, ref code). */
400
+
401
+ adminUpdateReferralProfileByUserId(
402
+ request: AdminUpdateReferralProfileByUserIdRequest,
403
+ ):
404
+ | Promise<AdminReferralProfileByUserIdResponse>
405
+ | Observable<AdminReferralProfileByUserIdResponse>
406
+ | AdminReferralProfileByUserIdResponse;
407
+
408
+ getUserReferralMetrics(
409
+ request: GetUserReferralMetricsRequest,
410
+ ):
411
+ | Promise<GetUserReferralMetricsResponse>
412
+ | Observable<GetUserReferralMetricsResponse>
413
+ | GetUserReferralMetricsResponse;
414
+
334
415
  listReferrals(
335
416
  request: ListReferralsRequest,
336
417
  ): Promise<ListReferralsResponse> | Observable<ListReferralsResponse> | ListReferralsResponse;
@@ -398,6 +479,9 @@ export function ReferralServiceControllerMethods() {
398
479
  "getReferralLink",
399
480
  "bindReferralByCode",
400
481
  "getReferralSummary",
482
+ "adminGetReferralProfileByUserId",
483
+ "adminUpdateReferralProfileByUserId",
484
+ "getUserReferralMetrics",
401
485
  "listReferrals",
402
486
  "getReferredUserIds",
403
487
  "batchGetDirectReferrersByUserIds",
package/gen/user.ts CHANGED
@@ -95,6 +95,53 @@ export interface UserResponse {
95
95
  advChannelName?: string | undefined;
96
96
  }
97
97
 
98
+ export interface AdminGetUserForUpdateRequest {
99
+ userId: number;
100
+ }
101
+
102
+ export interface AdminUserForUpdateResponse {
103
+ id: number;
104
+ uid: number;
105
+ firstName?: string | undefined;
106
+ lastName?: string | undefined;
107
+ email?: string | undefined;
108
+ phone?: string | undefined;
109
+ telegramUsername?: string | undefined;
110
+ telegramId?: string | undefined;
111
+ whatsapp?: string | undefined;
112
+ advChannel?: string | undefined;
113
+ refCode?: string | undefined;
114
+ referrerUserId?: number | undefined;
115
+ bonusType?: UserSearchBonusType | undefined;
116
+ refPercent?:
117
+ | number
118
+ | undefined;
119
+ /** true, если в рамках AdminUpdateUserProfile был установлен referrer_user_id. */
120
+ referrerChanged: boolean;
121
+ }
122
+
123
+ export interface AdminUpdateUserProfileRequest {
124
+ userId: number;
125
+ firstName?: string | undefined;
126
+ lastName?: string | undefined;
127
+ email?: string | undefined;
128
+ phone?: string | undefined;
129
+ telegramUsername?: string | undefined;
130
+ telegramId?: string | undefined;
131
+ whatsapp?: string | undefined;
132
+ advChannel?: string | undefined;
133
+ refCode?:
134
+ | string
135
+ | undefined;
136
+ /**
137
+ * Разрешено только если у пользователя еще нет реферера.
138
+ * Если текущий реферер уже задан, сервис возвращает ошибку REFERRER_ALREADY_SET.
139
+ */
140
+ referrerUserId?: number | undefined;
141
+ bonusType?: UserSearchBonusType | undefined;
142
+ refPercent?: number | undefined;
143
+ }
144
+
98
145
  export interface UpdateUserRequest {
99
146
  userId: number;
100
147
  firstName?: string | undefined;
@@ -582,8 +629,16 @@ export const USER_PACKAGE_NAME = "user";
582
629
  export interface UserServiceClient {
583
630
  getUser(request: GetUserRequest): Observable<UserResponse>;
584
631
 
632
+ /** CRM admin: получить поля пользователя для формы редактирования. */
633
+
634
+ adminGetUserForUpdate(request: AdminGetUserForUpdateRequest): Observable<AdminUserForUpdateResponse>;
635
+
585
636
  updateUser(request: UpdateUserRequest): Observable<UserResponse>;
586
637
 
638
+ /** CRM admin: обновить редактируемые поля пользователя. */
639
+
640
+ adminUpdateUserProfile(request: AdminUpdateUserProfileRequest): Observable<AdminUserForUpdateResponse>;
641
+
587
642
  updateUserStatus(request: UpdateUserStatusRequest): Observable<UserResponse>;
588
643
 
589
644
  listUsers(request: ListUsersRequest): Observable<ListUsersResponse>;
@@ -718,8 +773,20 @@ export interface UserServiceClient {
718
773
  export interface UserServiceController {
719
774
  getUser(request: GetUserRequest): Promise<UserResponse> | Observable<UserResponse> | UserResponse;
720
775
 
776
+ /** CRM admin: получить поля пользователя для формы редактирования. */
777
+
778
+ adminGetUserForUpdate(
779
+ request: AdminGetUserForUpdateRequest,
780
+ ): Promise<AdminUserForUpdateResponse> | Observable<AdminUserForUpdateResponse> | AdminUserForUpdateResponse;
781
+
721
782
  updateUser(request: UpdateUserRequest): Promise<UserResponse> | Observable<UserResponse> | UserResponse;
722
783
 
784
+ /** CRM admin: обновить редактируемые поля пользователя. */
785
+
786
+ adminUpdateUserProfile(
787
+ request: AdminUpdateUserProfileRequest,
788
+ ): Promise<AdminUserForUpdateResponse> | Observable<AdminUserForUpdateResponse> | AdminUserForUpdateResponse;
789
+
723
790
  updateUserStatus(request: UpdateUserStatusRequest): Promise<UserResponse> | Observable<UserResponse> | UserResponse;
724
791
 
725
792
  listUsers(request: ListUsersRequest): Promise<ListUsersResponse> | Observable<ListUsersResponse> | ListUsersResponse;
@@ -959,7 +1026,9 @@ export function UserServiceControllerMethods() {
959
1026
  return function (constructor: Function) {
960
1027
  const grpcMethods: string[] = [
961
1028
  "getUser",
1029
+ "adminGetUserForUpdate",
962
1030
  "updateUser",
1031
+ "adminUpdateUserProfile",
963
1032
  "updateUserStatus",
964
1033
  "listUsers",
965
1034
  "updateUserSearchStats",
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.279",
4
+ "version": "1.0.281",
5
5
  "scripts": {
6
6
  "generate": "protoc -I ./proto ./proto/*.proto --ts_proto_out=./gen --ts_proto_opt=nestJs=true,package=omit"
7
7
  },
@@ -22,6 +22,7 @@ service ExchangeCoreService {
22
22
  rpc CancelExchangeDeal(CancelExchangeDealRequest) returns (CancelExchangeDealResponse);
23
23
  rpc GetUserIdsWithDealsInPeriod(GetUserIdsWithDealsInPeriodRequest) returns (GetUserIdsWithDealsInPeriodResponse);
24
24
  rpc BatchGetUserDealStats(BatchGetUserDealStatsRequest) returns (BatchGetUserDealStatsResponse);
25
+ rpc GetUserMetrics(GetUserMetricsRequest) returns (GetUserMetricsResponse);
25
26
 
26
27
  rpc CreateExchangePayment(CreateExchangePaymentRequest) returns (CreateExchangePaymentResponse);
27
28
  rpc HandlePaymentWebhook(HandlePaymentWebhookRequest) returns (HandlePaymentWebhookResponse);
@@ -408,6 +409,30 @@ message BatchGetUserDealStatsResponse {
408
409
  repeated UserDealStats items = 1;
409
410
  }
410
411
 
412
+ message GetUserMetricsRequest {
413
+ int32 user_id = 1;
414
+ optional string date_from = 2;
415
+ optional string date_to = 3;
416
+ }
417
+
418
+ message UserDebtByCurrency {
419
+ string currency = 1;
420
+ double amount = 2;
421
+ }
422
+
423
+ message UserMetricsSnapshot {
424
+ double total_profit = 1;
425
+ int32 deals_count = 2;
426
+ repeated UserDebtByCurrency client_debt = 3;
427
+ double average_markup = 4;
428
+ double average_check = 5;
429
+ }
430
+
431
+ message GetUserMetricsResponse {
432
+ UserMetricsSnapshot period = 1;
433
+ UserMetricsSnapshot today = 2;
434
+ }
435
+
411
436
  message ExchangeCalculationsFiltersRequest {
412
437
  optional string date_from = 1;
413
438
  optional string date_to = 2;
@@ -9,6 +9,11 @@ service ReferralService {
9
9
  rpc GetReferralLink(GetReferralLinkRequest) returns (GetReferralLinkResponse);
10
10
  rpc BindReferralByCode(BindReferralByCodeRequest) returns (BindReferralByCodeResponse);
11
11
  rpc GetReferralSummary(GetReferralSummaryRequest) returns (GetReferralSummaryResponse);
12
+ // CRM admin: получить реферальный профиль для формы редактирования пользователя.
13
+ rpc AdminGetReferralProfileByUserId(AdminGetReferralProfileByUserIdRequest) returns (AdminReferralProfileByUserIdResponse);
14
+ // CRM admin: обновить реферальный профиль (реферер, тип начисления, процент, ref code).
15
+ rpc AdminUpdateReferralProfileByUserId(AdminUpdateReferralProfileByUserIdRequest) returns (AdminReferralProfileByUserIdResponse);
16
+ rpc GetUserReferralMetrics(GetUserReferralMetricsRequest) returns (GetUserReferralMetricsResponse);
12
17
  rpc ListReferrals(ListReferralsRequest) returns (ListReferralsResponse);
13
18
  rpc GetReferredUserIds(GetReferredUserIdsRequest) returns (GetReferredUserIdsResponse);
14
19
  rpc BatchGetDirectReferrersByUserIds(BatchGetDirectReferrersByUserIdsRequest) returns (BatchGetDirectReferrersByUserIdsResponse);
@@ -110,6 +115,46 @@ message GetReferralSummaryResponse {
110
115
  string available_usdt_balance = 6;
111
116
  }
112
117
 
118
+ message AdminGetReferralProfileByUserIdRequest {
119
+ int32 user_id = 1;
120
+ }
121
+
122
+ message AdminReferralProfileByUserIdResponse {
123
+ string profile_id = 1;
124
+ int32 user_id = 2;
125
+ string ref_code = 3;
126
+ optional int32 referrer_user_id = 4;
127
+ ReferralBonusType bonus_type = 5;
128
+ string ref_percent = 6;
129
+ ReferralProfileStatus status = 7;
130
+ string created_at = 8;
131
+ string updated_at = 9;
132
+ // true, если в рамках AdminUpdateReferralProfileByUserId был установлен referrer_user_id.
133
+ bool referrer_changed = 10;
134
+ }
135
+
136
+ message AdminUpdateReferralProfileByUserIdRequest {
137
+ int32 user_id = 1;
138
+ // Разрешено только если у профиля еще нет реферера.
139
+ // Если текущий реферер уже задан, сервис возвращает ошибку REFERRER_ALREADY_SET.
140
+ optional int32 referrer_user_id = 2;
141
+ optional ReferralBonusType bonus_type = 3;
142
+ optional string ref_percent = 4;
143
+ optional string ref_code = 5;
144
+ optional string changed_by = 6;
145
+ }
146
+
147
+ message GetUserReferralMetricsRequest {
148
+ string wallet_user_id = 1;
149
+ optional string date_from = 2;
150
+ optional string date_to = 3;
151
+ }
152
+
153
+ message GetUserReferralMetricsResponse {
154
+ int32 referrals_count = 1;
155
+ int32 referrals_today = 2;
156
+ }
157
+
113
158
  message ListReferralsRequest {
114
159
  string wallet_user_id = 1;
115
160
  optional int32 page = 2;
package/proto/user.proto CHANGED
@@ -3,7 +3,11 @@ package user;
3
3
 
4
4
  service UserService {
5
5
  rpc GetUser (GetUserRequest) returns (UserResponse);
6
+ // CRM admin: получить поля пользователя для формы редактирования.
7
+ rpc AdminGetUserForUpdate (AdminGetUserForUpdateRequest) returns (AdminUserForUpdateResponse);
6
8
  rpc UpdateUser (UpdateUserRequest) returns (UserResponse);
9
+ // CRM admin: обновить редактируемые поля пользователя.
10
+ rpc AdminUpdateUserProfile (AdminUpdateUserProfileRequest) returns (AdminUserForUpdateResponse);
7
11
  rpc UpdateUserStatus (UpdateUserStatusRequest) returns (UserResponse);
8
12
  rpc ListUsers (ListUsersRequest) returns (ListUsersResponse);
9
13
  rpc UpdateUserSearchStats (UpdateUserSearchStatsRequest) returns (UpdateUserSearchStatsResponse);
@@ -135,6 +139,47 @@ message UserResponse {
135
139
  optional string adv_channel_name = 42;
136
140
  }
137
141
 
142
+ message AdminGetUserForUpdateRequest {
143
+ int32 user_id = 1;
144
+ }
145
+
146
+ message AdminUserForUpdateResponse {
147
+ int32 id = 1;
148
+ int32 uid = 2;
149
+ optional string first_name = 3;
150
+ optional string last_name = 4;
151
+ optional string email = 5;
152
+ optional string phone = 6;
153
+ optional string telegram_username = 7;
154
+ optional string telegram_id = 8;
155
+ optional string whatsapp = 9;
156
+ optional string adv_channel = 10;
157
+ optional string ref_code = 11;
158
+ optional int32 referrer_user_id = 12;
159
+ optional UserSearchBonusType bonus_type = 13;
160
+ optional double ref_percent = 14;
161
+ // true, если в рамках AdminUpdateUserProfile был установлен referrer_user_id.
162
+ bool referrer_changed = 15;
163
+ }
164
+
165
+ message AdminUpdateUserProfileRequest {
166
+ int32 user_id = 1;
167
+ optional string first_name = 2;
168
+ optional string last_name = 3;
169
+ optional string email = 4;
170
+ optional string phone = 5;
171
+ optional string telegram_username = 6;
172
+ optional string telegram_id = 7;
173
+ optional string whatsapp = 8;
174
+ optional string adv_channel = 9;
175
+ optional string ref_code = 10;
176
+ // Разрешено только если у пользователя еще нет реферера.
177
+ // Если текущий реферер уже задан, сервис возвращает ошибку REFERRER_ALREADY_SET.
178
+ optional int32 referrer_user_id = 11;
179
+ optional UserSearchBonusType bonus_type = 12;
180
+ optional double ref_percent = 13;
181
+ }
182
+
138
183
  message UpdateUserRequest {
139
184
  int32 user_id = 1;
140
185
  optional string first_name = 2;