@updraft-solutions/mcrit-sdk 0.1.0 → 0.2.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.
- package/dist/{chunk-XKZQ5W7E.cjs → chunk-MZV7HMDC.cjs} +128 -27
- package/dist/{chunk-AN55SAGU.js → chunk-TTJCPQSZ.js} +127 -26
- package/dist/index.cjs +10 -2
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +9 -1
- package/dist/{models-CY3MmvCg.d.cts → models-B3GM-4AA.d.cts} +7684 -6243
- package/dist/{models-CY3MmvCg.d.ts → models-B3GM-4AA.d.ts} +7684 -6243
- package/dist/schemas/index.cjs +10 -2
- package/dist/schemas/index.d.cts +49 -49
- package/dist/schemas/index.d.ts +49 -49
- package/dist/schemas/index.js +9 -1
- package/dist/types/index.d.cts +6 -2
- package/dist/types/index.d.ts +6 -2
- package/package.json +9 -8
- package/src/schemas/common.ts +3 -0
- package/src/schemas/models.ts +153 -31
- package/src/types/models.ts +12 -0
|
@@ -55,7 +55,10 @@ var companySchema = _zod.z.object({
|
|
|
55
55
|
type: _zod.z.literal("company"),
|
|
56
56
|
id: _zod.z.number(),
|
|
57
57
|
name: _zod.z.string(),
|
|
58
|
-
media: mediaCollection
|
|
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
|
+
ai_landing_fee_invoices_enabled: _zod.z.boolean().optional()
|
|
59
62
|
});
|
|
60
63
|
|
|
61
64
|
// src/schemas/models.ts
|
|
@@ -68,11 +71,20 @@ var baseMembershipSchema = _zod.z.object({
|
|
|
68
71
|
company_id: _zod.z.number(),
|
|
69
72
|
company: companySchema.nullable().optional(),
|
|
70
73
|
name: _zod.z.string(),
|
|
74
|
+
phone: _zod.z.string().nullable().optional(),
|
|
71
75
|
status: _zod.z.string(),
|
|
72
76
|
instructor: _zod.z.boolean(),
|
|
73
77
|
admin: _zod.z.boolean(),
|
|
74
78
|
accountant: _zod.z.boolean(),
|
|
75
79
|
student: _zod.z.boolean(),
|
|
80
|
+
content_creator: _zod.z.boolean(),
|
|
81
|
+
charter_client: _zod.z.boolean(),
|
|
82
|
+
roles: _zod.z.array(
|
|
83
|
+
_zod.z.object({
|
|
84
|
+
id: _zod.z.number(),
|
|
85
|
+
name: _zod.z.string()
|
|
86
|
+
}).passthrough()
|
|
87
|
+
).optional(),
|
|
76
88
|
created_at: _zod.z.string(),
|
|
77
89
|
updated_at: _zod.z.string(),
|
|
78
90
|
can: _zod.z.object({
|
|
@@ -140,7 +152,8 @@ var feeSchema = BaseModel.extend({
|
|
|
140
152
|
var courseFeeSchema = feeSchema.extend({
|
|
141
153
|
count: _zod.z.number().optional(),
|
|
142
154
|
variant: _zod.z.string().optional(),
|
|
143
|
-
is_optional: _zod.z.boolean().optional()
|
|
155
|
+
is_optional: _zod.z.boolean().optional(),
|
|
156
|
+
is_initial_payment: _zod.z.boolean().optional()
|
|
144
157
|
});
|
|
145
158
|
var airplaneSchema = BaseModel.extend({
|
|
146
159
|
type: _zod.z.literal("airplane"),
|
|
@@ -148,16 +161,20 @@ var airplaneSchema = BaseModel.extend({
|
|
|
148
161
|
company_id: _zod.z.number(),
|
|
149
162
|
registration: _zod.z.string(),
|
|
150
163
|
model: _zod.z.string(),
|
|
151
|
-
media:
|
|
152
|
-
avatar: mediaSchema.nullable().optional(),
|
|
153
|
-
header: mediaSchema.nullable().optional(),
|
|
154
|
-
images: _zod.z.array(mediaSchema).nullable().optional(),
|
|
155
|
-
documents: _zod.z.array(mediaSchema).nullable().optional()
|
|
156
|
-
}).nullable().optional().optional(),
|
|
164
|
+
media: mediaCollection.optional(),
|
|
157
165
|
fee: feeSchema.optional(),
|
|
158
166
|
booking_fee: feeSchema.optional(),
|
|
159
167
|
hasFavorited: _zod.z.boolean().optional(),
|
|
160
168
|
homebase_id: _zod.z.number().nullable().optional(),
|
|
169
|
+
hangar_location_map_feature_id: _zod.z.number().nullable().optional(),
|
|
170
|
+
parking_lng: _zod.z.number().nullable().optional(),
|
|
171
|
+
parking_lat: _zod.z.number().nullable().optional(),
|
|
172
|
+
hangar: _zod.z.object({
|
|
173
|
+
id: _zod.z.number(),
|
|
174
|
+
name: _zod.z.string().nullable(),
|
|
175
|
+
kind: _zod.z.string(),
|
|
176
|
+
location_map_id: _zod.z.number()
|
|
177
|
+
}).nullable().optional(),
|
|
161
178
|
description: _zod.z.string().optional(),
|
|
162
179
|
capacity: _zod.z.number().optional(),
|
|
163
180
|
manufacturer: _zod.z.string().optional(),
|
|
@@ -173,7 +190,7 @@ var airplaneSchema = BaseModel.extend({
|
|
|
173
190
|
viewMaintenanceEvents: zNullableBool,
|
|
174
191
|
createMaintenanceEvents: zNullableBool,
|
|
175
192
|
createBooking: zNullableBool,
|
|
176
|
-
|
|
193
|
+
createAirplanePermissions: zNullableBool
|
|
177
194
|
})
|
|
178
195
|
});
|
|
179
196
|
var airplanePermissionSchema = _zod.z.object({
|
|
@@ -340,11 +357,9 @@ var bookingSchema = BaseModel.extend({
|
|
|
340
357
|
ifr: _zod.z.boolean().default(false),
|
|
341
358
|
airplane_id: _zod.z.number(),
|
|
342
359
|
author: userSchema.optional(),
|
|
343
|
-
attendants: _zod.z.array(userSchema).optional(),
|
|
344
360
|
company_id: _zod.z.number(),
|
|
345
361
|
company: companySchema.optional(),
|
|
346
362
|
airplane: airplaneSchema.optional(),
|
|
347
|
-
attendant_ids: _zod.z.array(_zod.z.number()).optional(),
|
|
348
363
|
etdZ: _zod.z.string(),
|
|
349
364
|
etaZ: _zod.z.string(),
|
|
350
365
|
duration_minutes: _zod.z.number().optional(),
|
|
@@ -355,6 +370,23 @@ var bookingSchema = BaseModel.extend({
|
|
|
355
370
|
next_booking_id: _zod.z.number().nullable().optional(),
|
|
356
371
|
previous_booking_id: _zod.z.number().nullable().optional(),
|
|
357
372
|
maintenance: _zod.z.number().optional(),
|
|
373
|
+
is_solo: _zod.z.boolean().optional().default(false),
|
|
374
|
+
course_enrollment_id: _zod.z.number().nullable().optional(),
|
|
375
|
+
// Minimal linked enrollment, present on booking show/store/update payloads.
|
|
376
|
+
// Used by the form prefill registry to derive the J2 Flugauftrag course.
|
|
377
|
+
course_enrollment: _zod.z.object({
|
|
378
|
+
id: _zod.z.number(),
|
|
379
|
+
course_id: _zod.z.number().nullable().optional()
|
|
380
|
+
}).nullable().optional(),
|
|
381
|
+
crew_assignments: _zod.z.array(
|
|
382
|
+
_zod.z.object({
|
|
383
|
+
id: _zod.z.number().optional(),
|
|
384
|
+
membership_id: _zod.z.number(),
|
|
385
|
+
role: _zod.z.string(),
|
|
386
|
+
is_pic: _zod.z.boolean().optional(),
|
|
387
|
+
membership: _zod.z.any().optional()
|
|
388
|
+
})
|
|
389
|
+
).optional(),
|
|
358
390
|
contact: zContactDTO.optional(),
|
|
359
391
|
remarks: _zod.z.string().optional(),
|
|
360
392
|
can: _zod.z.object({
|
|
@@ -395,9 +427,13 @@ var documentSchema = _zod.z.object({
|
|
|
395
427
|
});
|
|
396
428
|
var documentRequirement = _zod.z.object({
|
|
397
429
|
id: _zod.z.number(),
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
430
|
+
form_requirement_group_id: _zod.z.number(),
|
|
431
|
+
form_template_id: _zod.z.number(),
|
|
432
|
+
form_template: _zod.z.object({
|
|
433
|
+
id: _zod.z.number(),
|
|
434
|
+
name: _zod.z.string(),
|
|
435
|
+
slug: _zod.z.string().nullable().optional()
|
|
436
|
+
}).optional(),
|
|
401
437
|
logical_group: _zod.z.string().nullable().optional(),
|
|
402
438
|
group_operator: _zod.z.enum(["AND", "OR"]).nullable().optional(),
|
|
403
439
|
metadata: _zod.z.object({
|
|
@@ -419,9 +455,11 @@ var documentRequirementGroup = _zod.z.object({
|
|
|
419
455
|
is_default_template: _zod.z.boolean().default(false),
|
|
420
456
|
is_active: _zod.z.boolean().default(true),
|
|
421
457
|
requirements: _zod.z.array(documentRequirement).optional(),
|
|
458
|
+
// Backend uses 'requirements'
|
|
422
459
|
documentRequirements: _zod.z.array(documentRequirement).optional(),
|
|
460
|
+
// Frontend compatibility
|
|
423
461
|
group_operator: _zod.z.enum(["AND", "OR"]).default("AND"),
|
|
424
|
-
|
|
462
|
+
documentRequirements_count: _zod.z.number().optional(),
|
|
425
463
|
assignments_count: _zod.z.number().optional(),
|
|
426
464
|
created_by: _zod.z.number().nullable().optional(),
|
|
427
465
|
updated_by: _zod.z.number().nullable().optional(),
|
|
@@ -437,9 +475,10 @@ var documentRequirementGroupAssignment = _zod.z.object({
|
|
|
437
475
|
id: _zod.z.number(),
|
|
438
476
|
assignable_type: _zod.z.string(),
|
|
439
477
|
assignable_id: _zod.z.number(),
|
|
440
|
-
|
|
478
|
+
requirement_group_id: _zod.z.number(),
|
|
441
479
|
requirement_group: documentRequirementGroup.optional(),
|
|
442
480
|
requirementGroup: documentRequirementGroup.optional(),
|
|
481
|
+
// Frontend compatibility
|
|
443
482
|
created_at: _zod.z.string(),
|
|
444
483
|
updated_at: _zod.z.string()
|
|
445
484
|
});
|
|
@@ -542,11 +581,19 @@ var flightLogSchema = _zod.z.object({
|
|
|
542
581
|
etdZ: _zod.z.string(),
|
|
543
582
|
etaZ: _zod.z.string(),
|
|
544
583
|
duration_minutes: _zod.z.number(),
|
|
545
|
-
|
|
546
|
-
|
|
584
|
+
crew_assignments: _zod.z.array(
|
|
585
|
+
_zod.z.object({
|
|
586
|
+
id: _zod.z.number().optional(),
|
|
587
|
+
membership_id: _zod.z.number(),
|
|
588
|
+
role: _zod.z.string(),
|
|
589
|
+
is_pic: _zod.z.boolean().optional(),
|
|
590
|
+
membership: _zod.z.any().optional()
|
|
591
|
+
})
|
|
592
|
+
).optional(),
|
|
547
593
|
total_landings: _zod.z.number().nullable().optional(),
|
|
548
594
|
full_stop_landings: _zod.z.number().nullable().optional(),
|
|
549
595
|
touch_and_gos: _zod.z.number().default(0),
|
|
596
|
+
low_approaches: _zod.z.number().default(0),
|
|
550
597
|
flight_rule: _zod.z.string().nullable().optional(),
|
|
551
598
|
flight_time_type: _zod.z.string().nullable().optional(),
|
|
552
599
|
dep_airport_id: _zod.z.number().nullable().optional(),
|
|
@@ -597,6 +644,7 @@ var invoiceSchema = _zod.z.object({
|
|
|
597
644
|
recipient_zip: _zod.z.string().nullable().optional(),
|
|
598
645
|
recipient_state: _zod.z.string().nullable().optional(),
|
|
599
646
|
recipient_country: _zod.z.string().nullable().optional(),
|
|
647
|
+
recipient_vat_id: _zod.z.string().nullable().optional(),
|
|
600
648
|
issuer_name: _zod.z.string().nullable().optional(),
|
|
601
649
|
issuer_address_street_1: _zod.z.string().nullable().optional(),
|
|
602
650
|
issuer_address_street_2: _zod.z.string().nullable().optional(),
|
|
@@ -681,6 +729,13 @@ var courseSchema = _zod.z.object({
|
|
|
681
729
|
enroll: zNullableBool
|
|
682
730
|
}).optional()
|
|
683
731
|
});
|
|
732
|
+
var courseEnrollmentMetricsSchema = _zod.z.object({
|
|
733
|
+
last_flight_at: _zod.z.string().nullable(),
|
|
734
|
+
next_flight_at: _zod.z.string().nullable(),
|
|
735
|
+
total_flight_minutes: _zod.z.number().default(0),
|
|
736
|
+
flags: _zod.z.record(_zod.z.string(), _zod.z.union([_zod.z.boolean(), _zod.z.number(), _zod.z.string()])).default({}),
|
|
737
|
+
calculated_at: _zod.z.string().nullable()
|
|
738
|
+
});
|
|
684
739
|
var courseEnrollmentSchema = _zod.z.object({
|
|
685
740
|
type: _zod.z.literal("course_enrollment").optional(),
|
|
686
741
|
id: _zod.z.number(),
|
|
@@ -692,7 +747,11 @@ var courseEnrollmentSchema = _zod.z.object({
|
|
|
692
747
|
enrollment_date: _zod.z.string(),
|
|
693
748
|
completion_date: _zod.z.string().nullable().optional(),
|
|
694
749
|
progress_percentage: _zod.z.number().default(0),
|
|
750
|
+
milestone_count: _zod.z.number().optional(),
|
|
695
751
|
comments: _zod.z.string().nullable().optional(),
|
|
752
|
+
initial_payment_generated: _zod.z.boolean().optional(),
|
|
753
|
+
initial_payment_removable: _zod.z.boolean().optional(),
|
|
754
|
+
metrics: courseEnrollmentMetricsSchema.optional(),
|
|
696
755
|
created_at: _zod.z.string(),
|
|
697
756
|
updated_at: _zod.z.string(),
|
|
698
757
|
course: courseSchema.optional(),
|
|
@@ -740,6 +799,7 @@ var addressSchema = _zod.z.object({
|
|
|
740
799
|
state: _zod.z.string().nullable().optional(),
|
|
741
800
|
country: _zod.z.string().nullable().optional(),
|
|
742
801
|
additional_info: _zod.z.string().nullable().optional(),
|
|
802
|
+
vat_id: _zod.z.string().nullable().optional(),
|
|
743
803
|
created_at: _zod.z.string(),
|
|
744
804
|
updated_at: _zod.z.string()
|
|
745
805
|
});
|
|
@@ -817,20 +877,25 @@ var settingSchema = _zod.z.object({
|
|
|
817
877
|
var postSchema = _zod.z.object({
|
|
818
878
|
type: _zod.z.literal("post"),
|
|
819
879
|
id: _zod.z.number(),
|
|
820
|
-
|
|
821
|
-
|
|
880
|
+
company_id: _zod.z.number(),
|
|
881
|
+
postable_type: _zod.z.string().nullable().optional(),
|
|
882
|
+
postable_id: _zod.z.number().nullable().optional(),
|
|
822
883
|
author_id: _zod.z.number(),
|
|
823
884
|
author: userSchema.optional(),
|
|
824
|
-
title: _zod.z.string(),
|
|
885
|
+
title: _zod.z.string().nullable().optional(),
|
|
825
886
|
content: _zod.z.string(),
|
|
826
|
-
|
|
827
|
-
|
|
887
|
+
sticky: _zod.z.boolean().default(false),
|
|
888
|
+
public: _zod.z.boolean().default(false),
|
|
889
|
+
media: mediaCollection.optional(),
|
|
828
890
|
created_at: _zod.z.string(),
|
|
829
891
|
updated_at: _zod.z.string(),
|
|
830
892
|
can: _zod.z.object({
|
|
893
|
+
view: zNullableBool,
|
|
831
894
|
update: zNullableBool,
|
|
832
895
|
delete: zNullableBool,
|
|
833
|
-
|
|
896
|
+
setFlags: zNullableBool,
|
|
897
|
+
restore: zNullableBool,
|
|
898
|
+
forceDelete: zNullableBool
|
|
834
899
|
}).optional()
|
|
835
900
|
});
|
|
836
901
|
var commentSchema = _zod.z.object({
|
|
@@ -843,7 +908,6 @@ var commentSchema = _zod.z.object({
|
|
|
843
908
|
body: _zod.z.string(),
|
|
844
909
|
author_id: _zod.z.number().optional(),
|
|
845
910
|
author: userSchema.optional(),
|
|
846
|
-
resolved_at: _zod.z.string().optional().nullable(),
|
|
847
911
|
created_at: _zod.z.string(),
|
|
848
912
|
updated_at: _zod.z.string().optional(),
|
|
849
913
|
children: _zod.z.lazy(() => commentSchema.array()).optional(),
|
|
@@ -851,12 +915,45 @@ var commentSchema = _zod.z.object({
|
|
|
851
915
|
view: _zod.z.boolean().optional(),
|
|
852
916
|
update: _zod.z.boolean().optional().nullable(),
|
|
853
917
|
delete: _zod.z.boolean().optional().nullable(),
|
|
854
|
-
resolve: _zod.z.boolean().optional(),
|
|
855
918
|
reply: _zod.z.boolean().optional(),
|
|
856
919
|
viewComments: _zod.z.boolean().optional(),
|
|
857
920
|
createComments: _zod.z.boolean().optional()
|
|
858
921
|
}).optional()
|
|
859
922
|
});
|
|
923
|
+
var airplaneIssueSeverityEnum = _zod.z.enum([
|
|
924
|
+
"minor",
|
|
925
|
+
"major",
|
|
926
|
+
"grounding"
|
|
927
|
+
]);
|
|
928
|
+
var airplaneIssueStatusEnum = _zod.z.enum(["open", "deferred", "resolved"]);
|
|
929
|
+
var airplaneIssueSchema = _zod.z.object({
|
|
930
|
+
type: _zod.z.literal("airplaneIssue"),
|
|
931
|
+
id: _zod.z.number(),
|
|
932
|
+
airplane_id: _zod.z.number(),
|
|
933
|
+
title: _zod.z.string().nullable().optional(),
|
|
934
|
+
body: _zod.z.string(),
|
|
935
|
+
severity: airplaneIssueSeverityEnum,
|
|
936
|
+
ata_chapter: _zod.z.string().nullable().optional(),
|
|
937
|
+
status: airplaneIssueStatusEnum,
|
|
938
|
+
reporter: userSchema.optional(),
|
|
939
|
+
resolver: userSchema.optional(),
|
|
940
|
+
deferred_at: _zod.z.string().nullable().optional(),
|
|
941
|
+
deferred_until: _zod.z.string().nullable().optional(),
|
|
942
|
+
deferral_notes: _zod.z.string().nullable().optional(),
|
|
943
|
+
resolved_at: _zod.z.string().nullable().optional(),
|
|
944
|
+
resolution_notes: _zod.z.string().nullable().optional(),
|
|
945
|
+
attachments: _zod.z.array(mediaSchema).optional(),
|
|
946
|
+
created_at: _zod.z.string(),
|
|
947
|
+
updated_at: _zod.z.string().optional(),
|
|
948
|
+
can: _zod.z.object({
|
|
949
|
+
view: _zod.z.boolean().nullable().optional(),
|
|
950
|
+
update: _zod.z.boolean().nullable().optional(),
|
|
951
|
+
resolve: _zod.z.boolean().nullable().optional(),
|
|
952
|
+
defer: _zod.z.boolean().nullable().optional(),
|
|
953
|
+
reopen: _zod.z.boolean().nullable().optional(),
|
|
954
|
+
delete: _zod.z.boolean().nullable().optional()
|
|
955
|
+
}).optional()
|
|
956
|
+
});
|
|
860
957
|
var specialFlightSchema = _zod.z.object({
|
|
861
958
|
type: _zod.z.literal("specialFlight"),
|
|
862
959
|
id: _zod.z.number(),
|
|
@@ -1186,4 +1283,8 @@ var SAFETY_REPORT_STATUS_COLORS = {
|
|
|
1186
1283
|
|
|
1187
1284
|
|
|
1188
1285
|
|
|
1189
|
-
|
|
1286
|
+
|
|
1287
|
+
|
|
1288
|
+
|
|
1289
|
+
|
|
1290
|
+
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.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.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.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;
|
|
@@ -55,7 +55,10 @@ var companySchema = z.object({
|
|
|
55
55
|
type: z.literal("company"),
|
|
56
56
|
id: z.number(),
|
|
57
57
|
name: z.string(),
|
|
58
|
-
media: mediaCollection
|
|
58
|
+
media: mediaCollection,
|
|
59
|
+
can: z.record(z.string(), z.boolean().nullable()).optional(),
|
|
60
|
+
permissions: z.array(z.string()).optional(),
|
|
61
|
+
ai_landing_fee_invoices_enabled: z.boolean().optional()
|
|
59
62
|
});
|
|
60
63
|
|
|
61
64
|
// src/schemas/models.ts
|
|
@@ -68,11 +71,20 @@ var baseMembershipSchema = z2.object({
|
|
|
68
71
|
company_id: z2.number(),
|
|
69
72
|
company: companySchema.nullable().optional(),
|
|
70
73
|
name: z2.string(),
|
|
74
|
+
phone: z2.string().nullable().optional(),
|
|
71
75
|
status: z2.string(),
|
|
72
76
|
instructor: z2.boolean(),
|
|
73
77
|
admin: z2.boolean(),
|
|
74
78
|
accountant: z2.boolean(),
|
|
75
79
|
student: z2.boolean(),
|
|
80
|
+
content_creator: z2.boolean(),
|
|
81
|
+
charter_client: z2.boolean(),
|
|
82
|
+
roles: z2.array(
|
|
83
|
+
z2.object({
|
|
84
|
+
id: z2.number(),
|
|
85
|
+
name: z2.string()
|
|
86
|
+
}).passthrough()
|
|
87
|
+
).optional(),
|
|
76
88
|
created_at: z2.string(),
|
|
77
89
|
updated_at: z2.string(),
|
|
78
90
|
can: z2.object({
|
|
@@ -140,7 +152,8 @@ var feeSchema = BaseModel.extend({
|
|
|
140
152
|
var courseFeeSchema = feeSchema.extend({
|
|
141
153
|
count: z2.number().optional(),
|
|
142
154
|
variant: z2.string().optional(),
|
|
143
|
-
is_optional: z2.boolean().optional()
|
|
155
|
+
is_optional: z2.boolean().optional(),
|
|
156
|
+
is_initial_payment: z2.boolean().optional()
|
|
144
157
|
});
|
|
145
158
|
var airplaneSchema = BaseModel.extend({
|
|
146
159
|
type: z2.literal("airplane"),
|
|
@@ -148,16 +161,20 @@ var airplaneSchema = BaseModel.extend({
|
|
|
148
161
|
company_id: z2.number(),
|
|
149
162
|
registration: z2.string(),
|
|
150
163
|
model: z2.string(),
|
|
151
|
-
media:
|
|
152
|
-
avatar: mediaSchema.nullable().optional(),
|
|
153
|
-
header: mediaSchema.nullable().optional(),
|
|
154
|
-
images: z2.array(mediaSchema).nullable().optional(),
|
|
155
|
-
documents: z2.array(mediaSchema).nullable().optional()
|
|
156
|
-
}).nullable().optional().optional(),
|
|
164
|
+
media: mediaCollection.optional(),
|
|
157
165
|
fee: feeSchema.optional(),
|
|
158
166
|
booking_fee: feeSchema.optional(),
|
|
159
167
|
hasFavorited: z2.boolean().optional(),
|
|
160
168
|
homebase_id: z2.number().nullable().optional(),
|
|
169
|
+
hangar_location_map_feature_id: z2.number().nullable().optional(),
|
|
170
|
+
parking_lng: z2.number().nullable().optional(),
|
|
171
|
+
parking_lat: z2.number().nullable().optional(),
|
|
172
|
+
hangar: z2.object({
|
|
173
|
+
id: z2.number(),
|
|
174
|
+
name: z2.string().nullable(),
|
|
175
|
+
kind: z2.string(),
|
|
176
|
+
location_map_id: z2.number()
|
|
177
|
+
}).nullable().optional(),
|
|
161
178
|
description: z2.string().optional(),
|
|
162
179
|
capacity: z2.number().optional(),
|
|
163
180
|
manufacturer: z2.string().optional(),
|
|
@@ -173,7 +190,7 @@ var airplaneSchema = BaseModel.extend({
|
|
|
173
190
|
viewMaintenanceEvents: zNullableBool,
|
|
174
191
|
createMaintenanceEvents: zNullableBool,
|
|
175
192
|
createBooking: zNullableBool,
|
|
176
|
-
|
|
193
|
+
createAirplanePermissions: zNullableBool
|
|
177
194
|
})
|
|
178
195
|
});
|
|
179
196
|
var airplanePermissionSchema = z2.object({
|
|
@@ -340,11 +357,9 @@ var bookingSchema = BaseModel.extend({
|
|
|
340
357
|
ifr: z2.boolean().default(false),
|
|
341
358
|
airplane_id: z2.number(),
|
|
342
359
|
author: userSchema.optional(),
|
|
343
|
-
attendants: z2.array(userSchema).optional(),
|
|
344
360
|
company_id: z2.number(),
|
|
345
361
|
company: companySchema.optional(),
|
|
346
362
|
airplane: airplaneSchema.optional(),
|
|
347
|
-
attendant_ids: z2.array(z2.number()).optional(),
|
|
348
363
|
etdZ: z2.string(),
|
|
349
364
|
etaZ: z2.string(),
|
|
350
365
|
duration_minutes: z2.number().optional(),
|
|
@@ -355,6 +370,23 @@ var bookingSchema = BaseModel.extend({
|
|
|
355
370
|
next_booking_id: z2.number().nullable().optional(),
|
|
356
371
|
previous_booking_id: z2.number().nullable().optional(),
|
|
357
372
|
maintenance: z2.number().optional(),
|
|
373
|
+
is_solo: z2.boolean().optional().default(false),
|
|
374
|
+
course_enrollment_id: z2.number().nullable().optional(),
|
|
375
|
+
// Minimal linked enrollment, present on booking show/store/update payloads.
|
|
376
|
+
// Used by the form prefill registry to derive the J2 Flugauftrag course.
|
|
377
|
+
course_enrollment: z2.object({
|
|
378
|
+
id: z2.number(),
|
|
379
|
+
course_id: z2.number().nullable().optional()
|
|
380
|
+
}).nullable().optional(),
|
|
381
|
+
crew_assignments: z2.array(
|
|
382
|
+
z2.object({
|
|
383
|
+
id: z2.number().optional(),
|
|
384
|
+
membership_id: z2.number(),
|
|
385
|
+
role: z2.string(),
|
|
386
|
+
is_pic: z2.boolean().optional(),
|
|
387
|
+
membership: z2.any().optional()
|
|
388
|
+
})
|
|
389
|
+
).optional(),
|
|
358
390
|
contact: zContactDTO.optional(),
|
|
359
391
|
remarks: z2.string().optional(),
|
|
360
392
|
can: z2.object({
|
|
@@ -395,9 +427,13 @@ var documentSchema = z2.object({
|
|
|
395
427
|
});
|
|
396
428
|
var documentRequirement = z2.object({
|
|
397
429
|
id: z2.number(),
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
430
|
+
form_requirement_group_id: z2.number(),
|
|
431
|
+
form_template_id: z2.number(),
|
|
432
|
+
form_template: z2.object({
|
|
433
|
+
id: z2.number(),
|
|
434
|
+
name: z2.string(),
|
|
435
|
+
slug: z2.string().nullable().optional()
|
|
436
|
+
}).optional(),
|
|
401
437
|
logical_group: z2.string().nullable().optional(),
|
|
402
438
|
group_operator: z2.enum(["AND", "OR"]).nullable().optional(),
|
|
403
439
|
metadata: z2.object({
|
|
@@ -419,9 +455,11 @@ var documentRequirementGroup = z2.object({
|
|
|
419
455
|
is_default_template: z2.boolean().default(false),
|
|
420
456
|
is_active: z2.boolean().default(true),
|
|
421
457
|
requirements: z2.array(documentRequirement).optional(),
|
|
458
|
+
// Backend uses 'requirements'
|
|
422
459
|
documentRequirements: z2.array(documentRequirement).optional(),
|
|
460
|
+
// Frontend compatibility
|
|
423
461
|
group_operator: z2.enum(["AND", "OR"]).default("AND"),
|
|
424
|
-
|
|
462
|
+
documentRequirements_count: z2.number().optional(),
|
|
425
463
|
assignments_count: z2.number().optional(),
|
|
426
464
|
created_by: z2.number().nullable().optional(),
|
|
427
465
|
updated_by: z2.number().nullable().optional(),
|
|
@@ -437,9 +475,10 @@ var documentRequirementGroupAssignment = z2.object({
|
|
|
437
475
|
id: z2.number(),
|
|
438
476
|
assignable_type: z2.string(),
|
|
439
477
|
assignable_id: z2.number(),
|
|
440
|
-
|
|
478
|
+
requirement_group_id: z2.number(),
|
|
441
479
|
requirement_group: documentRequirementGroup.optional(),
|
|
442
480
|
requirementGroup: documentRequirementGroup.optional(),
|
|
481
|
+
// Frontend compatibility
|
|
443
482
|
created_at: z2.string(),
|
|
444
483
|
updated_at: z2.string()
|
|
445
484
|
});
|
|
@@ -542,11 +581,19 @@ var flightLogSchema = z2.object({
|
|
|
542
581
|
etdZ: z2.string(),
|
|
543
582
|
etaZ: z2.string(),
|
|
544
583
|
duration_minutes: z2.number(),
|
|
545
|
-
|
|
546
|
-
|
|
584
|
+
crew_assignments: z2.array(
|
|
585
|
+
z2.object({
|
|
586
|
+
id: z2.number().optional(),
|
|
587
|
+
membership_id: z2.number(),
|
|
588
|
+
role: z2.string(),
|
|
589
|
+
is_pic: z2.boolean().optional(),
|
|
590
|
+
membership: z2.any().optional()
|
|
591
|
+
})
|
|
592
|
+
).optional(),
|
|
547
593
|
total_landings: z2.number().nullable().optional(),
|
|
548
594
|
full_stop_landings: z2.number().nullable().optional(),
|
|
549
595
|
touch_and_gos: z2.number().default(0),
|
|
596
|
+
low_approaches: z2.number().default(0),
|
|
550
597
|
flight_rule: z2.string().nullable().optional(),
|
|
551
598
|
flight_time_type: z2.string().nullable().optional(),
|
|
552
599
|
dep_airport_id: z2.number().nullable().optional(),
|
|
@@ -597,6 +644,7 @@ var invoiceSchema = z2.object({
|
|
|
597
644
|
recipient_zip: z2.string().nullable().optional(),
|
|
598
645
|
recipient_state: z2.string().nullable().optional(),
|
|
599
646
|
recipient_country: z2.string().nullable().optional(),
|
|
647
|
+
recipient_vat_id: z2.string().nullable().optional(),
|
|
600
648
|
issuer_name: z2.string().nullable().optional(),
|
|
601
649
|
issuer_address_street_1: z2.string().nullable().optional(),
|
|
602
650
|
issuer_address_street_2: z2.string().nullable().optional(),
|
|
@@ -681,6 +729,13 @@ var courseSchema = z2.object({
|
|
|
681
729
|
enroll: zNullableBool
|
|
682
730
|
}).optional()
|
|
683
731
|
});
|
|
732
|
+
var courseEnrollmentMetricsSchema = z2.object({
|
|
733
|
+
last_flight_at: z2.string().nullable(),
|
|
734
|
+
next_flight_at: z2.string().nullable(),
|
|
735
|
+
total_flight_minutes: z2.number().default(0),
|
|
736
|
+
flags: z2.record(z2.string(), z2.union([z2.boolean(), z2.number(), z2.string()])).default({}),
|
|
737
|
+
calculated_at: z2.string().nullable()
|
|
738
|
+
});
|
|
684
739
|
var courseEnrollmentSchema = z2.object({
|
|
685
740
|
type: z2.literal("course_enrollment").optional(),
|
|
686
741
|
id: z2.number(),
|
|
@@ -692,7 +747,11 @@ var courseEnrollmentSchema = z2.object({
|
|
|
692
747
|
enrollment_date: z2.string(),
|
|
693
748
|
completion_date: z2.string().nullable().optional(),
|
|
694
749
|
progress_percentage: z2.number().default(0),
|
|
750
|
+
milestone_count: z2.number().optional(),
|
|
695
751
|
comments: z2.string().nullable().optional(),
|
|
752
|
+
initial_payment_generated: z2.boolean().optional(),
|
|
753
|
+
initial_payment_removable: z2.boolean().optional(),
|
|
754
|
+
metrics: courseEnrollmentMetricsSchema.optional(),
|
|
696
755
|
created_at: z2.string(),
|
|
697
756
|
updated_at: z2.string(),
|
|
698
757
|
course: courseSchema.optional(),
|
|
@@ -740,6 +799,7 @@ var addressSchema = z2.object({
|
|
|
740
799
|
state: z2.string().nullable().optional(),
|
|
741
800
|
country: z2.string().nullable().optional(),
|
|
742
801
|
additional_info: z2.string().nullable().optional(),
|
|
802
|
+
vat_id: z2.string().nullable().optional(),
|
|
743
803
|
created_at: z2.string(),
|
|
744
804
|
updated_at: z2.string()
|
|
745
805
|
});
|
|
@@ -817,20 +877,25 @@ var settingSchema = z2.object({
|
|
|
817
877
|
var postSchema = z2.object({
|
|
818
878
|
type: z2.literal("post"),
|
|
819
879
|
id: z2.number(),
|
|
820
|
-
|
|
821
|
-
|
|
880
|
+
company_id: z2.number(),
|
|
881
|
+
postable_type: z2.string().nullable().optional(),
|
|
882
|
+
postable_id: z2.number().nullable().optional(),
|
|
822
883
|
author_id: z2.number(),
|
|
823
884
|
author: userSchema.optional(),
|
|
824
|
-
title: z2.string(),
|
|
885
|
+
title: z2.string().nullable().optional(),
|
|
825
886
|
content: z2.string(),
|
|
826
|
-
|
|
827
|
-
|
|
887
|
+
sticky: z2.boolean().default(false),
|
|
888
|
+
public: z2.boolean().default(false),
|
|
889
|
+
media: mediaCollection.optional(),
|
|
828
890
|
created_at: z2.string(),
|
|
829
891
|
updated_at: z2.string(),
|
|
830
892
|
can: z2.object({
|
|
893
|
+
view: zNullableBool,
|
|
831
894
|
update: zNullableBool,
|
|
832
895
|
delete: zNullableBool,
|
|
833
|
-
|
|
896
|
+
setFlags: zNullableBool,
|
|
897
|
+
restore: zNullableBool,
|
|
898
|
+
forceDelete: zNullableBool
|
|
834
899
|
}).optional()
|
|
835
900
|
});
|
|
836
901
|
var commentSchema = z2.object({
|
|
@@ -843,7 +908,6 @@ var commentSchema = z2.object({
|
|
|
843
908
|
body: z2.string(),
|
|
844
909
|
author_id: z2.number().optional(),
|
|
845
910
|
author: userSchema.optional(),
|
|
846
|
-
resolved_at: z2.string().optional().nullable(),
|
|
847
911
|
created_at: z2.string(),
|
|
848
912
|
updated_at: z2.string().optional(),
|
|
849
913
|
children: z2.lazy(() => commentSchema.array()).optional(),
|
|
@@ -851,12 +915,45 @@ var commentSchema = z2.object({
|
|
|
851
915
|
view: z2.boolean().optional(),
|
|
852
916
|
update: z2.boolean().optional().nullable(),
|
|
853
917
|
delete: z2.boolean().optional().nullable(),
|
|
854
|
-
resolve: z2.boolean().optional(),
|
|
855
918
|
reply: z2.boolean().optional(),
|
|
856
919
|
viewComments: z2.boolean().optional(),
|
|
857
920
|
createComments: z2.boolean().optional()
|
|
858
921
|
}).optional()
|
|
859
922
|
});
|
|
923
|
+
var airplaneIssueSeverityEnum = z2.enum([
|
|
924
|
+
"minor",
|
|
925
|
+
"major",
|
|
926
|
+
"grounding"
|
|
927
|
+
]);
|
|
928
|
+
var airplaneIssueStatusEnum = z2.enum(["open", "deferred", "resolved"]);
|
|
929
|
+
var airplaneIssueSchema = z2.object({
|
|
930
|
+
type: z2.literal("airplaneIssue"),
|
|
931
|
+
id: z2.number(),
|
|
932
|
+
airplane_id: z2.number(),
|
|
933
|
+
title: z2.string().nullable().optional(),
|
|
934
|
+
body: z2.string(),
|
|
935
|
+
severity: airplaneIssueSeverityEnum,
|
|
936
|
+
ata_chapter: z2.string().nullable().optional(),
|
|
937
|
+
status: airplaneIssueStatusEnum,
|
|
938
|
+
reporter: userSchema.optional(),
|
|
939
|
+
resolver: userSchema.optional(),
|
|
940
|
+
deferred_at: z2.string().nullable().optional(),
|
|
941
|
+
deferred_until: z2.string().nullable().optional(),
|
|
942
|
+
deferral_notes: z2.string().nullable().optional(),
|
|
943
|
+
resolved_at: z2.string().nullable().optional(),
|
|
944
|
+
resolution_notes: z2.string().nullable().optional(),
|
|
945
|
+
attachments: z2.array(mediaSchema).optional(),
|
|
946
|
+
created_at: z2.string(),
|
|
947
|
+
updated_at: z2.string().optional(),
|
|
948
|
+
can: z2.object({
|
|
949
|
+
view: z2.boolean().nullable().optional(),
|
|
950
|
+
update: z2.boolean().nullable().optional(),
|
|
951
|
+
resolve: z2.boolean().nullable().optional(),
|
|
952
|
+
defer: z2.boolean().nullable().optional(),
|
|
953
|
+
reopen: z2.boolean().nullable().optional(),
|
|
954
|
+
delete: z2.boolean().nullable().optional()
|
|
955
|
+
}).optional()
|
|
956
|
+
});
|
|
860
957
|
var specialFlightSchema = z2.object({
|
|
861
958
|
type: z2.literal("specialFlight"),
|
|
862
959
|
id: z2.number(),
|
|
@@ -1153,6 +1250,7 @@ export {
|
|
|
1153
1250
|
qualificationSchema,
|
|
1154
1251
|
expenseSchema,
|
|
1155
1252
|
courseSchema,
|
|
1253
|
+
courseEnrollmentMetricsSchema,
|
|
1156
1254
|
courseEnrollmentSchema,
|
|
1157
1255
|
eventSchema,
|
|
1158
1256
|
addressSchema,
|
|
@@ -1163,6 +1261,9 @@ export {
|
|
|
1163
1261
|
settingSchema,
|
|
1164
1262
|
postSchema,
|
|
1165
1263
|
commentSchema,
|
|
1264
|
+
airplaneIssueSeverityEnum,
|
|
1265
|
+
airplaneIssueStatusEnum,
|
|
1266
|
+
airplaneIssueSchema,
|
|
1166
1267
|
specialFlightSchema,
|
|
1167
1268
|
prePaidPackageSchema,
|
|
1168
1269
|
expenseItemSchema,
|