@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.
@@ -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: _zod.z.object({
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
- manageAirplanePermissions: zNullableBool
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
- document_requirement_group_id: _zod.z.number(),
399
- document_type_class: _zod.z.string(),
400
- document_type: documentType.optional(),
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
- requirements_count: _zod.z.number().optional(),
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
- document_requirement_group_id: _zod.z.number(),
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
- crew: _zod.z.array(_zod.z.any()).nullable().optional(),
546
- attendants: _zod.z.array(_zod.z.any()).nullable().optional(),
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
- postable_type: _zod.z.string(),
821
- postable_id: _zod.z.number(),
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
- published: _zod.z.boolean().default(false),
827
- published_at: _zod.z.string().nullable().optional(),
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
- publish: zNullableBool
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
- 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.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.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;
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: z2.object({
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
- manageAirplanePermissions: zNullableBool
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
- document_requirement_group_id: z2.number(),
399
- document_type_class: z2.string(),
400
- document_type: documentType.optional(),
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
- requirements_count: z2.number().optional(),
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
- document_requirement_group_id: z2.number(),
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
- crew: z2.array(z2.any()).nullable().optional(),
546
- attendants: z2.array(z2.any()).nullable().optional(),
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
- postable_type: z2.string(),
821
- postable_id: z2.number(),
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
- published: z2.boolean().default(false),
827
- published_at: z2.string().nullable().optional(),
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
- publish: zNullableBool
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,