@aepstore-dev/contracts 1.102.0 → 1.104.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.
@@ -1,14 +1,14 @@
1
- syntax = "proto3";
2
-
3
- package support.v1;
4
-
1
+ syntax = "proto3";
2
+
3
+ package support.v1;
4
+
5
5
  // Support ticket system (G1). Enums as strings matching the DB:
6
6
  // status OPEN|IN_PROGRESS|RESOLVED|CLOSED; waitingFor SUPPORT|USER.
7
- service SupportService {
8
- rpc Ping(PingRequest) returns (PingResponse); // health
9
-
10
- // user
11
- rpc CreateTicket(CreateTicketRequest) returns (Ticket);
7
+ service SupportService {
8
+ rpc Ping(PingRequest) returns (PingResponse); // health
9
+
10
+ // user
11
+ rpc CreateTicket(CreateTicketRequest) returns (Ticket);
12
12
  rpc GetTicket(GetTicketRequest) returns (Ticket);
13
13
  rpc ListTicketMessages(ListTicketMessagesRequest) returns (TicketMessagesListResponse);
14
14
  rpc ListMyTickets(ListMyTicketsRequest) returns (TicketsListResponse);
@@ -18,9 +18,9 @@ service SupportService {
18
18
  rpc MarkTicketRead(MarkTicketReadRequest) returns (TicketReadState);
19
19
  rpc ReportTicket(ReportTicketRequest) returns (SupportTicketComplaint);
20
20
  rpc RateTicket(RateTicketRequest) returns (SupportTicketRating);
21
-
22
- // staff/admin
23
- rpc ListTickets(ListTicketsRequest) returns (TicketsListResponse);
21
+
22
+ // staff/admin
23
+ rpc ListTickets(ListTicketsRequest) returns (TicketsListResponse);
24
24
  rpc AssignTicket(AssignTicketRequest) returns (Ticket);
25
25
  rpc SetTicketStatus(SetTicketStatusRequest) returns (Ticket);
26
26
  rpc DeleteTicket(DeleteTicketRequest) returns (Ticket);
@@ -30,28 +30,28 @@ service SupportService {
30
30
  rpc SetTicketCreationBan(SetTicketCreationBanRequest) returns (SupportTicketBan);
31
31
  rpc ClearTicketCreationBan(ClearTicketCreationBanRequest) returns (TicketCreationBanState);
32
32
  }
33
-
34
- message PingRequest { string message = 1; }
35
- message PingResponse { bool ok = 1; string message = 2; }
36
-
33
+
34
+ message PingRequest { string message = 1; }
35
+ message PingResponse { bool ok = 1; string message = 2; }
36
+
37
37
  message Ticket {
38
- string id = 1;
39
- string author_id = 2;
40
- string subject = 3;
41
- string category = 4; // GENERAL|PAYMENT|WITHDRAWAL|PRODUCT|ACCOUNT|ABUSE|OTHER
38
+ string id = 1;
39
+ string author_id = 2;
40
+ string subject = 3;
41
+ string category = 4; // GENERAL|PAYMENT|WITHDRAWAL|PRODUCT|ACCOUNT|ABUSE|OTHER
42
42
  string status = 5; // OPEN|IN_PROGRESS|RESOLVED|CLOSED
43
- string priority = 6; // LOW|NORMAL|HIGH|URGENT
44
- string purchase_id = 7;
45
- string withdrawal_id = 8;
46
- string assignee_id = 9;
47
- string last_message_at = 10;
48
- string created_at = 11;
49
- string updated_at = 12;
50
- int32 messages_count = 13;
51
- string department = 14; // GENERAL|TECHNICAL|SALES
52
- string product_category_id = 15; // optional
53
- string related_product_id = 16; // optional
54
- string related_product_type = 17; // PURCHASED|SELLING
43
+ string priority = 6; // LOW|NORMAL|HIGH|URGENT
44
+ string purchase_id = 7;
45
+ string withdrawal_id = 8;
46
+ string assignee_id = 9;
47
+ string last_message_at = 10;
48
+ string created_at = 11;
49
+ string updated_at = 12;
50
+ int32 messages_count = 13;
51
+ string department = 14; // GENERAL|TECHNICAL|SALES
52
+ string product_category_id = 15; // optional
53
+ string related_product_id = 16; // optional
54
+ string related_product_type = 17; // PURCHASED|SELLING
55
55
  bool rules_accepted = 18;
56
56
  string rules_accepted_at = 19;
57
57
  string deleted_at = 20;
@@ -75,66 +75,66 @@ message TicketAssignee {
75
75
  }
76
76
 
77
77
  message TicketMessage {
78
- string id = 1;
79
- string ticket_id = 2;
80
- string author_id = 3;
81
- string body = 4;
82
- bool is_staff = 5;
83
- bool is_internal = 6;
84
- string created_at = 7;
85
- bool is_system = 8; // автосообщение платформы
86
- repeated TicketAttachment attachments = 9;
87
- string edited_at = 10; // '' если не редактировалось
88
- // Отображаемое имя автора: агент — «Имя Ф.» из fullName (фолбэк username),
89
- // клиент — username, системное — ''.
78
+ string id = 1;
79
+ string ticket_id = 2;
80
+ string author_id = 3;
81
+ string body = 4;
82
+ bool is_staff = 5;
83
+ bool is_internal = 6;
84
+ string created_at = 7;
85
+ bool is_system = 8; // автосообщение платформы
86
+ repeated TicketAttachment attachments = 9;
87
+ string edited_at = 10; // '' если не редактировалось
88
+ // Отображаемое имя автора: агент — «Имя Ф.» из fullName (фолбэк username),
89
+ // клиент — username, системное — ''.
90
90
  string author_name = 11;
91
91
  string deleted_at = 12;
92
92
  bool is_read_by_staff = 13; // true for user messages already read by support staff
93
93
  string staff_read_at = 14; // first known staff read timestamp for this message, '' if unread
94
94
  }
95
-
96
- message TicketAttachment {
97
- string file_name = 1;
98
- int64 file_size = 2;
99
- string url = 3; // presigned GET, короткоживущая; в запросах пусто
100
- string storage_key = 4; // только внутрь (reply), наружу не отдаётся
95
+
96
+ message TicketAttachment {
97
+ string file_name = 1;
98
+ int64 file_size = 2;
99
+ string url = 3; // presigned GET, короткоживущая; в запросах пусто
100
+ string storage_key = 4; // только внутрь (reply), наружу не отдаётся
101
101
  string mime_type = 5;
102
102
  }
103
103
 
104
104
  message UpdateTicketMessageRequest {
105
- string message_id = 1;
106
- string requester_id = 2;
107
- bool is_staff = 3;
108
- string body = 4;
109
- }
110
-
111
- message DeleteTicketMessageRequest {
112
- string message_id = 1;
113
- string requester_id = 2;
114
- bool is_staff = 3;
115
- }
116
-
117
- message TicketWithMessages {
118
- Ticket ticket = 1;
119
- repeated TicketMessage messages = 2;
120
- }
121
-
122
- message CreateTicketRequest {
123
- string author_id = 1;
124
- string subject = 2;
125
- string category = 3;
126
- string body = 4; // first message
127
- string purchase_id = 5; // optional
128
- string withdrawal_id = 6; // optional
129
- string priority = 7; // LOW|NORMAL|HIGH|URGENT
130
- string department = 8; // GENERAL|TECHNICAL|SALES
131
- string product_category_id = 9; // optional
105
+ string message_id = 1;
106
+ string requester_id = 2;
107
+ bool is_staff = 3;
108
+ string body = 4;
109
+ }
110
+
111
+ message DeleteTicketMessageRequest {
112
+ string message_id = 1;
113
+ string requester_id = 2;
114
+ bool is_staff = 3;
115
+ }
116
+
117
+ message TicketWithMessages {
118
+ Ticket ticket = 1;
119
+ repeated TicketMessage messages = 2;
120
+ }
121
+
122
+ message CreateTicketRequest {
123
+ string author_id = 1;
124
+ string subject = 2;
125
+ string category = 3;
126
+ string body = 4; // first message
127
+ string purchase_id = 5; // optional
128
+ string withdrawal_id = 6; // optional
129
+ string priority = 7; // LOW|NORMAL|HIGH|URGENT
130
+ string department = 8; // GENERAL|TECHNICAL|SALES
131
+ string product_category_id = 9; // optional
132
132
  string related_product_id = 10; // optional
133
133
  string related_product_type = 11; // PURCHASED|SELLING
134
134
  bool rules_accepted = 12;
135
135
  repeated TicketAttachment attachments = 13; // storage_key+file_name+file_size+mime_type
136
136
  }
137
-
137
+
138
138
  message GetTicketRequest {
139
139
  string id = 1;
140
140
  string requester_id = 2;
@@ -175,26 +175,26 @@ message TicketReadState {
175
175
  message ListMyTicketsRequest {
176
176
  string author_id = 1;
177
177
  string status = 2; // single value OR comma-separated (e.g. "OPEN,IN_PROGRESS")
178
- int32 page = 3;
179
- int32 limit = 4;
180
- string department = 5; // GENERAL|TECHNICAL|SALES
181
- string category = 6; // GENERAL|PAYMENT|...
178
+ int32 page = 3;
179
+ int32 limit = 4;
180
+ string department = 5; // GENERAL|TECHNICAL|SALES
181
+ string category = 6; // GENERAL|PAYMENT|...
182
182
  string search = 7; // contains in subject OR in any message body
183
183
  string date_from = 8; // ISO; inclusive lower bound on createdAt
184
184
  string date_to = 9; // ISO; inclusive upper bound on createdAt
185
185
  string waiting_for = 10; // SUPPORT|USER
186
186
  string sort = 11; // desc|asc by ticket createdAt; default desc
187
- }
188
-
189
- message ReplyTicketRequest {
190
- string ticket_id = 1;
191
- string author_id = 2;
192
- string body = 3;
193
- bool is_staff = 4;
194
- bool is_internal = 5; // staff-only note
195
- repeated TicketAttachment attachments = 6; // storage_key+file_name+file_size
196
- }
197
-
187
+ }
188
+
189
+ message ReplyTicketRequest {
190
+ string ticket_id = 1;
191
+ string author_id = 2;
192
+ string body = 3;
193
+ bool is_staff = 4;
194
+ bool is_internal = 5; // staff-only note
195
+ repeated TicketAttachment attachments = 6; // storage_key+file_name+file_size
196
+ }
197
+
198
198
  message CloseTicketRequest {
199
199
  string ticket_id = 1;
200
200
  string requester_id = 2;
@@ -295,12 +295,12 @@ message ClearTicketCreationBanRequest {
295
295
  }
296
296
 
297
297
  message ListTicketsRequest {
298
- string status = 1; // single value OR comma-separated
299
- string category = 2;
300
- string assignee_id = 3;
301
- int32 page = 4;
302
- int32 limit = 5;
303
- string department = 6;
298
+ string status = 1; // single value OR comma-separated
299
+ string category = 2;
300
+ string assignee_id = 3;
301
+ int32 page = 4;
302
+ int32 limit = 5;
303
+ string department = 6;
304
304
  string search = 7; // contains in subject OR in any message body
305
305
  string date_from = 8; // ISO; inclusive lower bound on createdAt
306
306
  string date_to = 9;
@@ -309,25 +309,25 @@ message ListTicketsRequest {
309
309
  string waiting_for = 12; // SUPPORT|USER
310
310
  string sort = 13; // desc|asc by ticket createdAt; default desc
311
311
  }
312
-
313
- message AssignTicketRequest {
314
- string ticket_id = 1;
315
- string assignee_id = 2; // empty = unassign
316
- string admin_id = 3;
317
- }
318
-
319
- message SetTicketStatusRequest {
320
- string ticket_id = 1;
321
- string status = 2;
322
- string admin_id = 3;
323
- }
324
- message DeleteTicketRequest {
325
- string ticket_id = 1;
326
- string admin_id = 2;
327
- }
328
- message TicketsListResponse {
329
- repeated Ticket items = 1;
330
- int32 total = 2;
331
- int32 page = 3;
332
- int32 limit = 4;
333
- }
312
+
313
+ message AssignTicketRequest {
314
+ string ticket_id = 1;
315
+ string assignee_id = 2; // empty = unassign
316
+ string admin_id = 3;
317
+ }
318
+
319
+ message SetTicketStatusRequest {
320
+ string ticket_id = 1;
321
+ string status = 2;
322
+ string admin_id = 3;
323
+ }
324
+ message DeleteTicketRequest {
325
+ string ticket_id = 1;
326
+ string admin_id = 2;
327
+ }
328
+ message TicketsListResponse {
329
+ repeated Ticket items = 1;
330
+ int32 total = 2;
331
+ int32 page = 3;
332
+ int32 limit = 4;
333
+ }
@@ -1,105 +1,105 @@
1
- syntax = "proto3";
2
-
3
- package taxonomy.v1;
4
-
5
- service TaxonomyService {
6
- rpc FindAllCategories(Empty) returns (CategoriesListResponse);
7
- rpc FindAllApplications(Empty) returns (ApplicationsListResponse);
8
- rpc FindAllTags(QueryTagsRequest) returns (TagsListResponse);
9
-
10
- rpc CreateCategory(CreateCategoryRequest) returns (CategoryResponse);
11
- rpc CreateApplication(CreateApplicationRequest) returns (ApplicationResponse);
12
- rpc UpdateApplication(UpdateApplicationRequest) returns (ApplicationResponse);
13
-
14
- // Mint a presigned PUT URL for an application icon SVG (proxies upload-service,
15
- // kind=ICON → public/icons/). Client PUTs the bytes to upload_url, then passes
16
- // icon_url to Create/UpdateApplication.
17
- rpc CreateIconUploadUrl(CreateIconUploadUrlRequest) returns (IconUploadUrlResponse);
18
- }
19
-
20
- message Category {
21
- string id = 1;
22
- string name = 2;
23
- string description = 3;
24
- string created_at = 4;
25
- string updated_at = 5;
26
- }
27
-
28
- message Application {
29
- string id = 1;
30
- string name = 2;
31
- string description = 3;
32
- string created_at = 4;
33
- string updated_at = 5;
34
- string icon_url = 6; // public S3 URL to brand SVG (admin-set), empty if none
35
- }
36
-
37
- message Tag {
38
- string id = 1;
39
- string name = 2;
40
- }
41
-
42
- // =================================================================
43
- // Requests / responses
44
- // =================================================================
45
-
46
- message Empty {}
47
-
48
- message CategoriesListResponse {
49
- repeated Category items = 1;
50
- }
51
-
52
- message ApplicationsListResponse {
53
- repeated Application items = 1;
54
- }
55
-
56
- message QueryTagsRequest {
57
- string search = 1;
58
- int32 page = 2;
59
- int32 limit = 3;
60
- }
61
-
62
- message TagsListResponse {
63
- repeated Tag items = 1;
64
- int32 total = 2;
65
- int32 page = 3;
66
- int32 limit = 4;
67
- }
68
-
69
- message CreateCategoryRequest {
70
- string name = 1;
71
- string description = 2;
72
- }
73
-
74
- message CategoryResponse {
75
- Category category = 1;
76
- }
77
-
78
- message CreateApplicationRequest {
79
- string name = 1;
80
- string description = 2;
81
- string icon_url = 3;
82
- }
83
-
84
- message UpdateApplicationRequest {
85
- string id = 1;
86
- string name = 2; // optional — empty keeps current
87
- string description = 3; // optional
88
- string icon_url = 4; // optional — empty keeps current
89
- }
90
-
91
- message ApplicationResponse {
92
- Application application = 1;
93
- }
94
-
95
- message CreateIconUploadUrlRequest {
96
- string file_name = 1;
97
- string mime_type = 2; // e.g. image/svg+xml
98
- }
99
-
100
- message IconUploadUrlResponse {
101
- string upload_url = 1; // presigned PUT URL — client uploads the SVG bytes here
102
- string icon_url = 2; // final public URL to store as Application.iconUrl
103
- string file_key = 3;
104
- int32 expires_in = 4;
105
- }
1
+ syntax = "proto3";
2
+
3
+ package taxonomy.v1;
4
+
5
+ service TaxonomyService {
6
+ rpc FindAllCategories(Empty) returns (CategoriesListResponse);
7
+ rpc FindAllApplications(Empty) returns (ApplicationsListResponse);
8
+ rpc FindAllTags(QueryTagsRequest) returns (TagsListResponse);
9
+
10
+ rpc CreateCategory(CreateCategoryRequest) returns (CategoryResponse);
11
+ rpc CreateApplication(CreateApplicationRequest) returns (ApplicationResponse);
12
+ rpc UpdateApplication(UpdateApplicationRequest) returns (ApplicationResponse);
13
+
14
+ // Mint a presigned PUT URL for an application icon SVG (proxies upload-service,
15
+ // kind=ICON → public/icons/). Client PUTs the bytes to upload_url, then passes
16
+ // icon_url to Create/UpdateApplication.
17
+ rpc CreateIconUploadUrl(CreateIconUploadUrlRequest) returns (IconUploadUrlResponse);
18
+ }
19
+
20
+ message Category {
21
+ string id = 1;
22
+ string name = 2;
23
+ string description = 3;
24
+ string created_at = 4;
25
+ string updated_at = 5;
26
+ }
27
+
28
+ message Application {
29
+ string id = 1;
30
+ string name = 2;
31
+ string description = 3;
32
+ string created_at = 4;
33
+ string updated_at = 5;
34
+ string icon_url = 6; // public S3 URL to brand SVG (admin-set), empty if none
35
+ }
36
+
37
+ message Tag {
38
+ string id = 1;
39
+ string name = 2;
40
+ }
41
+
42
+ // =================================================================
43
+ // Requests / responses
44
+ // =================================================================
45
+
46
+ message Empty {}
47
+
48
+ message CategoriesListResponse {
49
+ repeated Category items = 1;
50
+ }
51
+
52
+ message ApplicationsListResponse {
53
+ repeated Application items = 1;
54
+ }
55
+
56
+ message QueryTagsRequest {
57
+ string search = 1;
58
+ int32 page = 2;
59
+ int32 limit = 3;
60
+ }
61
+
62
+ message TagsListResponse {
63
+ repeated Tag items = 1;
64
+ int32 total = 2;
65
+ int32 page = 3;
66
+ int32 limit = 4;
67
+ }
68
+
69
+ message CreateCategoryRequest {
70
+ string name = 1;
71
+ string description = 2;
72
+ }
73
+
74
+ message CategoryResponse {
75
+ Category category = 1;
76
+ }
77
+
78
+ message CreateApplicationRequest {
79
+ string name = 1;
80
+ string description = 2;
81
+ string icon_url = 3;
82
+ }
83
+
84
+ message UpdateApplicationRequest {
85
+ string id = 1;
86
+ string name = 2; // optional — empty keeps current
87
+ string description = 3; // optional
88
+ string icon_url = 4; // optional — empty keeps current
89
+ }
90
+
91
+ message ApplicationResponse {
92
+ Application application = 1;
93
+ }
94
+
95
+ message CreateIconUploadUrlRequest {
96
+ string file_name = 1;
97
+ string mime_type = 2; // e.g. image/svg+xml
98
+ }
99
+
100
+ message IconUploadUrlResponse {
101
+ string upload_url = 1; // presigned PUT URL — client uploads the SVG bytes here
102
+ string icon_url = 2; // final public URL to store as Application.iconUrl
103
+ string file_key = 3;
104
+ int32 expires_in = 4;
105
+ }