@digiteers/uloba3-sdk 4.0.0 → 4.0.1

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/dist/types.d.ts CHANGED
@@ -3,6 +3,49 @@
3
3
  * Do not make direct changes to the file.
4
4
  */
5
5
  export interface paths {
6
+ '/': {
7
+ parameters: {
8
+ query?: never;
9
+ header?: never;
10
+ path?: never;
11
+ cookie?: never;
12
+ };
13
+ /** @description Get API information */
14
+ get: {
15
+ parameters: {
16
+ query?: never;
17
+ header?: never;
18
+ path?: never;
19
+ cookie?: never;
20
+ };
21
+ requestBody?: never;
22
+ responses: {
23
+ /** @description Default Response */
24
+ 200: {
25
+ headers: {
26
+ [name: string]: unknown;
27
+ };
28
+ content: {
29
+ 'application/json': {
30
+ name: string;
31
+ version: string;
32
+ status: string;
33
+ environment: string;
34
+ timestamp: string;
35
+ documentation: string;
36
+ };
37
+ };
38
+ };
39
+ };
40
+ };
41
+ put?: never;
42
+ post?: never;
43
+ delete?: never;
44
+ options?: never;
45
+ head?: never;
46
+ patch?: never;
47
+ trace?: never;
48
+ };
6
49
  '/api/health': {
7
50
  parameters: {
8
51
  query?: never;
@@ -4566,7 +4609,7 @@ export interface paths {
4566
4609
  };
4567
4610
  /**
4568
4611
  * Get job by ID
4569
- * @description Get job details (requires COORDINATOR role)
4612
+ * @description Get job details (requires authentication)
4570
4613
  */
4571
4614
  get: {
4572
4615
  parameters: {
@@ -7304,7 +7347,7 @@ export interface paths {
7304
7347
  /** @description Metadata about the statistics query and response */
7305
7348
  metadata: {
7306
7349
  /** @description Role context for the statistics query */
7307
- role: 'coordinator' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
7350
+ role: 'coordinator' | 'employer' | 'worker' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
7308
7351
  /**
7309
7352
  * Format: uuid
7310
7353
  * @description UUID version 4 identifier
@@ -7416,7 +7459,7 @@ export interface paths {
7416
7459
  /** @description Metadata about the statistics query and response */
7417
7460
  metadata: {
7418
7461
  /** @description Role context for the statistics query */
7419
- role: 'coordinator' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
7462
+ role: 'coordinator' | 'employer' | 'worker' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
7420
7463
  /**
7421
7464
  * Format: uuid
7422
7465
  * @description UUID version 4 identifier
@@ -7528,7 +7571,7 @@ export interface paths {
7528
7571
  /** @description Metadata about the statistics query and response */
7529
7572
  metadata: {
7530
7573
  /** @description Role context for the statistics query */
7531
- role: 'coordinator' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
7574
+ role: 'coordinator' | 'employer' | 'worker' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
7532
7575
  /**
7533
7576
  * Format: uuid
7534
7577
  * @description UUID version 4 identifier
@@ -8859,76 +8902,32 @@ export interface paths {
8859
8902
  patch?: never;
8860
8903
  trace?: never;
8861
8904
  };
8862
- '/api/assistants/me/locations': {
8905
+ '/api/assistants/me/activate': {
8863
8906
  parameters: {
8864
8907
  query?: never;
8865
8908
  header?: never;
8866
8909
  path?: never;
8867
8910
  cookie?: never;
8868
8911
  };
8869
- /** Get my locations */
8870
- get: {
8871
- parameters: {
8872
- query?: never;
8873
- header?: never;
8874
- path?: never;
8875
- cookie?: never;
8876
- };
8877
- requestBody?: never;
8878
- responses: {
8879
- /** @description Default Response */
8880
- 200: {
8881
- headers: {
8882
- [name: string]: unknown;
8883
- };
8884
- content: {
8885
- 'application/json': {
8886
- id: string;
8887
- assistant_id: string;
8888
- place_id?: string;
8889
- display_name: string;
8890
- address?: string;
8891
- city: string;
8892
- postal_code?: string;
8893
- country?: string;
8894
- lat?: number;
8895
- lng?: number;
8896
- max_distance_km?: number;
8897
- is_primary?: boolean;
8898
- sort_order?: number;
8899
- description?: string;
8900
- created_at: string;
8901
- updated_at: string;
8902
- }[];
8903
- };
8904
- };
8905
- };
8906
- };
8907
- /** Replace all locations */
8908
- put: {
8912
+ get?: never;
8913
+ put?: never;
8914
+ /**
8915
+ * Activate assistant profile
8916
+ * @description Activate a draft profile and set its visibility (private or public)
8917
+ */
8918
+ post: {
8909
8919
  parameters: {
8910
8920
  query?: never;
8911
8921
  header?: never;
8912
8922
  path?: never;
8913
8923
  cookie?: never;
8914
8924
  };
8915
- requestBody?: {
8925
+ requestBody: {
8916
8926
  content: {
8917
8927
  'application/json': {
8918
- id?: string;
8919
- place_id?: string;
8920
- display_name: string;
8921
- address?: string;
8922
- city: string;
8923
- postal_code?: string;
8924
- country?: string;
8925
- lat?: number;
8926
- lng?: number;
8927
- max_distance_km?: number;
8928
- is_primary?: boolean;
8929
- sort_order?: number;
8930
- description?: string;
8931
- }[];
8928
+ /** @description Visibility setting for the activated profile */
8929
+ visibility: 'private' | 'public';
8930
+ };
8932
8931
  };
8933
8932
  };
8934
8933
  responses: {
@@ -8940,82 +8939,485 @@ export interface paths {
8940
8939
  content: {
8941
8940
  'application/json': {
8942
8941
  id: string;
8943
- assistant_id: string;
8944
- place_id?: string;
8945
- display_name: string;
8946
- address?: string;
8947
- city: string;
8948
- postal_code?: string;
8949
- country?: string;
8950
- lat?: number;
8951
- lng?: number;
8952
- max_distance_km?: number;
8953
- is_primary?: boolean;
8954
- sort_order?: number;
8955
- description?: string;
8942
+ user_id: string;
8943
+ status: 'draft' | 'private' | 'public' | 'suspended' | 'deleted';
8944
+ bio?: string;
8956
8945
  created_at: string;
8957
8946
  updated_at: string;
8958
- }[];
8959
- };
8960
- };
8961
- };
8962
- };
8963
- /** Add location */
8964
- post: {
8965
- parameters: {
8966
- query?: never;
8967
- header?: never;
8968
- path?: never;
8969
- cookie?: never;
8970
- };
8971
- requestBody: {
8972
- content: {
8973
- 'application/json': {
8974
- id?: string;
8975
- place_id?: string;
8976
- display_name: string;
8977
- address?: string;
8978
- city: string;
8979
- postal_code?: string;
8980
- country?: string;
8981
- lat?: number;
8982
- lng?: number;
8983
- max_distance_km?: number;
8984
- is_primary?: boolean;
8985
- sort_order?: number;
8986
- description?: string;
8947
+ published_at?: string;
8948
+ unpublished_at?: string;
8949
+ hours_per_week?: number;
8950
+ availability_status?: string;
8951
+ availability_start_date?: string;
8952
+ demographic_gender?: 'male' | 'female' | 'other' | 'prefer_not_to_say' | null;
8953
+ demographic_birth_year?: number;
8954
+ demographic_marital_status?: 'single' | 'married' | 'partner' | 'divorced' | 'widowed' | 'other' | null;
8955
+ demographic_citizenship?: string;
8956
+ preference_norwegian_proficiency?: 'native' | 'fluent' | 'good' | 'basic' | 'none' | null;
8957
+ preference_open_to_job_travel?: boolean;
8958
+ preference_target_group?: 'adults' | 'children' | 'both' | null;
8959
+ preference_has_drivers_license?: boolean;
8960
+ preference_willing_to_relocate?: boolean;
8961
+ visibility_show_phone?: boolean;
8962
+ visibility_show_email?: boolean;
8963
+ visibility_preferred_contact?: 'email' | 'phone' | 'both' | null;
8964
+ visibility_name_display?: 'firstOnly' | 'firstAndLastInitial' | 'fullName' | null;
8965
+ availability_notes?: string;
8966
+ employment_current_status?: 'student' | 'employed' | 'unemployed' | 'retired' | 'homemaker' | 'volunteer' | 'other' | null;
8967
+ accept_terms?: boolean;
8968
+ accept_police_check?: boolean;
8969
+ police_check_can_obtain?: boolean;
8970
+ police_check_has_valid?: boolean;
8971
+ police_check_expiry_date?: string;
8972
+ police_check_notes?: string;
8973
+ generated_title?: string;
8974
+ view_count?: number;
8975
+ last_active_at?: string;
8976
+ terms_fully_accepted?: boolean;
8977
+ given_name?: string;
8978
+ family_name?: string;
8979
+ full_name?: string;
8980
+ display_name?: string;
8981
+ email?: string;
8982
+ email_verified?: boolean;
8983
+ phone?: string;
8984
+ picture?: string;
8985
+ responsibilities?: {
8986
+ id: string;
8987
+ title: string;
8988
+ description?: string;
8989
+ is_custom: boolean;
8990
+ template_id?: string;
8991
+ sort_order: number;
8992
+ }[];
8993
+ interests?: {
8994
+ id: string;
8995
+ title: string;
8996
+ description?: string;
8997
+ is_custom: boolean;
8998
+ template_id?: string;
8999
+ sort_order: number;
9000
+ }[];
9001
+ work_schedules?: {
9002
+ id: string;
9003
+ title: string;
9004
+ description?: string;
9005
+ is_custom: boolean;
9006
+ template_id?: string;
9007
+ sort_order: number;
9008
+ }[];
9009
+ assistance_types?: {
9010
+ id: string;
9011
+ assistance_type_id: string;
9012
+ code: string;
9013
+ title: string;
9014
+ description?: string;
9015
+ sort_order: number;
9016
+ }[];
9017
+ locations?: {
9018
+ id: string;
9019
+ city: string;
9020
+ postal_code?: string;
9021
+ display_name?: string;
9022
+ address?: string;
9023
+ country?: string;
9024
+ lat?: number;
9025
+ lng?: number;
9026
+ max_distance_km?: number;
9027
+ is_primary?: boolean;
9028
+ sort_order?: number;
9029
+ description?: string;
9030
+ }[];
9031
+ attachments?: {
9032
+ id: string;
9033
+ file_name: string;
9034
+ original_name: string;
9035
+ mime_type: string;
9036
+ file_size: number;
9037
+ file_type?: string;
9038
+ description?: string;
9039
+ storage_bucket: string;
9040
+ storage_path: string;
9041
+ uploaded_by: string;
9042
+ created_at: string;
9043
+ updated_at: string;
9044
+ }[];
9045
+ };
8987
9046
  };
8988
9047
  };
8989
- };
8990
- responses: {
8991
9048
  /** @description Default Response */
8992
- 201: {
9049
+ 400: {
8993
9050
  headers: {
8994
9051
  [name: string]: unknown;
8995
9052
  };
8996
9053
  content: {
8997
9054
  'application/json': {
8998
- id: string;
8999
- assistant_id: string;
9000
- place_id?: string;
9001
- display_name: string;
9002
- address?: string;
9003
- city: string;
9004
- postal_code?: string;
9005
- country?: string;
9006
- lat?: number;
9007
- lng?: number;
9008
- max_distance_km?: number;
9009
- is_primary?: boolean;
9010
- sort_order?: number;
9011
- description?: string;
9012
- created_at: string;
9013
- updated_at: string;
9055
+ error: string;
9056
+ message?: string;
9057
+ code?: string;
9058
+ details?: unknown;
9059
+ /** Format: date-time */
9060
+ timestamp?: string;
9014
9061
  };
9015
9062
  };
9016
9063
  };
9017
9064
  /** @description Default Response */
9018
- 409: {
9065
+ 404: {
9066
+ headers: {
9067
+ [name: string]: unknown;
9068
+ };
9069
+ content: {
9070
+ 'application/json': {
9071
+ error: string;
9072
+ message?: string;
9073
+ code?: string;
9074
+ details?: unknown;
9075
+ /** Format: date-time */
9076
+ timestamp?: string;
9077
+ };
9078
+ };
9079
+ };
9080
+ };
9081
+ };
9082
+ delete?: never;
9083
+ options?: never;
9084
+ head?: never;
9085
+ patch?: never;
9086
+ trace?: never;
9087
+ };
9088
+ '/api/assistants/me/deactivate': {
9089
+ parameters: {
9090
+ query?: never;
9091
+ header?: never;
9092
+ path?: never;
9093
+ cookie?: never;
9094
+ };
9095
+ get?: never;
9096
+ put?: never;
9097
+ /**
9098
+ * Deactivate assistant profile
9099
+ * @description Deactivate an active profile (private or public) back to draft state
9100
+ */
9101
+ post: {
9102
+ parameters: {
9103
+ query?: never;
9104
+ header?: never;
9105
+ path?: never;
9106
+ cookie?: never;
9107
+ };
9108
+ requestBody?: never;
9109
+ responses: {
9110
+ /** @description Default Response */
9111
+ 200: {
9112
+ headers: {
9113
+ [name: string]: unknown;
9114
+ };
9115
+ content: {
9116
+ 'application/json': {
9117
+ id: string;
9118
+ user_id: string;
9119
+ status: 'draft' | 'private' | 'public' | 'suspended' | 'deleted';
9120
+ bio?: string;
9121
+ created_at: string;
9122
+ updated_at: string;
9123
+ published_at?: string;
9124
+ unpublished_at?: string;
9125
+ hours_per_week?: number;
9126
+ availability_status?: string;
9127
+ availability_start_date?: string;
9128
+ demographic_gender?: 'male' | 'female' | 'other' | 'prefer_not_to_say' | null;
9129
+ demographic_birth_year?: number;
9130
+ demographic_marital_status?: 'single' | 'married' | 'partner' | 'divorced' | 'widowed' | 'other' | null;
9131
+ demographic_citizenship?: string;
9132
+ preference_norwegian_proficiency?: 'native' | 'fluent' | 'good' | 'basic' | 'none' | null;
9133
+ preference_open_to_job_travel?: boolean;
9134
+ preference_target_group?: 'adults' | 'children' | 'both' | null;
9135
+ preference_has_drivers_license?: boolean;
9136
+ preference_willing_to_relocate?: boolean;
9137
+ visibility_show_phone?: boolean;
9138
+ visibility_show_email?: boolean;
9139
+ visibility_preferred_contact?: 'email' | 'phone' | 'both' | null;
9140
+ visibility_name_display?: 'firstOnly' | 'firstAndLastInitial' | 'fullName' | null;
9141
+ availability_notes?: string;
9142
+ employment_current_status?: 'student' | 'employed' | 'unemployed' | 'retired' | 'homemaker' | 'volunteer' | 'other' | null;
9143
+ accept_terms?: boolean;
9144
+ accept_police_check?: boolean;
9145
+ police_check_can_obtain?: boolean;
9146
+ police_check_has_valid?: boolean;
9147
+ police_check_expiry_date?: string;
9148
+ police_check_notes?: string;
9149
+ generated_title?: string;
9150
+ view_count?: number;
9151
+ last_active_at?: string;
9152
+ terms_fully_accepted?: boolean;
9153
+ given_name?: string;
9154
+ family_name?: string;
9155
+ full_name?: string;
9156
+ display_name?: string;
9157
+ email?: string;
9158
+ email_verified?: boolean;
9159
+ phone?: string;
9160
+ picture?: string;
9161
+ responsibilities?: {
9162
+ id: string;
9163
+ title: string;
9164
+ description?: string;
9165
+ is_custom: boolean;
9166
+ template_id?: string;
9167
+ sort_order: number;
9168
+ }[];
9169
+ interests?: {
9170
+ id: string;
9171
+ title: string;
9172
+ description?: string;
9173
+ is_custom: boolean;
9174
+ template_id?: string;
9175
+ sort_order: number;
9176
+ }[];
9177
+ work_schedules?: {
9178
+ id: string;
9179
+ title: string;
9180
+ description?: string;
9181
+ is_custom: boolean;
9182
+ template_id?: string;
9183
+ sort_order: number;
9184
+ }[];
9185
+ assistance_types?: {
9186
+ id: string;
9187
+ assistance_type_id: string;
9188
+ code: string;
9189
+ title: string;
9190
+ description?: string;
9191
+ sort_order: number;
9192
+ }[];
9193
+ locations?: {
9194
+ id: string;
9195
+ city: string;
9196
+ postal_code?: string;
9197
+ display_name?: string;
9198
+ address?: string;
9199
+ country?: string;
9200
+ lat?: number;
9201
+ lng?: number;
9202
+ max_distance_km?: number;
9203
+ is_primary?: boolean;
9204
+ sort_order?: number;
9205
+ description?: string;
9206
+ }[];
9207
+ attachments?: {
9208
+ id: string;
9209
+ file_name: string;
9210
+ original_name: string;
9211
+ mime_type: string;
9212
+ file_size: number;
9213
+ file_type?: string;
9214
+ description?: string;
9215
+ storage_bucket: string;
9216
+ storage_path: string;
9217
+ uploaded_by: string;
9218
+ created_at: string;
9219
+ updated_at: string;
9220
+ }[];
9221
+ };
9222
+ };
9223
+ };
9224
+ /** @description Default Response */
9225
+ 400: {
9226
+ headers: {
9227
+ [name: string]: unknown;
9228
+ };
9229
+ content: {
9230
+ 'application/json': {
9231
+ error: string;
9232
+ message?: string;
9233
+ code?: string;
9234
+ details?: unknown;
9235
+ /** Format: date-time */
9236
+ timestamp?: string;
9237
+ };
9238
+ };
9239
+ };
9240
+ /** @description Default Response */
9241
+ 404: {
9242
+ headers: {
9243
+ [name: string]: unknown;
9244
+ };
9245
+ content: {
9246
+ 'application/json': {
9247
+ error: string;
9248
+ message?: string;
9249
+ code?: string;
9250
+ details?: unknown;
9251
+ /** Format: date-time */
9252
+ timestamp?: string;
9253
+ };
9254
+ };
9255
+ };
9256
+ };
9257
+ };
9258
+ delete?: never;
9259
+ options?: never;
9260
+ head?: never;
9261
+ patch?: never;
9262
+ trace?: never;
9263
+ };
9264
+ '/api/assistants/me/locations': {
9265
+ parameters: {
9266
+ query?: never;
9267
+ header?: never;
9268
+ path?: never;
9269
+ cookie?: never;
9270
+ };
9271
+ /** Get my locations */
9272
+ get: {
9273
+ parameters: {
9274
+ query?: never;
9275
+ header?: never;
9276
+ path?: never;
9277
+ cookie?: never;
9278
+ };
9279
+ requestBody?: never;
9280
+ responses: {
9281
+ /** @description Default Response */
9282
+ 200: {
9283
+ headers: {
9284
+ [name: string]: unknown;
9285
+ };
9286
+ content: {
9287
+ 'application/json': {
9288
+ id: string;
9289
+ assistant_id: string;
9290
+ place_id?: string;
9291
+ display_name: string;
9292
+ address?: string;
9293
+ city: string;
9294
+ postal_code?: string;
9295
+ country?: string;
9296
+ lat?: number;
9297
+ lng?: number;
9298
+ max_distance_km?: number;
9299
+ is_primary?: boolean;
9300
+ sort_order?: number;
9301
+ description?: string;
9302
+ created_at: string;
9303
+ updated_at: string;
9304
+ }[];
9305
+ };
9306
+ };
9307
+ };
9308
+ };
9309
+ /** Replace all locations */
9310
+ put: {
9311
+ parameters: {
9312
+ query?: never;
9313
+ header?: never;
9314
+ path?: never;
9315
+ cookie?: never;
9316
+ };
9317
+ requestBody?: {
9318
+ content: {
9319
+ 'application/json': {
9320
+ id?: string;
9321
+ place_id?: string;
9322
+ display_name: string;
9323
+ address?: string;
9324
+ city: string;
9325
+ postal_code?: string;
9326
+ country?: string;
9327
+ lat?: number;
9328
+ lng?: number;
9329
+ max_distance_km?: number;
9330
+ is_primary?: boolean;
9331
+ sort_order?: number;
9332
+ description?: string;
9333
+ }[];
9334
+ };
9335
+ };
9336
+ responses: {
9337
+ /** @description Default Response */
9338
+ 200: {
9339
+ headers: {
9340
+ [name: string]: unknown;
9341
+ };
9342
+ content: {
9343
+ 'application/json': {
9344
+ id: string;
9345
+ assistant_id: string;
9346
+ place_id?: string;
9347
+ display_name: string;
9348
+ address?: string;
9349
+ city: string;
9350
+ postal_code?: string;
9351
+ country?: string;
9352
+ lat?: number;
9353
+ lng?: number;
9354
+ max_distance_km?: number;
9355
+ is_primary?: boolean;
9356
+ sort_order?: number;
9357
+ description?: string;
9358
+ created_at: string;
9359
+ updated_at: string;
9360
+ }[];
9361
+ };
9362
+ };
9363
+ };
9364
+ };
9365
+ /** Add location */
9366
+ post: {
9367
+ parameters: {
9368
+ query?: never;
9369
+ header?: never;
9370
+ path?: never;
9371
+ cookie?: never;
9372
+ };
9373
+ requestBody: {
9374
+ content: {
9375
+ 'application/json': {
9376
+ id?: string;
9377
+ place_id?: string;
9378
+ display_name: string;
9379
+ address?: string;
9380
+ city: string;
9381
+ postal_code?: string;
9382
+ country?: string;
9383
+ lat?: number;
9384
+ lng?: number;
9385
+ max_distance_km?: number;
9386
+ is_primary?: boolean;
9387
+ sort_order?: number;
9388
+ description?: string;
9389
+ };
9390
+ };
9391
+ };
9392
+ responses: {
9393
+ /** @description Default Response */
9394
+ 201: {
9395
+ headers: {
9396
+ [name: string]: unknown;
9397
+ };
9398
+ content: {
9399
+ 'application/json': {
9400
+ id: string;
9401
+ assistant_id: string;
9402
+ place_id?: string;
9403
+ display_name: string;
9404
+ address?: string;
9405
+ city: string;
9406
+ postal_code?: string;
9407
+ country?: string;
9408
+ lat?: number;
9409
+ lng?: number;
9410
+ max_distance_km?: number;
9411
+ is_primary?: boolean;
9412
+ sort_order?: number;
9413
+ description?: string;
9414
+ created_at: string;
9415
+ updated_at: string;
9416
+ };
9417
+ };
9418
+ };
9419
+ /** @description Default Response */
9420
+ 409: {
9019
9421
  headers: {
9020
9422
  [name: string]: unknown;
9021
9423
  };
@@ -10330,7 +10732,7 @@ export interface paths {
10330
10732
  /** @description Metadata about the statistics query and response */
10331
10733
  metadata: {
10332
10734
  /** @description Role context for the statistics query */
10333
- role: 'coordinator' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
10735
+ role: 'coordinator' | 'employer' | 'worker' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
10334
10736
  /**
10335
10737
  * Format: uuid
10336
10738
  * @description UUID version 4 identifier
@@ -10727,7 +11129,7 @@ export interface paths {
10727
11129
  /** @description Metadata about the statistics query and response */
10728
11130
  metadata: {
10729
11131
  /** @description Role context for the statistics query */
10730
- role: 'coordinator' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
11132
+ role: 'coordinator' | 'employer' | 'worker' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
10731
11133
  /**
10732
11134
  * Format: uuid
10733
11135
  * @description UUID version 4 identifier
@@ -10778,7 +11180,7 @@ export interface paths {
10778
11180
  /** @description Metadata about the statistics query and response */
10779
11181
  metadata: {
10780
11182
  /** @description Role context for the statistics query */
10781
- role: 'coordinator' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
11183
+ role: 'coordinator' | 'employer' | 'worker' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
10782
11184
  /**
10783
11185
  * Format: uuid
10784
11186
  * @description UUID version 4 identifier
@@ -10849,7 +11251,7 @@ export interface paths {
10849
11251
  /** @description Metadata about the statistics query and response */
10850
11252
  metadata: {
10851
11253
  /** @description Role context for the statistics query */
10852
- role: 'coordinator' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
11254
+ role: 'coordinator' | 'employer' | 'worker' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
10853
11255
  /**
10854
11256
  * Format: uuid
10855
11257
  * @description UUID version 4 identifier
@@ -10918,7 +11320,7 @@ export interface paths {
10918
11320
  /** @description Metadata about the statistics query and response */
10919
11321
  metadata: {
10920
11322
  /** @description Role context for the statistics query */
10921
- role: 'coordinator' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
11323
+ role: 'coordinator' | 'employer' | 'worker' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
10922
11324
  /**
10923
11325
  * Format: uuid
10924
11326
  * @description UUID version 4 identifier
@@ -11028,7 +11430,7 @@ export interface paths {
11028
11430
  /** @description Metadata about the statistics query and response */
11029
11431
  metadata: {
11030
11432
  /** @description Role context for the statistics query */
11031
- role: 'coordinator' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
11433
+ role: 'coordinator' | 'employer' | 'worker' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
11032
11434
  /**
11033
11435
  * Format: uuid
11034
11436
  * @description UUID version 4 identifier
@@ -12930,7 +13332,7 @@ export interface paths {
12930
13332
  /** @description Metadata about the statistics query and response */
12931
13333
  metadata: {
12932
13334
  /** @description Role context for the statistics query */
12933
- role: 'coordinator' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
13335
+ role: 'coordinator' | 'employer' | 'worker' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
12934
13336
  /**
12935
13337
  * Format: uuid
12936
13338
  * @description UUID version 4 identifier
@@ -12981,7 +13383,7 @@ export interface paths {
12981
13383
  /** @description Metadata about the statistics query and response */
12982
13384
  metadata: {
12983
13385
  /** @description Role context for the statistics query */
12984
- role: 'coordinator' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
13386
+ role: 'coordinator' | 'employer' | 'worker' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
12985
13387
  /**
12986
13388
  * Format: uuid
12987
13389
  * @description UUID version 4 identifier
@@ -13052,7 +13454,7 @@ export interface paths {
13052
13454
  /** @description Metadata about the statistics query and response */
13053
13455
  metadata: {
13054
13456
  /** @description Role context for the statistics query */
13055
- role: 'coordinator' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
13457
+ role: 'coordinator' | 'employer' | 'worker' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
13056
13458
  /**
13057
13459
  * Format: uuid
13058
13460
  * @description UUID version 4 identifier
@@ -13121,7 +13523,7 @@ export interface paths {
13121
13523
  /** @description Metadata about the statistics query and response */
13122
13524
  metadata: {
13123
13525
  /** @description Role context for the statistics query */
13124
- role: 'coordinator' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
13526
+ role: 'coordinator' | 'employer' | 'worker' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
13125
13527
  /**
13126
13528
  * Format: uuid
13127
13529
  * @description UUID version 4 identifier
@@ -16280,7 +16682,7 @@ export interface paths {
16280
16682
  /** @description Metadata about the statistics query and response */
16281
16683
  metadata: {
16282
16684
  /** @description Role context for the statistics query */
16283
- role: 'coordinator' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
16685
+ role: 'coordinator' | 'employer' | 'worker' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
16284
16686
  /**
16285
16687
  * Format: uuid
16286
16688
  * @description UUID version 4 identifier
@@ -16378,7 +16780,7 @@ export interface paths {
16378
16780
  /** @description Metadata about the statistics query and response */
16379
16781
  metadata: {
16380
16782
  /** @description Role context for the statistics query */
16381
- role: 'coordinator' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
16783
+ role: 'coordinator' | 'employer' | 'worker' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
16382
16784
  /**
16383
16785
  * Format: uuid
16384
16786
  * @description UUID version 4 identifier
@@ -16482,7 +16884,7 @@ export interface paths {
16482
16884
  /** @description Metadata about the statistics query and response */
16483
16885
  metadata: {
16484
16886
  /** @description Role context for the statistics query */
16485
- role: 'coordinator' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
16887
+ role: 'coordinator' | 'employer' | 'worker' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
16486
16888
  /**
16487
16889
  * Format: uuid
16488
16890
  * @description UUID version 4 identifier
@@ -16580,7 +16982,7 @@ export interface paths {
16580
16982
  /** @description Metadata about the statistics query and response */
16581
16983
  metadata: {
16582
16984
  /** @description Role context for the statistics query */
16583
- role: 'coordinator' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
16985
+ role: 'coordinator' | 'employer' | 'worker' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
16584
16986
  /**
16585
16987
  * Format: uuid
16586
16988
  * @description UUID version 4 identifier
@@ -27074,7 +27476,7 @@ export interface paths {
27074
27476
  /** @description Metadata about the statistics query and response */
27075
27477
  metadata: {
27076
27478
  /** @description Role context for the statistics query */
27077
- role: 'coordinator' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
27479
+ role: 'coordinator' | 'employer' | 'worker' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
27078
27480
  /**
27079
27481
  * Format: uuid
27080
27482
  * @description UUID version 4 identifier
@@ -27194,7 +27596,7 @@ export interface paths {
27194
27596
  /** @description Metadata about the statistics query and response */
27195
27597
  metadata: {
27196
27598
  /** @description Role context for the statistics query */
27197
- role: 'coordinator' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
27599
+ role: 'coordinator' | 'employer' | 'worker' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
27198
27600
  /**
27199
27601
  * Format: uuid
27200
27602
  * @description UUID version 4 identifier
@@ -27314,7 +27716,7 @@ export interface paths {
27314
27716
  /** @description Metadata about the statistics query and response */
27315
27717
  metadata: {
27316
27718
  /** @description Role context for the statistics query */
27317
- role: 'coordinator' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
27719
+ role: 'coordinator' | 'employer' | 'worker' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
27318
27720
  /**
27319
27721
  * Format: uuid
27320
27722
  * @description UUID version 4 identifier
@@ -27434,7 +27836,7 @@ export interface paths {
27434
27836
  /** @description Metadata about the statistics query and response */
27435
27837
  metadata: {
27436
27838
  /** @description Role context for the statistics query */
27437
- role: 'coordinator' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
27839
+ role: 'coordinator' | 'employer' | 'worker' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
27438
27840
  /**
27439
27841
  * Format: uuid
27440
27842
  * @description UUID version 4 identifier
@@ -28156,7 +28558,494 @@ export interface paths {
28156
28558
  patch?: never;
28157
28559
  trace?: never;
28158
28560
  };
28159
- '/api/contract-cases/{id}/take': {
28561
+ '/api/contract-cases/{id}/take': {
28562
+ parameters: {
28563
+ query?: never;
28564
+ header?: never;
28565
+ path?: never;
28566
+ cookie?: never;
28567
+ };
28568
+ get?: never;
28569
+ put?: never;
28570
+ /**
28571
+ * Take over case handling
28572
+ * @description Take over a case from another case manager without formal assignment. Use when original manager is unavailable and case must be completed.
28573
+ */
28574
+ post: {
28575
+ parameters: {
28576
+ query?: never;
28577
+ header?: never;
28578
+ path: {
28579
+ id: string;
28580
+ };
28581
+ cookie?: never;
28582
+ };
28583
+ requestBody?: {
28584
+ content: {
28585
+ 'application/json': {
28586
+ message?: string;
28587
+ };
28588
+ };
28589
+ };
28590
+ responses: {
28591
+ /** @description Default Response */
28592
+ 400: {
28593
+ headers: {
28594
+ [name: string]: unknown;
28595
+ };
28596
+ content: {
28597
+ 'application/json': {
28598
+ error: string;
28599
+ message?: string;
28600
+ code?: string;
28601
+ details?: unknown;
28602
+ /** Format: date-time */
28603
+ timestamp?: string;
28604
+ };
28605
+ };
28606
+ };
28607
+ /** @description Default Response */
28608
+ 401: {
28609
+ headers: {
28610
+ [name: string]: unknown;
28611
+ };
28612
+ content: {
28613
+ 'application/json': {
28614
+ error: string;
28615
+ message?: string;
28616
+ code?: string;
28617
+ details?: unknown;
28618
+ /** Format: date-time */
28619
+ timestamp?: string;
28620
+ };
28621
+ };
28622
+ };
28623
+ /** @description Default Response */
28624
+ 403: {
28625
+ headers: {
28626
+ [name: string]: unknown;
28627
+ };
28628
+ content: {
28629
+ 'application/json': {
28630
+ error: string;
28631
+ message?: string;
28632
+ code?: string;
28633
+ details?: unknown;
28634
+ /** Format: date-time */
28635
+ timestamp?: string;
28636
+ };
28637
+ };
28638
+ };
28639
+ /** @description Default Response */
28640
+ 404: {
28641
+ headers: {
28642
+ [name: string]: unknown;
28643
+ };
28644
+ content: {
28645
+ 'application/json': {
28646
+ error: string;
28647
+ message?: string;
28648
+ code?: string;
28649
+ details?: unknown;
28650
+ /** Format: date-time */
28651
+ timestamp?: string;
28652
+ };
28653
+ };
28654
+ };
28655
+ /** @description Default Response */
28656
+ 422: {
28657
+ headers: {
28658
+ [name: string]: unknown;
28659
+ };
28660
+ content: {
28661
+ 'application/json': {
28662
+ error: string;
28663
+ message: string;
28664
+ errors: {
28665
+ field: string;
28666
+ message: string;
28667
+ code?: string;
28668
+ value?: unknown;
28669
+ }[];
28670
+ /** Format: date-time */
28671
+ timestamp?: string;
28672
+ };
28673
+ };
28674
+ };
28675
+ /** @description Default Response */
28676
+ 500: {
28677
+ headers: {
28678
+ [name: string]: unknown;
28679
+ };
28680
+ content: {
28681
+ 'application/json': {
28682
+ error: string;
28683
+ message?: string;
28684
+ code?: string;
28685
+ details?: unknown;
28686
+ /** Format: date-time */
28687
+ timestamp?: string;
28688
+ };
28689
+ };
28690
+ };
28691
+ };
28692
+ };
28693
+ delete?: never;
28694
+ options?: never;
28695
+ head?: never;
28696
+ patch?: never;
28697
+ trace?: never;
28698
+ };
28699
+ '/api/contract-cases/{id}/requirements': {
28700
+ parameters: {
28701
+ query?: never;
28702
+ header?: never;
28703
+ path?: never;
28704
+ cookie?: never;
28705
+ };
28706
+ /**
28707
+ * List case requirements
28708
+ * @description List all requirements (both template-based and custom) for a contract case.
28709
+ */
28710
+ get: {
28711
+ parameters: {
28712
+ query?: {
28713
+ type?: 'template' | 'custom' | 'all';
28714
+ status?: 'pending' | 'in_progress' | 'completed' | 'not_applicable' | 'failed';
28715
+ mandatory?: boolean;
28716
+ };
28717
+ header?: never;
28718
+ path: {
28719
+ id: string;
28720
+ };
28721
+ cookie?: never;
28722
+ };
28723
+ requestBody?: never;
28724
+ responses: {
28725
+ /** @description Default Response */
28726
+ 200: {
28727
+ headers: {
28728
+ [name: string]: unknown;
28729
+ };
28730
+ content: {
28731
+ 'application/json': {
28732
+ data: {
28733
+ /** Format: uuid */
28734
+ id: string;
28735
+ /** Format: uuid */
28736
+ contract_case_id: string;
28737
+ /** Format: uuid */
28738
+ case_id: string;
28739
+ template_id: string | null;
28740
+ title: string;
28741
+ description: string | null;
28742
+ is_mandatory: boolean;
28743
+ created_by: string | null;
28744
+ completed_at: string | null;
28745
+ completed_by: string | null;
28746
+ completed_by_name: string | null;
28747
+ completed_by_email: string | null;
28748
+ notes: string | null;
28749
+ sort_order: number;
28750
+ /** Format: date-time */
28751
+ created_at: string;
28752
+ /** Format: date-time */
28753
+ updated_at: string;
28754
+ is_custom: boolean;
28755
+ template_title: string | null;
28756
+ template_description: string | null;
28757
+ metadata?: {
28758
+ [key: string]: unknown;
28759
+ };
28760
+ }[];
28761
+ };
28762
+ };
28763
+ };
28764
+ /** @description Default Response */
28765
+ 400: {
28766
+ headers: {
28767
+ [name: string]: unknown;
28768
+ };
28769
+ content: {
28770
+ 'application/json': {
28771
+ error: string;
28772
+ message?: string;
28773
+ code?: string;
28774
+ details?: unknown;
28775
+ /** Format: date-time */
28776
+ timestamp?: string;
28777
+ };
28778
+ };
28779
+ };
28780
+ /** @description Default Response */
28781
+ 401: {
28782
+ headers: {
28783
+ [name: string]: unknown;
28784
+ };
28785
+ content: {
28786
+ 'application/json': {
28787
+ error: string;
28788
+ message?: string;
28789
+ code?: string;
28790
+ details?: unknown;
28791
+ /** Format: date-time */
28792
+ timestamp?: string;
28793
+ };
28794
+ };
28795
+ };
28796
+ /** @description Default Response */
28797
+ 403: {
28798
+ headers: {
28799
+ [name: string]: unknown;
28800
+ };
28801
+ content: {
28802
+ 'application/json': {
28803
+ error: string;
28804
+ message?: string;
28805
+ code?: string;
28806
+ details?: unknown;
28807
+ /** Format: date-time */
28808
+ timestamp?: string;
28809
+ };
28810
+ };
28811
+ };
28812
+ /** @description Default Response */
28813
+ 404: {
28814
+ headers: {
28815
+ [name: string]: unknown;
28816
+ };
28817
+ content: {
28818
+ 'application/json': {
28819
+ error: string;
28820
+ message?: string;
28821
+ code?: string;
28822
+ details?: unknown;
28823
+ /** Format: date-time */
28824
+ timestamp?: string;
28825
+ };
28826
+ };
28827
+ };
28828
+ /** @description Default Response */
28829
+ 422: {
28830
+ headers: {
28831
+ [name: string]: unknown;
28832
+ };
28833
+ content: {
28834
+ 'application/json': {
28835
+ error: string;
28836
+ message: string;
28837
+ errors: {
28838
+ field: string;
28839
+ message: string;
28840
+ code?: string;
28841
+ value?: unknown;
28842
+ }[];
28843
+ /** Format: date-time */
28844
+ timestamp?: string;
28845
+ };
28846
+ };
28847
+ };
28848
+ /** @description Default Response */
28849
+ 500: {
28850
+ headers: {
28851
+ [name: string]: unknown;
28852
+ };
28853
+ content: {
28854
+ 'application/json': {
28855
+ error: string;
28856
+ message?: string;
28857
+ code?: string;
28858
+ details?: unknown;
28859
+ /** Format: date-time */
28860
+ timestamp?: string;
28861
+ };
28862
+ };
28863
+ };
28864
+ };
28865
+ };
28866
+ put?: never;
28867
+ /**
28868
+ * Create custom requirement
28869
+ * @description Add a custom requirement/todo to the case. Only assigned case manager can add.
28870
+ */
28871
+ post: {
28872
+ parameters: {
28873
+ query?: never;
28874
+ header?: never;
28875
+ path: {
28876
+ id: string;
28877
+ };
28878
+ cookie?: never;
28879
+ };
28880
+ /** @description Request body for creating a case requirement */
28881
+ requestBody: {
28882
+ content: {
28883
+ 'application/json': {
28884
+ title: string;
28885
+ description?: string;
28886
+ is_mandatory: boolean;
28887
+ category?: string;
28888
+ /** Format: uuid */
28889
+ template_id?: string;
28890
+ metadata?: {
28891
+ [key: string]: unknown;
28892
+ };
28893
+ };
28894
+ };
28895
+ };
28896
+ responses: {
28897
+ /** @description Default Response */
28898
+ 201: {
28899
+ headers: {
28900
+ [name: string]: unknown;
28901
+ };
28902
+ content: {
28903
+ 'application/json': {
28904
+ /**
28905
+ * Requirement Entity
28906
+ * @description Complete requirement entity schema
28907
+ */
28908
+ data?: {
28909
+ /** Format: uuid */
28910
+ id: string;
28911
+ } & {
28912
+ /** Format: uuid */
28913
+ case_id: string;
28914
+ name: string;
28915
+ description?: string;
28916
+ requirement_type: 'document' | 'background_check' | 'training' | 'certification' | 'approval' | 'signature';
28917
+ priority: 'optional' | 'recommended' | 'required' | 'critical';
28918
+ /** @description Indicates if this is a custom requirement (true) or template-based (false) */
28919
+ is_custom: boolean;
28920
+ template_id?: string | null;
28921
+ } & {
28922
+ status: 'pending' | 'submitted' | 'under_review' | 'approved' | 'rejected' | 'expired';
28923
+ submitted_at?: string | null;
28924
+ approved_at?: string | null;
28925
+ rejected_at?: string | null;
28926
+ rejection_reason?: string;
28927
+ } & {
28928
+ valid_from?: string | null;
28929
+ valid_until?: string | null;
28930
+ is_expired?: boolean;
28931
+ } & {
28932
+ /** Format: date-time */
28933
+ created_at: string;
28934
+ /** Format: date-time */
28935
+ updated_at: string;
28936
+ };
28937
+ };
28938
+ };
28939
+ };
28940
+ /** @description Default Response */
28941
+ 400: {
28942
+ headers: {
28943
+ [name: string]: unknown;
28944
+ };
28945
+ content: {
28946
+ 'application/json': {
28947
+ error: string;
28948
+ message?: string;
28949
+ code?: string;
28950
+ details?: unknown;
28951
+ /** Format: date-time */
28952
+ timestamp?: string;
28953
+ };
28954
+ };
28955
+ };
28956
+ /** @description Default Response */
28957
+ 401: {
28958
+ headers: {
28959
+ [name: string]: unknown;
28960
+ };
28961
+ content: {
28962
+ 'application/json': {
28963
+ error: string;
28964
+ message?: string;
28965
+ code?: string;
28966
+ details?: unknown;
28967
+ /** Format: date-time */
28968
+ timestamp?: string;
28969
+ };
28970
+ };
28971
+ };
28972
+ /** @description Default Response */
28973
+ 403: {
28974
+ headers: {
28975
+ [name: string]: unknown;
28976
+ };
28977
+ content: {
28978
+ 'application/json': {
28979
+ error: string;
28980
+ message?: string;
28981
+ code?: string;
28982
+ details?: unknown;
28983
+ /** Format: date-time */
28984
+ timestamp?: string;
28985
+ };
28986
+ };
28987
+ };
28988
+ /** @description Default Response */
28989
+ 404: {
28990
+ headers: {
28991
+ [name: string]: unknown;
28992
+ };
28993
+ content: {
28994
+ 'application/json': {
28995
+ error: string;
28996
+ message?: string;
28997
+ code?: string;
28998
+ details?: unknown;
28999
+ /** Format: date-time */
29000
+ timestamp?: string;
29001
+ };
29002
+ };
29003
+ };
29004
+ /** @description Default Response */
29005
+ 422: {
29006
+ headers: {
29007
+ [name: string]: unknown;
29008
+ };
29009
+ content: {
29010
+ 'application/json': {
29011
+ error: string;
29012
+ message: string;
29013
+ errors: {
29014
+ field: string;
29015
+ message: string;
29016
+ code?: string;
29017
+ value?: unknown;
29018
+ }[];
29019
+ /** Format: date-time */
29020
+ timestamp?: string;
29021
+ };
29022
+ };
29023
+ };
29024
+ /** @description Default Response */
29025
+ 500: {
29026
+ headers: {
29027
+ [name: string]: unknown;
29028
+ };
29029
+ content: {
29030
+ 'application/json': {
29031
+ error: string;
29032
+ message?: string;
29033
+ code?: string;
29034
+ details?: unknown;
29035
+ /** Format: date-time */
29036
+ timestamp?: string;
29037
+ };
29038
+ };
29039
+ };
29040
+ };
29041
+ };
29042
+ delete?: never;
29043
+ options?: never;
29044
+ head?: never;
29045
+ patch?: never;
29046
+ trace?: never;
29047
+ };
29048
+ '/api/contract-cases/{id}/requirements/{requirementId}': {
28160
29049
  parameters: {
28161
29050
  query?: never;
28162
29051
  header?: never;
@@ -28164,161 +29053,34 @@ export interface paths {
28164
29053
  cookie?: never;
28165
29054
  };
28166
29055
  get?: never;
28167
- put?: never;
28168
29056
  /**
28169
- * Take over case handling
28170
- * @description Take over a case from another case manager without formal assignment. Use when original manager is unavailable and case must be completed.
29057
+ * Update requirement
29058
+ * @description Update requirement status, notes, or metadata. Only assigned case manager can update.
28171
29059
  */
28172
- post: {
29060
+ put: {
28173
29061
  parameters: {
28174
29062
  query?: never;
28175
29063
  header?: never;
28176
29064
  path: {
29065
+ /** @description Contract case ID */
28177
29066
  id: string;
29067
+ /** @description Requirement ID */
29068
+ requirementId: string;
28178
29069
  };
28179
29070
  cookie?: never;
28180
29071
  };
29072
+ /** @description Request body for updating a case requirement */
28181
29073
  requestBody?: {
28182
29074
  content: {
28183
29075
  'application/json': {
28184
- message?: string;
28185
- };
28186
- };
28187
- };
28188
- responses: {
28189
- /** @description Default Response */
28190
- 400: {
28191
- headers: {
28192
- [name: string]: unknown;
28193
- };
28194
- content: {
28195
- 'application/json': {
28196
- error: string;
28197
- message?: string;
28198
- code?: string;
28199
- details?: unknown;
28200
- /** Format: date-time */
28201
- timestamp?: string;
28202
- };
28203
- };
28204
- };
28205
- /** @description Default Response */
28206
- 401: {
28207
- headers: {
28208
- [name: string]: unknown;
28209
- };
28210
- content: {
28211
- 'application/json': {
28212
- error: string;
28213
- message?: string;
28214
- code?: string;
28215
- details?: unknown;
28216
- /** Format: date-time */
28217
- timestamp?: string;
28218
- };
28219
- };
28220
- };
28221
- /** @description Default Response */
28222
- 403: {
28223
- headers: {
28224
- [name: string]: unknown;
28225
- };
28226
- content: {
28227
- 'application/json': {
28228
- error: string;
28229
- message?: string;
28230
- code?: string;
28231
- details?: unknown;
28232
- /** Format: date-time */
28233
- timestamp?: string;
28234
- };
28235
- };
28236
- };
28237
- /** @description Default Response */
28238
- 404: {
28239
- headers: {
28240
- [name: string]: unknown;
28241
- };
28242
- content: {
28243
- 'application/json': {
28244
- error: string;
28245
- message?: string;
28246
- code?: string;
28247
- details?: unknown;
28248
- /** Format: date-time */
28249
- timestamp?: string;
28250
- };
28251
- };
28252
- };
28253
- /** @description Default Response */
28254
- 422: {
28255
- headers: {
28256
- [name: string]: unknown;
28257
- };
28258
- content: {
28259
- 'application/json': {
28260
- error: string;
28261
- message: string;
28262
- errors: {
28263
- field: string;
28264
- message: string;
28265
- code?: string;
28266
- value?: unknown;
28267
- }[];
28268
- /** Format: date-time */
28269
- timestamp?: string;
28270
- };
28271
- };
28272
- };
28273
- /** @description Default Response */
28274
- 500: {
28275
- headers: {
28276
- [name: string]: unknown;
28277
- };
28278
- content: {
28279
- 'application/json': {
28280
- error: string;
28281
- message?: string;
28282
- code?: string;
28283
- details?: unknown;
28284
- /** Format: date-time */
28285
- timestamp?: string;
29076
+ notes?: string;
29077
+ metadata?: {
29078
+ [key: string]: unknown;
28286
29079
  };
29080
+ completed?: boolean;
28287
29081
  };
28288
29082
  };
28289
29083
  };
28290
- };
28291
- delete?: never;
28292
- options?: never;
28293
- head?: never;
28294
- patch?: never;
28295
- trace?: never;
28296
- };
28297
- '/api/contract-cases/{id}/requirements': {
28298
- parameters: {
28299
- query?: never;
28300
- header?: never;
28301
- path?: never;
28302
- cookie?: never;
28303
- };
28304
- /**
28305
- * List case requirements
28306
- * @description List all requirements (both template-based and custom) for a contract case.
28307
- */
28308
- get: {
28309
- parameters: {
28310
- query?: {
28311
- type?: 'template' | 'custom' | 'all';
28312
- status?: 'pending' | 'in_progress' | 'completed' | 'not_applicable' | 'failed';
28313
- mandatory?: boolean;
28314
- };
28315
- header?: never;
28316
- path: {
28317
- id: string;
28318
- };
28319
- cookie?: never;
28320
- };
28321
- requestBody?: never;
28322
29084
  responses: {
28323
29085
  /** @description Default Response */
28324
29086
  200: {
@@ -28327,6 +29089,10 @@ export interface paths {
28327
29089
  };
28328
29090
  content: {
28329
29091
  'application/json': {
29092
+ /**
29093
+ * Requirement View
29094
+ * @description Requirement data from contract_case_requirement_view with user and template info
29095
+ */
28330
29096
  data: {
28331
29097
  /** Format: uuid */
28332
29098
  id: string;
@@ -28355,7 +29121,7 @@ export interface paths {
28355
29121
  metadata?: {
28356
29122
  [key: string]: unknown;
28357
29123
  };
28358
- }[];
29124
+ };
28359
29125
  };
28360
29126
  };
28361
29127
  };
@@ -28461,79 +29227,31 @@ export interface paths {
28461
29227
  };
28462
29228
  };
28463
29229
  };
28464
- put?: never;
29230
+ post?: never;
28465
29231
  /**
28466
- * Create custom requirement
28467
- * @description Add a custom requirement/todo to the case. Only assigned case manager can add.
29232
+ * Delete custom requirement
29233
+ * @description Delete a custom requirement. Only creator or assigned case manager can delete.
28468
29234
  */
28469
- post: {
29235
+ delete: {
28470
29236
  parameters: {
28471
29237
  query?: never;
28472
29238
  header?: never;
28473
29239
  path: {
29240
+ /** @description Contract case ID */
28474
29241
  id: string;
29242
+ /** @description Requirement ID */
29243
+ requirementId: string;
28475
29244
  };
28476
29245
  cookie?: never;
28477
29246
  };
28478
- /** @description Request body for creating a case requirement */
28479
- requestBody: {
28480
- content: {
28481
- 'application/json': {
28482
- title: string;
28483
- description?: string;
28484
- is_mandatory: boolean;
28485
- category?: string;
28486
- /** Format: uuid */
28487
- template_id?: string;
28488
- metadata?: {
28489
- [key: string]: unknown;
28490
- };
28491
- };
28492
- };
28493
- };
29247
+ requestBody?: never;
28494
29248
  responses: {
28495
29249
  /** @description Default Response */
28496
- 201: {
29250
+ 204: {
28497
29251
  headers: {
28498
29252
  [name: string]: unknown;
28499
29253
  };
28500
- content: {
28501
- 'application/json': {
28502
- /**
28503
- * Requirement Entity
28504
- * @description Complete requirement entity schema
28505
- */
28506
- data?: {
28507
- /** Format: uuid */
28508
- id: string;
28509
- } & {
28510
- /** Format: uuid */
28511
- case_id: string;
28512
- name: string;
28513
- description?: string;
28514
- requirement_type: 'document' | 'background_check' | 'training' | 'certification' | 'approval' | 'signature';
28515
- priority: 'optional' | 'recommended' | 'required' | 'critical';
28516
- /** @description Indicates if this is a custom requirement (true) or template-based (false) */
28517
- is_custom: boolean;
28518
- template_id?: string | null;
28519
- } & {
28520
- status: 'pending' | 'submitted' | 'under_review' | 'approved' | 'rejected' | 'expired';
28521
- submitted_at?: string | null;
28522
- approved_at?: string | null;
28523
- rejected_at?: string | null;
28524
- rejection_reason?: string;
28525
- } & {
28526
- valid_from?: string | null;
28527
- valid_until?: string | null;
28528
- is_expired?: boolean;
28529
- } & {
28530
- /** Format: date-time */
28531
- created_at: string;
28532
- /** Format: date-time */
28533
- updated_at: string;
28534
- };
28535
- };
28536
- };
29254
+ content?: never;
28537
29255
  };
28538
29256
  /** @description Default Response */
28539
29257
  400: {
@@ -28637,13 +29355,12 @@ export interface paths {
28637
29355
  };
28638
29356
  };
28639
29357
  };
28640
- delete?: never;
28641
29358
  options?: never;
28642
29359
  head?: never;
28643
29360
  patch?: never;
28644
29361
  trace?: never;
28645
29362
  };
28646
- '/api/contract-cases/{id}/requirements/{requirementId}': {
29363
+ '/api/contract-cases/{id}/requirements/{requirementId}/toggle': {
28647
29364
  parameters: {
28648
29365
  query?: never;
28649
29366
  header?: never;
@@ -28651,11 +29368,16 @@ export interface paths {
28651
29368
  cookie?: never;
28652
29369
  };
28653
29370
  get?: never;
29371
+ put?: never;
29372
+ post?: never;
29373
+ delete?: never;
29374
+ options?: never;
29375
+ head?: never;
28654
29376
  /**
28655
- * Update requirement
28656
- * @description Update requirement status, notes, or metadata. Only assigned case manager can update.
29377
+ * Toggle requirement completion
29378
+ * @description Toggle completion status of a requirement (checkbox UI). Only assigned case manager can toggle.
28657
29379
  */
28658
- put: {
29380
+ patch: {
28659
29381
  parameters: {
28660
29382
  query?: never;
28661
29383
  header?: never;
@@ -28667,16 +29389,9 @@ export interface paths {
28667
29389
  };
28668
29390
  cookie?: never;
28669
29391
  };
28670
- /** @description Request body for updating a case requirement */
28671
29392
  requestBody?: {
28672
29393
  content: {
28673
- 'application/json': {
28674
- notes?: string;
28675
- metadata?: {
28676
- [key: string]: unknown;
28677
- };
28678
- completed?: boolean;
28679
- };
29394
+ 'application/json': Record<string, never>;
28680
29395
  };
28681
29396
  };
28682
29397
  responses: {
@@ -28825,32 +29540,43 @@ export interface paths {
28825
29540
  };
28826
29541
  };
28827
29542
  };
29543
+ trace?: never;
29544
+ };
29545
+ '/api/contract-cases/{id}/internal-notes': {
29546
+ parameters: {
29547
+ query?: never;
29548
+ header?: never;
29549
+ path?: never;
29550
+ cookie?: never;
29551
+ };
29552
+ get?: never;
29553
+ put?: never;
28828
29554
  post?: never;
29555
+ delete?: never;
29556
+ options?: never;
29557
+ head?: never;
28829
29558
  /**
28830
- * Delete custom requirement
28831
- * @description Delete a custom requirement. Only creator or assigned case manager can delete.
29559
+ * Update internal notes
29560
+ * @description Update internal notes for the case (direct update, not append). Only assigned case manager can update.
28832
29561
  */
28833
- delete: {
29562
+ patch: {
28834
29563
  parameters: {
28835
29564
  query?: never;
28836
29565
  header?: never;
28837
29566
  path: {
28838
- /** @description Contract case ID */
28839
29567
  id: string;
28840
- /** @description Requirement ID */
28841
- requirementId: string;
28842
29568
  };
28843
29569
  cookie?: never;
28844
29570
  };
28845
- requestBody?: never;
28846
- responses: {
28847
- /** @description Default Response */
28848
- 204: {
28849
- headers: {
28850
- [name: string]: unknown;
29571
+ requestBody: {
29572
+ content: {
29573
+ 'application/json': {
29574
+ /** @description Internal notes content */
29575
+ internal_notes: string;
28851
29576
  };
28852
- content?: never;
28853
29577
  };
29578
+ };
29579
+ responses: {
28854
29580
  /** @description Default Response */
28855
29581
  400: {
28856
29582
  headers: {
@@ -28953,12 +29679,9 @@ export interface paths {
28953
29679
  };
28954
29680
  };
28955
29681
  };
28956
- options?: never;
28957
- head?: never;
28958
- patch?: never;
28959
29682
  trace?: never;
28960
29683
  };
28961
- '/api/contract-cases/{id}/requirements/{requirementId}/toggle': {
29684
+ '/api/contract-cases/{id}/draft-salary': {
28962
29685
  parameters: {
28963
29686
  query?: never;
28964
29687
  header?: never;
@@ -28972,70 +29695,27 @@ export interface paths {
28972
29695
  options?: never;
28973
29696
  head?: never;
28974
29697
  /**
28975
- * Toggle requirement completion
28976
- * @description Toggle completion status of a requirement (checkbox UI). Only assigned case manager can toggle.
29698
+ * Update draft salary
29699
+ * @description Update draft salary type for the case during processing. Draft salary is not visible to worker/employer until case is approved. Only case managers can update.
28977
29700
  */
28978
29701
  patch: {
28979
29702
  parameters: {
28980
29703
  query?: never;
28981
29704
  header?: never;
28982
29705
  path: {
28983
- /** @description Contract case ID */
28984
29706
  id: string;
28985
- /** @description Requirement ID */
28986
- requirementId: string;
28987
29707
  };
28988
29708
  cookie?: never;
28989
29709
  };
28990
- requestBody?: {
29710
+ requestBody: {
28991
29711
  content: {
28992
- 'application/json': Record<string, never>;
29712
+ 'application/json': {
29713
+ /** @description Draft salary type ID (set to null to clear) */
29714
+ draft_salary_type_id: string | null;
29715
+ };
28993
29716
  };
28994
29717
  };
28995
29718
  responses: {
28996
- /** @description Default Response */
28997
- 200: {
28998
- headers: {
28999
- [name: string]: unknown;
29000
- };
29001
- content: {
29002
- 'application/json': {
29003
- /**
29004
- * Requirement View
29005
- * @description Requirement data from contract_case_requirement_view with user and template info
29006
- */
29007
- data: {
29008
- /** Format: uuid */
29009
- id: string;
29010
- /** Format: uuid */
29011
- contract_case_id: string;
29012
- /** Format: uuid */
29013
- case_id: string;
29014
- template_id: string | null;
29015
- title: string;
29016
- description: string | null;
29017
- is_mandatory: boolean;
29018
- created_by: string | null;
29019
- completed_at: string | null;
29020
- completed_by: string | null;
29021
- completed_by_name: string | null;
29022
- completed_by_email: string | null;
29023
- notes: string | null;
29024
- sort_order: number;
29025
- /** Format: date-time */
29026
- created_at: string;
29027
- /** Format: date-time */
29028
- updated_at: string;
29029
- is_custom: boolean;
29030
- template_title: string | null;
29031
- template_description: string | null;
29032
- metadata?: {
29033
- [key: string]: unknown;
29034
- };
29035
- };
29036
- };
29037
- };
29038
- };
29039
29719
  /** @description Default Response */
29040
29720
  400: {
29041
29721
  headers: {
@@ -29140,7 +29820,7 @@ export interface paths {
29140
29820
  };
29141
29821
  trace?: never;
29142
29822
  };
29143
- '/api/contract-cases/{id}/internal-notes': {
29823
+ '/api/contract-cases/{id}/approve': {
29144
29824
  parameters: {
29145
29825
  query?: never;
29146
29826
  header?: never;
@@ -29149,15 +29829,11 @@ export interface paths {
29149
29829
  };
29150
29830
  get?: never;
29151
29831
  put?: never;
29152
- post?: never;
29153
- delete?: never;
29154
- options?: never;
29155
- head?: never;
29156
29832
  /**
29157
- * Update internal notes
29158
- * @description Update internal notes for the case (direct update, not append). Only assigned case manager can update.
29833
+ * Approve contract case
29834
+ * @description Approve the contract case and activate the contract. Only case managers can approve.
29159
29835
  */
29160
- patch: {
29836
+ post: {
29161
29837
  parameters: {
29162
29838
  query?: never;
29163
29839
  header?: never;
@@ -29166,11 +29842,10 @@ export interface paths {
29166
29842
  };
29167
29843
  cookie?: never;
29168
29844
  };
29169
- requestBody: {
29845
+ requestBody?: {
29170
29846
  content: {
29171
29847
  'application/json': {
29172
- /** @description Internal notes content */
29173
- internal_notes: string;
29848
+ comments?: string;
29174
29849
  };
29175
29850
  };
29176
29851
  };
@@ -29277,9 +29952,13 @@ export interface paths {
29277
29952
  };
29278
29953
  };
29279
29954
  };
29955
+ delete?: never;
29956
+ options?: never;
29957
+ head?: never;
29958
+ patch?: never;
29280
29959
  trace?: never;
29281
29960
  };
29282
- '/api/contract-cases/{id}/draft-salary': {
29961
+ '/api/contract-cases/{id}/suspend': {
29283
29962
  parameters: {
29284
29963
  query?: never;
29285
29964
  header?: never;
@@ -29288,15 +29967,11 @@ export interface paths {
29288
29967
  };
29289
29968
  get?: never;
29290
29969
  put?: never;
29291
- post?: never;
29292
- delete?: never;
29293
- options?: never;
29294
- head?: never;
29295
29970
  /**
29296
- * Update draft salary
29297
- * @description Update draft salary type for the case during processing. Draft salary is not visible to worker/employer until case is approved. Only case managers can update.
29971
+ * Suspend case review
29972
+ * @description Suspend case review while waiting for additional information. Only case managers can suspend cases.
29298
29973
  */
29299
- patch: {
29974
+ post: {
29300
29975
  parameters: {
29301
29976
  query?: never;
29302
29977
  header?: never;
@@ -29308,8 +29983,10 @@ export interface paths {
29308
29983
  requestBody: {
29309
29984
  content: {
29310
29985
  'application/json': {
29311
- /** @description Draft salary type ID (set to null to clear) */
29312
- draft_salary_type_id: string | null;
29986
+ message: string;
29987
+ required_documents?: string[];
29988
+ /** Format: date-time */
29989
+ deadline?: string;
29313
29990
  };
29314
29991
  };
29315
29992
  };
@@ -29416,9 +30093,13 @@ export interface paths {
29416
30093
  };
29417
30094
  };
29418
30095
  };
30096
+ delete?: never;
30097
+ options?: never;
30098
+ head?: never;
30099
+ patch?: never;
29419
30100
  trace?: never;
29420
30101
  };
29421
- '/api/contract-cases/{id}/approve': {
30102
+ '/api/contract-cases/{id}/resume': {
29422
30103
  parameters: {
29423
30104
  query?: never;
29424
30105
  header?: never;
@@ -29428,8 +30109,8 @@ export interface paths {
29428
30109
  get?: never;
29429
30110
  put?: never;
29430
30111
  /**
29431
- * Approve contract case
29432
- * @description Approve the contract case and activate the contract. Only case managers can approve.
30112
+ * Resume case review
30113
+ * @description Resume case review after receiving requested information. Only case managers can resume cases.
29433
30114
  */
29434
30115
  post: {
29435
30116
  parameters: {
@@ -29443,7 +30124,8 @@ export interface paths {
29443
30124
  requestBody?: {
29444
30125
  content: {
29445
30126
  'application/json': {
29446
- comments?: string;
30127
+ notes?: string;
30128
+ documents_received?: string[];
29447
30129
  };
29448
30130
  };
29449
30131
  };
@@ -29556,7 +30238,7 @@ export interface paths {
29556
30238
  patch?: never;
29557
30239
  trace?: never;
29558
30240
  };
29559
- '/api/contract-cases/{id}/suspend': {
30241
+ '/api/contract-cases/{id}/reject': {
29560
30242
  parameters: {
29561
30243
  query?: never;
29562
30244
  header?: never;
@@ -29566,8 +30248,8 @@ export interface paths {
29566
30248
  get?: never;
29567
30249
  put?: never;
29568
30250
  /**
29569
- * Suspend case review
29570
- * @description Suspend case review while waiting for additional information. Only case managers can suspend cases.
30251
+ * Reject contract case
30252
+ * @description Reject the contract case. Only case managers can reject.
29571
30253
  */
29572
30254
  post: {
29573
30255
  parameters: {
@@ -29578,13 +30260,12 @@ export interface paths {
29578
30260
  };
29579
30261
  cookie?: never;
29580
30262
  };
30263
+ /** @description Request body for rejecting a case */
29581
30264
  requestBody: {
29582
30265
  content: {
29583
30266
  'application/json': {
29584
- message: string;
29585
- required_documents?: string[];
29586
- /** Format: date-time */
29587
- deadline?: string;
30267
+ reason: string;
30268
+ notes?: string;
29588
30269
  };
29589
30270
  };
29590
30271
  };
@@ -29697,7 +30378,7 @@ export interface paths {
29697
30378
  patch?: never;
29698
30379
  trace?: never;
29699
30380
  };
29700
- '/api/contract-cases/{id}/resume': {
30381
+ '/api/contract-cases/{id}/archive': {
29701
30382
  parameters: {
29702
30383
  query?: never;
29703
30384
  header?: never;
@@ -29707,8 +30388,8 @@ export interface paths {
29707
30388
  get?: never;
29708
30389
  put?: never;
29709
30390
  /**
29710
- * Resume case review
29711
- * @description Resume case review after receiving requested information. Only case managers can resume cases.
30391
+ * Archive contract case
30392
+ * @description Archive a completed contract case (approved or rejected). Only case managers can archive.
29712
30393
  */
29713
30394
  post: {
29714
30395
  parameters: {
@@ -29722,8 +30403,7 @@ export interface paths {
29722
30403
  requestBody?: {
29723
30404
  content: {
29724
30405
  'application/json': {
29725
- notes?: string;
29726
- documents_received?: string[];
30406
+ reason?: string;
29727
30407
  };
29728
30408
  };
29729
30409
  };
@@ -29836,7 +30516,7 @@ export interface paths {
29836
30516
  patch?: never;
29837
30517
  trace?: never;
29838
30518
  };
29839
- '/api/contract-cases/{id}/reject': {
30519
+ '/api/contract-cases/{id}/unarchive': {
29840
30520
  parameters: {
29841
30521
  query?: never;
29842
30522
  header?: never;
@@ -29846,8 +30526,8 @@ export interface paths {
29846
30526
  get?: never;
29847
30527
  put?: never;
29848
30528
  /**
29849
- * Reject contract case
29850
- * @description Reject the contract case. Only case managers can reject.
30529
+ * Unarchive contract case
30530
+ * @description Unarchive a contract case, moving it back to active cases. Only case managers can unarchive.
29851
30531
  */
29852
30532
  post: {
29853
30533
  parameters: {
@@ -29858,15 +30538,7 @@ export interface paths {
29858
30538
  };
29859
30539
  cookie?: never;
29860
30540
  };
29861
- /** @description Request body for rejecting a case */
29862
- requestBody: {
29863
- content: {
29864
- 'application/json': {
29865
- reason: string;
29866
- notes?: string;
29867
- };
29868
- };
29869
- };
30541
+ requestBody?: never;
29870
30542
  responses: {
29871
30543
  /** @description Default Response */
29872
30544
  400: {
@@ -29976,20 +30648,18 @@ export interface paths {
29976
30648
  patch?: never;
29977
30649
  trace?: never;
29978
30650
  };
29979
- '/api/contract-cases/{id}/archive': {
30651
+ '/api/contract-cases/{id}/contract': {
29980
30652
  parameters: {
29981
30653
  query?: never;
29982
30654
  header?: never;
29983
30655
  path?: never;
29984
30656
  cookie?: never;
29985
30657
  };
29986
- get?: never;
29987
- put?: never;
29988
30658
  /**
29989
- * Archive contract case
29990
- * @description Archive a completed contract case (approved or rejected). Only case managers can archive.
30659
+ * Get contract for editing
30660
+ * @description Get contract data for editing through contract case. Only assigned case manager can access. Cannot access if case is archived.
29991
30661
  */
29992
- post: {
30662
+ get: {
29993
30663
  parameters: {
29994
30664
  query?: never;
29995
30665
  header?: never;
@@ -29998,14 +30668,160 @@ export interface paths {
29998
30668
  };
29999
30669
  cookie?: never;
30000
30670
  };
30001
- requestBody?: {
30002
- content: {
30003
- 'application/json': {
30004
- reason?: string;
30671
+ requestBody?: never;
30672
+ responses: {
30673
+ /** @description Default Response */
30674
+ 200: {
30675
+ headers: {
30676
+ [name: string]: unknown;
30677
+ };
30678
+ content: {
30679
+ 'application/json': {
30680
+ data: {
30681
+ /** Format: uuid */
30682
+ id: string;
30683
+ contract_number?: string | null;
30684
+ /** Format: uuid */
30685
+ employer_id: string;
30686
+ worker_id?: string | null;
30687
+ application_id?: string | null;
30688
+ inquiry_id?: string | null;
30689
+ account_id?: string | null;
30690
+ arrangement_id?: string | null;
30691
+ arrangement_title?: string | null;
30692
+ conversation_id?: string | null;
30693
+ /** Format: uuid */
30694
+ contract_type_id: string;
30695
+ contract_type?: string | null;
30696
+ contract_type_title?: string | null;
30697
+ service_type?: string | null;
30698
+ salary_type_name?: string | null;
30699
+ current_salary_amount?: number | null;
30700
+ salary_id?: string | null;
30701
+ source_invite_id?: string | null;
30702
+ is_employer_also_worker?: boolean | null;
30703
+ is_salary_manually_overridden?: boolean | null;
30704
+ requires_background_check?: boolean | null;
30705
+ requires_health_certificate?: boolean | null;
30706
+ title?: string | null;
30707
+ contract_details?: string | null;
30708
+ hours_per_week?: number | null;
30709
+ hourly_rate?: number | null;
30710
+ start_date?: string | null;
30711
+ end_date?: string | null;
30712
+ status: unknown;
30713
+ lifecycle_changed_at?: string | null;
30714
+ status_changed_at?: string | null;
30715
+ employer_email?: string | null;
30716
+ employer_first_name?: string | null;
30717
+ employer_last_name?: string | null;
30718
+ employer_phone?: string | null;
30719
+ worker_personal_number?: string | null;
30720
+ worker_bank_account?: string | null;
30721
+ worker_email?: string | null;
30722
+ worker_name?: string | null;
30723
+ worker_first_name?: string | null;
30724
+ worker_last_name?: string | null;
30725
+ worker_phone?: string | null;
30726
+ worker_phone_number?: string | null;
30727
+ worker_has_previous_employment?: boolean | null;
30728
+ worker_previous_employment_details?: string | null;
30729
+ worker_has_prior_assistant_experience?: boolean | null;
30730
+ worker_has_prior_uloba_employment?: boolean | null;
30731
+ worker_is_related_to_employer?: boolean | null;
30732
+ worker_has_uloba_as_primary_employer?: boolean | null;
30733
+ worker_requires_health_certificate?: boolean | null;
30734
+ worker_requires_tuberculosis_test?: boolean | null;
30735
+ worker_citizenship?: string | null;
30736
+ worker_substitute_for_name?: string | null;
30737
+ worker_address_street?: string | null;
30738
+ worker_address_postal_code?: string | null;
30739
+ worker_address_city?: string | null;
30740
+ worker_address_country?: string | null;
30741
+ worker_emergency_contact_name?: string | null;
30742
+ worker_emergency_contact_phone?: string | null;
30743
+ worker_emergency_contact_relation?: string | null;
30744
+ decision_owner_id?: string | null;
30745
+ decision_owner_name?: string | null;
30746
+ decision_owner_same_as_coordinator?: boolean | null;
30747
+ phase_1_submission_completed_at?: string | null;
30748
+ phase_1_submission_completed_by?: string | null;
30749
+ phase_1_submission_completed_by_name?: string | null;
30750
+ phase_2_submission_completed_at?: string | null;
30751
+ phase_2_submission_completed_by?: string | null;
30752
+ phase_2_submission_completed_by_name?: string | null;
30753
+ direct_submitted_at?: string | null;
30754
+ direct_submitted_by?: string | null;
30755
+ direct_submitted_by_name?: string | null;
30756
+ submitted_by?: string | null;
30757
+ submitted_by_name?: string | null;
30758
+ submitted_at?: string | null;
30759
+ submitted_to_uloba_at?: string | null;
30760
+ submitted_to_uloba_by?: string | null;
30761
+ submitted_to_uloba_by_name?: string | null;
30762
+ coordinator_submitted_at?: string | null;
30763
+ coordinator_submitted_by?: string | null;
30764
+ worker_submitted_at?: string | null;
30765
+ worker_submitted_by?: string | null;
30766
+ ready_for_submission_at?: string | null;
30767
+ ready_for_submission_by?: string | null;
30768
+ draft_at?: string | null;
30769
+ draft_by?: string | null;
30770
+ validation_failed_at?: string | null;
30771
+ validation_failed_by?: string | null;
30772
+ in_review_at?: string | null;
30773
+ in_review_by?: string | null;
30774
+ ready_for_signing_at?: string | null;
30775
+ ready_for_signing_by?: string | null;
30776
+ pending_signing_at?: string | null;
30777
+ pending_signing_by?: string | null;
30778
+ signed_at?: string | null;
30779
+ signed_by?: string | null;
30780
+ activated_at?: string | null;
30781
+ activated_by?: string | null;
30782
+ activated_by_name?: string | null;
30783
+ completed_at?: string | null;
30784
+ completed_by?: string | null;
30785
+ completed_by_name?: string | null;
30786
+ terminated_at?: string | null;
30787
+ terminated_by?: string | null;
30788
+ terminated_by_name?: string | null;
30789
+ terminated_message?: string | null;
30790
+ terminated_reason?: string | null;
30791
+ rejected_at?: string | null;
30792
+ rejected_by?: string | null;
30793
+ rejected_by_name?: string | null;
30794
+ rejected_message?: string | null;
30795
+ rejected_reason?: string | null;
30796
+ cancelled_at?: string | null;
30797
+ cancelled_by?: string | null;
30798
+ cancelled_by_name?: string | null;
30799
+ cancelled_message?: string | null;
30800
+ cancelled_reason?: string | null;
30801
+ temporary_position_reason?: string | null;
30802
+ archived_by_employer?: boolean | null;
30803
+ archived_at_employer?: string | null;
30804
+ archived_by_worker?: boolean | null;
30805
+ archived_at_worker?: string | null;
30806
+ validation_status?: string | null;
30807
+ validation_errors?: unknown;
30808
+ validation_report?: unknown;
30809
+ last_validated_at?: string | null;
30810
+ created_at?: string | null;
30811
+ updated_at?: string | null;
30812
+ };
30813
+ metadata: {
30814
+ /** @description Viewer relationship to the resource */
30815
+ viewerContext: 'anonymous' | 'authenticated' | 'owner' | 'coordinator' | 'admin' | 'employer' | 'worker';
30816
+ permissions: {
30817
+ canView: boolean;
30818
+ canEdit: boolean;
30819
+ canDelete: boolean;
30820
+ };
30821
+ };
30822
+ };
30005
30823
  };
30006
30824
  };
30007
- };
30008
- responses: {
30009
30825
  /** @description Default Response */
30010
30826
  400: {
30011
30827
  headers: {
@@ -30108,10 +30924,314 @@ export interface paths {
30108
30924
  };
30109
30925
  };
30110
30926
  };
30927
+ put?: never;
30928
+ post?: never;
30111
30929
  delete?: never;
30112
30930
  options?: never;
30113
30931
  head?: never;
30114
- patch?: never;
30932
+ /**
30933
+ * Update contract through case
30934
+ * @description Update contract data through contract case. Only assigned case manager can update. Cannot update if case is archived. Cannot modify employer_id or worker_id.
30935
+ */
30936
+ patch: {
30937
+ parameters: {
30938
+ query?: never;
30939
+ header?: never;
30940
+ path: {
30941
+ id: string;
30942
+ };
30943
+ cookie?: never;
30944
+ };
30945
+ /** @description Schema for updating contract data through contract case (case manager only) */
30946
+ requestBody?: {
30947
+ content: {
30948
+ 'application/json': {
30949
+ title?: string;
30950
+ decision_owner_same_as_coordinator?: boolean;
30951
+ decision_owner_name?: string | null;
30952
+ arrangement_id?: string | null;
30953
+ contract_type_id?: string | null;
30954
+ contract_details?: string | null;
30955
+ hours_per_week?: number | null;
30956
+ hourly_rate?: number | null;
30957
+ salary_id?: string | null;
30958
+ is_salary_manually_overridden?: boolean;
30959
+ start_date?: string | null;
30960
+ end_date?: string | null;
30961
+ worker_substitute_for_name?: string | null;
30962
+ temporary_position_reason?: string | null;
30963
+ worker_personal_number?: string | null;
30964
+ worker_bank_account?: string | null;
30965
+ worker_address_street?: string | null;
30966
+ worker_address_postal_code?: string | null;
30967
+ worker_address_city?: string | null;
30968
+ worker_address_country?: string | null;
30969
+ worker_has_previous_employment?: boolean;
30970
+ worker_previous_employment_details?: string | null;
30971
+ worker_has_prior_assistant_experience?: boolean;
30972
+ worker_has_prior_uloba_employment?: boolean;
30973
+ worker_has_uloba_as_primary_employer?: boolean;
30974
+ worker_citizenship?: string | null;
30975
+ worker_is_related_to_employer?: boolean;
30976
+ worker_requires_tuberculosis_test?: boolean;
30977
+ };
30978
+ };
30979
+ };
30980
+ responses: {
30981
+ /** @description Default Response */
30982
+ 200: {
30983
+ headers: {
30984
+ [name: string]: unknown;
30985
+ };
30986
+ content: {
30987
+ 'application/json': {
30988
+ data: {
30989
+ /** Format: uuid */
30990
+ id: string;
30991
+ contract_number?: string | null;
30992
+ /** Format: uuid */
30993
+ employer_id: string;
30994
+ worker_id?: string | null;
30995
+ application_id?: string | null;
30996
+ inquiry_id?: string | null;
30997
+ account_id?: string | null;
30998
+ arrangement_id?: string | null;
30999
+ arrangement_title?: string | null;
31000
+ conversation_id?: string | null;
31001
+ /** Format: uuid */
31002
+ contract_type_id: string;
31003
+ contract_type?: string | null;
31004
+ contract_type_title?: string | null;
31005
+ service_type?: string | null;
31006
+ salary_type_name?: string | null;
31007
+ current_salary_amount?: number | null;
31008
+ salary_id?: string | null;
31009
+ source_invite_id?: string | null;
31010
+ is_employer_also_worker?: boolean | null;
31011
+ is_salary_manually_overridden?: boolean | null;
31012
+ requires_background_check?: boolean | null;
31013
+ requires_health_certificate?: boolean | null;
31014
+ title?: string | null;
31015
+ contract_details?: string | null;
31016
+ hours_per_week?: number | null;
31017
+ hourly_rate?: number | null;
31018
+ start_date?: string | null;
31019
+ end_date?: string | null;
31020
+ status: unknown;
31021
+ lifecycle_changed_at?: string | null;
31022
+ status_changed_at?: string | null;
31023
+ employer_email?: string | null;
31024
+ employer_first_name?: string | null;
31025
+ employer_last_name?: string | null;
31026
+ employer_phone?: string | null;
31027
+ worker_personal_number?: string | null;
31028
+ worker_bank_account?: string | null;
31029
+ worker_email?: string | null;
31030
+ worker_name?: string | null;
31031
+ worker_first_name?: string | null;
31032
+ worker_last_name?: string | null;
31033
+ worker_phone?: string | null;
31034
+ worker_phone_number?: string | null;
31035
+ worker_has_previous_employment?: boolean | null;
31036
+ worker_previous_employment_details?: string | null;
31037
+ worker_has_prior_assistant_experience?: boolean | null;
31038
+ worker_has_prior_uloba_employment?: boolean | null;
31039
+ worker_is_related_to_employer?: boolean | null;
31040
+ worker_has_uloba_as_primary_employer?: boolean | null;
31041
+ worker_requires_health_certificate?: boolean | null;
31042
+ worker_requires_tuberculosis_test?: boolean | null;
31043
+ worker_citizenship?: string | null;
31044
+ worker_substitute_for_name?: string | null;
31045
+ worker_address_street?: string | null;
31046
+ worker_address_postal_code?: string | null;
31047
+ worker_address_city?: string | null;
31048
+ worker_address_country?: string | null;
31049
+ worker_emergency_contact_name?: string | null;
31050
+ worker_emergency_contact_phone?: string | null;
31051
+ worker_emergency_contact_relation?: string | null;
31052
+ decision_owner_id?: string | null;
31053
+ decision_owner_name?: string | null;
31054
+ decision_owner_same_as_coordinator?: boolean | null;
31055
+ phase_1_submission_completed_at?: string | null;
31056
+ phase_1_submission_completed_by?: string | null;
31057
+ phase_1_submission_completed_by_name?: string | null;
31058
+ phase_2_submission_completed_at?: string | null;
31059
+ phase_2_submission_completed_by?: string | null;
31060
+ phase_2_submission_completed_by_name?: string | null;
31061
+ direct_submitted_at?: string | null;
31062
+ direct_submitted_by?: string | null;
31063
+ direct_submitted_by_name?: string | null;
31064
+ submitted_by?: string | null;
31065
+ submitted_by_name?: string | null;
31066
+ submitted_at?: string | null;
31067
+ submitted_to_uloba_at?: string | null;
31068
+ submitted_to_uloba_by?: string | null;
31069
+ submitted_to_uloba_by_name?: string | null;
31070
+ coordinator_submitted_at?: string | null;
31071
+ coordinator_submitted_by?: string | null;
31072
+ worker_submitted_at?: string | null;
31073
+ worker_submitted_by?: string | null;
31074
+ ready_for_submission_at?: string | null;
31075
+ ready_for_submission_by?: string | null;
31076
+ draft_at?: string | null;
31077
+ draft_by?: string | null;
31078
+ validation_failed_at?: string | null;
31079
+ validation_failed_by?: string | null;
31080
+ in_review_at?: string | null;
31081
+ in_review_by?: string | null;
31082
+ ready_for_signing_at?: string | null;
31083
+ ready_for_signing_by?: string | null;
31084
+ pending_signing_at?: string | null;
31085
+ pending_signing_by?: string | null;
31086
+ signed_at?: string | null;
31087
+ signed_by?: string | null;
31088
+ activated_at?: string | null;
31089
+ activated_by?: string | null;
31090
+ activated_by_name?: string | null;
31091
+ completed_at?: string | null;
31092
+ completed_by?: string | null;
31093
+ completed_by_name?: string | null;
31094
+ terminated_at?: string | null;
31095
+ terminated_by?: string | null;
31096
+ terminated_by_name?: string | null;
31097
+ terminated_message?: string | null;
31098
+ terminated_reason?: string | null;
31099
+ rejected_at?: string | null;
31100
+ rejected_by?: string | null;
31101
+ rejected_by_name?: string | null;
31102
+ rejected_message?: string | null;
31103
+ rejected_reason?: string | null;
31104
+ cancelled_at?: string | null;
31105
+ cancelled_by?: string | null;
31106
+ cancelled_by_name?: string | null;
31107
+ cancelled_message?: string | null;
31108
+ cancelled_reason?: string | null;
31109
+ temporary_position_reason?: string | null;
31110
+ archived_by_employer?: boolean | null;
31111
+ archived_at_employer?: string | null;
31112
+ archived_by_worker?: boolean | null;
31113
+ archived_at_worker?: string | null;
31114
+ validation_status?: string | null;
31115
+ validation_errors?: unknown;
31116
+ validation_report?: unknown;
31117
+ last_validated_at?: string | null;
31118
+ created_at?: string | null;
31119
+ updated_at?: string | null;
31120
+ };
31121
+ metadata: {
31122
+ /** @description Viewer relationship to the resource */
31123
+ viewerContext: 'anonymous' | 'authenticated' | 'owner' | 'coordinator' | 'admin' | 'employer' | 'worker';
31124
+ permissions: {
31125
+ canView: boolean;
31126
+ canEdit: boolean;
31127
+ canDelete: boolean;
31128
+ };
31129
+ };
31130
+ };
31131
+ };
31132
+ };
31133
+ /** @description Default Response */
31134
+ 400: {
31135
+ headers: {
31136
+ [name: string]: unknown;
31137
+ };
31138
+ content: {
31139
+ 'application/json': {
31140
+ error: string;
31141
+ message?: string;
31142
+ code?: string;
31143
+ details?: unknown;
31144
+ /** Format: date-time */
31145
+ timestamp?: string;
31146
+ };
31147
+ };
31148
+ };
31149
+ /** @description Default Response */
31150
+ 401: {
31151
+ headers: {
31152
+ [name: string]: unknown;
31153
+ };
31154
+ content: {
31155
+ 'application/json': {
31156
+ error: string;
31157
+ message?: string;
31158
+ code?: string;
31159
+ details?: unknown;
31160
+ /** Format: date-time */
31161
+ timestamp?: string;
31162
+ };
31163
+ };
31164
+ };
31165
+ /** @description Default Response */
31166
+ 403: {
31167
+ headers: {
31168
+ [name: string]: unknown;
31169
+ };
31170
+ content: {
31171
+ 'application/json': {
31172
+ error: string;
31173
+ message?: string;
31174
+ code?: string;
31175
+ details?: unknown;
31176
+ /** Format: date-time */
31177
+ timestamp?: string;
31178
+ };
31179
+ };
31180
+ };
31181
+ /** @description Default Response */
31182
+ 404: {
31183
+ headers: {
31184
+ [name: string]: unknown;
31185
+ };
31186
+ content: {
31187
+ 'application/json': {
31188
+ error: string;
31189
+ message?: string;
31190
+ code?: string;
31191
+ details?: unknown;
31192
+ /** Format: date-time */
31193
+ timestamp?: string;
31194
+ };
31195
+ };
31196
+ };
31197
+ /** @description Default Response */
31198
+ 422: {
31199
+ headers: {
31200
+ [name: string]: unknown;
31201
+ };
31202
+ content: {
31203
+ 'application/json': {
31204
+ error: string;
31205
+ message: string;
31206
+ errors: {
31207
+ field: string;
31208
+ message: string;
31209
+ code?: string;
31210
+ value?: unknown;
31211
+ }[];
31212
+ /** Format: date-time */
31213
+ timestamp?: string;
31214
+ };
31215
+ };
31216
+ };
31217
+ /** @description Default Response */
31218
+ 500: {
31219
+ headers: {
31220
+ [name: string]: unknown;
31221
+ };
31222
+ content: {
31223
+ 'application/json': {
31224
+ error: string;
31225
+ message?: string;
31226
+ code?: string;
31227
+ details?: unknown;
31228
+ /** Format: date-time */
31229
+ timestamp?: string;
31230
+ };
31231
+ };
31232
+ };
31233
+ };
31234
+ };
30115
31235
  trace?: never;
30116
31236
  };
30117
31237
  '/api/contract-cases/{id}/activity-log': {
@@ -32338,7 +33458,7 @@ export interface paths {
32338
33458
  put?: never;
32339
33459
  /**
32340
33460
  * Signicat webhook endpoint
32341
- * @description Receives signing events from Signicat for contract signing status updates
33461
+ * @description Receives signing events from Signicat for contract signing status updates. Supports both actual Signicat format and internal mock format. Events are filtered by webhook secret (HMAC-SHA256 signature verification), not by tags. In shared environments (sandbox), events from other environments will arrive but fail signature verification.
32342
33462
  */
32343
33463
  post: {
32344
33464
  parameters: {
@@ -32347,23 +33467,40 @@ export interface paths {
32347
33467
  path?: never;
32348
33468
  cookie?: never;
32349
33469
  };
32350
- requestBody: {
33470
+ requestBody?: {
32351
33471
  content: {
32352
33472
  'application/json': {
32353
- eventId: string;
33473
+ id?: string;
32354
33474
  /** @enum {string} */
32355
- eventType: 'order.created' | 'order.expired' | 'order.completed' | 'order.canceled' | 'recipient.completed' | 'session.started' | 'session.document.presented' | 'email.opened' | 'order.tobedeleted' | 'order.deleted' | 'document.created' | 'document.distributed' | 'document.cancelled' | 'document.expired' | 'document.completed' | 'signer.contacted' | 'signer.opened' | 'signer.signed' | 'signer.rejected' | 'attachment.created';
32356
- timestamp: string;
32357
- data: {
32358
- documentId: string;
33475
+ eventName?: 'ping' | 'order.created' | 'order.expired' | 'order.completed' | 'order.canceled' | 'recipient.completed' | 'session.started' | 'session.document.presented' | 'email.opened' | 'order.tobedeleted' | 'order.deleted' | 'document.created' | 'document.distributed' | 'document.cancelled' | 'document.expired' | 'document.completed' | 'signer.contacted' | 'signer.opened' | 'signer.signed' | 'signer.rejected' | 'attachment.created';
33476
+ eventData?: {
33477
+ id?: string;
33478
+ externalId?: string;
33479
+ status?: string;
33480
+ recipient?: {
33481
+ id?: string;
33482
+ externalId?: string;
33483
+ status?: string;
33484
+ };
33485
+ };
33486
+ tags?: string[];
33487
+ accountId?: string;
33488
+ isMockEvent?: boolean;
33489
+ sender?: string;
33490
+ eventId?: string;
33491
+ /** @enum {string} */
33492
+ eventType?: 'ping' | 'order.created' | 'order.expired' | 'order.completed' | 'order.canceled' | 'recipient.completed' | 'session.started' | 'session.document.presented' | 'email.opened' | 'order.tobedeleted' | 'order.deleted' | 'document.created' | 'document.distributed' | 'document.cancelled' | 'document.expired' | 'document.completed' | 'signer.contacted' | 'signer.opened' | 'signer.signed' | 'signer.rejected' | 'attachment.created';
33493
+ data?: {
33494
+ documentId?: string;
32359
33495
  externalReference?: string;
32360
33496
  status?: string;
32361
33497
  signer?: {
32362
- signerId: string;
32363
- externalSignerId: string;
32364
- status: string;
33498
+ signerId?: string;
33499
+ externalSignerId?: string;
33500
+ status?: string;
32365
33501
  };
32366
33502
  };
33503
+ timestamp?: string;
32367
33504
  };
32368
33505
  };
32369
33506
  };
@@ -36506,7 +37643,7 @@ export interface paths {
36506
37643
  };
36507
37644
  metadata: {
36508
37645
  /** @description Role context for the statistics query */
36509
- role: 'coordinator' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
37646
+ role: 'coordinator' | 'employer' | 'worker' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
36510
37647
  /**
36511
37648
  * Format: uuid
36512
37649
  * @description UUID version 4 identifier
@@ -36785,7 +37922,7 @@ export interface paths {
36785
37922
  };
36786
37923
  metadata: {
36787
37924
  /** @description Role context for the statistics query */
36788
- role: 'coordinator' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
37925
+ role: 'coordinator' | 'employer' | 'worker' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
36789
37926
  /**
36790
37927
  * Format: uuid
36791
37928
  * @description UUID version 4 identifier
@@ -36968,7 +38105,7 @@ export interface paths {
36968
38105
  };
36969
38106
  metadata: {
36970
38107
  /** @description Role context for the statistics query */
36971
- role: 'coordinator' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
38108
+ role: 'coordinator' | 'employer' | 'worker' | 'teamlead' | 'assistant' | 'case_manager' | 'applicant';
36972
38109
  /**
36973
38110
  * Format: uuid
36974
38111
  * @description UUID version 4 identifier