@aepstore-dev/contracts 1.67.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/activity.js +1 -1
- package/gen/activity.ts +1 -1
- package/gen/auth.js +1 -1
- package/gen/auth.ts +1 -1
- package/gen/mail.js +1 -1
- package/gen/mail.ts +1 -1
- package/gen/payments.js +1 -1
- package/gen/payments.ts +1 -1
- package/gen/products.d.ts +2 -4
- package/gen/products.ts +2 -4
- package/gen/support.d.ts +39 -2
- package/gen/support.js +2 -0
- package/gen/support.ts +53 -4
- package/gen/taxonomy.js +1 -1
- package/gen/taxonomy.ts +1 -1
- package/gen/upload.js +1 -1
- package/gen/upload.ts +1 -1
- package/gen/users.js +1 -1
- package/gen/users.ts +1 -1
- package/package.json +1 -1
- package/proto/products.proto +4 -4
- package/proto/support.proto +46 -11
package/gen/activity.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
3
3
|
// versions:
|
|
4
4
|
// protoc-gen-ts_proto v2.10.1
|
|
5
|
-
// protoc v7.35.
|
|
5
|
+
// protoc v7.35.0
|
|
6
6
|
// source: activity.proto
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.ACTIVITY_SERVICE_NAME = exports.ACTIVITY_V1_PACKAGE_NAME = exports.ReportStatus = exports.ReportType = exports.protobufPackage = void 0;
|
package/gen/activity.ts
CHANGED
package/gen/auth.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
3
3
|
// versions:
|
|
4
4
|
// protoc-gen-ts_proto v2.10.1
|
|
5
|
-
// protoc v7.35.
|
|
5
|
+
// protoc v7.35.0
|
|
6
6
|
// source: auth.proto
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.AUTH_SERVICE_NAME = exports.AUTH_V1_PACKAGE_NAME = exports.TwoFactorType = exports.protobufPackage = void 0;
|
package/gen/auth.ts
CHANGED
package/gen/mail.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
3
3
|
// versions:
|
|
4
4
|
// protoc-gen-ts_proto v2.10.1
|
|
5
|
-
// protoc v7.35.
|
|
5
|
+
// protoc v7.35.0
|
|
6
6
|
// source: mail.proto
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.MAIL_SERVICE_NAME = exports.MAIL_V1_PACKAGE_NAME = exports.protobufPackage = void 0;
|
package/gen/mail.ts
CHANGED
package/gen/payments.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
3
3
|
// versions:
|
|
4
4
|
// protoc-gen-ts_proto v2.10.1
|
|
5
|
-
// protoc v7.35.
|
|
5
|
+
// protoc v7.35.0
|
|
6
6
|
// source: payments.proto
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.PAYMENTS_SERVICE_NAME = exports.PAYMENTS_V1_PACKAGE_NAME = exports.protobufPackage = void 0;
|
package/gen/payments.ts
CHANGED
package/gen/products.d.ts
CHANGED
|
@@ -269,11 +269,10 @@ export interface FavoriteRequest {
|
|
|
269
269
|
productId: string;
|
|
270
270
|
}
|
|
271
271
|
export interface MediaFile {
|
|
272
|
-
url: string;
|
|
273
|
-
type: MediaType;
|
|
274
272
|
fileName: string;
|
|
275
273
|
fileSize: number;
|
|
276
274
|
mimeType: string;
|
|
275
|
+
storageKey: string;
|
|
277
276
|
}
|
|
278
277
|
export interface SaveMediaMetadataRequest {
|
|
279
278
|
id: string;
|
|
@@ -282,8 +281,7 @@ export interface SaveMediaMetadataRequest {
|
|
|
282
281
|
uploadId: string;
|
|
283
282
|
}
|
|
284
283
|
export interface AttachmentMeta {
|
|
285
|
-
|
|
286
|
-
fileKey: string;
|
|
284
|
+
storageKey: string;
|
|
287
285
|
fileName: string;
|
|
288
286
|
fileSize: number;
|
|
289
287
|
mimeType: string;
|
package/gen/products.ts
CHANGED
|
@@ -307,11 +307,10 @@ export interface FavoriteRequest {
|
|
|
307
307
|
}
|
|
308
308
|
|
|
309
309
|
export interface MediaFile {
|
|
310
|
-
url: string;
|
|
311
|
-
type: MediaType;
|
|
312
310
|
fileName: string;
|
|
313
311
|
fileSize: number;
|
|
314
312
|
mimeType: string;
|
|
313
|
+
storageKey: string;
|
|
315
314
|
}
|
|
316
315
|
|
|
317
316
|
export interface SaveMediaMetadataRequest {
|
|
@@ -322,8 +321,7 @@ export interface SaveMediaMetadataRequest {
|
|
|
322
321
|
}
|
|
323
322
|
|
|
324
323
|
export interface AttachmentMeta {
|
|
325
|
-
|
|
326
|
-
fileKey: string;
|
|
324
|
+
storageKey: string;
|
|
327
325
|
fileName: string;
|
|
328
326
|
fileSize: number;
|
|
329
327
|
mimeType: string;
|
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<
|
|
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<
|
|
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<
|
|
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
|
-
|
|
319
|
-
|
|
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.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
3
3
|
// versions:
|
|
4
4
|
// protoc-gen-ts_proto v2.10.1
|
|
5
|
-
// protoc v7.35.
|
|
5
|
+
// protoc v7.35.0
|
|
6
6
|
// source: taxonomy.proto
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.TAXONOMY_SERVICE_NAME = exports.TAXONOMY_V1_PACKAGE_NAME = exports.protobufPackage = void 0;
|
package/gen/taxonomy.ts
CHANGED
package/gen/upload.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
3
3
|
// versions:
|
|
4
4
|
// protoc-gen-ts_proto v2.10.1
|
|
5
|
-
// protoc v7.35.
|
|
5
|
+
// protoc v7.35.0
|
|
6
6
|
// source: upload.proto
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.UPLOAD_SERVICE_NAME = exports.UPLOAD_V1_PACKAGE_NAME = exports.UploadKind = exports.protobufPackage = void 0;
|
package/gen/upload.ts
CHANGED
package/gen/users.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
3
3
|
// versions:
|
|
4
4
|
// protoc-gen-ts_proto v2.10.1
|
|
5
|
-
// protoc v7.35.
|
|
5
|
+
// protoc v7.35.0
|
|
6
6
|
// source: users.proto
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.USERS_SERVICE_NAME = exports.USERS_V1_PACKAGE_NAME = exports.PremiumPeriod = exports.UserFieldsType = exports.protobufPackage = void 0;
|
package/gen/users.ts
CHANGED
package/package.json
CHANGED
package/proto/products.proto
CHANGED
|
@@ -304,11 +304,11 @@ message FavoriteRequest {
|
|
|
304
304
|
// =================================================================
|
|
305
305
|
|
|
306
306
|
message MediaFile {
|
|
307
|
-
|
|
308
|
-
MediaType type = 2;
|
|
307
|
+
reserved 1, 2;
|
|
309
308
|
string file_name = 3;
|
|
310
309
|
double file_size = 4;
|
|
311
310
|
string mime_type = 5;
|
|
311
|
+
string storage_key = 6;
|
|
312
312
|
}
|
|
313
313
|
|
|
314
314
|
message SaveMediaMetadataRequest {
|
|
@@ -319,8 +319,8 @@ message SaveMediaMetadataRequest {
|
|
|
319
319
|
}
|
|
320
320
|
|
|
321
321
|
message AttachmentMeta {
|
|
322
|
-
|
|
323
|
-
string
|
|
322
|
+
reserved 1;
|
|
323
|
+
string storage_key = 2;
|
|
324
324
|
string file_name = 3;
|
|
325
325
|
double file_size = 4;
|
|
326
326
|
string mime_type = 5;
|
package/proto/support.proto
CHANGED
|
@@ -9,11 +9,13 @@ service SupportService {
|
|
|
9
9
|
|
|
10
10
|
// user
|
|
11
11
|
rpc CreateTicket(CreateTicketRequest) returns (Ticket);
|
|
12
|
-
rpc GetTicket(GetTicketRequest) returns (
|
|
12
|
+
rpc GetTicket(GetTicketRequest) returns (Ticket);
|
|
13
|
+
rpc ListTicketMessages(ListTicketMessagesRequest) returns (TicketMessagesListResponse);
|
|
13
14
|
rpc ListMyTickets(ListMyTicketsRequest) returns (TicketsListResponse);
|
|
14
15
|
rpc ReplyTicket(ReplyTicketRequest) returns (TicketMessage);
|
|
15
16
|
rpc CloseTicket(CloseTicketRequest) returns (Ticket);
|
|
16
17
|
rpc ReopenTicket(ReopenTicketRequest) returns (ReopenTicketResponse);
|
|
18
|
+
rpc MarkTicketRead(MarkTicketReadRequest) returns (TicketReadState);
|
|
17
19
|
rpc ReportTicket(ReportTicketRequest) returns (SupportTicketComplaint);
|
|
18
20
|
rpc RateTicket(RateTicketRequest) returns (SupportTicketRating);
|
|
19
21
|
|
|
@@ -52,6 +54,9 @@ message Ticket {
|
|
|
52
54
|
string deleted_at = 20;
|
|
53
55
|
int32 rating = 21; // 0 if the current user has not rated it
|
|
54
56
|
bool has_complaint = 22; // true if the current user has already reported it
|
|
57
|
+
int32 unread_messages_count = 23;
|
|
58
|
+
string last_read_message_id = 24;
|
|
59
|
+
string last_read_at = 25;
|
|
55
60
|
}
|
|
56
61
|
|
|
57
62
|
message TicketMessage {
|
|
@@ -67,8 +72,9 @@ message TicketMessage {
|
|
|
67
72
|
string edited_at = 10; // '' если не редактировалось
|
|
68
73
|
// Отображаемое имя автора: агент — «Имя Ф.» из fullName (фолбэк username),
|
|
69
74
|
// клиент — username, системное — ''.
|
|
70
|
-
string author_name = 11;
|
|
71
|
-
|
|
75
|
+
string author_name = 11;
|
|
76
|
+
string deleted_at = 12;
|
|
77
|
+
}
|
|
72
78
|
|
|
73
79
|
message TicketAttachment {
|
|
74
80
|
string file_name = 1;
|
|
@@ -112,14 +118,43 @@ message CreateTicketRequest {
|
|
|
112
118
|
repeated TicketAttachment attachments = 13; // storage_key+file_name+file_size+mime_type
|
|
113
119
|
}
|
|
114
120
|
|
|
115
|
-
message GetTicketRequest {
|
|
116
|
-
string id = 1;
|
|
117
|
-
string requester_id = 2;
|
|
118
|
-
bool is_staff = 3; // staff see internal notes + any ticket
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
message
|
|
122
|
-
string
|
|
121
|
+
message GetTicketRequest {
|
|
122
|
+
string id = 1;
|
|
123
|
+
string requester_id = 2;
|
|
124
|
+
bool is_staff = 3; // staff see internal notes + any ticket
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
message ListTicketMessagesRequest {
|
|
128
|
+
string ticket_id = 1;
|
|
129
|
+
string requester_id = 2;
|
|
130
|
+
bool is_staff = 3; // staff see internal notes + any ticket
|
|
131
|
+
int32 page = 4; // page=1 returns latest messages
|
|
132
|
+
int32 limit = 5; // default 30, max 100
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
message TicketMessagesListResponse {
|
|
136
|
+
repeated TicketMessage items = 1;
|
|
137
|
+
int32 total = 2;
|
|
138
|
+
int32 page = 3;
|
|
139
|
+
int32 limit = 4;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
message MarkTicketReadRequest {
|
|
143
|
+
string ticket_id = 1;
|
|
144
|
+
string requester_id = 2;
|
|
145
|
+
string last_read_message_id = 3; // optional; empty means latest visible message
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
message TicketReadState {
|
|
149
|
+
string ticket_id = 1;
|
|
150
|
+
string user_id = 2;
|
|
151
|
+
string last_read_message_id = 3;
|
|
152
|
+
string last_read_at = 4;
|
|
153
|
+
int32 unread_messages_count = 5;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
message ListMyTicketsRequest {
|
|
157
|
+
string author_id = 1;
|
|
123
158
|
string status = 2; // single value OR comma-separated (e.g. "OPEN,PENDING,IN_PROGRESS")
|
|
124
159
|
int32 page = 3;
|
|
125
160
|
int32 limit = 4;
|