@aepstore-dev/contracts 1.68.0 → 1.69.0

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/support.d.ts CHANGED
@@ -39,6 +39,9 @@ export interface Ticket {
39
39
  rating: number;
40
40
  /** true if the current user has already reported it */
41
41
  hasComplaint: boolean;
42
+ unreadMessagesCount: number;
43
+ lastReadMessageId: string;
44
+ lastReadAt: string;
42
45
  }
43
46
  export interface TicketMessage {
44
47
  id: string;
@@ -58,6 +61,7 @@ export interface TicketMessage {
58
61
  * клиент — username, системное — ''.
59
62
  */
60
63
  authorName: string;
64
+ deletedAt: string;
61
65
  }
62
66
  export interface TicketAttachment {
63
67
  fileName: string;
@@ -113,6 +117,35 @@ export interface GetTicketRequest {
113
117
  /** staff see internal notes + any ticket */
114
118
  isStaff: boolean;
115
119
  }
120
+ export interface ListTicketMessagesRequest {
121
+ ticketId: string;
122
+ requesterId: string;
123
+ /** staff see internal notes + any ticket */
124
+ isStaff: boolean;
125
+ /** page=1 returns latest messages */
126
+ page: number;
127
+ /** default 30, max 100 */
128
+ limit: number;
129
+ }
130
+ export interface TicketMessagesListResponse {
131
+ items: TicketMessage[];
132
+ total: number;
133
+ page: number;
134
+ limit: number;
135
+ }
136
+ export interface MarkTicketReadRequest {
137
+ ticketId: string;
138
+ requesterId: string;
139
+ /** optional; empty means latest visible message */
140
+ lastReadMessageId: string;
141
+ }
142
+ export interface TicketReadState {
143
+ ticketId: string;
144
+ userId: string;
145
+ lastReadMessageId: string;
146
+ lastReadAt: string;
147
+ unreadMessagesCount: number;
148
+ }
116
149
  export interface ListMyTicketsRequest {
117
150
  authorId: string;
118
151
  /** single value OR comma-separated (e.g. "OPEN,PENDING,IN_PROGRESS") */
@@ -231,11 +264,13 @@ export interface SupportServiceClient {
231
264
  ping(request: PingRequest): Observable<PingResponse>;
232
265
  /** user */
233
266
  createTicket(request: CreateTicketRequest): Observable<Ticket>;
234
- getTicket(request: GetTicketRequest): Observable<TicketWithMessages>;
267
+ getTicket(request: GetTicketRequest): Observable<Ticket>;
268
+ listTicketMessages(request: ListTicketMessagesRequest): Observable<TicketMessagesListResponse>;
235
269
  listMyTickets(request: ListMyTicketsRequest): Observable<TicketsListResponse>;
236
270
  replyTicket(request: ReplyTicketRequest): Observable<TicketMessage>;
237
271
  closeTicket(request: CloseTicketRequest): Observable<Ticket>;
238
272
  reopenTicket(request: ReopenTicketRequest): Observable<ReopenTicketResponse>;
273
+ markTicketRead(request: MarkTicketReadRequest): Observable<TicketReadState>;
239
274
  reportTicket(request: ReportTicketRequest): Observable<SupportTicketComplaint>;
240
275
  rateTicket(request: RateTicketRequest): Observable<SupportTicketRating>;
241
276
  /** staff/admin */
@@ -255,11 +290,13 @@ export interface SupportServiceController {
255
290
  ping(request: PingRequest): Promise<PingResponse> | Observable<PingResponse> | PingResponse;
256
291
  /** user */
257
292
  createTicket(request: CreateTicketRequest): Promise<Ticket> | Observable<Ticket> | Ticket;
258
- getTicket(request: GetTicketRequest): Promise<TicketWithMessages> | Observable<TicketWithMessages> | TicketWithMessages;
293
+ getTicket(request: GetTicketRequest): Promise<Ticket> | Observable<Ticket> | Ticket;
294
+ listTicketMessages(request: ListTicketMessagesRequest): Promise<TicketMessagesListResponse> | Observable<TicketMessagesListResponse> | TicketMessagesListResponse;
259
295
  listMyTickets(request: ListMyTicketsRequest): Promise<TicketsListResponse> | Observable<TicketsListResponse> | TicketsListResponse;
260
296
  replyTicket(request: ReplyTicketRequest): Promise<TicketMessage> | Observable<TicketMessage> | TicketMessage;
261
297
  closeTicket(request: CloseTicketRequest): Promise<Ticket> | Observable<Ticket> | Ticket;
262
298
  reopenTicket(request: ReopenTicketRequest): Promise<ReopenTicketResponse> | Observable<ReopenTicketResponse> | ReopenTicketResponse;
299
+ markTicketRead(request: MarkTicketReadRequest): Promise<TicketReadState> | Observable<TicketReadState> | TicketReadState;
263
300
  reportTicket(request: ReportTicketRequest): Promise<SupportTicketComplaint> | Observable<SupportTicketComplaint> | SupportTicketComplaint;
264
301
  rateTicket(request: RateTicketRequest): Promise<SupportTicketRating> | Observable<SupportTicketRating> | SupportTicketRating;
265
302
  /** staff/admin */
package/gen/support.js CHANGED
@@ -17,10 +17,12 @@ function SupportServiceControllerMethods() {
17
17
  "ping",
18
18
  "createTicket",
19
19
  "getTicket",
20
+ "listTicketMessages",
20
21
  "listMyTickets",
21
22
  "replyTicket",
22
23
  "closeTicket",
23
24
  "reopenTicket",
25
+ "markTicketRead",
24
26
  "reportTicket",
25
27
  "rateTicket",
26
28
  "listTickets",
package/gen/support.ts CHANGED
@@ -51,6 +51,9 @@ export interface Ticket {
51
51
  rating: number;
52
52
  /** true if the current user has already reported it */
53
53
  hasComplaint: boolean;
54
+ unreadMessagesCount: number;
55
+ lastReadMessageId: string;
56
+ lastReadAt: string;
54
57
  }
55
58
 
56
59
  export interface TicketMessage {
@@ -71,6 +74,7 @@ export interface TicketMessage {
71
74
  * клиент — username, системное — ''.
72
75
  */
73
76
  authorName: string;
77
+ deletedAt: string;
74
78
  }
75
79
 
76
80
  export interface TicketAttachment {
@@ -133,6 +137,39 @@ export interface GetTicketRequest {
133
137
  isStaff: boolean;
134
138
  }
135
139
 
140
+ export interface ListTicketMessagesRequest {
141
+ ticketId: string;
142
+ requesterId: string;
143
+ /** staff see internal notes + any ticket */
144
+ isStaff: boolean;
145
+ /** page=1 returns latest messages */
146
+ page: number;
147
+ /** default 30, max 100 */
148
+ limit: number;
149
+ }
150
+
151
+ export interface TicketMessagesListResponse {
152
+ items: TicketMessage[];
153
+ total: number;
154
+ page: number;
155
+ limit: number;
156
+ }
157
+
158
+ export interface MarkTicketReadRequest {
159
+ ticketId: string;
160
+ requesterId: string;
161
+ /** optional; empty means latest visible message */
162
+ lastReadMessageId: string;
163
+ }
164
+
165
+ export interface TicketReadState {
166
+ ticketId: string;
167
+ userId: string;
168
+ lastReadMessageId: string;
169
+ lastReadAt: string;
170
+ unreadMessagesCount: number;
171
+ }
172
+
136
173
  export interface ListMyTicketsRequest {
137
174
  authorId: string;
138
175
  /** single value OR comma-separated (e.g. "OPEN,PENDING,IN_PROGRESS") */
@@ -271,7 +308,9 @@ export interface SupportServiceClient {
271
308
 
272
309
  createTicket(request: CreateTicketRequest): Observable<Ticket>;
273
310
 
274
- getTicket(request: GetTicketRequest): Observable<TicketWithMessages>;
311
+ getTicket(request: GetTicketRequest): Observable<Ticket>;
312
+
313
+ listTicketMessages(request: ListTicketMessagesRequest): Observable<TicketMessagesListResponse>;
275
314
 
276
315
  listMyTickets(request: ListMyTicketsRequest): Observable<TicketsListResponse>;
277
316
 
@@ -281,6 +320,8 @@ export interface SupportServiceClient {
281
320
 
282
321
  reopenTicket(request: ReopenTicketRequest): Observable<ReopenTicketResponse>;
283
322
 
323
+ markTicketRead(request: MarkTicketReadRequest): Observable<TicketReadState>;
324
+
284
325
  reportTicket(request: ReportTicketRequest): Observable<SupportTicketComplaint>;
285
326
 
286
327
  rateTicket(request: RateTicketRequest): Observable<SupportTicketRating>;
@@ -314,9 +355,11 @@ export interface SupportServiceController {
314
355
 
315
356
  createTicket(request: CreateTicketRequest): Promise<Ticket> | Observable<Ticket> | Ticket;
316
357
 
317
- getTicket(
318
- request: GetTicketRequest,
319
- ): Promise<TicketWithMessages> | Observable<TicketWithMessages> | TicketWithMessages;
358
+ getTicket(request: GetTicketRequest): Promise<Ticket> | Observable<Ticket> | Ticket;
359
+
360
+ listTicketMessages(
361
+ request: ListTicketMessagesRequest,
362
+ ): Promise<TicketMessagesListResponse> | Observable<TicketMessagesListResponse> | TicketMessagesListResponse;
320
363
 
321
364
  listMyTickets(
322
365
  request: ListMyTicketsRequest,
@@ -330,6 +373,10 @@ export interface SupportServiceController {
330
373
  request: ReopenTicketRequest,
331
374
  ): Promise<ReopenTicketResponse> | Observable<ReopenTicketResponse> | ReopenTicketResponse;
332
375
 
376
+ markTicketRead(
377
+ request: MarkTicketReadRequest,
378
+ ): Promise<TicketReadState> | Observable<TicketReadState> | TicketReadState;
379
+
333
380
  reportTicket(
334
381
  request: ReportTicketRequest,
335
382
  ): Promise<SupportTicketComplaint> | Observable<SupportTicketComplaint> | SupportTicketComplaint;
@@ -365,10 +412,12 @@ export function SupportServiceControllerMethods() {
365
412
  "ping",
366
413
  "createTicket",
367
414
  "getTicket",
415
+ "listTicketMessages",
368
416
  "listMyTickets",
369
417
  "replyTicket",
370
418
  "closeTicket",
371
419
  "reopenTicket",
420
+ "markTicketRead",
372
421
  "reportTicket",
373
422
  "rateTicket",
374
423
  "listTickets",
package/gen/taxonomy.ts CHANGED
@@ -1,185 +1,185 @@
1
- // Code generated by protoc-gen-ts_proto. DO NOT EDIT.
2
- // versions:
3
- // protoc-gen-ts_proto v2.10.1
4
- // protoc v7.35.0
5
- // source: taxonomy.proto
6
-
7
- /* eslint-disable */
8
- import { GrpcMethod, GrpcStreamMethod } from "@nestjs/microservices";
9
- import { Observable } from "rxjs";
10
-
11
- export const protobufPackage = "taxonomy.v1";
12
-
13
- export interface Category {
14
- id: string;
15
- name: string;
16
- description: string;
17
- createdAt: string;
18
- updatedAt: string;
19
- }
20
-
21
- export interface Application {
22
- id: string;
23
- name: string;
24
- description: string;
25
- createdAt: string;
26
- updatedAt: string;
27
- /** public S3 URL to brand SVG (admin-set), empty if none */
28
- iconUrl: string;
29
- }
30
-
31
- export interface Tag {
32
- id: string;
33
- name: string;
34
- }
35
-
36
- export interface Empty {
37
- }
38
-
39
- export interface CategoriesListResponse {
40
- items: Category[];
41
- }
42
-
43
- export interface ApplicationsListResponse {
44
- items: Application[];
45
- }
46
-
47
- export interface QueryTagsRequest {
48
- search: string;
49
- page: number;
50
- limit: number;
51
- }
52
-
53
- export interface TagsListResponse {
54
- items: Tag[];
55
- total: number;
56
- page: number;
57
- limit: number;
58
- }
59
-
60
- export interface CreateCategoryRequest {
61
- name: string;
62
- description: string;
63
- }
64
-
65
- export interface CategoryResponse {
66
- category: Category | undefined;
67
- }
68
-
69
- export interface CreateApplicationRequest {
70
- name: string;
71
- description: string;
72
- iconUrl: string;
73
- }
74
-
75
- export interface UpdateApplicationRequest {
76
- id: string;
77
- /** optional — empty keeps current */
78
- name: string;
79
- /** optional */
80
- description: string;
81
- /** optional — empty keeps current */
82
- iconUrl: string;
83
- }
84
-
85
- export interface ApplicationResponse {
86
- application: Application | undefined;
87
- }
88
-
89
- export interface CreateIconUploadUrlRequest {
90
- fileName: string;
91
- /** e.g. image/svg+xml */
92
- mimeType: string;
93
- }
94
-
95
- export interface IconUploadUrlResponse {
96
- /** presigned PUT URL — client uploads the SVG bytes here */
97
- uploadUrl: string;
98
- /** final public URL to store as Application.iconUrl */
99
- iconUrl: string;
100
- fileKey: string;
101
- expiresIn: number;
102
- }
103
-
104
- export const TAXONOMY_V1_PACKAGE_NAME = "taxonomy.v1";
105
-
106
- export interface TaxonomyServiceClient {
107
- findAllCategories(request: Empty): Observable<CategoriesListResponse>;
108
-
109
- findAllApplications(request: Empty): Observable<ApplicationsListResponse>;
110
-
111
- findAllTags(request: QueryTagsRequest): Observable<TagsListResponse>;
112
-
113
- createCategory(request: CreateCategoryRequest): Observable<CategoryResponse>;
114
-
115
- createApplication(request: CreateApplicationRequest): Observable<ApplicationResponse>;
116
-
117
- updateApplication(request: UpdateApplicationRequest): Observable<ApplicationResponse>;
118
-
119
- /**
120
- * Mint a presigned PUT URL for an application icon SVG (proxies upload-service,
121
- * kind=ICON → public/icons/). Client PUTs the bytes to upload_url, then passes
122
- * icon_url to Create/UpdateApplication.
123
- */
124
-
125
- createIconUploadUrl(request: CreateIconUploadUrlRequest): Observable<IconUploadUrlResponse>;
126
- }
127
-
128
- export interface TaxonomyServiceController {
129
- findAllCategories(
130
- request: Empty,
131
- ): Promise<CategoriesListResponse> | Observable<CategoriesListResponse> | CategoriesListResponse;
132
-
133
- findAllApplications(
134
- request: Empty,
135
- ): Promise<ApplicationsListResponse> | Observable<ApplicationsListResponse> | ApplicationsListResponse;
136
-
137
- findAllTags(request: QueryTagsRequest): Promise<TagsListResponse> | Observable<TagsListResponse> | TagsListResponse;
138
-
139
- createCategory(
140
- request: CreateCategoryRequest,
141
- ): Promise<CategoryResponse> | Observable<CategoryResponse> | CategoryResponse;
142
-
143
- createApplication(
144
- request: CreateApplicationRequest,
145
- ): Promise<ApplicationResponse> | Observable<ApplicationResponse> | ApplicationResponse;
146
-
147
- updateApplication(
148
- request: UpdateApplicationRequest,
149
- ): Promise<ApplicationResponse> | Observable<ApplicationResponse> | ApplicationResponse;
150
-
151
- /**
152
- * Mint a presigned PUT URL for an application icon SVG (proxies upload-service,
153
- * kind=ICON → public/icons/). Client PUTs the bytes to upload_url, then passes
154
- * icon_url to Create/UpdateApplication.
155
- */
156
-
157
- createIconUploadUrl(
158
- request: CreateIconUploadUrlRequest,
159
- ): Promise<IconUploadUrlResponse> | Observable<IconUploadUrlResponse> | IconUploadUrlResponse;
160
- }
161
-
162
- export function TaxonomyServiceControllerMethods() {
163
- return function (constructor: Function) {
164
- const grpcMethods: string[] = [
165
- "findAllCategories",
166
- "findAllApplications",
167
- "findAllTags",
168
- "createCategory",
169
- "createApplication",
170
- "updateApplication",
171
- "createIconUploadUrl",
172
- ];
173
- for (const method of grpcMethods) {
174
- const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
175
- GrpcMethod("TaxonomyService", method)(constructor.prototype[method], method, descriptor);
176
- }
177
- const grpcStreamMethods: string[] = [];
178
- for (const method of grpcStreamMethods) {
179
- const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
180
- GrpcStreamMethod("TaxonomyService", method)(constructor.prototype[method], method, descriptor);
181
- }
182
- };
183
- }
184
-
185
- export const TAXONOMY_SERVICE_NAME = "TaxonomyService";
1
+ // Code generated by protoc-gen-ts_proto. DO NOT EDIT.
2
+ // versions:
3
+ // protoc-gen-ts_proto v2.10.1
4
+ // protoc v7.35.0
5
+ // source: taxonomy.proto
6
+
7
+ /* eslint-disable */
8
+ import { GrpcMethod, GrpcStreamMethod } from "@nestjs/microservices";
9
+ import { Observable } from "rxjs";
10
+
11
+ export const protobufPackage = "taxonomy.v1";
12
+
13
+ export interface Category {
14
+ id: string;
15
+ name: string;
16
+ description: string;
17
+ createdAt: string;
18
+ updatedAt: string;
19
+ }
20
+
21
+ export interface Application {
22
+ id: string;
23
+ name: string;
24
+ description: string;
25
+ createdAt: string;
26
+ updatedAt: string;
27
+ /** public S3 URL to brand SVG (admin-set), empty if none */
28
+ iconUrl: string;
29
+ }
30
+
31
+ export interface Tag {
32
+ id: string;
33
+ name: string;
34
+ }
35
+
36
+ export interface Empty {
37
+ }
38
+
39
+ export interface CategoriesListResponse {
40
+ items: Category[];
41
+ }
42
+
43
+ export interface ApplicationsListResponse {
44
+ items: Application[];
45
+ }
46
+
47
+ export interface QueryTagsRequest {
48
+ search: string;
49
+ page: number;
50
+ limit: number;
51
+ }
52
+
53
+ export interface TagsListResponse {
54
+ items: Tag[];
55
+ total: number;
56
+ page: number;
57
+ limit: number;
58
+ }
59
+
60
+ export interface CreateCategoryRequest {
61
+ name: string;
62
+ description: string;
63
+ }
64
+
65
+ export interface CategoryResponse {
66
+ category: Category | undefined;
67
+ }
68
+
69
+ export interface CreateApplicationRequest {
70
+ name: string;
71
+ description: string;
72
+ iconUrl: string;
73
+ }
74
+
75
+ export interface UpdateApplicationRequest {
76
+ id: string;
77
+ /** optional — empty keeps current */
78
+ name: string;
79
+ /** optional */
80
+ description: string;
81
+ /** optional — empty keeps current */
82
+ iconUrl: string;
83
+ }
84
+
85
+ export interface ApplicationResponse {
86
+ application: Application | undefined;
87
+ }
88
+
89
+ export interface CreateIconUploadUrlRequest {
90
+ fileName: string;
91
+ /** e.g. image/svg+xml */
92
+ mimeType: string;
93
+ }
94
+
95
+ export interface IconUploadUrlResponse {
96
+ /** presigned PUT URL — client uploads the SVG bytes here */
97
+ uploadUrl: string;
98
+ /** final public URL to store as Application.iconUrl */
99
+ iconUrl: string;
100
+ fileKey: string;
101
+ expiresIn: number;
102
+ }
103
+
104
+ export const TAXONOMY_V1_PACKAGE_NAME = "taxonomy.v1";
105
+
106
+ export interface TaxonomyServiceClient {
107
+ findAllCategories(request: Empty): Observable<CategoriesListResponse>;
108
+
109
+ findAllApplications(request: Empty): Observable<ApplicationsListResponse>;
110
+
111
+ findAllTags(request: QueryTagsRequest): Observable<TagsListResponse>;
112
+
113
+ createCategory(request: CreateCategoryRequest): Observable<CategoryResponse>;
114
+
115
+ createApplication(request: CreateApplicationRequest): Observable<ApplicationResponse>;
116
+
117
+ updateApplication(request: UpdateApplicationRequest): Observable<ApplicationResponse>;
118
+
119
+ /**
120
+ * Mint a presigned PUT URL for an application icon SVG (proxies upload-service,
121
+ * kind=ICON → public/icons/). Client PUTs the bytes to upload_url, then passes
122
+ * icon_url to Create/UpdateApplication.
123
+ */
124
+
125
+ createIconUploadUrl(request: CreateIconUploadUrlRequest): Observable<IconUploadUrlResponse>;
126
+ }
127
+
128
+ export interface TaxonomyServiceController {
129
+ findAllCategories(
130
+ request: Empty,
131
+ ): Promise<CategoriesListResponse> | Observable<CategoriesListResponse> | CategoriesListResponse;
132
+
133
+ findAllApplications(
134
+ request: Empty,
135
+ ): Promise<ApplicationsListResponse> | Observable<ApplicationsListResponse> | ApplicationsListResponse;
136
+
137
+ findAllTags(request: QueryTagsRequest): Promise<TagsListResponse> | Observable<TagsListResponse> | TagsListResponse;
138
+
139
+ createCategory(
140
+ request: CreateCategoryRequest,
141
+ ): Promise<CategoryResponse> | Observable<CategoryResponse> | CategoryResponse;
142
+
143
+ createApplication(
144
+ request: CreateApplicationRequest,
145
+ ): Promise<ApplicationResponse> | Observable<ApplicationResponse> | ApplicationResponse;
146
+
147
+ updateApplication(
148
+ request: UpdateApplicationRequest,
149
+ ): Promise<ApplicationResponse> | Observable<ApplicationResponse> | ApplicationResponse;
150
+
151
+ /**
152
+ * Mint a presigned PUT URL for an application icon SVG (proxies upload-service,
153
+ * kind=ICON → public/icons/). Client PUTs the bytes to upload_url, then passes
154
+ * icon_url to Create/UpdateApplication.
155
+ */
156
+
157
+ createIconUploadUrl(
158
+ request: CreateIconUploadUrlRequest,
159
+ ): Promise<IconUploadUrlResponse> | Observable<IconUploadUrlResponse> | IconUploadUrlResponse;
160
+ }
161
+
162
+ export function TaxonomyServiceControllerMethods() {
163
+ return function (constructor: Function) {
164
+ const grpcMethods: string[] = [
165
+ "findAllCategories",
166
+ "findAllApplications",
167
+ "findAllTags",
168
+ "createCategory",
169
+ "createApplication",
170
+ "updateApplication",
171
+ "createIconUploadUrl",
172
+ ];
173
+ for (const method of grpcMethods) {
174
+ const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
175
+ GrpcMethod("TaxonomyService", method)(constructor.prototype[method], method, descriptor);
176
+ }
177
+ const grpcStreamMethods: string[] = [];
178
+ for (const method of grpcStreamMethods) {
179
+ const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
180
+ GrpcStreamMethod("TaxonomyService", method)(constructor.prototype[method], method, descriptor);
181
+ }
182
+ };
183
+ }
184
+
185
+ export const TAXONOMY_SERVICE_NAME = "TaxonomyService";