@fivenet-app/gen 2026.8.5 → 2026.10.2

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.
Files changed (63) hide show
  1. package/LICENSE +201 -0
  2. package/clients.ts +12 -0
  3. package/codegen/perms/perms.ts +331 -2
  4. package/google/protobuf/any.ts +47 -103
  5. package/google/protobuf/descriptor.ts +39 -32
  6. package/google/protobuf/struct.ts +33 -22
  7. package/google/protobuf/timestamp.ts +9 -8
  8. package/package.json +2 -2
  9. package/perms.ts +41 -13
  10. package/resources/centrum/dispatches/dispatches.ts +206 -13
  11. package/resources/centrum/units/units.ts +207 -0
  12. package/resources/cron/cron.ts +44 -3
  13. package/resources/documents/templates/templates.ts +3 -3
  14. package/resources/file/file.ts +3 -3
  15. package/resources/file/filestore.ts +26 -10
  16. package/resources/jobs/colleagues/activity/activity.ts +50 -8
  17. package/resources/jobs/colleagues/colleagues.ts +14 -1
  18. package/resources/jobs/groups/short/group_member_short.ts +129 -0
  19. package/resources/jobs/job_asset.ts +116 -0
  20. package/resources/jobs/user_selector.ts +1 -15
  21. package/resources/notifications/clientview/clientview.ts +5 -1
  22. package/resources/notifications/events/events.ts +35 -1
  23. package/resources/notifications/notifications.ts +322 -2
  24. package/resources/permissions/attributes/attributes.ts +164 -2
  25. package/resources/permissions/authorization/authorization.ts +86 -0
  26. package/resources/permissions/permissions/permissions.ts +16 -1
  27. package/resources/properties/properties.ts +1648 -0
  28. package/resources/qualifications/activity/activity.ts +328 -0
  29. package/resources/qualifications/exam/exam.ts +108 -4
  30. package/resources/qualifications/qualifications.ts +36 -2
  31. package/resources/settings/config.ts +3 -3
  32. package/resources/sync/activity/activity.ts +4 -4
  33. package/resources/sync/data/data.ts +16 -4
  34. package/resources/users/activity/activity.ts +220 -3
  35. package/resources/users/props/props.ts +13 -1
  36. package/resources/users/user.ts +13 -1
  37. package/resources/vehicles/activity/activity.ts +222 -3
  38. package/resources/vehicles/props/props.ts +13 -1
  39. package/resources/vehicles/vehicles.ts +13 -1
  40. package/services/auth/auth.ts +61 -67
  41. package/services/centrum/centrum.ts +103 -1
  42. package/services/centrum/dispatches.ts +25 -1
  43. package/services/centrum/units.ts +25 -1
  44. package/services/citizens/citizens.client.ts +49 -0
  45. package/services/citizens/citizens.ts +384 -7
  46. package/services/documents/documents.ts +1 -0
  47. package/services/documents/templates.ts +12 -1
  48. package/services/jobs/colleagues.ts +26 -1
  49. package/services/jobs/conduct.ts +1 -0
  50. package/services/jobs/groups.ts +62 -4
  51. package/services/notifications/notifications.client.ts +40 -1
  52. package/services/notifications/notifications.ts +483 -3
  53. package/services/qualifications/qualifications.client.ts +20 -7
  54. package/services/qualifications/qualifications.ts +265 -4
  55. package/services/settings/job_assets.client.ts +105 -0
  56. package/services/settings/job_assets.ts +373 -0
  57. package/services/settings/properties.client.ts +194 -0
  58. package/services/settings/properties.ts +1555 -0
  59. package/services/settings/system.ts +29 -9
  60. package/services/sync/sync.ts +115 -12
  61. package/services/vehicles/vehicles.client.ts +52 -0
  62. package/services/vehicles/vehicles.ts +385 -7
  63. package/svcs.ts +58 -0
@@ -20,6 +20,8 @@ import type { CreateOrUpdateQualificationRequestResponse } from "./qualification
20
20
  import type { CreateOrUpdateQualificationRequestRequest } from "./qualifications";
21
21
  import type { ListQualificationRequestsResponse } from "./qualifications";
22
22
  import type { ListQualificationRequestsRequest } from "./qualifications";
23
+ import type { ListQualificationActivityResponse } from "./qualifications";
24
+ import type { ListQualificationActivityRequest } from "./qualifications";
23
25
  import type { DeleteQualificationResponse } from "./qualifications";
24
26
  import type { DeleteQualificationRequest } from "./qualifications";
25
27
  import type { UpdateQualificationResponse } from "./qualifications";
@@ -57,6 +59,10 @@ export interface IQualificationsServiceClient {
57
59
  * @generated from protobuf rpc: DeleteQualification
58
60
  */
59
61
  deleteQualification(input: DeleteQualificationRequest, options?: RpcOptions): UnaryCall<DeleteQualificationRequest, DeleteQualificationResponse>;
62
+ /**
63
+ * @generated from protobuf rpc: ListQualificationActivity
64
+ */
65
+ listQualificationActivity(input: ListQualificationActivityRequest, options?: RpcOptions): UnaryCall<ListQualificationActivityRequest, ListQualificationActivityResponse>;
60
66
  /**
61
67
  * @generated from protobuf rpc: ListQualificationRequests
62
68
  */
@@ -130,53 +136,60 @@ export class QualificationsServiceClient implements IQualificationsServiceClient
130
136
  const method = this.methods[4], opt = this._transport.mergeOptions(options);
131
137
  return stackIntercept<DeleteQualificationRequest, DeleteQualificationResponse>("unary", this._transport, method, opt, input);
132
138
  }
139
+ /**
140
+ * @generated from protobuf rpc: ListQualificationActivity
141
+ */
142
+ listQualificationActivity(input: ListQualificationActivityRequest, options?: RpcOptions): UnaryCall<ListQualificationActivityRequest, ListQualificationActivityResponse> {
143
+ const method = this.methods[5], opt = this._transport.mergeOptions(options);
144
+ return stackIntercept<ListQualificationActivityRequest, ListQualificationActivityResponse>("unary", this._transport, method, opt, input);
145
+ }
133
146
  /**
134
147
  * @generated from protobuf rpc: ListQualificationRequests
135
148
  */
136
149
  listQualificationRequests(input: ListQualificationRequestsRequest, options?: RpcOptions): UnaryCall<ListQualificationRequestsRequest, ListQualificationRequestsResponse> {
137
- const method = this.methods[5], opt = this._transport.mergeOptions(options);
150
+ const method = this.methods[6], opt = this._transport.mergeOptions(options);
138
151
  return stackIntercept<ListQualificationRequestsRequest, ListQualificationRequestsResponse>("unary", this._transport, method, opt, input);
139
152
  }
140
153
  /**
141
154
  * @generated from protobuf rpc: CreateOrUpdateQualificationRequest
142
155
  */
143
156
  createOrUpdateQualificationRequest(input: CreateOrUpdateQualificationRequestRequest, options?: RpcOptions): UnaryCall<CreateOrUpdateQualificationRequestRequest, CreateOrUpdateQualificationRequestResponse> {
144
- const method = this.methods[6], opt = this._transport.mergeOptions(options);
157
+ const method = this.methods[7], opt = this._transport.mergeOptions(options);
145
158
  return stackIntercept<CreateOrUpdateQualificationRequestRequest, CreateOrUpdateQualificationRequestResponse>("unary", this._transport, method, opt, input);
146
159
  }
147
160
  /**
148
161
  * @generated from protobuf rpc: DeleteQualificationReq
149
162
  */
150
163
  deleteQualificationReq(input: DeleteQualificationReqRequest, options?: RpcOptions): UnaryCall<DeleteQualificationReqRequest, DeleteQualificationReqResponse> {
151
- const method = this.methods[7], opt = this._transport.mergeOptions(options);
164
+ const method = this.methods[8], opt = this._transport.mergeOptions(options);
152
165
  return stackIntercept<DeleteQualificationReqRequest, DeleteQualificationReqResponse>("unary", this._transport, method, opt, input);
153
166
  }
154
167
  /**
155
168
  * @generated from protobuf rpc: ListQualificationsResults
156
169
  */
157
170
  listQualificationsResults(input: ListQualificationsResultsRequest, options?: RpcOptions): UnaryCall<ListQualificationsResultsRequest, ListQualificationsResultsResponse> {
158
- const method = this.methods[8], opt = this._transport.mergeOptions(options);
171
+ const method = this.methods[9], opt = this._transport.mergeOptions(options);
159
172
  return stackIntercept<ListQualificationsResultsRequest, ListQualificationsResultsResponse>("unary", this._transport, method, opt, input);
160
173
  }
161
174
  /**
162
175
  * @generated from protobuf rpc: CreateOrUpdateQualificationResult
163
176
  */
164
177
  createOrUpdateQualificationResult(input: CreateOrUpdateQualificationResultRequest, options?: RpcOptions): UnaryCall<CreateOrUpdateQualificationResultRequest, CreateOrUpdateQualificationResultResponse> {
165
- const method = this.methods[9], opt = this._transport.mergeOptions(options);
178
+ const method = this.methods[10], opt = this._transport.mergeOptions(options);
166
179
  return stackIntercept<CreateOrUpdateQualificationResultRequest, CreateOrUpdateQualificationResultResponse>("unary", this._transport, method, opt, input);
167
180
  }
168
181
  /**
169
182
  * @generated from protobuf rpc: DeleteQualificationResult
170
183
  */
171
184
  deleteQualificationResult(input: DeleteQualificationResultRequest, options?: RpcOptions): UnaryCall<DeleteQualificationResultRequest, DeleteQualificationResultResponse> {
172
- const method = this.methods[10], opt = this._transport.mergeOptions(options);
185
+ const method = this.methods[11], opt = this._transport.mergeOptions(options);
173
186
  return stackIntercept<DeleteQualificationResultRequest, DeleteQualificationResultResponse>("unary", this._transport, method, opt, input);
174
187
  }
175
188
  /**
176
189
  * @generated from protobuf rpc: UploadFile
177
190
  */
178
191
  uploadFile(options?: RpcOptions): ClientStreamingCall<UploadFileRequest, UploadFileResponse> {
179
- const method = this.methods[11], opt = this._transport.mergeOptions(options);
192
+ const method = this.methods[12], opt = this._transport.mergeOptions(options);
180
193
  return stackIntercept<UploadFileRequest, UploadFileResponse>("clientStreaming", this._transport, method, opt);
181
194
  }
182
195
  }
@@ -20,6 +20,9 @@ import { ResultStatus } from "../../resources/qualifications/qualifications";
20
20
  import { QualificationRequest } from "../../resources/qualifications/qualifications";
21
21
  import { RequestStatus } from "../../resources/qualifications/qualifications";
22
22
  import { Access } from "../../resources/access/access";
23
+ import { QualificationActivity } from "../../resources/qualifications/activity/activity";
24
+ import { Timestamp } from "../../resources/timestamp/timestamp";
25
+ import { QualificationActivityType } from "../../resources/qualifications/activity/activity";
23
26
  import { ContentType } from "../../resources/common/content/content";
24
27
  import { Qualification } from "../../resources/qualifications/qualifications";
25
28
  import { PaginationResponse } from "../../resources/common/database/database";
@@ -133,6 +136,55 @@ export interface DeleteQualificationRequest {
133
136
  */
134
137
  export interface DeleteQualificationResponse {
135
138
  }
139
+ /**
140
+ * @generated from protobuf message services.qualifications.ListQualificationActivityRequest
141
+ */
142
+ export interface ListQualificationActivityRequest {
143
+ /**
144
+ * @generated from protobuf field: resources.common.database.PaginationRequest pagination = 1
145
+ */
146
+ pagination?: PaginationRequest;
147
+ /**
148
+ * @generated from protobuf field: optional resources.common.database.Sort sort = 2
149
+ */
150
+ sort?: Sort;
151
+ /**
152
+ * @generated from protobuf field: int64 qualification_id = 3
153
+ */
154
+ qualificationId: number;
155
+ /**
156
+ * Search params
157
+ * Activity types to filter by. If empty, all activity types will be returned.
158
+ *
159
+ * @generated from protobuf field: repeated resources.qualifications.activity.QualificationActivityType types = 4
160
+ */
161
+ types: QualificationActivityType[];
162
+ /**
163
+ * @generated from protobuf field: optional int32 user_id = 5
164
+ */
165
+ userId?: number;
166
+ /**
167
+ * @generated from protobuf field: optional resources.timestamp.Timestamp from = 6
168
+ */
169
+ from?: Timestamp;
170
+ /**
171
+ * @generated from protobuf field: optional resources.timestamp.Timestamp to = 7
172
+ */
173
+ to?: Timestamp;
174
+ }
175
+ /**
176
+ * @generated from protobuf message services.qualifications.ListQualificationActivityResponse
177
+ */
178
+ export interface ListQualificationActivityResponse {
179
+ /**
180
+ * @generated from protobuf field: resources.common.database.PaginationResponse pagination = 1
181
+ */
182
+ pagination?: PaginationResponse;
183
+ /**
184
+ * @generated from protobuf field: repeated resources.qualifications.activity.QualificationActivity activity = 2
185
+ */
186
+ activity: QualificationActivity[];
187
+ }
136
188
  // Access
137
189
 
138
190
  /**
@@ -225,6 +277,12 @@ export interface CreateOrUpdateQualificationRequestRequest {
225
277
  * @generated from protobuf field: resources.qualifications.QualificationRequest request = 1
226
278
  */
227
279
  request?: QualificationRequest;
280
+ /**
281
+ * Suppresses the inbox notification normally sent when a tutor updates the request status.
282
+ *
283
+ * @generated from protobuf field: bool skip_notification = 2
284
+ */
285
+ skipNotification: boolean;
228
286
  }
229
287
  /**
230
288
  * @generated from protobuf message services.qualifications.CreateOrUpdateQualificationRequestResponse
@@ -247,6 +305,12 @@ export interface DeleteQualificationReqRequest {
247
305
  * @generated from protobuf field: int32 user_id = 2
248
306
  */
249
307
  userId: number;
308
+ /**
309
+ * Suppresses the inbox notification normally sent to the affected user.
310
+ *
311
+ * @generated from protobuf field: bool skip_notification = 3
312
+ */
313
+ skipNotification: boolean;
250
314
  }
251
315
  /**
252
316
  * @generated from protobuf message services.qualifications.DeleteQualificationReqResponse
@@ -311,6 +375,12 @@ export interface CreateOrUpdateQualificationResultRequest {
311
375
  * @generated from protobuf field: optional resources.qualifications.exam.ExamGrading grading = 2
312
376
  */
313
377
  grading?: ExamGrading;
378
+ /**
379
+ * Suppresses the inbox notification normally sent to the affected user.
380
+ *
381
+ * @generated from protobuf field: bool skip_notification = 3
382
+ */
383
+ skipNotification: boolean;
314
384
  }
315
385
  /**
316
386
  * @generated from protobuf message services.qualifications.CreateOrUpdateQualificationResultResponse
@@ -329,6 +399,12 @@ export interface DeleteQualificationResultRequest {
329
399
  * @generated from protobuf field: int64 result_id = 1
330
400
  */
331
401
  resultId: number;
402
+ /**
403
+ * Suppresses the inbox notification normally sent to the affected user.
404
+ *
405
+ * @generated from protobuf field: bool skip_notification = 2
406
+ */
407
+ skipNotification: boolean;
332
408
  }
333
409
  /**
334
410
  * @generated from protobuf message services.qualifications.DeleteQualificationResultResponse
@@ -829,6 +905,158 @@ class DeleteQualificationResponse$Type extends MessageType<DeleteQualificationRe
829
905
  */
830
906
  export const DeleteQualificationResponse = new DeleteQualificationResponse$Type();
831
907
  // @generated message type with reflection information, may provide speed optimized methods
908
+ class ListQualificationActivityRequest$Type extends MessageType<ListQualificationActivityRequest> {
909
+ constructor() {
910
+ super("services.qualifications.ListQualificationActivityRequest", [
911
+ { no: 1, name: "pagination", kind: "message", T: () => PaginationRequest, options: { "buf.validate.field": { required: true } } },
912
+ { no: 2, name: "sort", kind: "message", T: () => Sort },
913
+ { no: 3, name: "qualification_id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
914
+ { no: 4, name: "types", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["resources.qualifications.activity.QualificationActivityType", QualificationActivityType, "QUALIFICATION_ACTIVITY_TYPE_"], options: { "buf.validate.field": { repeated: { maxItems: "18", items: { enum: { definedOnly: true } } } } } },
915
+ { no: 5, name: "user_id", kind: "scalar", opt: true, T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gt: 0 } } } },
916
+ { no: 6, name: "from", kind: "message", T: () => Timestamp },
917
+ { no: 7, name: "to", kind: "message", T: () => Timestamp }
918
+ ]);
919
+ }
920
+ create(value?: PartialMessage<ListQualificationActivityRequest>): ListQualificationActivityRequest {
921
+ const message = globalThis.Object.create((this.messagePrototype!));
922
+ message.qualificationId = 0;
923
+ message.types = [];
924
+ if (value !== undefined)
925
+ reflectionMergePartial<ListQualificationActivityRequest>(this, message, value);
926
+ return message;
927
+ }
928
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListQualificationActivityRequest): ListQualificationActivityRequest {
929
+ let message = target ?? this.create(), end = reader.pos + length;
930
+ while (reader.pos < end) {
931
+ let [fieldNo, wireType] = reader.tag();
932
+ switch (fieldNo) {
933
+ case /* resources.common.database.PaginationRequest pagination */ 1:
934
+ message.pagination = PaginationRequest.internalBinaryRead(reader, reader.uint32(), options, message.pagination);
935
+ break;
936
+ case /* optional resources.common.database.Sort sort */ 2:
937
+ message.sort = Sort.internalBinaryRead(reader, reader.uint32(), options, message.sort);
938
+ break;
939
+ case /* int64 qualification_id */ 3:
940
+ message.qualificationId = reader.int64().toNumber();
941
+ break;
942
+ case /* repeated resources.qualifications.activity.QualificationActivityType types */ 4:
943
+ if (wireType === WireType.LengthDelimited)
944
+ for (let e = reader.int32() + reader.pos; reader.pos < e;)
945
+ message.types.push(reader.int32());
946
+ else
947
+ message.types.push(reader.int32());
948
+ break;
949
+ case /* optional int32 user_id */ 5:
950
+ message.userId = reader.int32();
951
+ break;
952
+ case /* optional resources.timestamp.Timestamp from */ 6:
953
+ message.from = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.from);
954
+ break;
955
+ case /* optional resources.timestamp.Timestamp to */ 7:
956
+ message.to = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.to);
957
+ break;
958
+ default:
959
+ let u = options.readUnknownField;
960
+ if (u === "throw")
961
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
962
+ let d = reader.skip(wireType);
963
+ if (u !== false)
964
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
965
+ }
966
+ }
967
+ return message;
968
+ }
969
+ internalBinaryWrite(message: ListQualificationActivityRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
970
+ /* resources.common.database.PaginationRequest pagination = 1; */
971
+ if (message.pagination)
972
+ PaginationRequest.internalBinaryWrite(message.pagination, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
973
+ /* optional resources.common.database.Sort sort = 2; */
974
+ if (message.sort)
975
+ Sort.internalBinaryWrite(message.sort, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
976
+ /* int64 qualification_id = 3; */
977
+ if (message.qualificationId !== 0)
978
+ writer.tag(3, WireType.Varint).int64(message.qualificationId);
979
+ /* repeated resources.qualifications.activity.QualificationActivityType types = 4; */
980
+ if (message.types.length) {
981
+ writer.tag(4, WireType.LengthDelimited).fork();
982
+ for (let i = 0; i < message.types.length; i++)
983
+ writer.int32(message.types[i]);
984
+ writer.join();
985
+ }
986
+ /* optional int32 user_id = 5; */
987
+ if (message.userId !== undefined)
988
+ writer.tag(5, WireType.Varint).int32(message.userId);
989
+ /* optional resources.timestamp.Timestamp from = 6; */
990
+ if (message.from)
991
+ Timestamp.internalBinaryWrite(message.from, writer.tag(6, WireType.LengthDelimited).fork(), options).join();
992
+ /* optional resources.timestamp.Timestamp to = 7; */
993
+ if (message.to)
994
+ Timestamp.internalBinaryWrite(message.to, writer.tag(7, WireType.LengthDelimited).fork(), options).join();
995
+ let u = options.writeUnknownFields;
996
+ if (u !== false)
997
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
998
+ return writer;
999
+ }
1000
+ }
1001
+ /**
1002
+ * @generated MessageType for protobuf message services.qualifications.ListQualificationActivityRequest
1003
+ */
1004
+ export const ListQualificationActivityRequest = new ListQualificationActivityRequest$Type();
1005
+ // @generated message type with reflection information, may provide speed optimized methods
1006
+ class ListQualificationActivityResponse$Type extends MessageType<ListQualificationActivityResponse> {
1007
+ constructor() {
1008
+ super("services.qualifications.ListQualificationActivityResponse", [
1009
+ { no: 1, name: "pagination", kind: "message", T: () => PaginationResponse, options: { "buf.validate.field": { required: true } } },
1010
+ { no: 2, name: "activity", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => QualificationActivity, options: { "codegen.itemslen.enabled": true } }
1011
+ ]);
1012
+ }
1013
+ create(value?: PartialMessage<ListQualificationActivityResponse>): ListQualificationActivityResponse {
1014
+ const message = globalThis.Object.create((this.messagePrototype!));
1015
+ message.activity = [];
1016
+ if (value !== undefined)
1017
+ reflectionMergePartial<ListQualificationActivityResponse>(this, message, value);
1018
+ return message;
1019
+ }
1020
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListQualificationActivityResponse): ListQualificationActivityResponse {
1021
+ let message = target ?? this.create(), end = reader.pos + length;
1022
+ while (reader.pos < end) {
1023
+ let [fieldNo, wireType] = reader.tag();
1024
+ switch (fieldNo) {
1025
+ case /* resources.common.database.PaginationResponse pagination */ 1:
1026
+ message.pagination = PaginationResponse.internalBinaryRead(reader, reader.uint32(), options, message.pagination);
1027
+ break;
1028
+ case /* repeated resources.qualifications.activity.QualificationActivity activity */ 2:
1029
+ message.activity.push(QualificationActivity.internalBinaryRead(reader, reader.uint32(), options));
1030
+ break;
1031
+ default:
1032
+ let u = options.readUnknownField;
1033
+ if (u === "throw")
1034
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
1035
+ let d = reader.skip(wireType);
1036
+ if (u !== false)
1037
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
1038
+ }
1039
+ }
1040
+ return message;
1041
+ }
1042
+ internalBinaryWrite(message: ListQualificationActivityResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
1043
+ /* resources.common.database.PaginationResponse pagination = 1; */
1044
+ if (message.pagination)
1045
+ PaginationResponse.internalBinaryWrite(message.pagination, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
1046
+ /* repeated resources.qualifications.activity.QualificationActivity activity = 2; */
1047
+ for (let i = 0; i < message.activity.length; i++)
1048
+ QualificationActivity.internalBinaryWrite(message.activity[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();
1049
+ let u = options.writeUnknownFields;
1050
+ if (u !== false)
1051
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
1052
+ return writer;
1053
+ }
1054
+ }
1055
+ /**
1056
+ * @generated MessageType for protobuf message services.qualifications.ListQualificationActivityResponse
1057
+ */
1058
+ export const ListQualificationActivityResponse = new ListQualificationActivityResponse$Type();
1059
+ // @generated message type with reflection information, may provide speed optimized methods
832
1060
  class GetQualificationAccessRequest$Type extends MessageType<GetQualificationAccessRequest> {
833
1061
  constructor() {
834
1062
  super("services.qualifications.GetQualificationAccessRequest", [
@@ -1170,11 +1398,13 @@ export const ListQualificationRequestsResponse = new ListQualificationRequestsRe
1170
1398
  class CreateOrUpdateQualificationRequestRequest$Type extends MessageType<CreateOrUpdateQualificationRequestRequest> {
1171
1399
  constructor() {
1172
1400
  super("services.qualifications.CreateOrUpdateQualificationRequestRequest", [
1173
- { no: 1, name: "request", kind: "message", T: () => QualificationRequest, options: { "buf.validate.field": { required: true } } }
1401
+ { no: 1, name: "request", kind: "message", T: () => QualificationRequest, options: { "buf.validate.field": { required: true } } },
1402
+ { no: 2, name: "skip_notification", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }
1174
1403
  ]);
1175
1404
  }
1176
1405
  create(value?: PartialMessage<CreateOrUpdateQualificationRequestRequest>): CreateOrUpdateQualificationRequestRequest {
1177
1406
  const message = globalThis.Object.create((this.messagePrototype!));
1407
+ message.skipNotification = false;
1178
1408
  if (value !== undefined)
1179
1409
  reflectionMergePartial<CreateOrUpdateQualificationRequestRequest>(this, message, value);
1180
1410
  return message;
@@ -1187,6 +1417,9 @@ class CreateOrUpdateQualificationRequestRequest$Type extends MessageType<CreateO
1187
1417
  case /* resources.qualifications.QualificationRequest request */ 1:
1188
1418
  message.request = QualificationRequest.internalBinaryRead(reader, reader.uint32(), options, message.request);
1189
1419
  break;
1420
+ case /* bool skip_notification */ 2:
1421
+ message.skipNotification = reader.bool();
1422
+ break;
1190
1423
  default:
1191
1424
  let u = options.readUnknownField;
1192
1425
  if (u === "throw")
@@ -1202,6 +1435,9 @@ class CreateOrUpdateQualificationRequestRequest$Type extends MessageType<CreateO
1202
1435
  /* resources.qualifications.QualificationRequest request = 1; */
1203
1436
  if (message.request)
1204
1437
  QualificationRequest.internalBinaryWrite(message.request, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
1438
+ /* bool skip_notification = 2; */
1439
+ if (message.skipNotification !== false)
1440
+ writer.tag(2, WireType.Varint).bool(message.skipNotification);
1205
1441
  let u = options.writeUnknownFields;
1206
1442
  if (u !== false)
1207
1443
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -1263,13 +1499,15 @@ class DeleteQualificationReqRequest$Type extends MessageType<DeleteQualification
1263
1499
  constructor() {
1264
1500
  super("services.qualifications.DeleteQualificationReqRequest", [
1265
1501
  { no: 1, name: "qualification_id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
1266
- { no: 2, name: "user_id", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gt: 0 } } } }
1502
+ { no: 2, name: "user_id", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gt: 0 } } } },
1503
+ { no: 3, name: "skip_notification", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }
1267
1504
  ]);
1268
1505
  }
1269
1506
  create(value?: PartialMessage<DeleteQualificationReqRequest>): DeleteQualificationReqRequest {
1270
1507
  const message = globalThis.Object.create((this.messagePrototype!));
1271
1508
  message.qualificationId = 0;
1272
1509
  message.userId = 0;
1510
+ message.skipNotification = false;
1273
1511
  if (value !== undefined)
1274
1512
  reflectionMergePartial<DeleteQualificationReqRequest>(this, message, value);
1275
1513
  return message;
@@ -1285,6 +1523,9 @@ class DeleteQualificationReqRequest$Type extends MessageType<DeleteQualification
1285
1523
  case /* int32 user_id */ 2:
1286
1524
  message.userId = reader.int32();
1287
1525
  break;
1526
+ case /* bool skip_notification */ 3:
1527
+ message.skipNotification = reader.bool();
1528
+ break;
1288
1529
  default:
1289
1530
  let u = options.readUnknownField;
1290
1531
  if (u === "throw")
@@ -1303,6 +1544,9 @@ class DeleteQualificationReqRequest$Type extends MessageType<DeleteQualification
1303
1544
  /* int32 user_id = 2; */
1304
1545
  if (message.userId !== 0)
1305
1546
  writer.tag(2, WireType.Varint).int32(message.userId);
1547
+ /* bool skip_notification = 3; */
1548
+ if (message.skipNotification !== false)
1549
+ writer.tag(3, WireType.Varint).bool(message.skipNotification);
1306
1550
  let u = options.writeUnknownFields;
1307
1551
  if (u !== false)
1308
1552
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -1509,11 +1753,13 @@ class CreateOrUpdateQualificationResultRequest$Type extends MessageType<CreateOr
1509
1753
  constructor() {
1510
1754
  super("services.qualifications.CreateOrUpdateQualificationResultRequest", [
1511
1755
  { no: 1, name: "result", kind: "message", T: () => QualificationResult, options: { "buf.validate.field": { required: true } } },
1512
- { no: 2, name: "grading", kind: "message", T: () => ExamGrading }
1756
+ { no: 2, name: "grading", kind: "message", T: () => ExamGrading },
1757
+ { no: 3, name: "skip_notification", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }
1513
1758
  ]);
1514
1759
  }
1515
1760
  create(value?: PartialMessage<CreateOrUpdateQualificationResultRequest>): CreateOrUpdateQualificationResultRequest {
1516
1761
  const message = globalThis.Object.create((this.messagePrototype!));
1762
+ message.skipNotification = false;
1517
1763
  if (value !== undefined)
1518
1764
  reflectionMergePartial<CreateOrUpdateQualificationResultRequest>(this, message, value);
1519
1765
  return message;
@@ -1529,6 +1775,9 @@ class CreateOrUpdateQualificationResultRequest$Type extends MessageType<CreateOr
1529
1775
  case /* optional resources.qualifications.exam.ExamGrading grading */ 2:
1530
1776
  message.grading = ExamGrading.internalBinaryRead(reader, reader.uint32(), options, message.grading);
1531
1777
  break;
1778
+ case /* bool skip_notification */ 3:
1779
+ message.skipNotification = reader.bool();
1780
+ break;
1532
1781
  default:
1533
1782
  let u = options.readUnknownField;
1534
1783
  if (u === "throw")
@@ -1547,6 +1796,9 @@ class CreateOrUpdateQualificationResultRequest$Type extends MessageType<CreateOr
1547
1796
  /* optional resources.qualifications.exam.ExamGrading grading = 2; */
1548
1797
  if (message.grading)
1549
1798
  ExamGrading.internalBinaryWrite(message.grading, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
1799
+ /* bool skip_notification = 3; */
1800
+ if (message.skipNotification !== false)
1801
+ writer.tag(3, WireType.Varint).bool(message.skipNotification);
1550
1802
  let u = options.writeUnknownFields;
1551
1803
  if (u !== false)
1552
1804
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -1607,12 +1859,14 @@ export const CreateOrUpdateQualificationResultResponse = new CreateOrUpdateQuali
1607
1859
  class DeleteQualificationResultRequest$Type extends MessageType<DeleteQualificationResultRequest> {
1608
1860
  constructor() {
1609
1861
  super("services.qualifications.DeleteQualificationResultRequest", [
1610
- { no: 1, name: "result_id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }
1862
+ { no: 1, name: "result_id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
1863
+ { no: 2, name: "skip_notification", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }
1611
1864
  ]);
1612
1865
  }
1613
1866
  create(value?: PartialMessage<DeleteQualificationResultRequest>): DeleteQualificationResultRequest {
1614
1867
  const message = globalThis.Object.create((this.messagePrototype!));
1615
1868
  message.resultId = 0;
1869
+ message.skipNotification = false;
1616
1870
  if (value !== undefined)
1617
1871
  reflectionMergePartial<DeleteQualificationResultRequest>(this, message, value);
1618
1872
  return message;
@@ -1625,6 +1879,9 @@ class DeleteQualificationResultRequest$Type extends MessageType<DeleteQualificat
1625
1879
  case /* int64 result_id */ 1:
1626
1880
  message.resultId = reader.int64().toNumber();
1627
1881
  break;
1882
+ case /* bool skip_notification */ 2:
1883
+ message.skipNotification = reader.bool();
1884
+ break;
1628
1885
  default:
1629
1886
  let u = options.readUnknownField;
1630
1887
  if (u === "throw")
@@ -1640,6 +1897,9 @@ class DeleteQualificationResultRequest$Type extends MessageType<DeleteQualificat
1640
1897
  /* int64 result_id = 1; */
1641
1898
  if (message.resultId !== 0)
1642
1899
  writer.tag(1, WireType.Varint).int64(message.resultId);
1900
+ /* bool skip_notification = 2; */
1901
+ if (message.skipNotification !== false)
1902
+ writer.tag(2, WireType.Varint).bool(message.skipNotification);
1643
1903
  let u = options.writeUnknownFields;
1644
1904
  if (u !== false)
1645
1905
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -1697,6 +1957,7 @@ export const QualificationsService = new ServiceType("services.qualifications.Qu
1697
1957
  { name: "CreateQualification", options: { "codegen.perms.perms": { enabled: true, name: "UpdateQualification" } }, I: CreateQualificationRequest, O: CreateQualificationResponse },
1698
1958
  { name: "UpdateQualification", options: { "codegen.perms.perms": { enabled: true, attrs: [{ key: "Access", type: "ATTRIBUTE_TYPE_STRING_LIST", validStringList: ["Own", "Lower_Rank", "Same_Rank", "Any"] }, { key: "Fields", type: "ATTRIBUTE_TYPE_STRING_LIST", validStringList: ["Public"] }] } }, I: UpdateQualificationRequest, O: UpdateQualificationResponse },
1699
1959
  { name: "DeleteQualification", options: { "codegen.perms.perms": { enabled: true, attrs: [{ key: "Access", type: "ATTRIBUTE_TYPE_STRING_LIST", validStringList: ["Own", "Lower_Rank", "Same_Rank", "Any"] }] } }, I: DeleteQualificationRequest, O: DeleteQualificationResponse },
1960
+ { name: "ListQualificationActivity", options: { "codegen.perms.perms": { enabled: true, name: "ListQualifications" } }, I: ListQualificationActivityRequest, O: ListQualificationActivityResponse },
1700
1961
  { name: "ListQualificationRequests", options: { "codegen.perms.perms": { enabled: true, name: "ListQualifications" } }, I: ListQualificationRequestsRequest, O: ListQualificationRequestsResponse },
1701
1962
  { name: "CreateOrUpdateQualificationRequest", options: { "codegen.perms.perms": { enabled: true, name: "ListQualifications" } }, I: CreateOrUpdateQualificationRequestRequest, O: CreateOrUpdateQualificationRequestResponse },
1702
1963
  { name: "DeleteQualificationReq", options: { "codegen.perms.perms": { enabled: true, name: "ListQualifications" } }, I: DeleteQualificationReqRequest, O: DeleteQualificationReqResponse },
@@ -0,0 +1,105 @@
1
+ // @generated by protobuf-ts 2.11.1 with parameter force_server_none,long_type_number,optimize_speed,ts_nocheck
2
+ // @generated from protobuf file "services/settings/job_assets.proto" (package "services.settings", syntax proto3)
3
+ // tslint:disable
4
+ // @ts-nocheck
5
+ import type { RpcTransport } from "@protobuf-ts/runtime-rpc";
6
+ import type { ServiceInfo } from "@protobuf-ts/runtime-rpc";
7
+ import { JobsAssetsService } from "./job_assets";
8
+ import type { DeleteJobAssetResponse } from "./job_assets";
9
+ import type { DeleteJobAssetRequest } from "./job_assets";
10
+ import type { UpdateJobAssetResponse } from "./job_assets";
11
+ import type { UpdateJobAssetRequest } from "./job_assets";
12
+ import type { UploadFileResponse } from "../../resources/file/filestore";
13
+ import type { UploadFileRequest } from "../../resources/file/filestore";
14
+ import type { ClientStreamingCall } from "@protobuf-ts/runtime-rpc";
15
+ import { stackIntercept } from "@protobuf-ts/runtime-rpc";
16
+ import type { ListJobAssetsResponse } from "./job_assets";
17
+ import type { ListJobAssetsRequest } from "./job_assets";
18
+ import type { UnaryCall } from "@protobuf-ts/runtime-rpc";
19
+ import type { RpcOptions } from "@protobuf-ts/runtime-rpc";
20
+ /**
21
+ * @generated from protobuf service services.settings.JobsAssetsService
22
+ */
23
+ export interface IJobsAssetsServiceClient {
24
+ /**
25
+ * @generated from protobuf rpc: ListJobAssets
26
+ */
27
+ listJobAssets(input: ListJobAssetsRequest, options?: RpcOptions): UnaryCall<ListJobAssetsRequest, ListJobAssetsResponse>;
28
+ /**
29
+ * buf:lint:ignore RPC_REQUEST_RESPONSE_UNIQUE
30
+ * buf:lint:ignore RPC_REQUEST_STANDARD_NAME
31
+ * buf:lint:ignore RPC_RESPONSE_STANDARD_NAME
32
+ *
33
+ * @generated from protobuf rpc: UploadJobAsset
34
+ */
35
+ uploadJobAsset(options?: RpcOptions): ClientStreamingCall<UploadFileRequest, UploadFileResponse>;
36
+ /**
37
+ * buf:lint:ignore RPC_REQUEST_RESPONSE_UNIQUE
38
+ * buf:lint:ignore RPC_REQUEST_STANDARD_NAME
39
+ * buf:lint:ignore RPC_RESPONSE_STANDARD_NAME
40
+ *
41
+ * @generated from protobuf rpc: ReplaceJobAsset
42
+ */
43
+ replaceJobAsset(options?: RpcOptions): ClientStreamingCall<UploadFileRequest, UploadFileResponse>;
44
+ /**
45
+ * @generated from protobuf rpc: UpdateJobAsset
46
+ */
47
+ updateJobAsset(input: UpdateJobAssetRequest, options?: RpcOptions): UnaryCall<UpdateJobAssetRequest, UpdateJobAssetResponse>;
48
+ /**
49
+ * @generated from protobuf rpc: DeleteJobAsset
50
+ */
51
+ deleteJobAsset(input: DeleteJobAssetRequest, options?: RpcOptions): UnaryCall<DeleteJobAssetRequest, DeleteJobAssetResponse>;
52
+ }
53
+ /**
54
+ * @generated from protobuf service services.settings.JobsAssetsService
55
+ */
56
+ export class JobsAssetsServiceClient implements IJobsAssetsServiceClient, ServiceInfo {
57
+ typeName = JobsAssetsService.typeName;
58
+ methods = JobsAssetsService.methods;
59
+ options = JobsAssetsService.options;
60
+ constructor(private readonly _transport: RpcTransport) {
61
+ }
62
+ /**
63
+ * @generated from protobuf rpc: ListJobAssets
64
+ */
65
+ listJobAssets(input: ListJobAssetsRequest, options?: RpcOptions): UnaryCall<ListJobAssetsRequest, ListJobAssetsResponse> {
66
+ const method = this.methods[0], opt = this._transport.mergeOptions(options);
67
+ return stackIntercept<ListJobAssetsRequest, ListJobAssetsResponse>("unary", this._transport, method, opt, input);
68
+ }
69
+ /**
70
+ * buf:lint:ignore RPC_REQUEST_RESPONSE_UNIQUE
71
+ * buf:lint:ignore RPC_REQUEST_STANDARD_NAME
72
+ * buf:lint:ignore RPC_RESPONSE_STANDARD_NAME
73
+ *
74
+ * @generated from protobuf rpc: UploadJobAsset
75
+ */
76
+ uploadJobAsset(options?: RpcOptions): ClientStreamingCall<UploadFileRequest, UploadFileResponse> {
77
+ const method = this.methods[1], opt = this._transport.mergeOptions(options);
78
+ return stackIntercept<UploadFileRequest, UploadFileResponse>("clientStreaming", this._transport, method, opt);
79
+ }
80
+ /**
81
+ * buf:lint:ignore RPC_REQUEST_RESPONSE_UNIQUE
82
+ * buf:lint:ignore RPC_REQUEST_STANDARD_NAME
83
+ * buf:lint:ignore RPC_RESPONSE_STANDARD_NAME
84
+ *
85
+ * @generated from protobuf rpc: ReplaceJobAsset
86
+ */
87
+ replaceJobAsset(options?: RpcOptions): ClientStreamingCall<UploadFileRequest, UploadFileResponse> {
88
+ const method = this.methods[2], opt = this._transport.mergeOptions(options);
89
+ return stackIntercept<UploadFileRequest, UploadFileResponse>("clientStreaming", this._transport, method, opt);
90
+ }
91
+ /**
92
+ * @generated from protobuf rpc: UpdateJobAsset
93
+ */
94
+ updateJobAsset(input: UpdateJobAssetRequest, options?: RpcOptions): UnaryCall<UpdateJobAssetRequest, UpdateJobAssetResponse> {
95
+ const method = this.methods[3], opt = this._transport.mergeOptions(options);
96
+ return stackIntercept<UpdateJobAssetRequest, UpdateJobAssetResponse>("unary", this._transport, method, opt, input);
97
+ }
98
+ /**
99
+ * @generated from protobuf rpc: DeleteJobAsset
100
+ */
101
+ deleteJobAsset(input: DeleteJobAssetRequest, options?: RpcOptions): UnaryCall<DeleteJobAssetRequest, DeleteJobAssetResponse> {
102
+ const method = this.methods[4], opt = this._transport.mergeOptions(options);
103
+ return stackIntercept<DeleteJobAssetRequest, DeleteJobAssetResponse>("unary", this._transport, method, opt, input);
104
+ }
105
+ }