@digiteers/uloba3-sdk 1.3.7

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 (162) hide show
  1. package/.eslintrc.json +29 -0
  2. package/.github/workflows/generate-sdk.yml +126 -0
  3. package/.prettierrc +11 -0
  4. package/MIGRATION.md +118 -0
  5. package/README.md +256 -0
  6. package/dist/api/accounts.d.ts +31 -0
  7. package/dist/api/accounts.d.ts.map +1 -0
  8. package/dist/api/accounts.js +71 -0
  9. package/dist/api/accounts.js.map +1 -0
  10. package/dist/api/admin/arrangements.d.ts +41 -0
  11. package/dist/api/admin/arrangements.d.ts.map +1 -0
  12. package/dist/api/admin/arrangements.js +60 -0
  13. package/dist/api/admin/arrangements.js.map +1 -0
  14. package/dist/api/admin/assistance-types.d.ts +41 -0
  15. package/dist/api/admin/assistance-types.d.ts.map +1 -0
  16. package/dist/api/admin/assistance-types.js +60 -0
  17. package/dist/api/admin/assistance-types.js.map +1 -0
  18. package/dist/api/admin/contract-case-workflow-states.d.ts +69 -0
  19. package/dist/api/admin/contract-case-workflow-states.d.ts.map +1 -0
  20. package/dist/api/admin/contract-case-workflow-states.js +59 -0
  21. package/dist/api/admin/contract-case-workflow-states.js.map +1 -0
  22. package/dist/api/admin/contract-types.d.ts +41 -0
  23. package/dist/api/admin/contract-types.d.ts.map +1 -0
  24. package/dist/api/admin/contract-types.js +60 -0
  25. package/dist/api/admin/contract-types.js.map +1 -0
  26. package/dist/api/admin/expectation-templates.d.ts +39 -0
  27. package/dist/api/admin/expectation-templates.d.ts.map +1 -0
  28. package/dist/api/admin/expectation-templates.js +66 -0
  29. package/dist/api/admin/expectation-templates.js.map +1 -0
  30. package/dist/api/admin/index.d.ts +11 -0
  31. package/dist/api/admin/index.d.ts.map +1 -0
  32. package/dist/api/admin/index.js +24 -0
  33. package/dist/api/admin/index.js.map +1 -0
  34. package/dist/api/admin/interest-templates.d.ts +39 -0
  35. package/dist/api/admin/interest-templates.d.ts.map +1 -0
  36. package/dist/api/admin/interest-templates.js +66 -0
  37. package/dist/api/admin/interest-templates.js.map +1 -0
  38. package/dist/api/admin/organization.d.ts +15 -0
  39. package/dist/api/admin/organization.d.ts.map +1 -0
  40. package/dist/api/admin/organization.js +25 -0
  41. package/dist/api/admin/organization.js.map +1 -0
  42. package/dist/api/admin/responsibility-templates.d.ts +39 -0
  43. package/dist/api/admin/responsibility-templates.d.ts.map +1 -0
  44. package/dist/api/admin/responsibility-templates.js +66 -0
  45. package/dist/api/admin/responsibility-templates.js.map +1 -0
  46. package/dist/api/admin/salaries.d.ts +48 -0
  47. package/dist/api/admin/salaries.d.ts.map +1 -0
  48. package/dist/api/admin/salaries.js +60 -0
  49. package/dist/api/admin/salaries.js.map +1 -0
  50. package/dist/api/admin/work-schedules.d.ts +67 -0
  51. package/dist/api/admin/work-schedules.d.ts.map +1 -0
  52. package/dist/api/admin/work-schedules.js +59 -0
  53. package/dist/api/admin/work-schedules.js.map +1 -0
  54. package/dist/api/analytics.d.ts +37 -0
  55. package/dist/api/analytics.d.ts.map +1 -0
  56. package/dist/api/analytics.js +37 -0
  57. package/dist/api/analytics.js.map +1 -0
  58. package/dist/api/applications.d.ts +166 -0
  59. package/dist/api/applications.d.ts.map +1 -0
  60. package/dist/api/applications.js +156 -0
  61. package/dist/api/applications.js.map +1 -0
  62. package/dist/api/assistants.d.ts +413 -0
  63. package/dist/api/assistants.d.ts.map +1 -0
  64. package/dist/api/assistants.js +250 -0
  65. package/dist/api/assistants.js.map +1 -0
  66. package/dist/api/auth.d.ts +57 -0
  67. package/dist/api/auth.d.ts.map +1 -0
  68. package/dist/api/auth.js +46 -0
  69. package/dist/api/auth.js.map +1 -0
  70. package/dist/api/billing.d.ts +33 -0
  71. package/dist/api/billing.d.ts.map +1 -0
  72. package/dist/api/billing.js +49 -0
  73. package/dist/api/billing.js.map +1 -0
  74. package/dist/api/contract-cases.d.ts +38 -0
  75. package/dist/api/contract-cases.d.ts.map +1 -0
  76. package/dist/api/contract-cases.js +65 -0
  77. package/dist/api/contract-cases.js.map +1 -0
  78. package/dist/api/contracts.d.ts +903 -0
  79. package/dist/api/contracts.d.ts.map +1 -0
  80. package/dist/api/contracts.js +300 -0
  81. package/dist/api/contracts.js.map +1 -0
  82. package/dist/api/documents.d.ts +20 -0
  83. package/dist/api/documents.d.ts.map +1 -0
  84. package/dist/api/documents.js +27 -0
  85. package/dist/api/documents.js.map +1 -0
  86. package/dist/api/feeds.d.ts +23 -0
  87. package/dist/api/feeds.d.ts.map +1 -0
  88. package/dist/api/feeds.js +47 -0
  89. package/dist/api/feeds.js.map +1 -0
  90. package/dist/api/gdpr.d.ts +23 -0
  91. package/dist/api/gdpr.d.ts.map +1 -0
  92. package/dist/api/gdpr.js +50 -0
  93. package/dist/api/gdpr.js.map +1 -0
  94. package/dist/api/inquiries.d.ts +190 -0
  95. package/dist/api/inquiries.d.ts.map +1 -0
  96. package/dist/api/inquiries.js +173 -0
  97. package/dist/api/inquiries.js.map +1 -0
  98. package/dist/api/jobs.d.ts +169 -0
  99. package/dist/api/jobs.d.ts.map +1 -0
  100. package/dist/api/jobs.js +294 -0
  101. package/dist/api/jobs.js.map +1 -0
  102. package/dist/api/locations.d.ts +30 -0
  103. package/dist/api/locations.d.ts.map +1 -0
  104. package/dist/api/locations.js +25 -0
  105. package/dist/api/locations.js.map +1 -0
  106. package/dist/api/meetings.d.ts +109 -0
  107. package/dist/api/meetings.d.ts.map +1 -0
  108. package/dist/api/meetings.js +75 -0
  109. package/dist/api/meetings.js.map +1 -0
  110. package/dist/api/messaging.d.ts +32 -0
  111. package/dist/api/messaging.d.ts.map +1 -0
  112. package/dist/api/messaging.js +114 -0
  113. package/dist/api/messaging.js.map +1 -0
  114. package/dist/api/notes.d.ts +21 -0
  115. package/dist/api/notes.d.ts.map +1 -0
  116. package/dist/api/notes.js +38 -0
  117. package/dist/api/notes.js.map +1 -0
  118. package/dist/api/organization.d.ts +56 -0
  119. package/dist/api/organization.d.ts.map +1 -0
  120. package/dist/api/organization.js +39 -0
  121. package/dist/api/organization.js.map +1 -0
  122. package/dist/api/salaries.d.ts +24 -0
  123. package/dist/api/salaries.d.ts.map +1 -0
  124. package/dist/api/salaries.js +39 -0
  125. package/dist/api/salaries.js.map +1 -0
  126. package/dist/api/tasks.d.ts +19 -0
  127. package/dist/api/tasks.d.ts.map +1 -0
  128. package/dist/api/tasks.js +35 -0
  129. package/dist/api/tasks.js.map +1 -0
  130. package/dist/api/users.d.ts +62 -0
  131. package/dist/api/users.d.ts.map +1 -0
  132. package/dist/api/users.js +62 -0
  133. package/dist/api/users.js.map +1 -0
  134. package/dist/api-types.d.ts +1242 -0
  135. package/dist/api-types.d.ts.map +1 -0
  136. package/dist/api-types.js +5 -0
  137. package/dist/api-types.js.map +1 -0
  138. package/dist/client.d.ts +69 -0
  139. package/dist/client.d.ts.map +1 -0
  140. package/dist/client.js +142 -0
  141. package/dist/client.js.map +1 -0
  142. package/dist/components/contracts/forms/DirectContractForm.d.ts +1 -0
  143. package/dist/components/contracts/forms/DirectContractForm.d.ts.map +1 -0
  144. package/dist/components/contracts/forms/DirectContractForm.js +2 -0
  145. package/dist/components/contracts/forms/DirectContractForm.js.map +1 -0
  146. package/dist/constants.d.ts +133 -0
  147. package/dist/constants.d.ts.map +1 -0
  148. package/dist/constants.js +139 -0
  149. package/dist/constants.js.map +1 -0
  150. package/dist/index.d.ts +36 -0
  151. package/dist/index.d.ts.map +1 -0
  152. package/dist/index.js +85 -0
  153. package/dist/index.js.map +1 -0
  154. package/dist/types.d.ts +36489 -0
  155. package/dist/types.d.ts.map +1 -0
  156. package/dist/types.js +7 -0
  157. package/dist/types.js.map +1 -0
  158. package/dist/view-types.d.ts +44 -0
  159. package/dist/view-types.d.ts.map +1 -0
  160. package/dist/view-types.js +7 -0
  161. package/dist/view-types.js.map +1 -0
  162. package/package.json +85 -0
@@ -0,0 +1,1242 @@
1
+ export interface RequestOptions {
2
+ signal?: AbortSignal;
3
+ headers?: Record<string, string>;
4
+ }
5
+ export interface Account {
6
+ id: string;
7
+ created_at: string;
8
+ updated_at: string;
9
+ deleted_at: string | null;
10
+ deletion_scheduled_at: string | null;
11
+ settings: Record<string, any>;
12
+ gdpr_consent: Record<string, any>;
13
+ language?: string;
14
+ timezone?: string;
15
+ theme?: string;
16
+ email_notifications?: boolean;
17
+ sms_notifications?: boolean;
18
+ push_notifications?: boolean;
19
+ status?: string;
20
+ lifecycle_status?: string;
21
+ }
22
+ export interface AccountWithRole extends Account {
23
+ role?: string;
24
+ }
25
+ export interface AccountUpdateInput {
26
+ language?: string;
27
+ timezone?: string;
28
+ theme?: string;
29
+ email_notifications?: boolean;
30
+ sms_notifications?: boolean;
31
+ push_notifications?: boolean;
32
+ settings?: Record<string, any>;
33
+ gdpr_consent?: Record<string, any>;
34
+ }
35
+ export interface AssistanceDecision {
36
+ id: string;
37
+ account_id: string;
38
+ decision_type: string;
39
+ hours_per_week?: number;
40
+ valid_from: string;
41
+ valid_to?: string;
42
+ created_at: string;
43
+ updated_at: string;
44
+ }
45
+ export interface GdprExportRequest {
46
+ format?: 'json' | 'csv';
47
+ }
48
+ export interface GdprExportData {
49
+ user: any;
50
+ accounts: any[];
51
+ jobs: any[];
52
+ contracts: any[];
53
+ messages: any[];
54
+ documents: any[];
55
+ created_at: string;
56
+ }
57
+ export interface User {
58
+ id: string;
59
+ email: string;
60
+ role: string;
61
+ created_at: string;
62
+ updated_at: string;
63
+ }
64
+ export interface Assistant {
65
+ id: string;
66
+ user_id: string;
67
+ bio?: string;
68
+ status: 'draft' | 'private' | 'public' | 'suspended' | 'deleted';
69
+ lifecycle_status: string;
70
+ availability_status?: string;
71
+ availability_start_date?: string;
72
+ hours_per_week?: number;
73
+ availability_notes?: string;
74
+ demographic_gender?: string;
75
+ demographic_birth_year?: number;
76
+ demographic_marital_status?: string;
77
+ demographic_citizenship?: string;
78
+ preference_norwegian_proficiency?: string;
79
+ preference_open_to_job_travel?: boolean;
80
+ preference_target_group?: string;
81
+ preference_has_drivers_license?: boolean;
82
+ preference_willing_to_relocate?: boolean;
83
+ employment_current_status?: string;
84
+ police_check_can_obtain?: string;
85
+ police_check_has_valid?: boolean;
86
+ police_check_expiry_date?: string;
87
+ police_check_notes?: string;
88
+ visibility_show_phone?: boolean;
89
+ visibility_show_email?: boolean;
90
+ visibility_preferred_contact?: string;
91
+ visibility_name_display?: string;
92
+ generated_title?: string;
93
+ view_count?: number;
94
+ accept_terms?: boolean;
95
+ accept_police_check?: boolean;
96
+ terms_fully_accepted?: boolean;
97
+ published_at?: string;
98
+ expires_at?: string;
99
+ unpublished_at?: string;
100
+ created_at: string;
101
+ updated_at: string;
102
+ last_active_at?: string;
103
+ email: string;
104
+ email_verified?: boolean;
105
+ given_name?: string;
106
+ family_name?: string;
107
+ full_name?: string;
108
+ display_name?: string;
109
+ picture?: string;
110
+ phone?: string;
111
+ locations?: Array<{
112
+ id: string;
113
+ city: string;
114
+ postal_code?: string;
115
+ display_name?: string;
116
+ address?: string;
117
+ country?: string;
118
+ lat?: number;
119
+ lng?: number;
120
+ max_distance_km?: number;
121
+ is_primary?: boolean;
122
+ sort_order?: number;
123
+ }>;
124
+ interests?: Array<{
125
+ id: string;
126
+ title: string;
127
+ description?: string;
128
+ is_custom: boolean;
129
+ template_id?: string;
130
+ sort_order: number;
131
+ }>;
132
+ responsibilities?: Array<{
133
+ id: string;
134
+ title: string;
135
+ description?: string;
136
+ is_custom: boolean;
137
+ template_id?: string;
138
+ sort_order: number;
139
+ }>;
140
+ work_schedules?: Array<{
141
+ id: string;
142
+ title: string;
143
+ description?: string;
144
+ is_custom: boolean;
145
+ template_id?: string;
146
+ sort_order: number;
147
+ }>;
148
+ assistance_types?: Array<{
149
+ id: string;
150
+ assistance_type_id: string;
151
+ code: string;
152
+ title: string;
153
+ description?: string;
154
+ sort_order: number;
155
+ }>;
156
+ }
157
+ export interface CreateAssistantInput {
158
+ bio?: string;
159
+ accept_terms?: boolean;
160
+ }
161
+ export interface UpdateAssistantInput {
162
+ bio?: string;
163
+ availability_status?: string;
164
+ availability_start_date?: string;
165
+ hours_per_week?: number;
166
+ availability_notes?: string;
167
+ demographic_gender?: string;
168
+ demographic_birth_year?: number;
169
+ demographic_marital_status?: string;
170
+ demographic_citizenship?: string;
171
+ preference_norwegian_proficiency?: string;
172
+ preference_open_to_job_travel?: boolean;
173
+ preference_target_group?: string;
174
+ preference_has_drivers_license?: boolean;
175
+ preference_willing_to_relocate?: boolean;
176
+ employment_current_status?: string;
177
+ police_check_can_obtain?: string;
178
+ police_check_has_valid?: boolean;
179
+ police_check_expiry_date?: string;
180
+ police_check_notes?: string;
181
+ visibility_show_phone?: boolean;
182
+ visibility_show_email?: boolean;
183
+ visibility_preferred_contact?: string;
184
+ visibility_name_display?: string;
185
+ accept_terms?: boolean;
186
+ accept_police_check?: boolean;
187
+ }
188
+ export interface ListAssistantsParams {
189
+ status?: string;
190
+ city?: string;
191
+ gender?: string;
192
+ target_group?: string;
193
+ page?: number;
194
+ limit?: number;
195
+ }
196
+ export interface PaginatedResponse<T> {
197
+ data: T[];
198
+ total: number;
199
+ limit: number;
200
+ offset: number;
201
+ }
202
+ export interface AnalyticsMetrics {
203
+ totalJobs: number;
204
+ activeJobs: number;
205
+ totalApplications: number;
206
+ averageApplicationsPerJob: number;
207
+ }
208
+ export interface AnalyticsTimeSeries {
209
+ date: string;
210
+ value: number;
211
+ }
212
+ export interface FunnelAnalytics {
213
+ stage: string;
214
+ count: number;
215
+ percentage: number;
216
+ }
217
+ export interface Invoice {
218
+ id: string;
219
+ account_id: string;
220
+ amount: number;
221
+ status: string;
222
+ created_at: string;
223
+ due_date: string;
224
+ }
225
+ export interface InvoiceDetails extends Invoice {
226
+ items: BillableItem[];
227
+ payment_history: any[];
228
+ }
229
+ export interface BillableItem {
230
+ id: string;
231
+ description: string;
232
+ quantity: number;
233
+ unit_price: number;
234
+ total: number;
235
+ }
236
+ export interface Application {
237
+ id: string;
238
+ job_id: string;
239
+ applicant_id: string;
240
+ application_number: number;
241
+ status: 'draft' | 'submitted' | 'approved' | 'rejected' | 'cancelled';
242
+ }
243
+ export interface Inquiry {
244
+ id: string;
245
+ job_id?: string;
246
+ assistant_id: string;
247
+ inquirer_id: string;
248
+ inquiry_number: number;
249
+ status: 'draft' | 'submitted' | 'accepted' | 'declined' | 'cancelled' | 'expired';
250
+ }
251
+ export interface Contract {
252
+ id: string;
253
+ contract_number: string;
254
+ employer_id: string;
255
+ worker_id: string;
256
+ decision_maker_id?: string;
257
+ application_id?: string;
258
+ inquiry_id?: string;
259
+ direct_internal?: boolean;
260
+ direct_invite?: boolean;
261
+ contract_type: 'on_call' | 'regular' | 'temporary';
262
+ service_type: 'bpa' | 'function_assistance';
263
+ status: 'draft' | 'proposed' | 'pending_worker' | 'pending_employer' | 'accepted' | 'under_review' | 'active' | 'completed' | 'cancelled' | 'disputed';
264
+ lifecycle_status: 'operational' | 'archived' | 'anonymized';
265
+ hours_per_week?: number;
266
+ hourly_rate?: number;
267
+ start_date?: string;
268
+ end_date?: string;
269
+ proposed_at?: string;
270
+ proposed_by?: string;
271
+ accepted_by_worker_at?: string;
272
+ accepted_by_employer_at?: string;
273
+ activated_at?: string;
274
+ cancelled_at?: string;
275
+ cancelled_by?: string;
276
+ cancelled_reason?: string;
277
+ archived_by_employer?: boolean;
278
+ archived_at_employer?: string;
279
+ archived_by_worker?: boolean;
280
+ archived_at_worker?: string;
281
+ anonymized_at?: string;
282
+ created_at: string;
283
+ updated_at: string;
284
+ employer?: Account;
285
+ worker?: Account;
286
+ decision_maker?: Account;
287
+ application?: Application;
288
+ inquiry?: Inquiry;
289
+ }
290
+ export interface ContractsListResponse {
291
+ data: Contract[];
292
+ pagination: {
293
+ total: number;
294
+ limit: number;
295
+ offset: number;
296
+ };
297
+ }
298
+ export interface ContractCase {
299
+ id: string;
300
+ contract_id: string;
301
+ case_type: string;
302
+ status: string;
303
+ description: string;
304
+ created_at: string;
305
+ updated_at: string;
306
+ }
307
+ export interface CreateContractCaseRequest {
308
+ contract_id: string;
309
+ case_type: string;
310
+ description: string;
311
+ }
312
+ export interface UpdateContractCaseRequest {
313
+ status?: string;
314
+ description?: string;
315
+ }
316
+ export interface Conversation {
317
+ id: string;
318
+ type: 'direct' | 'role_based' | 'group' | 'support_assisted';
319
+ participants: ConversationParticipant[];
320
+ last_message?: Message;
321
+ unread_count: number;
322
+ archived: boolean;
323
+ created_at: string;
324
+ updated_at: string;
325
+ metadata?: Record<string, any>;
326
+ entity_associations?: EntityAssociation[];
327
+ }
328
+ export interface ConversationParticipant {
329
+ id: string;
330
+ conversation_id: string;
331
+ participant_type: 'user' | 'role' | 'support';
332
+ participant_id: string;
333
+ role: 'admin' | 'moderator' | 'member' | 'readonly';
334
+ joined_at: string;
335
+ last_read_at?: string;
336
+ participant_name?: string;
337
+ participant_avatar?: string;
338
+ }
339
+ export interface Message {
340
+ id: string;
341
+ conversation_id: string;
342
+ sender_id: string;
343
+ sender_type: 'coordinator' | 'assistant' | 'case_manager' | 'advisor' | 'support' | 'system';
344
+ content: string;
345
+ metadata?: Record<string, any>;
346
+ edited_at?: string;
347
+ deleted_at?: string;
348
+ created_at: string;
349
+ sender_name?: string;
350
+ sender_avatar?: string;
351
+ is_read: boolean;
352
+ entity_type?: 'application' | 'inquiry' | 'contract' | 'meeting' | 'task';
353
+ entity_id?: string;
354
+ entity_title?: string;
355
+ entity_url?: string;
356
+ is_system_message?: boolean;
357
+ system_message_type?: SystemMessageType;
358
+ system_message_metadata?: Record<string, any>;
359
+ }
360
+ export interface EntityAssociation {
361
+ type: 'application' | 'inquiry' | 'contract' | 'meeting' | 'task';
362
+ id: string;
363
+ title?: string;
364
+ }
365
+ export type SystemMessageType = 'entity_created' | 'entity_updated' | 'status_changed' | 'participant_added' | 'participant_removed' | 'document_uploaded' | 'document_signed' | 'meeting_scheduled' | 'meeting_cancelled' | 'task_assigned' | 'task_completed' | 'support_requested' | 'support_joined' | 'deadline_reminder' | 'system_notification';
366
+ export interface CreateMessageRequest {
367
+ content: string;
368
+ metadata?: Record<string, any>;
369
+ entity_type?: string;
370
+ entity_id?: string;
371
+ }
372
+ export interface CreateConversationRequest {
373
+ participant_type: 'user' | 'role';
374
+ participant_id: string;
375
+ metadata?: Record<string, any>;
376
+ entity_associations?: EntityAssociation[];
377
+ }
378
+ export interface CreateSystemMessageRequest {
379
+ conversation_id: string;
380
+ message_type: SystemMessageType;
381
+ content: string;
382
+ entity_type?: string;
383
+ entity_id?: string;
384
+ metadata?: Record<string, any>;
385
+ }
386
+ export interface MessageFilters {
387
+ limit?: number;
388
+ before?: string;
389
+ after?: string;
390
+ entity_type?: string;
391
+ entity_id?: string;
392
+ include_system?: boolean;
393
+ }
394
+ export interface ConversationFilters {
395
+ archived?: boolean;
396
+ limit?: number;
397
+ offset?: number;
398
+ }
399
+ export interface MessagesResponse {
400
+ messages: Message[];
401
+ has_more: boolean;
402
+ cursor?: string;
403
+ }
404
+ export interface ConversationsResponse {
405
+ data: Conversation[];
406
+ total: number;
407
+ limit: number;
408
+ offset: number;
409
+ }
410
+ export interface Note {
411
+ id: string;
412
+ entity_type: string;
413
+ entity_id: string;
414
+ author_id: string;
415
+ content: string;
416
+ created_at: string;
417
+ updated_at: string;
418
+ }
419
+ export interface CreateNoteRequest {
420
+ entity_type: string;
421
+ entity_id: string;
422
+ content: string;
423
+ }
424
+ export interface UpdateNoteRequest {
425
+ content: string;
426
+ }
427
+ export interface SalaryType {
428
+ id: string;
429
+ name: string;
430
+ base_rate: number;
431
+ description?: string;
432
+ }
433
+ export interface ContractSalary {
434
+ id: string;
435
+ contract_id: string;
436
+ salary_type_id: string;
437
+ rate: number;
438
+ valid_from: string;
439
+ valid_to?: string;
440
+ }
441
+ export interface UserTask {
442
+ id: string;
443
+ user_id: string;
444
+ title: string;
445
+ description?: string;
446
+ status: string;
447
+ due_date?: string;
448
+ created_at: string;
449
+ updated_at: string;
450
+ }
451
+ export interface TaskStats {
452
+ total: number;
453
+ completed: number;
454
+ pending: number;
455
+ overdue: number;
456
+ }
457
+ export interface Job {
458
+ id: string;
459
+ account_id: string;
460
+ account?: Account;
461
+ title: string;
462
+ description: string | null;
463
+ status: JobStatus;
464
+ lifecycle_status: JobLifecycleStatus;
465
+ created_by: string;
466
+ expires_at: string | null;
467
+ publish_duration_days: number | null;
468
+ renewal_count: number | null;
469
+ unpublished_reason: string | null;
470
+ languages: string[] | null;
471
+ experience_years: number | null;
472
+ use_custom_contact: boolean | null;
473
+ contact_name: string | null;
474
+ contact_email: string | null;
475
+ contact_phone: string | null;
476
+ privacy_show_employer_name: 'full' | 'partial' | 'hidden' | null;
477
+ privacy_show_contact_name: boolean | null;
478
+ privacy_show_contact_email: boolean | null;
479
+ privacy_show_contact_phone: boolean | null;
480
+ privacy_show_name_display: 'firstOnly' | 'firstAndLastInitial' | 'fullName' | null;
481
+ application_deadline: string | null;
482
+ start_date: string | null;
483
+ number_of_positions: number | null;
484
+ accept_terms: boolean | null;
485
+ published_at: string | null;
486
+ unpublished_at: string | null;
487
+ status_changed_at: string;
488
+ lifecycle_changed_at: string;
489
+ created_at: string;
490
+ updated_at: string;
491
+ reminder_5days_sent_at: string | null;
492
+ reminder_3days_sent_at: string | null;
493
+ reminder_1day_sent_at: string | null;
494
+ expectations?: JobExpectation[];
495
+ responsibilities?: JobResponsibility[];
496
+ workSchedules?: JobWorkSchedule[];
497
+ assistanceTypeIds?: string[];
498
+ workScheduleIds?: string[];
499
+ }
500
+ export type JobStatus = 'draft' | 'published' | 'unpublished' | 'expired';
501
+ export type JobLifecycleStatus = 'operational' | 'archived' | 'anonymized';
502
+ export interface JobExpectation {
503
+ id: string;
504
+ job_id: string;
505
+ template_id: string | null;
506
+ title: string;
507
+ description: string | null;
508
+ is_custom: boolean;
509
+ sort_order: number;
510
+ created_at: string;
511
+ updated_at: string;
512
+ }
513
+ export interface JobResponsibility {
514
+ id: string;
515
+ job_id: string;
516
+ template_id: string | null;
517
+ title: string;
518
+ description: string | null;
519
+ is_custom: boolean;
520
+ sort_order: number;
521
+ created_at: string;
522
+ updated_at: string;
523
+ }
524
+ export interface JobWorkSchedule {
525
+ id: string;
526
+ job_id: string;
527
+ template_id: string | null;
528
+ title: string;
529
+ description: string | null;
530
+ is_custom: boolean;
531
+ sort_order: number;
532
+ created_at: string;
533
+ updated_at: string;
534
+ }
535
+ export interface CreateJobData {
536
+ title: string;
537
+ description: string;
538
+ remote_work_options?: string[];
539
+ expires_at?: string;
540
+ publish_duration_days?: number;
541
+ employment_type?: string[];
542
+ contract_type?: string;
543
+ working_hours?: string;
544
+ benefits?: string[];
545
+ skills?: string[];
546
+ languages?: string[];
547
+ education_level?: string;
548
+ experience_years?: number;
549
+ contact_name?: string;
550
+ contact_email?: string;
551
+ contact_phone?: string;
552
+ application_deadline?: string;
553
+ start_date?: string;
554
+ number_of_positions?: number;
555
+ nice_to_have?: string[];
556
+ accept_terms?: boolean;
557
+ use_custom_contact?: boolean;
558
+ privacy_show_employer_name?: 'full' | 'partial' | 'hidden';
559
+ privacy_show_contact_name?: boolean;
560
+ privacy_show_contact_email?: boolean;
561
+ privacy_show_contact_phone?: boolean;
562
+ privacy_show_name_display?: 'firstOnly' | 'firstAndLastInitial' | 'fullName';
563
+ expectationTemplateIds?: string[];
564
+ customExpectations?: string[];
565
+ responsibilityTemplateIds?: string[];
566
+ customResponsibilities?: string[];
567
+ assistanceTypeIds?: string[];
568
+ workScheduleIds?: string[];
569
+ customWorkSchedules?: string[];
570
+ }
571
+ export interface UpdateJobData {
572
+ title?: string;
573
+ description?: string;
574
+ remote_work_options?: string[];
575
+ expires_at?: string;
576
+ publish_duration_days?: number;
577
+ employment_type?: string[];
578
+ contract_type?: string;
579
+ working_hours?: string;
580
+ benefits?: string[];
581
+ skills?: string[];
582
+ languages?: string[];
583
+ education_level?: string;
584
+ experience_years?: number;
585
+ contact_name?: string;
586
+ contact_email?: string;
587
+ contact_phone?: string;
588
+ application_deadline?: string;
589
+ start_date?: string;
590
+ number_of_positions?: number;
591
+ nice_to_have?: string[];
592
+ accept_terms?: boolean;
593
+ use_custom_contact?: boolean;
594
+ privacy_show_employer_name?: 'full' | 'partial' | 'hidden';
595
+ privacy_show_contact_name?: boolean;
596
+ privacy_show_contact_email?: boolean;
597
+ privacy_show_contact_phone?: boolean;
598
+ privacy_show_name_display?: 'firstOnly' | 'firstAndLastInitial' | 'fullName';
599
+ expectationTemplateIds?: string[];
600
+ customExpectations?: string[];
601
+ responsibilityTemplateIds?: string[];
602
+ customResponsibilities?: string[];
603
+ assistanceTypeIds?: string[];
604
+ workScheduleIds?: string[];
605
+ customWorkSchedules?: string[];
606
+ }
607
+ export interface PublishJobData {
608
+ publish_at?: string;
609
+ publish_duration_days?: number;
610
+ }
611
+ export interface UnpublishJobData {
612
+ reason?: string;
613
+ }
614
+ export interface JobSearchParams {
615
+ query?: string;
616
+ status?: JobStatus[];
617
+ lifecycle_status?: JobLifecycleStatus[];
618
+ account_id?: string;
619
+ location_type?: string[];
620
+ city?: string;
621
+ sort_by?: 'created_at' | 'published_at' | 'title';
622
+ sort_order?: 'asc' | 'desc';
623
+ limit?: number;
624
+ offset?: number;
625
+ }
626
+ export interface JobSearchResult {
627
+ data: JobView[];
628
+ pagination: {
629
+ page: number;
630
+ limit: number;
631
+ total: number;
632
+ has_more: boolean;
633
+ };
634
+ }
635
+ export interface JobSubscription {
636
+ id: string;
637
+ job_id: string;
638
+ account_id: string;
639
+ duration_days: number;
640
+ amount: number;
641
+ start_date: string;
642
+ end_date: string;
643
+ status: 'active' | 'cancelled' | 'expired';
644
+ billing_event_id?: string;
645
+ is_extension: boolean;
646
+ created_at: string;
647
+ updated_at: string;
648
+ }
649
+ export type JobInsert = CreateJobData & {
650
+ account_id: string;
651
+ };
652
+ export type JobUpdate = UpdateJobData;
653
+ export interface Meeting {
654
+ id: string;
655
+ title: string;
656
+ description?: string;
657
+ start_time: string;
658
+ end_time: string;
659
+ location?: string;
660
+ attendees: string[];
661
+ created_by: string;
662
+ created_at: string;
663
+ updated_at: string;
664
+ }
665
+ export interface CreateMeetingDto {
666
+ title: string;
667
+ description?: string;
668
+ start_time: string;
669
+ end_time: string;
670
+ location?: string;
671
+ attendees: string[];
672
+ }
673
+ export interface UpdateMeetingDto {
674
+ title?: string;
675
+ description?: string;
676
+ start_time?: string;
677
+ end_time?: string;
678
+ location?: string;
679
+ attendees?: string[];
680
+ }
681
+ export interface Organization {
682
+ id: string;
683
+ name: string;
684
+ description?: string;
685
+ website?: string;
686
+ email?: string;
687
+ phone?: string;
688
+ address?: string;
689
+ city?: string;
690
+ country?: string;
691
+ created_at: string;
692
+ updated_at: string;
693
+ }
694
+ export interface Document {
695
+ id: string;
696
+ name: string;
697
+ type: string;
698
+ size: number;
699
+ url: string;
700
+ uploaded_by: string;
701
+ created_at: string;
702
+ }
703
+ export interface UploadDocumentDto {
704
+ file: File;
705
+ name?: string;
706
+ type?: string;
707
+ }
708
+ export interface Feed {
709
+ id: string;
710
+ type: string;
711
+ title: string;
712
+ content: string;
713
+ metadata?: Record<string, any>;
714
+ created_at: string;
715
+ }
716
+ export interface Location {
717
+ id: string;
718
+ name: string;
719
+ type: 'office' | 'remote' | 'hybrid';
720
+ address?: string;
721
+ city?: string;
722
+ country?: string;
723
+ coordinates?: {
724
+ lat: number;
725
+ lng: number;
726
+ };
727
+ }
728
+ export interface Arrangement {
729
+ id: string;
730
+ code: 'BPA' | 'FA';
731
+ title: string;
732
+ description?: string;
733
+ sort_order: number;
734
+ is_active: boolean;
735
+ created_at: string;
736
+ updated_at: string;
737
+ created_by?: string;
738
+ updated_by?: string;
739
+ }
740
+ export interface CreateArrangementDto {
741
+ code: 'BPA' | 'FA';
742
+ title: string;
743
+ description?: string;
744
+ sortOrder?: number;
745
+ isActive?: boolean;
746
+ }
747
+ export interface UpdateArrangementDto {
748
+ title?: string;
749
+ description?: string;
750
+ sortOrder?: number;
751
+ isActive?: boolean;
752
+ }
753
+ export interface ReorderArrangementsDto {
754
+ arrangements: Array<{
755
+ id: string;
756
+ sortOrder: number;
757
+ }>;
758
+ }
759
+ export interface ArrangementStats {
760
+ total_uses: number;
761
+ last_used_at: string | null;
762
+ }
763
+ export interface ContractType {
764
+ id: string;
765
+ code: 'ORDINARY' | 'TEMPORARY' | 'SUMMONING';
766
+ title: string;
767
+ description?: string;
768
+ sort_order: number;
769
+ is_active: boolean;
770
+ created_at: string;
771
+ updated_at: string;
772
+ created_by?: string;
773
+ updated_by?: string;
774
+ }
775
+ export interface CreateContractTypeDto {
776
+ code: 'ORDINARY' | 'TEMPORARY' | 'SUMMONING';
777
+ title: string;
778
+ description?: string;
779
+ sortOrder?: number;
780
+ isActive?: boolean;
781
+ }
782
+ export interface UpdateContractTypeDto {
783
+ title?: string;
784
+ description?: string;
785
+ sortOrder?: number;
786
+ isActive?: boolean;
787
+ }
788
+ export interface ReorderContractTypesDto {
789
+ contractTypes: Array<{
790
+ id: string;
791
+ sortOrder: number;
792
+ }>;
793
+ }
794
+ export interface ContractTypeStats {
795
+ contractCount: number;
796
+ totalUsage: number;
797
+ }
798
+ export interface AssistanceType {
799
+ id: string;
800
+ code: 'ORDINARY' | 'TEMPORARY' | 'SUMMONING';
801
+ title: string;
802
+ description?: string;
803
+ sort_order: number;
804
+ is_active: boolean;
805
+ created_at: string;
806
+ updated_at: string;
807
+ created_by?: string;
808
+ updated_by?: string;
809
+ }
810
+ export interface CreateAssistanceTypeDto {
811
+ code: 'ORDINARY' | 'TEMPORARY' | 'SUMMONING';
812
+ title: string;
813
+ description?: string;
814
+ sortOrder?: number;
815
+ isActive?: boolean;
816
+ }
817
+ export interface UpdateAssistanceTypeDto {
818
+ title?: string;
819
+ description?: string;
820
+ sortOrder?: number;
821
+ isActive?: boolean;
822
+ }
823
+ export interface ReorderAssistanceTypesDto {
824
+ assistanceTypes: Array<{
825
+ id: string;
826
+ sortOrder: number;
827
+ }>;
828
+ }
829
+ export interface AssistanceTypeStats {
830
+ jobCount: number;
831
+ totalUsage: number;
832
+ }
833
+ export interface AdminSalaryType {
834
+ id: string;
835
+ name: string;
836
+ description?: string;
837
+ category: string;
838
+ unit?: string;
839
+ default_amount?: number;
840
+ sort_order: number;
841
+ is_active: boolean;
842
+ created_at: string;
843
+ updated_at: string;
844
+ created_by?: string;
845
+ updated_by?: string;
846
+ }
847
+ export interface CreateAdminSalaryTypeDto {
848
+ name: string;
849
+ description?: string;
850
+ category: string;
851
+ unit?: string;
852
+ default_amount?: number;
853
+ sortOrder?: number;
854
+ isActive?: boolean;
855
+ }
856
+ export interface UpdateAdminSalaryTypeDto {
857
+ name?: string;
858
+ description?: string;
859
+ category?: string;
860
+ unit?: string;
861
+ default_amount?: number;
862
+ sortOrder?: number;
863
+ isActive?: boolean;
864
+ }
865
+ export interface ReorderSalaryTypesDto {
866
+ salaryTypes: Array<{
867
+ id: string;
868
+ sortOrder: number;
869
+ }>;
870
+ }
871
+ export interface AdminOrganization {
872
+ id: string;
873
+ name: string;
874
+ organization_number?: string;
875
+ description?: string;
876
+ short_description?: string;
877
+ email?: string;
878
+ phone?: string;
879
+ website?: string;
880
+ street_address?: string;
881
+ postal_code?: string;
882
+ city?: string;
883
+ country?: string;
884
+ logo_url?: string;
885
+ logo_dark_url?: string;
886
+ favicon_url?: string;
887
+ cover_image_url?: string;
888
+ facebook_url?: string;
889
+ linkedin_url?: string;
890
+ twitter_url?: string;
891
+ instagram_url?: string;
892
+ default_og_title?: string;
893
+ default_og_description?: string;
894
+ default_og_image_url?: string;
895
+ keywords?: string[];
896
+ privacy_policy_url?: string;
897
+ terms_of_service_url?: string;
898
+ metadata?: Record<string, any>;
899
+ created_at: string;
900
+ updated_at: string;
901
+ }
902
+ export interface UpdateAdminOrganizationDto {
903
+ name?: string;
904
+ organization_number?: string;
905
+ description?: string;
906
+ short_description?: string;
907
+ email?: string;
908
+ phone?: string;
909
+ website?: string;
910
+ street_address?: string;
911
+ postal_code?: string;
912
+ city?: string;
913
+ country?: string;
914
+ logo_url?: string;
915
+ logo_dark_url?: string;
916
+ favicon_url?: string;
917
+ cover_image_url?: string;
918
+ facebook_url?: string;
919
+ linkedin_url?: string;
920
+ twitter_url?: string;
921
+ instagram_url?: string;
922
+ default_og_title?: string;
923
+ default_og_description?: string;
924
+ default_og_image_url?: string;
925
+ keywords?: string[];
926
+ privacy_policy_url?: string;
927
+ terms_of_service_url?: string;
928
+ metadata?: Record<string, any>;
929
+ }
930
+ export interface ResponsibilityTemplate {
931
+ id: string;
932
+ title: string;
933
+ description: string | null;
934
+ category: 'personal' | 'household' | 'social' | 'health' | 'other';
935
+ context: 'job' | 'contract' | 'both';
936
+ is_active: boolean;
937
+ sort_order: number;
938
+ created_at: string;
939
+ updated_at: string;
940
+ created_by: string | null;
941
+ }
942
+ export interface CreateResponsibilityTemplateDto {
943
+ title: string;
944
+ description?: string;
945
+ category: 'personal' | 'household' | 'social' | 'health' | 'other';
946
+ context?: 'job' | 'contract' | 'both';
947
+ is_active?: boolean;
948
+ sort_order?: number;
949
+ }
950
+ export interface UpdateResponsibilityTemplateDto {
951
+ title?: string;
952
+ description?: string;
953
+ category?: 'personal' | 'household' | 'social' | 'health' | 'other';
954
+ context?: 'job' | 'contract' | 'both';
955
+ is_active?: boolean;
956
+ sort_order?: number;
957
+ }
958
+ export interface ExpectationTemplate {
959
+ id: string;
960
+ title: string;
961
+ description: string | null;
962
+ category: 'qualification' | 'personal' | 'practical' | 'other';
963
+ context: 'job' | 'contract' | 'both';
964
+ is_active: boolean;
965
+ sort_order: number;
966
+ created_at: string;
967
+ updated_at: string;
968
+ created_by: string | null;
969
+ }
970
+ export interface CreateExpectationTemplateDto {
971
+ title: string;
972
+ description?: string;
973
+ category: 'qualification' | 'personal' | 'practical' | 'other';
974
+ context?: 'job' | 'contract' | 'both';
975
+ is_active?: boolean;
976
+ sort_order?: number;
977
+ }
978
+ export interface UpdateExpectationTemplateDto {
979
+ title?: string;
980
+ description?: string;
981
+ category?: 'qualification' | 'personal' | 'practical' | 'other';
982
+ context?: 'job' | 'contract' | 'both';
983
+ is_active?: boolean;
984
+ sort_order?: number;
985
+ }
986
+ export interface ReorderTemplatesDto {
987
+ items: Array<{
988
+ id: string;
989
+ sort_order: number;
990
+ }>;
991
+ }
992
+ export interface TemplateStats {
993
+ total_uses: number;
994
+ jobs_count: number;
995
+ contracts_count: number;
996
+ assistants_count?: number;
997
+ last_used_at: string | null;
998
+ }
999
+ export interface InterestTemplate {
1000
+ id: string;
1001
+ title: string;
1002
+ description: string | null;
1003
+ category: 'sports' | 'culture' | 'social' | 'nature' | 'technology' | 'creative' | 'other';
1004
+ context: 'assistant';
1005
+ is_active: boolean;
1006
+ sort_order: number;
1007
+ created_at: string;
1008
+ updated_at: string;
1009
+ created_by: string | null;
1010
+ }
1011
+ export interface CreateInterestTemplateDto {
1012
+ title: string;
1013
+ description?: string;
1014
+ category: 'sports' | 'culture' | 'social' | 'nature' | 'technology' | 'creative' | 'other';
1015
+ context?: 'assistant';
1016
+ is_active?: boolean;
1017
+ sort_order?: number;
1018
+ }
1019
+ export interface UpdateInterestTemplateDto {
1020
+ title?: string;
1021
+ description?: string;
1022
+ category?: 'sports' | 'culture' | 'social' | 'nature' | 'technology' | 'creative' | 'other';
1023
+ context?: 'assistant';
1024
+ is_active?: boolean;
1025
+ sort_order?: number;
1026
+ }
1027
+ export interface JobView {
1028
+ id: string;
1029
+ title: string;
1030
+ description: string | null;
1031
+ status: JobStatus;
1032
+ account_id: string;
1033
+ created_by: string;
1034
+ created_at: string;
1035
+ updated_at: string;
1036
+ published_at: string | null;
1037
+ expires_at: string | null;
1038
+ experience_years: number | null;
1039
+ application_deadline: string | null;
1040
+ start_date: string | null;
1041
+ number_of_positions: number | null;
1042
+ contact_name: string | null;
1043
+ contact_email: string | null;
1044
+ contact_phone: string | null;
1045
+ privacy_show_employer_name: 'full' | 'partial' | 'hidden' | null;
1046
+ privacy_show_name_display: 'firstOnly' | 'firstAndLastInitial' | 'fullName' | null;
1047
+ use_custom_contact: boolean | null;
1048
+ account: {
1049
+ id: string;
1050
+ name: string;
1051
+ is_verified: boolean;
1052
+ };
1053
+ responsibilities: Array<{
1054
+ id: string;
1055
+ job_id: string;
1056
+ template_id: string | null;
1057
+ title: string;
1058
+ description: string | null;
1059
+ is_custom: boolean;
1060
+ sort_order: number;
1061
+ created_at: string;
1062
+ updated_at: string;
1063
+ }>;
1064
+ expectations: Array<{
1065
+ id: string;
1066
+ job_id: string;
1067
+ template_id: string | null;
1068
+ title: string;
1069
+ description: string | null;
1070
+ is_custom: boolean;
1071
+ sort_order: number;
1072
+ created_at: string;
1073
+ updated_at: string;
1074
+ }>;
1075
+ work_schedules: Array<{
1076
+ id: string;
1077
+ job_id: string;
1078
+ template_id: string | null;
1079
+ title: string;
1080
+ description: string | null;
1081
+ is_custom: boolean;
1082
+ sort_order: number;
1083
+ created_at: string;
1084
+ updated_at: string;
1085
+ }>;
1086
+ locations: Array<{
1087
+ id: string;
1088
+ city: string;
1089
+ postal_code: string | null;
1090
+ address: string | null;
1091
+ display_name: string | null;
1092
+ lat: number | null;
1093
+ lng: number | null;
1094
+ radius_km: number | null;
1095
+ is_primary: boolean | null;
1096
+ description: string | null;
1097
+ }>;
1098
+ assistance_types: Array<{
1099
+ id: string;
1100
+ code: string;
1101
+ title: string;
1102
+ description: string | null;
1103
+ }>;
1104
+ }
1105
+ export interface AssistantProfileView {
1106
+ id: string;
1107
+ user_id: string;
1108
+ bio: string | null;
1109
+ status: 'draft' | 'private' | 'public' | 'suspended' | 'deleted';
1110
+ lifecycle_status: string;
1111
+ availability_status: string | null;
1112
+ availability_start_date: string | null;
1113
+ hours_per_week: number | null;
1114
+ availability_notes: string | null;
1115
+ demographic_gender: string | null;
1116
+ demographic_birth_year: number | null;
1117
+ demographic_marital_status: string | null;
1118
+ demographic_citizenship: string | null;
1119
+ preference_norwegian_proficiency: string | null;
1120
+ preference_open_to_job_travel: boolean | null;
1121
+ preference_target_group: string | null;
1122
+ preference_has_drivers_license: boolean | null;
1123
+ preference_willing_to_relocate: boolean | null;
1124
+ employment_current_status: string | null;
1125
+ police_check_can_obtain: string | null;
1126
+ police_check_has_valid: boolean | null;
1127
+ police_check_expiry_date: string | null;
1128
+ police_check_notes: string | null;
1129
+ visibility_show_phone: boolean | null;
1130
+ visibility_show_email: boolean | null;
1131
+ visibility_preferred_contact: string | null;
1132
+ visibility_name_display: string | null;
1133
+ generated_title: string | null;
1134
+ view_count: number | null;
1135
+ display_name: string;
1136
+ accept_terms: boolean | null;
1137
+ accept_police_check: boolean | null;
1138
+ terms_fully_accepted: boolean;
1139
+ published_at: string | null;
1140
+ expires_at: string | null;
1141
+ unpublished_at: string | null;
1142
+ created_at: string;
1143
+ updated_at: string;
1144
+ last_active_at: string | null;
1145
+ deleted_at: string | null;
1146
+ email: string;
1147
+ email_verified: boolean | null;
1148
+ given_name: string | null;
1149
+ family_name: string | null;
1150
+ full_name: string | null;
1151
+ picture: string | null;
1152
+ phone: string | null;
1153
+ search_vector: any | null;
1154
+ locations: Array<{
1155
+ id: string;
1156
+ city: string;
1157
+ postal_code: string | null;
1158
+ display_name: string | null;
1159
+ address: string | null;
1160
+ country: string | null;
1161
+ lat: number | null;
1162
+ lng: number | null;
1163
+ max_distance_km: number | null;
1164
+ is_primary: boolean | null;
1165
+ sort_order: number | null;
1166
+ description: string | null;
1167
+ }>;
1168
+ interests: Array<{
1169
+ id: string;
1170
+ title: string;
1171
+ description: string | null;
1172
+ is_custom: boolean;
1173
+ template_id: string | null;
1174
+ sort_order: number;
1175
+ }>;
1176
+ responsibilities: Array<{
1177
+ id: string;
1178
+ title: string;
1179
+ description: string | null;
1180
+ is_custom: boolean;
1181
+ template_id: string | null;
1182
+ sort_order: number;
1183
+ }>;
1184
+ work_schedules: Array<{
1185
+ id: string;
1186
+ title: string;
1187
+ description: string | null;
1188
+ is_custom: boolean;
1189
+ template_id: string | null;
1190
+ sort_order: number;
1191
+ }>;
1192
+ assistance_types: Array<{
1193
+ id: string;
1194
+ assistance_type_id: string;
1195
+ code: string;
1196
+ title: string;
1197
+ description: string | null;
1198
+ sort_order: number;
1199
+ }>;
1200
+ attachments: Array<{
1201
+ id: string;
1202
+ file_name: string;
1203
+ original_name: string;
1204
+ mime_type: string;
1205
+ file_size: number;
1206
+ file_type: string;
1207
+ description: string | null;
1208
+ storage_bucket: string;
1209
+ storage_path: string;
1210
+ uploaded_by: string;
1211
+ created_at: string;
1212
+ updated_at: string;
1213
+ }>;
1214
+ }
1215
+ export interface WorkSchedule {
1216
+ id: string;
1217
+ name: string;
1218
+ description: string | null;
1219
+ is_active: boolean;
1220
+ sort_order: number;
1221
+ created_at: string;
1222
+ updated_at: string;
1223
+ }
1224
+ export interface CreateWorkScheduleDto {
1225
+ name: string;
1226
+ description?: string;
1227
+ is_active?: boolean;
1228
+ sort_order?: number;
1229
+ }
1230
+ export interface UpdateWorkScheduleDto {
1231
+ name?: string;
1232
+ description?: string;
1233
+ is_active?: boolean;
1234
+ sort_order?: number;
1235
+ }
1236
+ export interface ReorderWorkSchedulesDto {
1237
+ items: Array<{
1238
+ id: string;
1239
+ sort_order: number;
1240
+ }>;
1241
+ }
1242
+ //# sourceMappingURL=api-types.d.ts.map