@updraft-solutions/mcrit-sdk 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/chunk-EE4YY3AU.js +2620 -0
  2. package/dist/chunk-H4CJ2YEQ.cjs +2620 -0
  3. package/dist/courses/index.d.cts +2 -2
  4. package/dist/courses/index.d.ts +2 -2
  5. package/dist/index.cjs +201 -5
  6. package/dist/index.d.cts +3 -3
  7. package/dist/index.d.ts +3 -3
  8. package/dist/index.js +207 -11
  9. package/dist/schemas/index.cjs +198 -2
  10. package/dist/schemas/index.d.cts +3157 -128
  11. package/dist/schemas/index.d.ts +3157 -128
  12. package/dist/schemas/index.js +201 -5
  13. package/dist/training-C9rIBUeV.d.cts +101685 -0
  14. package/dist/training-C9rIBUeV.d.ts +101685 -0
  15. package/dist/types/index.cjs +1 -1
  16. package/dist/types/index.d.cts +278 -6
  17. package/dist/types/index.d.ts +278 -6
  18. package/dist/types/index.js +1 -1
  19. package/package.json +1 -1
  20. package/src/courses/index.ts +2 -2
  21. package/src/index.ts +42 -0
  22. package/src/schemas/common.ts +69 -5
  23. package/src/schemas/course-milestone.ts +78 -0
  24. package/src/schemas/equipment.ts +27 -0
  25. package/src/schemas/form-template.ts +416 -0
  26. package/src/schemas/index.ts +7 -1
  27. package/src/schemas/location-map.ts +175 -0
  28. package/src/schemas/models.ts +201 -100
  29. package/src/schemas/newsletter.ts +362 -0
  30. package/src/schemas/todo.ts +46 -0
  31. package/src/schemas/training.ts +500 -0
  32. package/src/types/ai.ts +85 -0
  33. package/src/types/aircraft-block.ts +23 -0
  34. package/src/types/api.ts +3 -1
  35. package/src/types/background-task.ts +28 -0
  36. package/src/types/compliance.ts +27 -3
  37. package/src/types/index.ts +5 -0
  38. package/src/types/landing-fee.ts +92 -0
  39. package/src/types/models.ts +46 -3
  40. package/src/types/roles.ts +26 -0
  41. package/dist/chunk-RC2BBT6H.cjs +0 -1384
  42. package/dist/chunk-WQLDSZNN.js +0 -1384
  43. package/dist/models-Bc5BKYuI.d.cts +0 -36898
  44. package/dist/models-Bc5BKYuI.d.ts +0 -36898
  45. package/src/schemas/fee.ts +0 -37
  46. /package/dist/{chunk-LXNCAKJZ.js → chunk-2WJHTRIE.js} +0 -0
  47. /package/dist/{chunk-MOOGM3DW.cjs → chunk-DCEOET63.cjs} +0 -0
@@ -1,1384 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/schemas/common.ts
2
- var _zod = require('zod');
3
- var zNullableBool = _zod.z.boolean().nullable().optional();
4
- var zNetGross = _zod.z.enum(["net", "gross"]).optional();
5
- var zContactDTO = _zod.z.object({
6
- name: _zod.z.string().optional(),
7
- email: _zod.z.string().email().optional(),
8
- phone: _zod.z.string().optional()
9
- });
10
- var zPhpMoneyObject = _zod.z.object({
11
- amount: _zod.z.number(),
12
- currency: _zod.z.string(),
13
- formatted: _zod.z.string()
14
- });
15
- var contactAttributeSchema = _zod.z.object({
16
- name: _zod.z.string().optional(),
17
- email: _zod.z.string().optional(),
18
- phone: _zod.z.string().optional(),
19
- company: _zod.z.string().optional(),
20
- fax: _zod.z.string().optional()
21
- });
22
- var BaseModel = _zod.z.object({
23
- type: _zod.z.string(),
24
- id: _zod.z.number(),
25
- created_at: _zod.z.string(),
26
- updated_at: _zod.z.string()
27
- });
28
- var mediaSchema = _zod.z.object({
29
- type: _zod.z.literal("media"),
30
- id: _zod.z.number(),
31
- description: _zod.z.string().optional(),
32
- collection_name: _zod.z.string().optional(),
33
- conversions: _zod.z.record(_zod.z.string().url()).optional(),
34
- created_at: _zod.z.string().optional(),
35
- updated_at: _zod.z.string().optional(),
36
- url: _zod.z.string().optional(),
37
- mime_type: _zod.z.string().optional(),
38
- file_name: _zod.z.string().optional(),
39
- size: _zod.z.number().optional()
40
- });
41
- var mediaCollection = _zod.z.object({
42
- avatar: mediaSchema.nullable().optional(),
43
- header: mediaSchema.nullable().optional(),
44
- images: _zod.z.array(mediaSchema).nullable().optional(),
45
- documents: _zod.z.array(mediaSchema).nullable().optional()
46
- }).nullable().optional();
47
- var userSchema = _zod.z.object({
48
- type: _zod.z.literal("user"),
49
- id: _zod.z.number(),
50
- name: _zod.z.string(),
51
- email: _zod.z.string().optional(),
52
- mobile: _zod.z.string().optional()
53
- });
54
- var companySchema = _zod.z.object({
55
- type: _zod.z.literal("company"),
56
- id: _zod.z.number(),
57
- name: _zod.z.string(),
58
- media: mediaCollection,
59
- can: _zod.z.record(_zod.z.string(), _zod.z.boolean().nullable()).optional(),
60
- permissions: _zod.z.array(_zod.z.string()).optional(),
61
- // Company display timezone (companies.timezone, default Europe/Berlin
62
- // server-side); booking/event surfaces render in this zone. Optional:
63
- // slim company payloads may omit it.
64
- timezone: _zod.z.string().optional(),
65
- ai_landing_fee_invoices_enabled: _zod.z.boolean().optional()
66
- });
67
-
68
- // src/schemas/models.ts
69
-
70
- var baseMembershipSchema = _zod.z.object({
71
- type: _zod.z.literal("membership"),
72
- id: _zod.z.number(),
73
- user_id: _zod.z.number(),
74
- user: userSchema.optional(),
75
- company_id: _zod.z.number(),
76
- company: companySchema.nullable().optional(),
77
- name: _zod.z.string(),
78
- phone: _zod.z.string().nullable().optional(),
79
- status: _zod.z.string(),
80
- instructor: _zod.z.boolean(),
81
- admin: _zod.z.boolean(),
82
- accountant: _zod.z.boolean(),
83
- student: _zod.z.boolean(),
84
- content_creator: _zod.z.boolean(),
85
- charter_client: _zod.z.boolean(),
86
- roles: _zod.z.array(
87
- _zod.z.object({
88
- id: _zod.z.number(),
89
- name: _zod.z.string()
90
- }).passthrough()
91
- ).optional(),
92
- created_at: _zod.z.string(),
93
- updated_at: _zod.z.string(),
94
- can: _zod.z.object({
95
- update: zNullableBool,
96
- deactivate: zNullableBool,
97
- activate: zNullableBool,
98
- delete: zNullableBool
99
- }).optional()
100
- });
101
- var membershipSchema = baseMembershipSchema.extend({
102
- remarks: _zod.z.string().nullable().optional(),
103
- confirmed_at: _zod.z.string().nullable(),
104
- created_at: _zod.z.string(),
105
- updated_at: _zod.z.string()
106
- });
107
- var documentType = _zod.z.object({
108
- label: _zod.z.string(),
109
- description: _zod.z.string(),
110
- documentTypeClass: _zod.z.string(),
111
- requiresFile: _zod.z.boolean().optional(),
112
- fieldDefinitions: _zod.z.object({
113
- base: _zod.z.record(_zod.z.any()).optional(),
114
- data: _zod.z.record(_zod.z.any()).optional()
115
- }).optional(),
116
- validationRules: _zod.z.record(_zod.z.any()).optional()
117
- });
118
- var priceSchema = _zod.z.object({
119
- id: _zod.z.number(),
120
- gross_total: zPhpMoneyObject,
121
- net_total: zPhpMoneyObject,
122
- tax_percentage: _zod.z.number(),
123
- valid_from: _zod.z.string(),
124
- created_at: _zod.z.string(),
125
- updated_at: _zod.z.string(),
126
- input_value: _zod.z.number().optional(),
127
- net_gross: zNetGross
128
- });
129
- var feeSchema = BaseModel.extend({
130
- type: _zod.z.literal("fee"),
131
- id: _zod.z.number(),
132
- price: priceSchema.optional(),
133
- prices: _zod.z.array(priceSchema).optional(),
134
- provider: _zod.z.string().optional(),
135
- company_id: _zod.z.number().optional(),
136
- company: companySchema.optional(),
137
- ident: _zod.z.string().optional(),
138
- category: _zod.z.string().optional(),
139
- subcategory: _zod.z.string().optional(),
140
- title: _zod.z.string().optional(),
141
- relation: _zod.z.array(_zod.z.enum(["booking", "flightLog", "invoice", "instructor"])).optional(),
142
- payment_per: _zod.z.string().optional(),
143
- can: _zod.z.object({
144
- update: zNullableBool,
145
- delete: zNullableBool
146
- }).optional(),
147
- course_count: _zod.z.number().optional(),
148
- count: _zod.z.number().optional(),
149
- variant: _zod.z.string().optional(),
150
- is_optional: _zod.z.boolean().optional(),
151
- input_value: _zod.z.number().optional(),
152
- net_gross: zNetGross,
153
- tax_percentage: _zod.z.string().optional(),
154
- valid_from: _zod.z.string()
155
- });
156
- var courseFeeSchema = feeSchema.extend({
157
- count: _zod.z.number().optional(),
158
- variant: _zod.z.string().optional(),
159
- is_optional: _zod.z.boolean().optional(),
160
- is_initial_payment: _zod.z.boolean().optional()
161
- });
162
- var airplaneSchema = BaseModel.extend({
163
- type: _zod.z.literal("airplane"),
164
- id: _zod.z.number(),
165
- company_id: _zod.z.number(),
166
- registration: _zod.z.string(),
167
- model: _zod.z.string(),
168
- media: mediaCollection.optional(),
169
- fee: feeSchema.optional(),
170
- booking_fee: feeSchema.optional(),
171
- hasFavorited: _zod.z.boolean().optional(),
172
- homebase_id: _zod.z.number().nullable().optional(),
173
- hangar_location_map_feature_id: _zod.z.number().nullable().optional(),
174
- parking_lng: _zod.z.number().nullable().optional(),
175
- parking_lat: _zod.z.number().nullable().optional(),
176
- hangar: _zod.z.object({
177
- id: _zod.z.number(),
178
- name: _zod.z.string().nullable(),
179
- kind: _zod.z.string(),
180
- location_map_id: _zod.z.number()
181
- }).nullable().optional(),
182
- description: _zod.z.string().optional(),
183
- capacity: _zod.z.number().optional(),
184
- manufacturer: _zod.z.string().optional(),
185
- year_of_construction: _zod.z.string().optional(),
186
- span: _zod.z.string().optional(),
187
- height: _zod.z.string().optional(),
188
- length: _zod.z.string().optional(),
189
- ato: _zod.z.boolean().optional(),
190
- restricted_access: _zod.z.boolean().optional(),
191
- global_airplane_id: _zod.z.number().nullable().optional(),
192
- is_master: _zod.z.boolean().optional(),
193
- master_company_id: _zod.z.number().nullable().optional(),
194
- shared_companies: _zod.z.array(_zod.z.object({ id: _zod.z.number(), name: _zod.z.string() })).optional(),
195
- is_simulator: _zod.z.boolean().optional(),
196
- category: _zod.z.string().nullable().optional(),
197
- averageFuelConsumption: _zod.z.string().nullable().optional(),
198
- weightUnitString: _zod.z.string().optional(),
199
- fuelUnitString: _zod.z.string().optional(),
200
- isoCountryCodeFromRegistration: _zod.z.string().optional(),
201
- registrationWithoutSpecialChars: _zod.z.string().nullable().optional(),
202
- equipmentCodes: _zod.z.array(_zod.z.string()).nullable().optional(),
203
- compliance_required: _zod.z.boolean().optional(),
204
- show_on_website: _zod.z.boolean().optional(),
205
- is_public: _zod.z.boolean().optional(),
206
- company_timezone: _zod.z.string().optional(),
207
- defaultFlightType: _zod.z.string().optional(),
208
- defaultFlightRule: _zod.z.string().optional(),
209
- status: _zod.z.string().optional(),
210
- can: _zod.z.object({
211
- view: zNullableBool,
212
- update: zNullableBool,
213
- viewMaintenanceEvents: zNullableBool,
214
- createMaintenanceEvents: zNullableBool,
215
- createBooking: zNullableBool,
216
- createAirplanePermissions: zNullableBool
217
- })
218
- });
219
- var airplaneShareInviteSchema = _zod.z.object({
220
- id: _zod.z.number(),
221
- status: _zod.z.enum(["pending", "accepted", "declined", "withdrawn"]),
222
- responded_at: _zod.z.string().nullable().optional(),
223
- created_at: _zod.z.string().optional(),
224
- global_airplane: _zod.z.object({
225
- id: _zod.z.number(),
226
- registration: _zod.z.string(),
227
- model: _zod.z.string()
228
- }),
229
- master_company: _zod.z.object({ id: _zod.z.number(), name: _zod.z.string() }),
230
- invited_company: _zod.z.object({ id: _zod.z.number(), name: _zod.z.string() })
231
- });
232
- var airplanePermissionSchema = _zod.z.object({
233
- type: _zod.z.literal("airplane_permission"),
234
- id: _zod.z.number(),
235
- airplane_id: _zod.z.number(),
236
- airplane: airplaneSchema.optional(),
237
- membership_id: _zod.z.number(),
238
- membership: baseMembershipSchema.optional(),
239
- notes: _zod.z.string().nullable().optional(),
240
- conditions: _zod.z.string().nullable().optional(),
241
- expires_at: _zod.z.string().nullable().optional(),
242
- is_active: _zod.z.boolean(),
243
- granted_by: userSchema.nullable().optional(),
244
- granted_at: _zod.z.string(),
245
- created_at: _zod.z.string(),
246
- updated_at: _zod.z.string(),
247
- can: _zod.z.object({
248
- view: zNullableBool,
249
- update: zNullableBool,
250
- delete: zNullableBool
251
- }).optional()
252
- });
253
- var landingFeeSchema = _zod.z.object({
254
- id: _zod.z.number(),
255
- airplane_id: _zod.z.number(),
256
- price: priceSchema.optional()
257
- });
258
- var aircraftRatingSchema = _zod.z.object({
259
- id: _zod.z.number(),
260
- manufacturer: _zod.z.string(),
261
- aircraft_model: _zod.z.string(),
262
- licence_endorsement: _zod.z.string(),
263
- is_complex: _zod.z.boolean(),
264
- is_single_pilot: _zod.z.boolean(),
265
- is_high_performance: _zod.z.boolean(),
266
- is_multi_pilot: _zod.z.boolean(),
267
- remarks: _zod.z.string().optional()
268
- });
269
- var userAircraftRatingSchema = _zod.z.object({
270
- id: _zod.z.number(),
271
- user_id: _zod.z.number(),
272
- aircraft_rating_id: _zod.z.number(),
273
- aircraftRating: aircraftRatingSchema,
274
- reminder_enabled: _zod.z.boolean(),
275
- reminder_days: _zod.z.number(),
276
- expires_at: _zod.z.string(),
277
- created_at: _zod.z.string(),
278
- updated_at: _zod.z.string()
279
- });
280
- var userQualificationSchema = _zod.z.object({
281
- id: _zod.z.number(),
282
- user_id: _zod.z.number(),
283
- title: _zod.z.string(),
284
- reminder_enabled: _zod.z.boolean(),
285
- reminder_days: _zod.z.number(),
286
- expires_at: _zod.z.string(),
287
- created_at: _zod.z.string(),
288
- updated_at: _zod.z.string()
289
- });
290
- var airportSchema = _zod.z.object({
291
- // Aligned with what AirportResource actually serializes: `type` and
292
- // `country` are absent on minified payloads (e.g. booking waypoint
293
- // airports); coordinates + municipality/iso_country ride along on the
294
- // full shape.
295
- type: _zod.z.literal("airport").optional(),
296
- id: _zod.z.number(),
297
- ident: _zod.z.string(),
298
- name: _zod.z.string(),
299
- country: _zod.z.string().optional(),
300
- municipality: _zod.z.string().nullable().optional(),
301
- iso_country: _zod.z.string().nullable().optional(),
302
- latitude_deg: _zod.z.number().nullable().optional(),
303
- longitude_deg: _zod.z.number().nullable().optional()
304
- });
305
- var recurringFlightSchema = _zod.z.object({
306
- id: _zod.z.number(),
307
- departure_airport_id: _zod.z.number(),
308
- departure_airport: airportSchema.optional(),
309
- destination_airport_id: _zod.z.number(),
310
- destination_airport: airportSchema.optional(),
311
- dep_time: _zod.z.string(),
312
- arr_time: _zod.z.string()
313
- });
314
- var maintenanceEventSchema = _zod.z.object({
315
- type: _zod.z.literal("maintenanceEvent"),
316
- id: _zod.z.number(),
317
- airplane_id: _zod.z.number(),
318
- company_id: _zod.z.number(),
319
- description: _zod.z.string().nullable(),
320
- remarks: _zod.z.string().nullable(),
321
- scheduled_at: _zod.z.string().nullable(),
322
- completed_at: _zod.z.string().nullable(),
323
- created_at: _zod.z.string(),
324
- updated_at: _zod.z.string(),
325
- elapsed_time: _zod.z.number().nullable(),
326
- remaining_time: _zod.z.number().nullable(),
327
- can: _zod.z.object({
328
- update: zNullableBool
329
- }).optional()
330
- });
331
- var maintenanceEventEstimationSchema = _zod.z.object({
332
- estimated_at: _zod.z.string().nullable().optional(),
333
- actual_at: _zod.z.string().nullable().optional()
334
- });
335
- var maintenanceStatusSchema = _zod.z.object({
336
- intervalSetting: _zod.z.number().optional(),
337
- lastMaintenanceEvent: maintenanceEventSchema.nullable().optional(),
338
- nextMaintenanceEventEstimation: maintenanceEventEstimationSchema.nullable().optional()
339
- });
340
- var extendedAirplaneSchema = airplaneSchema.extend({
341
- manufacturer: _zod.z.string().optional(),
342
- capacity: _zod.z.number().optional(),
343
- description: _zod.z.string().optional(),
344
- homebase_id: _zod.z.number().optional(),
345
- ato: _zod.z.boolean().optional(),
346
- year_of_construction: _zod.z.string().optional(),
347
- span: _zod.z.string().optional(),
348
- height: _zod.z.string().optional(),
349
- length: _zod.z.string().optional(),
350
- empty_weight: _zod.z.string().optional(),
351
- max_takeoff_mass: _zod.z.string().optional(),
352
- max_speed: _zod.z.string().optional(),
353
- max_range: _zod.z.string().optional(),
354
- power: _zod.z.string().optional(),
355
- fuel_type: _zod.z.string().optional(),
356
- oil_min: _zod.z.string().optional(),
357
- oil_max: _zod.z.string().optional(),
358
- oil_type_winter: _zod.z.string().optional(),
359
- oil_type_summer: _zod.z.string().optional(),
360
- minimumCrewCount: _zod.z.number().optional(),
361
- VFR: _zod.z.boolean().optional(),
362
- VFRNight: _zod.z.boolean().optional(),
363
- IFR: _zod.z.boolean().optional(),
364
- IFRKnownIcing: _zod.z.boolean().optional(),
365
- equipment: _zod.z.array(_zod.z.any()).optional(),
366
- contact: contactAttributeSchema.optional(),
367
- hints: _zod.z.object({
368
- booking: _zod.z.object({
369
- ifr: _zod.z.string().optional()
370
- }).optional()
371
- }).optional(),
372
- has_pre_paid_package: _zod.z.boolean().optional(),
373
- fee_id: _zod.z.number().optional(),
374
- booking_fee_id: _zod.z.number().optional(),
375
- logging_required_from: _zod.z.string().optional(),
376
- foreflight_profile_url: _zod.z.string().optional(),
377
- media: _zod.z.object({
378
- avatar: _zod.z.any().optional(),
379
- header: _zod.z.any().optional(),
380
- images: _zod.z.array(_zod.z.any()).optional(),
381
- documents: _zod.z.array(_zod.z.any()).optional()
382
- }).optional(),
383
- master_media: mediaCollection.optional(),
384
- can: _zod.z.object({
385
- update: zNullableBool,
386
- viewMaintenanceEvents: zNullableBool
387
- }).optional()
388
- });
389
- var availSchema = _zod.z.object({
390
- type: _zod.z.literal("avail"),
391
- id: _zod.z.number(),
392
- airplane_id: _zod.z.number(),
393
- title: _zod.z.string(),
394
- etdZ: _zod.z.string(),
395
- etaZ: _zod.z.string(),
396
- can: _zod.z.object({
397
- update: zNullableBool
398
- }).optional()
399
- });
400
- var bookingWaypointSchema = _zod.z.object({
401
- sequence: _zod.z.number(),
402
- airport_id: _zod.z.number(),
403
- airport: _zod.z.object({
404
- id: _zod.z.number(),
405
- ident: _zod.z.string(),
406
- name: _zod.z.string(),
407
- municipality: _zod.z.string().nullable().optional(),
408
- iso_country: _zod.z.string().nullable().optional(),
409
- latitude_deg: _zod.z.number().nullable().optional(),
410
- longitude_deg: _zod.z.number().nullable().optional()
411
- }).nullable().optional()
412
- });
413
- var bookingSchema = BaseModel.extend({
414
- type: _zod.z.literal("booking"),
415
- ifr: _zod.z.boolean().default(false),
416
- airplane_id: _zod.z.number(),
417
- author: userSchema.optional(),
418
- company_id: _zod.z.number(),
419
- company_name: _zod.z.string().nullable().optional(),
420
- company: companySchema.optional(),
421
- airplane: airplaneSchema.optional(),
422
- etdZ: _zod.z.string(),
423
- etaZ: _zod.z.string(),
424
- duration_minutes: _zod.z.number().optional(),
425
- departure_airport_id: _zod.z.number().optional(),
426
- destination_airport_id: _zod.z.number().optional(),
427
- departure_airport: airportSchema.optional(),
428
- destination_airport: airportSchema.optional(),
429
- waypoints: _zod.z.array(bookingWaypointSchema).optional(),
430
- // Flat, always-present home timezone on BookingResource.
431
- company_timezone: _zod.z.string().nullable().optional(),
432
- // Slim per-booking training-record status, present when the backend
433
- // eager-loaded `trainingRecord` (enrollment bookings surfaces).
434
- training_record_status: _zod.z.enum(["draft", "awaiting_signatures", "signed"]).nullable().optional(),
435
- next_booking_id: _zod.z.number().nullable().optional(),
436
- previous_booking_id: _zod.z.number().nullable().optional(),
437
- maintenance: _zod.z.number().optional(),
438
- is_solo: _zod.z.boolean().optional().default(false),
439
- course_enrollment_id: _zod.z.number().nullable().optional(),
440
- // Minimal linked enrollment, present on booking show/store/update payloads.
441
- // Used by the form prefill registry to derive the J2 Flugauftrag course.
442
- course_enrollment: _zod.z.object({
443
- id: _zod.z.number(),
444
- course_id: _zod.z.number().nullable().optional()
445
- }).nullable().optional(),
446
- crew_assignments: _zod.z.array(
447
- _zod.z.object({
448
- id: _zod.z.number().optional(),
449
- membership_id: _zod.z.number(),
450
- role: _zod.z.string(),
451
- is_pic: _zod.z.boolean().optional(),
452
- membership: _zod.z.any().optional()
453
- })
454
- ).optional(),
455
- contact: zContactDTO.optional(),
456
- remarks: _zod.z.string().optional(),
457
- can: _zod.z.object({
458
- update: zNullableBool
459
- }).optional()
460
- });
461
- var alertSchema = _zod.z.object({
462
- id: _zod.z.number(),
463
- start_time: _zod.z.string(),
464
- finish_time: _zod.z.string(),
465
- can: _zod.z.object({
466
- update: zNullableBool
467
- }).optional()
468
- });
469
- var documentSchema = _zod.z.object({
470
- type: _zod.z.literal("document"),
471
- id: _zod.z.number(),
472
- documentable_type: _zod.z.string(),
473
- documentable_id: _zod.z.number(),
474
- document_type_class: _zod.z.string(),
475
- document_type: documentType.optional(),
476
- title: _zod.z.string().nullable().optional(),
477
- description: _zod.z.string().nullable().optional(),
478
- expires_at: _zod.z.string().nullable().optional(),
479
- is_notifiable: _zod.z.boolean().default(true),
480
- notification_days: _zod.z.number().nullable().optional(),
481
- data: _zod.z.record(_zod.z.any()).nullable().optional(),
482
- created_by: _zod.z.number().nullable().optional(),
483
- updated_by: _zod.z.number().nullable().optional(),
484
- created_at: _zod.z.string(),
485
- updated_at: _zod.z.string(),
486
- media: _zod.z.array(mediaSchema).optional(),
487
- can: _zod.z.object({
488
- update: zNullableBool,
489
- delete: zNullableBool,
490
- share: zNullableBool
491
- }).optional()
492
- });
493
- var documentRequirement = _zod.z.object({
494
- id: _zod.z.number(),
495
- form_requirement_group_id: _zod.z.number(),
496
- form_template_id: _zod.z.number(),
497
- form_template: _zod.z.object({
498
- id: _zod.z.number(),
499
- name: _zod.z.string(),
500
- slug: _zod.z.string().nullable().optional()
501
- }).optional(),
502
- logical_group: _zod.z.string().nullable().optional(),
503
- group_operator: _zod.z.enum(["AND", "OR"]).nullable().optional(),
504
- metadata: _zod.z.object({
505
- min_validity_days: _zod.z.number().optional(),
506
- max_validity_days: _zod.z.number().optional(),
507
- required_fields: _zod.z.array(_zod.z.string()).optional()
508
- }).nullable().optional(),
509
- created_by: _zod.z.number().nullable().optional(),
510
- updated_by: _zod.z.number().nullable().optional(),
511
- created_at: _zod.z.string(),
512
- updated_at: _zod.z.string()
513
- });
514
- var documentRequirementGroup = _zod.z.object({
515
- id: _zod.z.number(),
516
- name: _zod.z.string(),
517
- description: _zod.z.string().nullable().optional(),
518
- target_model_type: _zod.z.string(),
519
- company_id: _zod.z.number().nullable().optional(),
520
- is_default_template: _zod.z.boolean().default(false),
521
- is_active: _zod.z.boolean().default(true),
522
- requirements: _zod.z.array(documentRequirement).optional(),
523
- // Backend uses 'requirements'
524
- documentRequirements: _zod.z.array(documentRequirement).optional(),
525
- // Frontend compatibility
526
- group_operator: _zod.z.enum(["AND", "OR"]).default("AND"),
527
- documentRequirements_count: _zod.z.number().optional(),
528
- assignments_count: _zod.z.number().optional(),
529
- created_by: _zod.z.number().nullable().optional(),
530
- updated_by: _zod.z.number().nullable().optional(),
531
- created_at: _zod.z.string(),
532
- updated_at: _zod.z.string(),
533
- can: _zod.z.object({
534
- update: zNullableBool,
535
- delete: zNullableBool,
536
- assign: zNullableBool
537
- }).optional()
538
- });
539
- var documentRequirementGroupAssignment = _zod.z.object({
540
- id: _zod.z.number(),
541
- assignable_type: _zod.z.string(),
542
- assignable_id: _zod.z.number(),
543
- requirement_group_id: _zod.z.number(),
544
- requirement_group: documentRequirementGroup.optional(),
545
- requirementGroup: documentRequirementGroup.optional(),
546
- // Frontend compatibility
547
- created_at: _zod.z.string(),
548
- updated_at: _zod.z.string()
549
- });
550
- var documentComplianceStatus = _zod.z.object({
551
- overall_compliant: _zod.z.boolean(),
552
- missing_documents: _zod.z.array(
553
- _zod.z.object({
554
- requirement_id: _zod.z.number(),
555
- document_type_class: _zod.z.string(),
556
- document_type: documentType.optional(),
557
- reason: _zod.z.string()
558
- })
559
- ).optional(),
560
- expired_documents: _zod.z.array(
561
- _zod.z.object({
562
- document_id: _zod.z.number(),
563
- document_type_class: _zod.z.string(),
564
- document_type: documentType.optional(),
565
- expired_at: _zod.z.string()
566
- })
567
- ).optional(),
568
- expiring_soon_documents: _zod.z.array(
569
- _zod.z.object({
570
- document_id: _zod.z.number(),
571
- document_type_class: _zod.z.string(),
572
- document_type: documentType.optional(),
573
- expires_at: _zod.z.string(),
574
- days_until_expiry: _zod.z.number()
575
- })
576
- ).optional(),
577
- group_compliance_status: _zod.z.array(
578
- _zod.z.object({
579
- group_id: _zod.z.number(),
580
- group_name: _zod.z.string(),
581
- is_compliant: _zod.z.boolean(),
582
- missing_requirements: _zod.z.array(_zod.z.string()).optional()
583
- })
584
- ).optional()
585
- });
586
- var documentShareSchema = _zod.z.object({
587
- id: _zod.z.number(),
588
- document_id: _zod.z.number(),
589
- document: documentSchema.optional(),
590
- shared_by: _zod.z.number(),
591
- sharer: userSchema.optional(),
592
- shared_with_type: _zod.z.string(),
593
- shared_with_id: _zod.z.number(),
594
- can_download: _zod.z.boolean().default(true),
595
- can_delete: _zod.z.boolean().default(false),
596
- expires_at: _zod.z.string().nullable().optional(),
597
- accessed_at: _zod.z.string().nullable().optional(),
598
- access_count: _zod.z.number().default(0),
599
- created_at: _zod.z.string(),
600
- updated_at: _zod.z.string()
601
- });
602
- var allowedDocumentTypeSchema = _zod.z.object({
603
- label: _zod.z.string(),
604
- description: _zod.z.string(),
605
- documentTypeClass: _zod.z.string(),
606
- requiresFile: _zod.z.boolean(),
607
- category: _zod.z.string().optional(),
608
- fieldDefinitions: _zod.z.object({
609
- base: _zod.z.record(
610
- _zod.z.object({
611
- type: _zod.z.string(),
612
- label: _zod.z.string(),
613
- required: _zod.z.boolean().optional(),
614
- rules: _zod.z.array(_zod.z.any()).optional(),
615
- options: _zod.z.array(_zod.z.any()).optional(),
616
- hint: _zod.z.string().optional()
617
- })
618
- ).optional(),
619
- data: _zod.z.record(
620
- _zod.z.object({
621
- type: _zod.z.string(),
622
- label: _zod.z.string(),
623
- required: _zod.z.boolean().optional(),
624
- rules: _zod.z.array(_zod.z.any()).optional(),
625
- options: _zod.z.array(_zod.z.any()).optional(),
626
- hint: _zod.z.string().optional()
627
- })
628
- ).optional()
629
- }).optional()
630
- });
631
- var flightLogSchema = _zod.z.object({
632
- type: _zod.z.literal("flightLog"),
633
- id: _zod.z.number(),
634
- airplane_id: _zod.z.number(),
635
- airplane: airplaneSchema.optional(),
636
- ac_type: _zod.z.string().nullable().optional(),
637
- ac_reg: _zod.z.string().nullable().optional(),
638
- ac_call: _zod.z.string().nullable().optional(),
639
- booking_id: _zod.z.number().nullable().optional(),
640
- membership_id: _zod.z.number().nullable().optional(),
641
- membership: baseMembershipSchema.optional(),
642
- author_id: _zod.z.number(),
643
- author: userSchema.optional(),
644
- invoice_id: _zod.z.number().nullable().optional(),
645
- special_flight_id: _zod.z.number().nullable().optional(),
646
- etdZ: _zod.z.string(),
647
- etaZ: _zod.z.string(),
648
- duration_minutes: _zod.z.number(),
649
- crew_assignments: _zod.z.array(
650
- _zod.z.object({
651
- id: _zod.z.number().optional(),
652
- membership_id: _zod.z.number(),
653
- role: _zod.z.string(),
654
- is_pic: _zod.z.boolean().optional(),
655
- membership: _zod.z.any().optional()
656
- })
657
- ).optional(),
658
- total_landings: _zod.z.number().nullable().optional(),
659
- full_stop_landings: _zod.z.number().nullable().optional(),
660
- touch_and_gos: _zod.z.number().default(0),
661
- low_approaches: _zod.z.number().default(0),
662
- flight_rule: _zod.z.string().nullable().optional(),
663
- flight_time_type: _zod.z.string().nullable().optional(),
664
- dep_airport_id: _zod.z.number().nullable().optional(),
665
- dep_airport: airportSchema.optional(),
666
- arr_airport_id: _zod.z.number().nullable().optional(),
667
- arr_airport: airportSchema.optional(),
668
- from: _zod.z.string().nullable().optional(),
669
- to: _zod.z.string().nullable().optional(),
670
- costs: zPhpMoneyObject.nullable().optional(),
671
- charge: zPhpMoneyObject.nullable().optional(),
672
- remarks: _zod.z.string().nullable().optional(),
673
- created_at: _zod.z.string(),
674
- updated_at: _zod.z.string(),
675
- can: _zod.z.object({
676
- update: zNullableBool,
677
- delete: zNullableBool
678
- }).optional()
679
- });
680
- var invoiceSchema = _zod.z.object({
681
- type: _zod.z.literal("invoice"),
682
- id: _zod.z.number(),
683
- title: _zod.z.string(),
684
- membership_id: _zod.z.number(),
685
- membership: baseMembershipSchema.optional(),
686
- company_id: _zod.z.number().optional(),
687
- company: companySchema.optional(),
688
- sequence_number: _zod.z.string().nullable().optional(),
689
- order_number: _zod.z.string().nullable().optional(),
690
- invoice_date: _zod.z.string().nullable().optional(),
691
- due_date: _zod.z.string().nullable().optional(),
692
- status: _zod.z.string().nullable().optional(),
693
- paid_status: _zod.z.string().nullable().optional(),
694
- total: zPhpMoneyObject.nullable().optional(),
695
- subtotal: zPhpMoneyObject.nullable().optional(),
696
- tax_amount: zPhpMoneyObject.nullable().optional(),
697
- discount_amount: zPhpMoneyObject.nullable().optional(),
698
- paid_at: _zod.z.string().nullable().optional(),
699
- released_at: _zod.z.string().nullable().optional(),
700
- sent: _zod.z.number().default(0),
701
- viewed: _zod.z.boolean().default(false),
702
- remarks: _zod.z.string().nullable().optional(),
703
- notes: _zod.z.string().nullable().optional(),
704
- recipient_company: _zod.z.string().nullable().optional(),
705
- recipient_name: _zod.z.string().nullable().optional(),
706
- recipient_address_street_1: _zod.z.string().nullable().optional(),
707
- recipient_address_street_2: _zod.z.string().nullable().optional(),
708
- recipient_city: _zod.z.string().nullable().optional(),
709
- recipient_zip: _zod.z.string().nullable().optional(),
710
- recipient_state: _zod.z.string().nullable().optional(),
711
- recipient_country: _zod.z.string().nullable().optional(),
712
- recipient_vat_id: _zod.z.string().nullable().optional(),
713
- issuer_name: _zod.z.string().nullable().optional(),
714
- issuer_address_street_1: _zod.z.string().nullable().optional(),
715
- issuer_address_street_2: _zod.z.string().nullable().optional(),
716
- issuer_city: _zod.z.string().nullable().optional(),
717
- issuer_zip: _zod.z.string().nullable().optional(),
718
- issuer_state: _zod.z.string().nullable().optional(),
719
- created_at: _zod.z.string(),
720
- updated_at: _zod.z.string(),
721
- can: _zod.z.object({
722
- update: zNullableBool,
723
- delete: zNullableBool,
724
- release: zNullableBool,
725
- view: zNullableBool
726
- }).optional()
727
- });
728
- var scheduledFlightSchema = _zod.z.object({
729
- type: _zod.z.literal("scheduledFlight"),
730
- id: _zod.z.number(),
731
- booking_id: _zod.z.number(),
732
- departure_time: _zod.z.string(),
733
- arrival_time: _zod.z.string(),
734
- departure_airport_id: _zod.z.number().nullable().optional(),
735
- departure_airport: airportSchema.optional(),
736
- arrival_airport_id: _zod.z.number().nullable().optional(),
737
- arrival_airport: airportSchema.optional(),
738
- flight_number: _zod.z.string().nullable().optional(),
739
- notes: _zod.z.string().nullable().optional(),
740
- created_at: _zod.z.string(),
741
- updated_at: _zod.z.string()
742
- });
743
- var qualificationSchema = _zod.z.object({
744
- type: _zod.z.literal("qualification"),
745
- id: _zod.z.number(),
746
- title: _zod.z.string(),
747
- description: _zod.z.string().nullable().optional(),
748
- category: _zod.z.string().nullable().optional(),
749
- created_at: _zod.z.string(),
750
- updated_at: _zod.z.string()
751
- });
752
- var expenseSchema = _zod.z.object({
753
- type: _zod.z.literal("expense"),
754
- id: _zod.z.number(),
755
- company_id: _zod.z.number(),
756
- company: companySchema.optional(),
757
- membership_id: _zod.z.number(),
758
- membership: baseMembershipSchema.optional(),
759
- title: _zod.z.string(),
760
- description: _zod.z.string().nullable().optional(),
761
- amount: zPhpMoneyObject,
762
- status: _zod.z.string().nullable().optional(),
763
- expense_date: _zod.z.string().nullable().optional(),
764
- invoice_id: _zod.z.number().nullable().optional(),
765
- created_at: _zod.z.string(),
766
- updated_at: _zod.z.string(),
767
- can: _zod.z.object({
768
- update: zNullableBool,
769
- delete: zNullableBool,
770
- approve: zNullableBool
771
- }).optional()
772
- });
773
- var tagSchema = _zod.z.object({
774
- type: _zod.z.literal("tag").optional(),
775
- id: _zod.z.number(),
776
- name: _zod.z.string(),
777
- color: _zod.z.string().nullable().optional()
778
- });
779
- var courseCheckSyllabusSchema = _zod.z.object({
780
- id: _zod.z.number(),
781
- name: _zod.z.string(),
782
- version: _zod.z.number(),
783
- kind: _zod.z.enum(["regular", "progress_check"]).default("regular")
784
- });
785
- var courseSchema = _zod.z.object({
786
- type: _zod.z.literal("course"),
787
- id: _zod.z.number(),
788
- company_id: _zod.z.number(),
789
- company: companySchema.optional(),
790
- name: _zod.z.string(),
791
- description: _zod.z.string().nullable().optional(),
792
- start_date: _zod.z.string().nullable().optional(),
793
- end_date: _zod.z.string().nullable().optional(),
794
- max_participants: _zod.z.number().nullable().optional(),
795
- price: zPhpMoneyObject.nullable().optional(),
796
- instructor_id: _zod.z.number().nullable().optional(),
797
- instructor: userSchema.optional(),
798
- aircraft_required: _zod.z.boolean().default(false),
799
- qualification_id: _zod.z.number().nullable().optional(),
800
- qualification: qualificationSchema.optional(),
801
- is_archived: _zod.z.boolean().optional(),
802
- archived_at: _zod.z.string().nullable().optional(),
803
- category: _zod.z.string().nullable().optional(),
804
- title: _zod.z.string().nullable().optional(),
805
- subtitle: _zod.z.string().nullable().optional(),
806
- content: _zod.z.string().nullable().optional(),
807
- footer: _zod.z.string().nullable().optional(),
808
- // Syllabus assignment pointers: `syllabus_id` drives the Übersicht,
809
- // `booking_form_syllabus_id` the per-flight Ausbildungsnachweis.
810
- syllabus_id: _zod.z.number().nullable().optional(),
811
- booking_form_syllabus_id: _zod.z.number().nullable().optional(),
812
- // Present only when the backend eager-loaded `checkSyllabi`.
813
- check_syllabi: _zod.z.array(courseCheckSyllabusSchema).optional(),
814
- tags: _zod.z.array(tagSchema).optional(),
815
- created_at: _zod.z.string(),
816
- updated_at: _zod.z.string(),
817
- // Loose record on purpose: gates are policy-reflected server-side and
818
- // grow over time (useAssistant, …) — same convention as companySchema.
819
- can: _zod.z.record(_zod.z.string(), zNullableBool).optional()
820
- });
821
- var courseEnrollmentMetricsSchema = _zod.z.object({
822
- last_flight_at: _zod.z.string().nullable(),
823
- next_flight_at: _zod.z.string().nullable(),
824
- total_flight_minutes: _zod.z.number().default(0),
825
- flags: _zod.z.record(_zod.z.string(), _zod.z.union([_zod.z.boolean(), _zod.z.number(), _zod.z.string()])).default({}),
826
- calculated_at: _zod.z.string().nullable()
827
- });
828
- var courseEnrollmentSchema = _zod.z.object({
829
- type: _zod.z.literal("course_enrollment").optional(),
830
- id: _zod.z.number(),
831
- course_id: _zod.z.number(),
832
- membership_id: _zod.z.number(),
833
- company_id: _zod.z.number(),
834
- mentor_id: _zod.z.number().nullable().optional(),
835
- status: _zod.z.enum(["enrolled", "completed", "cancelled", "suspended"]),
836
- enrollment_date: _zod.z.string(),
837
- completion_date: _zod.z.string().nullable().optional(),
838
- progress_percentage: _zod.z.number().default(0),
839
- milestone_count: _zod.z.number().optional(),
840
- comments: _zod.z.string().nullable().optional(),
841
- initial_payment_generated: _zod.z.boolean().optional(),
842
- initial_payment_removable: _zod.z.boolean().optional(),
843
- // Element-driven training progress (see m-crit-api
844
- // docs/features/training-tracking.md).
845
- tracked_training_elements_count: _zod.z.number().optional(),
846
- progress_source: _zod.z.enum(["training_elements", "milestones"]).optional(),
847
- metrics: courseEnrollmentMetricsSchema.optional(),
848
- created_at: _zod.z.string(),
849
- updated_at: _zod.z.string(),
850
- course: courseSchema.optional(),
851
- membership: membershipSchema.optional(),
852
- mentor: userSchema.optional(),
853
- // Loose record on purpose: gates are policy-reflected server-side and
854
- // grow over time (updateTraining, manageInitialPayment, …).
855
- can: _zod.z.record(_zod.z.string(), zNullableBool).optional()
856
- });
857
- var eventSchema = _zod.z.object({
858
- type: _zod.z.literal("event"),
859
- id: _zod.z.number(),
860
- company_id: _zod.z.number(),
861
- company: companySchema.optional(),
862
- title: _zod.z.string(),
863
- description: _zod.z.string().nullable().optional(),
864
- start_date: _zod.z.string(),
865
- end_date: _zod.z.string().nullable().optional(),
866
- all_day: _zod.z.boolean().default(false),
867
- location: _zod.z.string().nullable().optional(),
868
- category: _zod.z.string().nullable().optional(),
869
- created_by: _zod.z.number(),
870
- creator: userSchema.optional(),
871
- created_at: _zod.z.string(),
872
- updated_at: _zod.z.string(),
873
- can: _zod.z.object({
874
- update: zNullableBool,
875
- delete: zNullableBool,
876
- attend: zNullableBool
877
- }).optional()
878
- });
879
- var addressSchema = _zod.z.object({
880
- type: _zod.z.literal("address"),
881
- id: _zod.z.number(),
882
- company_id: _zod.z.number().nullable().optional(),
883
- addressable_type: _zod.z.string(),
884
- addressable_id: _zod.z.number(),
885
- street: _zod.z.string().nullable().optional(),
886
- house_number: _zod.z.string().nullable().optional(),
887
- postal_code: _zod.z.string().nullable().optional(),
888
- city: _zod.z.string().nullable().optional(),
889
- state: _zod.z.string().nullable().optional(),
890
- country: _zod.z.string().nullable().optional(),
891
- additional_info: _zod.z.string().nullable().optional(),
892
- vat_id: _zod.z.string().nullable().optional(),
893
- created_at: _zod.z.string(),
894
- updated_at: _zod.z.string()
895
- });
896
- var roleSchema = _zod.z.object({
897
- type: _zod.z.literal("role"),
898
- id: _zod.z.number(),
899
- company_id: _zod.z.number(),
900
- name: _zod.z.string(),
901
- description: _zod.z.string().nullable().optional(),
902
- permissions: _zod.z.array(_zod.z.string()).optional(),
903
- created_at: _zod.z.string(),
904
- updated_at: _zod.z.string()
905
- });
906
- var landingSchema = _zod.z.object({
907
- type: _zod.z.literal("landing"),
908
- id: _zod.z.number(),
909
- flight_log_id: _zod.z.number(),
910
- approach_type_id: _zod.z.number().nullable().optional(),
911
- airport_id: _zod.z.number().nullable().optional(),
912
- airport: airportSchema.optional(),
913
- landing_fee_id: _zod.z.number().nullable().optional(),
914
- landing_time: _zod.z.string(),
915
- price: zPhpMoneyObject.nullable().optional(),
916
- created_at: _zod.z.string(),
917
- updated_at: _zod.z.string()
918
- });
919
- var ticketSchema = _zod.z.object({
920
- type: _zod.z.literal("ticket"),
921
- id: _zod.z.number(),
922
- company_id: _zod.z.number().nullable().optional(),
923
- company: companySchema.optional(),
924
- user_id: _zod.z.number(),
925
- user: userSchema.optional(),
926
- assigned_to: _zod.z.number().nullable().optional(),
927
- assignee: userSchema.optional(),
928
- title: _zod.z.string(),
929
- description: _zod.z.string(),
930
- status: _zod.z.string(),
931
- priority: _zod.z.string().nullable().optional(),
932
- category: _zod.z.string().nullable().optional(),
933
- resolved_at: _zod.z.string().nullable().optional(),
934
- created_at: _zod.z.string(),
935
- updated_at: _zod.z.string(),
936
- can: _zod.z.object({
937
- update: zNullableBool,
938
- delete: zNullableBool,
939
- resolve: zNullableBool
940
- }).optional()
941
- });
942
- var runwaySchema = _zod.z.object({
943
- type: _zod.z.literal("runway"),
944
- id: _zod.z.number(),
945
- airport_id: _zod.z.number(),
946
- airport: airportSchema.optional(),
947
- name: _zod.z.string(),
948
- length_m: _zod.z.number().nullable().optional(),
949
- width_m: _zod.z.number().nullable().optional(),
950
- surface: _zod.z.string().nullable().optional(),
951
- heading: _zod.z.number().nullable().optional(),
952
- elevation_m: _zod.z.number().nullable().optional(),
953
- active: _zod.z.boolean().default(true),
954
- created_at: _zod.z.string(),
955
- updated_at: _zod.z.string()
956
- });
957
- var settingSchema = _zod.z.object({
958
- type: _zod.z.literal("setting"),
959
- id: _zod.z.number(),
960
- model_type: _zod.z.string(),
961
- model_id: _zod.z.number(),
962
- key: _zod.z.string(),
963
- value: _zod.z.any(),
964
- created_at: _zod.z.string(),
965
- updated_at: _zod.z.string()
966
- });
967
- var postSchema = _zod.z.object({
968
- type: _zod.z.literal("post"),
969
- id: _zod.z.number(),
970
- company_id: _zod.z.number(),
971
- postable_type: _zod.z.string().nullable().optional(),
972
- postable_id: _zod.z.number().nullable().optional(),
973
- author_id: _zod.z.number(),
974
- author: userSchema.optional(),
975
- title: _zod.z.string().nullable().optional(),
976
- content: _zod.z.string(),
977
- sticky: _zod.z.boolean().default(false),
978
- public: _zod.z.boolean().default(false),
979
- media: mediaCollection.optional(),
980
- created_at: _zod.z.string(),
981
- updated_at: _zod.z.string(),
982
- can: _zod.z.object({
983
- view: zNullableBool,
984
- update: zNullableBool,
985
- delete: zNullableBool,
986
- setFlags: zNullableBool,
987
- restore: zNullableBool,
988
- forceDelete: zNullableBool
989
- }).optional()
990
- });
991
- var commentSchema = _zod.z.object({
992
- type: _zod.z.literal("comment"),
993
- id: _zod.z.number(),
994
- commentable_type: _zod.z.string().optional(),
995
- commentable_id: _zod.z.number().optional(),
996
- parent_id: _zod.z.number().optional().nullable(),
997
- title: _zod.z.string().optional().nullable(),
998
- body: _zod.z.string(),
999
- author_id: _zod.z.number().optional(),
1000
- author: userSchema.optional(),
1001
- created_at: _zod.z.string(),
1002
- updated_at: _zod.z.string().optional(),
1003
- children: _zod.z.lazy(() => commentSchema.array()).optional(),
1004
- can: _zod.z.object({
1005
- view: _zod.z.boolean().optional(),
1006
- update: _zod.z.boolean().optional().nullable(),
1007
- delete: _zod.z.boolean().optional().nullable(),
1008
- reply: _zod.z.boolean().optional(),
1009
- viewComments: _zod.z.boolean().optional(),
1010
- createComments: _zod.z.boolean().optional()
1011
- }).optional()
1012
- });
1013
- var airplaneIssueSeverityEnum = _zod.z.enum([
1014
- "minor",
1015
- "major",
1016
- "grounding"
1017
- ]);
1018
- var airplaneIssueStatusEnum = _zod.z.enum(["open", "deferred", "resolved"]);
1019
- var airplaneIssueSchema = _zod.z.object({
1020
- type: _zod.z.literal("airplaneIssue"),
1021
- id: _zod.z.number(),
1022
- airplane_id: _zod.z.number(),
1023
- title: _zod.z.string().nullable().optional(),
1024
- body: _zod.z.string(),
1025
- severity: airplaneIssueSeverityEnum,
1026
- ata_chapter: _zod.z.string().nullable().optional(),
1027
- status: airplaneIssueStatusEnum,
1028
- reporter: userSchema.optional(),
1029
- resolver: userSchema.optional(),
1030
- deferred_at: _zod.z.string().nullable().optional(),
1031
- deferred_until: _zod.z.string().nullable().optional(),
1032
- deferral_notes: _zod.z.string().nullable().optional(),
1033
- resolved_at: _zod.z.string().nullable().optional(),
1034
- resolution_notes: _zod.z.string().nullable().optional(),
1035
- attachments: _zod.z.array(mediaSchema).optional(),
1036
- created_at: _zod.z.string(),
1037
- updated_at: _zod.z.string().optional(),
1038
- can: _zod.z.object({
1039
- view: _zod.z.boolean().nullable().optional(),
1040
- update: _zod.z.boolean().nullable().optional(),
1041
- resolve: _zod.z.boolean().nullable().optional(),
1042
- defer: _zod.z.boolean().nullable().optional(),
1043
- reopen: _zod.z.boolean().nullable().optional(),
1044
- delete: _zod.z.boolean().nullable().optional()
1045
- }).optional()
1046
- });
1047
- var specialFlightSchema = _zod.z.object({
1048
- type: _zod.z.literal("specialFlight"),
1049
- id: _zod.z.number(),
1050
- company_id: _zod.z.number(),
1051
- company: companySchema.optional(),
1052
- name: _zod.z.string(),
1053
- description: _zod.z.string().nullable().optional(),
1054
- fee_id: _zod.z.number().nullable().optional(),
1055
- fee: feeSchema.optional(),
1056
- active: _zod.z.boolean().default(true),
1057
- created_at: _zod.z.string(),
1058
- updated_at: _zod.z.string()
1059
- });
1060
- var prePaidPackageSchema = _zod.z.object({
1061
- type: _zod.z.literal("prePaidPackage"),
1062
- id: _zod.z.number(),
1063
- company_id: _zod.z.number(),
1064
- company: companySchema.optional(),
1065
- name: _zod.z.string(),
1066
- description: _zod.z.string().nullable().optional(),
1067
- balance: zPhpMoneyObject,
1068
- initial_amount: zPhpMoneyObject,
1069
- discount_percentage: _zod.z.number().nullable().optional(),
1070
- valid_until: _zod.z.string().nullable().optional(),
1071
- created_at: _zod.z.string(),
1072
- updated_at: _zod.z.string(),
1073
- can: _zod.z.object({
1074
- update: zNullableBool,
1075
- delete: zNullableBool,
1076
- assign: zNullableBool
1077
- }).optional()
1078
- });
1079
- var expenseItemSchema = _zod.z.object({
1080
- type: _zod.z.literal("expenseItem"),
1081
- id: _zod.z.number(),
1082
- company_id: _zod.z.number(),
1083
- company: companySchema.optional(),
1084
- name: _zod.z.string(),
1085
- description: _zod.z.string().nullable().optional(),
1086
- category: _zod.z.string().nullable().optional(),
1087
- active: _zod.z.boolean().default(true),
1088
- created_at: _zod.z.string(),
1089
- updated_at: _zod.z.string()
1090
- });
1091
- var waypointSchema = _zod.z.object({
1092
- type: _zod.z.literal("waypoint"),
1093
- id: _zod.z.number(),
1094
- identifier: _zod.z.string(),
1095
- name: _zod.z.string(),
1096
- latitude: _zod.z.number(),
1097
- longitude: _zod.z.number(),
1098
- elevation_m: _zod.z.number().nullable().optional(),
1099
- country: _zod.z.string().nullable().optional(),
1100
- created_at: _zod.z.string(),
1101
- updated_at: _zod.z.string()
1102
- });
1103
- var approachTypeSchema = _zod.z.object({
1104
- type: _zod.z.literal("approachType"),
1105
- id: _zod.z.number(),
1106
- name: _zod.z.string(),
1107
- abbreviation: _zod.z.string(),
1108
- description: _zod.z.string().nullable().optional(),
1109
- created_at: _zod.z.string(),
1110
- updated_at: _zod.z.string()
1111
- });
1112
-
1113
- // src/schemas/faq.ts
1114
-
1115
- var FaqStatus = /* @__PURE__ */ ((FaqStatus2) => {
1116
- FaqStatus2["PENDING"] = "pending";
1117
- FaqStatus2["APPROVED"] = "approved";
1118
- FaqStatus2["REJECTED"] = "rejected";
1119
- return FaqStatus2;
1120
- })(FaqStatus || {});
1121
- var UserBasicSchema = _zod.z.object({
1122
- id: _zod.z.number(),
1123
- name: _zod.z.string(),
1124
- email: _zod.z.string().email()
1125
- }).nullable();
1126
- var FaqSchema = _zod.z.object({
1127
- type: _zod.z.literal("faq"),
1128
- id: _zod.z.number(),
1129
- company_id: _zod.z.number().nullable(),
1130
- faqable_type: _zod.z.string().nullable(),
1131
- faqable_id: _zod.z.number().nullable(),
1132
- category: _zod.z.string(),
1133
- subcategory: _zod.z.string().nullable(),
1134
- question: _zod.z.string(),
1135
- answer: _zod.z.string().nullable(),
1136
- order: _zod.z.number(),
1137
- is_active: _zod.z.boolean(),
1138
- status: _zod.z.enum(["pending", "approved", "rejected"]),
1139
- submitted_by: _zod.z.number().nullable(),
1140
- reviewed_by: _zod.z.number().nullable(),
1141
- reviewed_at: _zod.z.string().nullable(),
1142
- created_at: _zod.z.string(),
1143
- updated_at: _zod.z.string(),
1144
- submitter: UserBasicSchema.optional(),
1145
- reviewer: UserBasicSchema.optional(),
1146
- is_pending: _zod.z.boolean().optional(),
1147
- is_user_submitted: _zod.z.boolean().optional(),
1148
- can: _zod.z.object({
1149
- view: _zod.z.boolean().optional(),
1150
- update: _zod.z.boolean().optional(),
1151
- delete: _zod.z.boolean().optional(),
1152
- review: _zod.z.boolean().optional(),
1153
- submit: _zod.z.boolean().optional()
1154
- }).optional()
1155
- });
1156
- var SubmitFaqQuestionSchema = _zod.z.object({
1157
- category: _zod.z.string().min(1, "Category is required"),
1158
- subcategory: _zod.z.string().nullable().optional(),
1159
- question: _zod.z.string().min(10, "Question must be at least 10 characters")
1160
- });
1161
- var ReviewFaqSchema = _zod.z.object({
1162
- status: _zod.z.enum(["pending", "approved", "rejected"]),
1163
- answer: _zod.z.string().optional(),
1164
- category: _zod.z.string().optional(),
1165
- subcategory: _zod.z.string().nullable().optional(),
1166
- order: _zod.z.number().optional(),
1167
- is_active: _zod.z.boolean().optional()
1168
- });
1169
-
1170
- // src/schemas/fee.ts
1171
-
1172
- var FeeSchema = _zod.z.object({
1173
- id: _zod.z.number(),
1174
- type: _zod.z.literal("fee").optional(),
1175
- company_id: _zod.z.number(),
1176
- provider: _zod.z.string().nullable().optional(),
1177
- category: _zod.z.string(),
1178
- subcategory: _zod.z.string().nullable().optional(),
1179
- title: _zod.z.string(),
1180
- internal_title: _zod.z.string().nullable().optional(),
1181
- display_title: _zod.z.string().optional(),
1182
- relation: _zod.z.array(_zod.z.enum(["booking", "flightlog", "invoice", "instructor"])).nullable().optional(),
1183
- payment_per: _zod.z.enum(["perSession", "perFlight", "perBooking", "perHour"]).nullable().optional(),
1184
- price: _zod.z.any().optional(),
1185
- prices: _zod.z.array(_zod.z.any()).optional(),
1186
- can: _zod.z.object({
1187
- update: _zod.z.boolean().optional(),
1188
- delete: _zod.z.boolean().optional()
1189
- }).optional()
1190
- });
1191
- var FeeCategoryOptionsSchema = _zod.z.object({
1192
- categories: _zod.z.array(_zod.z.string()),
1193
- subcategories: _zod.z.record(_zod.z.string(), _zod.z.array(_zod.z.string()))
1194
- });
1195
-
1196
- // src/schemas/safety-report.ts
1197
-
1198
- var SafetyReportStatusEnum = _zod.z.enum([
1199
- "new",
1200
- "under_review",
1201
- "action_taken",
1202
- "closed"
1203
- ]);
1204
- var SafetyReportCategorySchema = _zod.z.object({
1205
- id: _zod.z.number(),
1206
- name: _zod.z.string(),
1207
- description: _zod.z.string().nullable(),
1208
- color: _zod.z.string(),
1209
- sort_order: _zod.z.number(),
1210
- is_active: _zod.z.boolean(),
1211
- is_global: _zod.z.boolean().optional(),
1212
- created_at: _zod.z.string().optional(),
1213
- updated_at: _zod.z.string().optional()
1214
- });
1215
- var SafetyReportCategoryFormSchema = _zod.z.object({
1216
- name: _zod.z.string().min(1, "Name is required").max(100, "Name must be at most 100 characters"),
1217
- description: _zod.z.string().max(500).nullable().optional(),
1218
- color: _zod.z.string().regex(/^#[0-9A-Fa-f]{6}$/, "Invalid hex color").nullable().optional(),
1219
- sort_order: _zod.z.number().int().min(0).optional(),
1220
- is_active: _zod.z.boolean().optional()
1221
- });
1222
- var SafetyReportMediaSchema = _zod.z.object({
1223
- id: _zod.z.number(),
1224
- file_name: _zod.z.string(),
1225
- mime_type: _zod.z.string(),
1226
- size: _zod.z.number(),
1227
- url: _zod.z.string().nullable()
1228
- });
1229
- var SafetyReportSchema = _zod.z.object({
1230
- id: _zod.z.number(),
1231
- incident_date: _zod.z.string(),
1232
- location: _zod.z.string().nullable(),
1233
- description: _zod.z.string(),
1234
- status: SafetyReportStatusEnum,
1235
- is_archived: _zod.z.boolean(),
1236
- category: SafetyReportCategorySchema.nullable().optional(),
1237
- attachments: _zod.z.array(SafetyReportMediaSchema).optional(),
1238
- attachments_count: _zod.z.number().optional(),
1239
- created_at: _zod.z.string(),
1240
- updated_at: _zod.z.string(),
1241
- can: _zod.z.record(_zod.z.string(), _zod.z.boolean()).optional()
1242
- });
1243
- var SafetyReportListResponseSchema = _zod.z.object({
1244
- data: _zod.z.array(SafetyReportSchema),
1245
- links: _zod.z.object({
1246
- first: _zod.z.string().nullable().optional(),
1247
- last: _zod.z.string().nullable().optional(),
1248
- prev: _zod.z.string().nullable().optional(),
1249
- next: _zod.z.string().nullable().optional()
1250
- }).optional(),
1251
- meta: _zod.z.object({
1252
- current_page: _zod.z.number(),
1253
- from: _zod.z.number().nullable(),
1254
- last_page: _zod.z.number(),
1255
- per_page: _zod.z.number(),
1256
- to: _zod.z.number().nullable(),
1257
- total: _zod.z.number()
1258
- }).optional()
1259
- });
1260
- var SafetyReportFormSchema = _zod.z.object({
1261
- incident_date: _zod.z.string().min(1, "Incident date is required"),
1262
- location: _zod.z.string().max(255).nullable().optional(),
1263
- description: _zod.z.string().min(10, "Description must be at least 10 characters").max(1e4, "Description must be at most 10000 characters")
1264
- });
1265
- var SafetyReportUpdateSchema = _zod.z.object({
1266
- status: SafetyReportStatusEnum.optional(),
1267
- category_id: _zod.z.number().nullable().optional()
1268
- });
1269
- var SafetyReportFilterSchema = _zod.z.object({
1270
- status: SafetyReportStatusEnum.optional(),
1271
- category_id: _zod.z.number().optional(),
1272
- date_from: _zod.z.string().optional(),
1273
- date_to: _zod.z.string().optional(),
1274
- include_archived: _zod.z.boolean().optional(),
1275
- search: _zod.z.string().optional(),
1276
- sort: _zod.z.enum(["incident_date", "created_at", "status"]).optional(),
1277
- direction: _zod.z.enum(["asc", "desc"]).optional(),
1278
- per_page: _zod.z.number().optional(),
1279
- page: _zod.z.number().optional()
1280
- });
1281
- var SafetyReportSubmissionResponseSchema = _zod.z.object({
1282
- message: _zod.z.string(),
1283
- submitted: _zod.z.boolean()
1284
- });
1285
- var SAFETY_REPORT_STATUS_LABELS = {
1286
- new: "New",
1287
- under_review: "Under Review",
1288
- action_taken: "Action Taken",
1289
- closed: "Closed"
1290
- };
1291
- var SAFETY_REPORT_STATUS_COLORS = {
1292
- new: "info",
1293
- under_review: "warning",
1294
- action_taken: "primary",
1295
- closed: "success"
1296
- };
1297
-
1298
-
1299
-
1300
-
1301
-
1302
-
1303
-
1304
-
1305
-
1306
-
1307
-
1308
-
1309
-
1310
-
1311
-
1312
-
1313
-
1314
-
1315
-
1316
-
1317
-
1318
-
1319
-
1320
-
1321
-
1322
-
1323
-
1324
-
1325
-
1326
-
1327
-
1328
-
1329
-
1330
-
1331
-
1332
-
1333
-
1334
-
1335
-
1336
-
1337
-
1338
-
1339
-
1340
-
1341
-
1342
-
1343
-
1344
-
1345
-
1346
-
1347
-
1348
-
1349
-
1350
-
1351
-
1352
-
1353
-
1354
-
1355
-
1356
-
1357
-
1358
-
1359
-
1360
-
1361
-
1362
-
1363
-
1364
-
1365
-
1366
-
1367
-
1368
-
1369
-
1370
-
1371
-
1372
-
1373
-
1374
-
1375
-
1376
-
1377
-
1378
-
1379
-
1380
-
1381
-
1382
-
1383
-
1384
- exports.zNullableBool = zNullableBool; exports.zNetGross = zNetGross; exports.zContactDTO = zContactDTO; exports.zPhpMoneyObject = zPhpMoneyObject; exports.contactAttributeSchema = contactAttributeSchema; exports.BaseModel = BaseModel; exports.mediaSchema = mediaSchema; exports.mediaCollection = mediaCollection; exports.userSchema = userSchema; exports.companySchema = companySchema; exports.baseMembershipSchema = baseMembershipSchema; exports.membershipSchema = membershipSchema; exports.documentType = documentType; exports.priceSchema = priceSchema; exports.feeSchema = feeSchema; exports.courseFeeSchema = courseFeeSchema; exports.airplaneSchema = airplaneSchema; exports.airplaneShareInviteSchema = airplaneShareInviteSchema; exports.airplanePermissionSchema = airplanePermissionSchema; exports.landingFeeSchema = landingFeeSchema; exports.aircraftRatingSchema = aircraftRatingSchema; exports.userAircraftRatingSchema = userAircraftRatingSchema; exports.userQualificationSchema = userQualificationSchema; exports.airportSchema = airportSchema; exports.recurringFlightSchema = recurringFlightSchema; exports.maintenanceEventSchema = maintenanceEventSchema; exports.maintenanceEventEstimationSchema = maintenanceEventEstimationSchema; exports.maintenanceStatusSchema = maintenanceStatusSchema; exports.extendedAirplaneSchema = extendedAirplaneSchema; exports.availSchema = availSchema; exports.bookingWaypointSchema = bookingWaypointSchema; exports.bookingSchema = bookingSchema; exports.alertSchema = alertSchema; exports.documentSchema = documentSchema; exports.documentRequirement = documentRequirement; exports.documentRequirementGroup = documentRequirementGroup; exports.documentRequirementGroupAssignment = documentRequirementGroupAssignment; exports.documentComplianceStatus = documentComplianceStatus; exports.documentShareSchema = documentShareSchema; exports.allowedDocumentTypeSchema = allowedDocumentTypeSchema; exports.flightLogSchema = flightLogSchema; exports.invoiceSchema = invoiceSchema; exports.scheduledFlightSchema = scheduledFlightSchema; exports.qualificationSchema = qualificationSchema; exports.expenseSchema = expenseSchema; exports.tagSchema = tagSchema; exports.courseCheckSyllabusSchema = courseCheckSyllabusSchema; exports.courseSchema = courseSchema; exports.courseEnrollmentMetricsSchema = courseEnrollmentMetricsSchema; exports.courseEnrollmentSchema = courseEnrollmentSchema; exports.eventSchema = eventSchema; exports.addressSchema = addressSchema; exports.roleSchema = roleSchema; exports.landingSchema = landingSchema; exports.ticketSchema = ticketSchema; exports.runwaySchema = runwaySchema; exports.settingSchema = settingSchema; exports.postSchema = postSchema; exports.commentSchema = commentSchema; exports.airplaneIssueSeverityEnum = airplaneIssueSeverityEnum; exports.airplaneIssueStatusEnum = airplaneIssueStatusEnum; exports.airplaneIssueSchema = airplaneIssueSchema; exports.specialFlightSchema = specialFlightSchema; exports.prePaidPackageSchema = prePaidPackageSchema; exports.expenseItemSchema = expenseItemSchema; exports.waypointSchema = waypointSchema; exports.approachTypeSchema = approachTypeSchema; exports.FaqStatus = FaqStatus; exports.FaqSchema = FaqSchema; exports.SubmitFaqQuestionSchema = SubmitFaqQuestionSchema; exports.ReviewFaqSchema = ReviewFaqSchema; exports.FeeSchema = FeeSchema; exports.FeeCategoryOptionsSchema = FeeCategoryOptionsSchema; exports.SafetyReportStatusEnum = SafetyReportStatusEnum; exports.SafetyReportCategorySchema = SafetyReportCategorySchema; exports.SafetyReportCategoryFormSchema = SafetyReportCategoryFormSchema; exports.SafetyReportMediaSchema = SafetyReportMediaSchema; exports.SafetyReportSchema = SafetyReportSchema; exports.SafetyReportListResponseSchema = SafetyReportListResponseSchema; exports.SafetyReportFormSchema = SafetyReportFormSchema; exports.SafetyReportUpdateSchema = SafetyReportUpdateSchema; exports.SafetyReportFilterSchema = SafetyReportFilterSchema; exports.SafetyReportSubmissionResponseSchema = SafetyReportSubmissionResponseSchema; exports.SAFETY_REPORT_STATUS_LABELS = SAFETY_REPORT_STATUS_LABELS; exports.SAFETY_REPORT_STATUS_COLORS = SAFETY_REPORT_STATUS_COLORS;