jr-common-micro 1.1.59 → 1.1.61

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.
@@ -19,6 +19,8 @@ export interface ChatGroupDto {
19
19
  is_active: boolean;
20
20
  system_notices: boolean;
21
21
  poll_policy: string;
22
+ has_unread_mention: boolean;
23
+ has_unread_reaction: boolean;
22
24
  }
23
25
  export interface ChatGroupListResponse {
24
26
  status: ResponseStatus | undefined;
@@ -20,6 +20,8 @@ export declare class ChatGroupDto extends Message<ChatGroupDto> {
20
20
  isActive: boolean;
21
21
  systemNotices: boolean;
22
22
  pollPolicy: string;
23
+ hasUnreadMention: boolean;
24
+ hasUnreadReaction: boolean;
23
25
  constructor(data?: PartialMessage<ChatGroupDto>);
24
26
  static readonly runtime: typeof proto3;
25
27
  static readonly typeName = "micro.v1.chat.ChatGroupDto";
@@ -22,6 +22,8 @@ class ChatGroupDto extends protobuf_1.Message {
22
22
  isActive = false;
23
23
  systemNotices = false;
24
24
  pollPolicy = "";
25
+ hasUnreadMention = false;
26
+ hasUnreadReaction = false;
25
27
  constructor(data) {
26
28
  super();
27
29
  protobuf_1.proto3.util.initPartial(data, this);
@@ -47,6 +49,8 @@ class ChatGroupDto extends protobuf_1.Message {
47
49
  { no: 16, name: "is_active", kind: "scalar", T: 8 },
48
50
  { no: 17, name: "system_notices", kind: "scalar", T: 8 },
49
51
  { no: 18, name: "poll_policy", kind: "scalar", T: 9 },
52
+ { no: 19, name: "has_unread_mention", kind: "scalar", T: 8 },
53
+ { no: 20, name: "has_unread_reaction", kind: "scalar", T: 8 },
50
54
  ]);
51
55
  static fromBinary(bytes, options) {
52
56
  return new ChatGroupDto().fromBinary(bytes, options);
@@ -20,6 +20,7 @@ export interface PortfolioDto {
20
20
  coins: CoinData[];
21
21
  createdAt: string;
22
22
  updatedAt: string;
23
+ isPublic: boolean;
23
24
  }
24
25
  export interface PortfoliosResponse {
25
26
  status: ResponseStatus | undefined;
@@ -93,6 +94,7 @@ export interface PortfolioBundleDto {
93
94
  createdAt: string;
94
95
  updatedAt: string;
95
96
  portfolioCoins: PortfolioCoinBundleDto[];
97
+ isPublic: boolean;
96
98
  }
97
99
  export interface PortfolioCoinBundleDto {
98
100
  id: string;
@@ -151,4 +153,19 @@ export interface DefaultCurrencyResponse {
151
153
  status: ResponseStatus | undefined;
152
154
  data: CurrencyDto | undefined;
153
155
  }
156
+ export interface PublicPortfolioItemDto {
157
+ coin_id: string;
158
+ symbol: string;
159
+ name: string;
160
+ percent: string;
161
+ }
162
+ export interface PublicPortfolioDto {
163
+ name: string;
164
+ coin_count: number;
165
+ items: PublicPortfolioItemDto[];
166
+ }
167
+ export interface PublicPortfolioResponse {
168
+ status: ResponseStatus | undefined;
169
+ data?: PublicPortfolioDto | undefined;
170
+ }
154
171
  export declare const MICRO_V1_PORTFOLIO_PACKAGE_NAME = "micro.v1.portfolio";
@@ -45,6 +45,7 @@ export declare class PortfolioDto extends Message<PortfolioDto> {
45
45
  coins: CoinData[];
46
46
  createdAt: string;
47
47
  updatedAt: string;
48
+ isPublic: boolean;
48
49
  constructor(data?: PartialMessage<PortfolioDto>);
49
50
  static readonly runtime: typeof proto3;
50
51
  static readonly typeName = "micro.v1.portfolio.PortfolioDto";
@@ -214,6 +215,7 @@ export declare class PortfolioBundleDto extends Message<PortfolioBundleDto> {
214
215
  createdAt: string;
215
216
  updatedAt: string;
216
217
  portfolioCoins: PortfolioCoinBundleDto[];
218
+ isPublic: boolean;
217
219
  constructor(data?: PartialMessage<PortfolioBundleDto>);
218
220
  static readonly runtime: typeof proto3;
219
221
  static readonly typeName = "micro.v1.portfolio.PortfolioBundleDto";
@@ -368,3 +370,42 @@ export declare class DefaultCurrencyResponse extends Message<DefaultCurrencyResp
368
370
  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DefaultCurrencyResponse;
369
371
  static equals(a: DefaultCurrencyResponse | PlainMessage<DefaultCurrencyResponse> | undefined, b: DefaultCurrencyResponse | PlainMessage<DefaultCurrencyResponse> | undefined): boolean;
370
372
  }
373
+ export declare class PublicPortfolioItemDto extends Message<PublicPortfolioItemDto> {
374
+ coinId: string;
375
+ symbol: string;
376
+ name: string;
377
+ percent: string;
378
+ constructor(data?: PartialMessage<PublicPortfolioItemDto>);
379
+ static readonly runtime: typeof proto3;
380
+ static readonly typeName = "micro.v1.portfolio.PublicPortfolioItemDto";
381
+ static readonly fields: FieldList;
382
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): PublicPortfolioItemDto;
383
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): PublicPortfolioItemDto;
384
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): PublicPortfolioItemDto;
385
+ static equals(a: PublicPortfolioItemDto | PlainMessage<PublicPortfolioItemDto> | undefined, b: PublicPortfolioItemDto | PlainMessage<PublicPortfolioItemDto> | undefined): boolean;
386
+ }
387
+ export declare class PublicPortfolioDto extends Message<PublicPortfolioDto> {
388
+ name: string;
389
+ coinCount: number;
390
+ items: PublicPortfolioItemDto[];
391
+ constructor(data?: PartialMessage<PublicPortfolioDto>);
392
+ static readonly runtime: typeof proto3;
393
+ static readonly typeName = "micro.v1.portfolio.PublicPortfolioDto";
394
+ static readonly fields: FieldList;
395
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): PublicPortfolioDto;
396
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): PublicPortfolioDto;
397
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): PublicPortfolioDto;
398
+ static equals(a: PublicPortfolioDto | PlainMessage<PublicPortfolioDto> | undefined, b: PublicPortfolioDto | PlainMessage<PublicPortfolioDto> | undefined): boolean;
399
+ }
400
+ export declare class PublicPortfolioResponse extends Message<PublicPortfolioResponse> {
401
+ status?: ResponseStatus;
402
+ data?: PublicPortfolioDto;
403
+ constructor(data?: PartialMessage<PublicPortfolioResponse>);
404
+ static readonly runtime: typeof proto3;
405
+ static readonly typeName = "micro.v1.portfolio.PublicPortfolioResponse";
406
+ static readonly fields: FieldList;
407
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): PublicPortfolioResponse;
408
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): PublicPortfolioResponse;
409
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): PublicPortfolioResponse;
410
+ static equals(a: PublicPortfolioResponse | PlainMessage<PublicPortfolioResponse> | undefined, b: PublicPortfolioResponse | PlainMessage<PublicPortfolioResponse> | undefined): boolean;
411
+ }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DefaultCurrencyResponse = exports.PortfolioWithCoinIdResponse = exports.AddCoinListResponse = exports.AddCoinListRequest = exports.RemovePortfolioResponse = exports.ResetPortfolioResponse = exports.RenamePortfolioResponse = exports.RenamePortfolioRequest = exports.SetMainPortfolioResponse = exports.PortfolioCoinChartData = exports.PortfolioCoinBundleDto = exports.PortfolioBundleDto = exports.PortfoliosBundleResponse = exports.CurrencyDto = exports.FeeDto = exports.TransactionDto = exports.AddCoinDto = exports.AddCoinResponse = exports.AddCoinRequest = exports.PortfolioStoreResponse = exports.PortfolioStoreRequest = exports.PortfolioCoinDto = exports.PortfoliosResponse = exports.PortfolioDto = exports.PortfolioByCoinIdResponse = exports.PortfolioUserResponse = exports.PortfolioByCoinIdDto = void 0;
3
+ exports.PublicPortfolioResponse = exports.PublicPortfolioDto = exports.PublicPortfolioItemDto = exports.DefaultCurrencyResponse = exports.PortfolioWithCoinIdResponse = exports.AddCoinListResponse = exports.AddCoinListRequest = exports.RemovePortfolioResponse = exports.ResetPortfolioResponse = exports.RenamePortfolioResponse = exports.RenamePortfolioRequest = exports.SetMainPortfolioResponse = exports.PortfolioCoinChartData = exports.PortfolioCoinBundleDto = exports.PortfolioBundleDto = exports.PortfoliosBundleResponse = exports.CurrencyDto = exports.FeeDto = exports.TransactionDto = exports.AddCoinDto = exports.AddCoinResponse = exports.AddCoinRequest = exports.PortfolioStoreResponse = exports.PortfolioStoreRequest = exports.PortfolioCoinDto = exports.PortfoliosResponse = exports.PortfolioDto = exports.PortfolioByCoinIdResponse = exports.PortfolioUserResponse = exports.PortfolioByCoinIdDto = void 0;
4
4
  const protobuf_1 = require("@bufbuild/protobuf");
5
5
  const general_pb_js_1 = require("../general_pb.js");
6
6
  class PortfolioByCoinIdDto extends protobuf_1.Message {
@@ -92,6 +92,7 @@ class PortfolioDto extends protobuf_1.Message {
92
92
  coins = [];
93
93
  createdAt = "";
94
94
  updatedAt = "";
95
+ isPublic = false;
95
96
  constructor(data) {
96
97
  super();
97
98
  protobuf_1.proto3.util.initPartial(data, this);
@@ -106,6 +107,7 @@ class PortfolioDto extends protobuf_1.Message {
106
107
  { no: 5, name: "coins", kind: "message", T: general_pb_js_1.CoinData, repeated: true },
107
108
  { no: 6, name: "createdAt", kind: "scalar", T: 9 },
108
109
  { no: 7, name: "updatedAt", kind: "scalar", T: 9 },
110
+ { no: 8, name: "isPublic", kind: "scalar", T: 8 },
109
111
  ]);
110
112
  static fromBinary(bytes, options) {
111
113
  return new PortfolioDto().fromBinary(bytes, options);
@@ -466,6 +468,7 @@ class PortfolioBundleDto extends protobuf_1.Message {
466
468
  createdAt = "";
467
469
  updatedAt = "";
468
470
  portfolioCoins = [];
471
+ isPublic = false;
469
472
  constructor(data) {
470
473
  super();
471
474
  protobuf_1.proto3.util.initPartial(data, this);
@@ -480,6 +483,7 @@ class PortfolioBundleDto extends protobuf_1.Message {
480
483
  { no: 5, name: "createdAt", kind: "scalar", T: 9 },
481
484
  { no: 6, name: "updatedAt", kind: "scalar", T: 9 },
482
485
  { no: 7, name: "portfolioCoins", kind: "message", T: PortfolioCoinBundleDto, repeated: true },
486
+ { no: 8, name: "isPublic", kind: "scalar", T: 8 },
483
487
  ]);
484
488
  static fromBinary(bytes, options) {
485
489
  return new PortfolioBundleDto().fromBinary(bytes, options);
@@ -818,3 +822,90 @@ class DefaultCurrencyResponse extends protobuf_1.Message {
818
822
  }
819
823
  }
820
824
  exports.DefaultCurrencyResponse = DefaultCurrencyResponse;
825
+ class PublicPortfolioItemDto extends protobuf_1.Message {
826
+ coinId = "";
827
+ symbol = "";
828
+ name = "";
829
+ percent = "";
830
+ constructor(data) {
831
+ super();
832
+ protobuf_1.proto3.util.initPartial(data, this);
833
+ }
834
+ static runtime = protobuf_1.proto3;
835
+ static typeName = "micro.v1.portfolio.PublicPortfolioItemDto";
836
+ static fields = protobuf_1.proto3.util.newFieldList(() => [
837
+ { no: 1, name: "coin_id", kind: "scalar", T: 9 },
838
+ { no: 2, name: "symbol", kind: "scalar", T: 9 },
839
+ { no: 3, name: "name", kind: "scalar", T: 9 },
840
+ { no: 4, name: "percent", kind: "scalar", T: 9 },
841
+ ]);
842
+ static fromBinary(bytes, options) {
843
+ return new PublicPortfolioItemDto().fromBinary(bytes, options);
844
+ }
845
+ static fromJson(jsonValue, options) {
846
+ return new PublicPortfolioItemDto().fromJson(jsonValue, options);
847
+ }
848
+ static fromJsonString(jsonString, options) {
849
+ return new PublicPortfolioItemDto().fromJsonString(jsonString, options);
850
+ }
851
+ static equals(a, b) {
852
+ return protobuf_1.proto3.util.equals(PublicPortfolioItemDto, a, b);
853
+ }
854
+ }
855
+ exports.PublicPortfolioItemDto = PublicPortfolioItemDto;
856
+ class PublicPortfolioDto extends protobuf_1.Message {
857
+ name = "";
858
+ coinCount = 0;
859
+ items = [];
860
+ constructor(data) {
861
+ super();
862
+ protobuf_1.proto3.util.initPartial(data, this);
863
+ }
864
+ static runtime = protobuf_1.proto3;
865
+ static typeName = "micro.v1.portfolio.PublicPortfolioDto";
866
+ static fields = protobuf_1.proto3.util.newFieldList(() => [
867
+ { no: 1, name: "name", kind: "scalar", T: 9 },
868
+ { no: 2, name: "coin_count", kind: "scalar", T: 13 },
869
+ { no: 3, name: "items", kind: "message", T: PublicPortfolioItemDto, repeated: true },
870
+ ]);
871
+ static fromBinary(bytes, options) {
872
+ return new PublicPortfolioDto().fromBinary(bytes, options);
873
+ }
874
+ static fromJson(jsonValue, options) {
875
+ return new PublicPortfolioDto().fromJson(jsonValue, options);
876
+ }
877
+ static fromJsonString(jsonString, options) {
878
+ return new PublicPortfolioDto().fromJsonString(jsonString, options);
879
+ }
880
+ static equals(a, b) {
881
+ return protobuf_1.proto3.util.equals(PublicPortfolioDto, a, b);
882
+ }
883
+ }
884
+ exports.PublicPortfolioDto = PublicPortfolioDto;
885
+ class PublicPortfolioResponse extends protobuf_1.Message {
886
+ status;
887
+ data;
888
+ constructor(data) {
889
+ super();
890
+ protobuf_1.proto3.util.initPartial(data, this);
891
+ }
892
+ static runtime = protobuf_1.proto3;
893
+ static typeName = "micro.v1.portfolio.PublicPortfolioResponse";
894
+ static fields = protobuf_1.proto3.util.newFieldList(() => [
895
+ { no: 1, name: "status", kind: "message", T: general_pb_js_1.ResponseStatus },
896
+ { no: 2, name: "data", kind: "message", T: PublicPortfolioDto, opt: true },
897
+ ]);
898
+ static fromBinary(bytes, options) {
899
+ return new PublicPortfolioResponse().fromBinary(bytes, options);
900
+ }
901
+ static fromJson(jsonValue, options) {
902
+ return new PublicPortfolioResponse().fromJson(jsonValue, options);
903
+ }
904
+ static fromJsonString(jsonString, options) {
905
+ return new PublicPortfolioResponse().fromJsonString(jsonString, options);
906
+ }
907
+ static equals(a, b) {
908
+ return protobuf_1.proto3.util.equals(PublicPortfolioResponse, a, b);
909
+ }
910
+ }
911
+ exports.PublicPortfolioResponse = PublicPortfolioResponse;
@@ -1,4 +1,4 @@
1
- import { AddCoinListRequest, AddCoinListResponse, AddCoinRequest, AddCoinResponse, DefaultCurrencyResponse, PortfolioByCoinIdResponse, PortfoliosBundleResponse, PortfoliosResponse, PortfolioStoreRequest, PortfolioStoreResponse, PortfolioUserResponse, PortfolioWithCoinIdResponse, RemovePortfolioResponse, RenamePortfolioRequest, RenamePortfolioResponse, ResetPortfolioResponse, SetMainPortfolioResponse } from "./portfolio_messages_pb.js";
1
+ import { AddCoinListRequest, AddCoinListResponse, AddCoinRequest, AddCoinResponse, DefaultCurrencyResponse, PortfolioByCoinIdResponse, PortfoliosBundleResponse, PortfoliosResponse, PortfolioStoreRequest, PortfolioStoreResponse, PortfolioUserResponse, PortfolioWithCoinIdResponse, PublicPortfolioResponse, RemovePortfolioResponse, RenamePortfolioRequest, RenamePortfolioResponse, ResetPortfolioResponse, SetMainPortfolioResponse } from "./portfolio_messages_pb.js";
2
2
  import { MethodKind } from "@bufbuild/protobuf";
3
3
  import { ByIdRequest, EmptyRequest, EmptyResponse } from "../general_pb.js";
4
4
  import { PortfolioCoinPaginateRequest, PortfolioCoinPaginateResponse, RemovePortfolioCoinResponse } from "./portfolio_coin_messages_pb.js";
@@ -90,6 +90,18 @@ export declare const PPortfolioService: {
90
90
  readonly O: typeof PortfolioUserResponse;
91
91
  readonly kind: MethodKind.ServerStreaming;
92
92
  };
93
+ readonly setPublicPortfolio: {
94
+ readonly name: "SetPublicPortfolio";
95
+ readonly I: typeof ByIdRequest;
96
+ readonly O: typeof EmptyResponse;
97
+ readonly kind: MethodKind.ServerStreaming;
98
+ };
99
+ readonly getPublicPortfolio: {
100
+ readonly name: "GetPublicPortfolio";
101
+ readonly I: typeof ByIdRequest;
102
+ readonly O: typeof PublicPortfolioResponse;
103
+ readonly kind: MethodKind.ServerStreaming;
104
+ };
93
105
  };
94
106
  };
95
107
  export declare const PPortfolioCoinService: {
@@ -93,6 +93,18 @@ exports.PPortfolioService = {
93
93
  O: portfolio_messages_pb_js_1.PortfolioUserResponse,
94
94
  kind: protobuf_1.MethodKind.ServerStreaming,
95
95
  },
96
+ setPublicPortfolio: {
97
+ name: "SetPublicPortfolio",
98
+ I: general_pb_js_1.ByIdRequest,
99
+ O: general_pb_js_1.EmptyResponse,
100
+ kind: protobuf_1.MethodKind.ServerStreaming,
101
+ },
102
+ getPublicPortfolio: {
103
+ name: "GetPublicPortfolio",
104
+ I: general_pb_js_1.ByIdRequest,
105
+ O: portfolio_messages_pb_js_1.PublicPortfolioResponse,
106
+ kind: protobuf_1.MethodKind.ServerStreaming,
107
+ },
96
108
  }
97
109
  };
98
110
  exports.PPortfolioCoinService = {
@@ -3,7 +3,7 @@ import { Observable } from "rxjs";
3
3
  import { ByIdRequest, EmptyRequest, EmptyResponse } from "../general_nest";
4
4
  import { PortfolioCoinPaginateRequest, PortfolioCoinPaginateResponse, RemovePortfolioCoinResponse } from "./portfolio_coin_messages_nest";
5
5
  import { AddPortfolioCoinTransactionRequest, AddPortfolioCoinTransactionResponse, DeleteTransactionResponse, PortfolioCoinTransactionResponse, UpdateTransactionRequest, UpdateTransactionResponse } from "./portfolio_coin_trasaction_messages_nest";
6
- import { AddCoinListRequest, AddCoinListResponse, AddCoinRequest, AddCoinResponse, DefaultCurrencyResponse, PortfolioByCoinIdResponse, PortfoliosBundleResponse, PortfoliosResponse, PortfolioStoreRequest, PortfolioStoreResponse, PortfolioUserResponse, PortfolioWithCoinIdResponse, RemovePortfolioResponse, RenamePortfolioRequest, RenamePortfolioResponse, ResetPortfolioResponse, SetMainPortfolioResponse } from "./portfolio_messages_nest";
6
+ import { AddCoinListRequest, AddCoinListResponse, AddCoinRequest, AddCoinResponse, DefaultCurrencyResponse, PortfolioByCoinIdResponse, PortfoliosBundleResponse, PortfoliosResponse, PortfolioStoreRequest, PortfolioStoreResponse, PortfolioUserResponse, PortfolioWithCoinIdResponse, PublicPortfolioResponse, RemovePortfolioResponse, RenamePortfolioRequest, RenamePortfolioResponse, ResetPortfolioResponse, SetMainPortfolioResponse } from "./portfolio_messages_nest";
7
7
  export declare const protobufPackage = "micro.v1.portfolio";
8
8
  export declare const MICRO_V1_PORTFOLIO_PACKAGE_NAME = "micro.v1.portfolio";
9
9
  export interface PPortfolioServiceClient {
@@ -21,6 +21,8 @@ export interface PPortfolioServiceClient {
21
21
  removeUserData(request: ByIdRequest, metadata?: Metadata): Observable<EmptyResponse>;
22
22
  getPortfolioByCoinId(request: ByIdRequest, metadata?: Metadata): Observable<PortfolioByCoinIdResponse>;
23
23
  getPortfolioUser(request: ByIdRequest, metadata?: Metadata): Observable<PortfolioUserResponse>;
24
+ setPublicPortfolio(request: ByIdRequest, metadata?: Metadata): Observable<EmptyResponse>;
25
+ getPublicPortfolio(request: ByIdRequest, metadata?: Metadata): Observable<PublicPortfolioResponse>;
24
26
  }
25
27
  export interface PPortfolioServiceController {
26
28
  store(request: PortfolioStoreRequest, metadata?: Metadata): Observable<PortfolioStoreResponse>;
@@ -37,6 +39,8 @@ export interface PPortfolioServiceController {
37
39
  removeUserData(request: ByIdRequest, metadata?: Metadata): Observable<EmptyResponse>;
38
40
  getPortfolioByCoinId(request: ByIdRequest, metadata?: Metadata): Observable<PortfolioByCoinIdResponse>;
39
41
  getPortfolioUser(request: ByIdRequest, metadata?: Metadata): Observable<PortfolioUserResponse>;
42
+ setPublicPortfolio(request: ByIdRequest, metadata?: Metadata): Observable<EmptyResponse>;
43
+ getPublicPortfolio(request: ByIdRequest, metadata?: Metadata): Observable<PublicPortfolioResponse>;
40
44
  }
41
45
  export declare function PPortfolioServiceControllerMethods(): (constructor: Function) => void;
42
46
  export declare const P_PORTFOLIO_SERVICE_NAME = "PPortfolioService";
@@ -24,6 +24,8 @@ function PPortfolioServiceControllerMethods() {
24
24
  "removeUserData",
25
25
  "getPortfolioByCoinId",
26
26
  "getPortfolioUser",
27
+ "setPublicPortfolio",
28
+ "getPublicPortfolio",
27
29
  ];
28
30
  for (const method of grpcMethods) {
29
31
  const descriptor = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jr-common-micro",
3
- "version": "1.1.59",
3
+ "version": "1.1.61",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "private": false,
@@ -31,6 +31,9 @@ message ChatGroupDto {
31
31
  bool system_notices = 17;
32
32
  // Who may create polls: mods | everyone
33
33
  string poll_policy = 18;
34
+ // Viewer has unseen mentions/replies or reactions in this group.
35
+ bool has_unread_mention = 19;
36
+ bool has_unread_reaction = 20;
34
37
  }
35
38
 
36
39
  message ChatGroupListResponse {
@@ -30,6 +30,7 @@ message PortfolioDto {
30
30
 
31
31
  string createdAt = 6;
32
32
  string updatedAt = 7;
33
+ bool isPublic = 8;
33
34
  }
34
35
 
35
36
  message PortfoliosResponse {
@@ -116,6 +117,7 @@ message PortfolioBundleDto {
116
117
  string createdAt = 5;
117
118
  string updatedAt = 6;
118
119
  repeated PortfolioCoinBundleDto portfolioCoins = 7;
120
+ bool isPublic = 8;
119
121
  }
120
122
 
121
123
  message PortfolioCoinBundleDto {
@@ -185,3 +187,24 @@ message DefaultCurrencyResponse {
185
187
  ResponseStatus status = 1;
186
188
  CurrencyDto data = 2;
187
189
  }
190
+
191
+ // Public portfolio showcase: percentage distribution only. Deliberately no
192
+ // portfolio id, no amounts, no prices, no transactions.
193
+ message PublicPortfolioItemDto {
194
+ string coin_id = 1;
195
+ string symbol = 2;
196
+ string name = 3;
197
+ // "34.6" — percent of current portfolio value, 1 decimal.
198
+ string percent = 4;
199
+ }
200
+
201
+ message PublicPortfolioDto {
202
+ string name = 1;
203
+ uint32 coin_count = 2;
204
+ repeated PublicPortfolioItemDto items = 3;
205
+ }
206
+
207
+ message PublicPortfolioResponse {
208
+ ResponseStatus status = 1;
209
+ optional PublicPortfolioDto data = 2;
210
+ }
@@ -22,6 +22,10 @@ service PPortfolioService {
22
22
  rpc RemoveUserData(ByIdRequest) returns(stream EmptyResponse) {}
23
23
  rpc GetPortfolioByCoinId(ByIdRequest) returns(stream PortfolioByCoinIdResponse) {}
24
24
  rpc GetPortfolioUser(ByIdRequest) returns(stream PortfolioUserResponse) {}
25
+ // id = portfolio id to publish, empty string = hide.
26
+ rpc SetPublicPortfolio(ByIdRequest) returns(stream EmptyResponse) {}
27
+ // id = target user id; unauthenticated read, percent distribution only.
28
+ rpc GetPublicPortfolio(ByIdRequest) returns(stream PublicPortfolioResponse) {}
25
29
  }
26
30
 
27
31
  service PPortfolioCoinService {