@updraft-solutions/mcrit-sdk 0.1.0 → 0.3.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 = 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(),
@@ -167,15 +184,32 @@ var airplaneSchema = BaseModel.extend({
167
184
  length: z2.string().optional(),
168
185
  ato: z2.boolean().optional(),
169
186
  restricted_access: z2.boolean().optional(),
187
+ global_airplane_id: z2.number().nullable().optional(),
188
+ is_master: z2.boolean().optional(),
189
+ master_company_id: z2.number().nullable().optional(),
190
+ shared_companies: z2.array(z2.object({ id: z2.number(), name: z2.string() })).optional(),
170
191
  can: z2.object({
171
192
  view: zNullableBool,
172
193
  update: zNullableBool,
173
194
  viewMaintenanceEvents: zNullableBool,
174
195
  createMaintenanceEvents: zNullableBool,
175
196
  createBooking: zNullableBool,
176
- manageAirplanePermissions: zNullableBool
197
+ createAirplanePermissions: zNullableBool
177
198
  })
178
199
  });
200
+ var airplaneShareInviteSchema = z2.object({
201
+ id: z2.number(),
202
+ status: z2.enum(["pending", "accepted", "declined", "withdrawn"]),
203
+ responded_at: z2.string().nullable().optional(),
204
+ created_at: z2.string().optional(),
205
+ global_airplane: z2.object({
206
+ id: z2.number(),
207
+ registration: z2.string(),
208
+ model: z2.string()
209
+ }),
210
+ master_company: z2.object({ id: z2.number(), name: z2.string() }),
211
+ invited_company: z2.object({ id: z2.number(), name: z2.string() })
212
+ });
179
213
  var airplanePermissionSchema = z2.object({
180
214
  type: z2.literal("airplane_permission"),
181
215
  id: z2.number(),
@@ -319,6 +353,7 @@ var extendedAirplaneSchema = airplaneSchema.extend({
319
353
  images: z2.array(z2.any()).optional(),
320
354
  documents: z2.array(z2.any()).optional()
321
355
  }).optional(),
356
+ master_media: mediaCollection.optional(),
322
357
  can: z2.object({
323
358
  update: zNullableBool,
324
359
  viewMaintenanceEvents: zNullableBool
@@ -340,11 +375,10 @@ var bookingSchema = BaseModel.extend({
340
375
  ifr: z2.boolean().default(false),
341
376
  airplane_id: z2.number(),
342
377
  author: userSchema.optional(),
343
- attendants: z2.array(userSchema).optional(),
344
378
  company_id: z2.number(),
379
+ company_name: z2.string().nullable().optional(),
345
380
  company: companySchema.optional(),
346
381
  airplane: airplaneSchema.optional(),
347
- attendant_ids: z2.array(z2.number()).optional(),
348
382
  etdZ: z2.string(),
349
383
  etaZ: z2.string(),
350
384
  duration_minutes: z2.number().optional(),
@@ -355,6 +389,23 @@ var bookingSchema = BaseModel.extend({
355
389
  next_booking_id: z2.number().nullable().optional(),
356
390
  previous_booking_id: z2.number().nullable().optional(),
357
391
  maintenance: z2.number().optional(),
392
+ is_solo: z2.boolean().optional().default(false),
393
+ course_enrollment_id: z2.number().nullable().optional(),
394
+ // Minimal linked enrollment, present on booking show/store/update payloads.
395
+ // Used by the form prefill registry to derive the J2 Flugauftrag course.
396
+ course_enrollment: z2.object({
397
+ id: z2.number(),
398
+ course_id: z2.number().nullable().optional()
399
+ }).nullable().optional(),
400
+ crew_assignments: z2.array(
401
+ z2.object({
402
+ id: z2.number().optional(),
403
+ membership_id: z2.number(),
404
+ role: z2.string(),
405
+ is_pic: z2.boolean().optional(),
406
+ membership: z2.any().optional()
407
+ })
408
+ ).optional(),
358
409
  contact: zContactDTO.optional(),
359
410
  remarks: z2.string().optional(),
360
411
  can: z2.object({
@@ -395,9 +446,13 @@ var documentSchema = z2.object({
395
446
  });
396
447
  var documentRequirement = z2.object({
397
448
  id: z2.number(),
398
- document_requirement_group_id: z2.number(),
399
- document_type_class: z2.string(),
400
- document_type: documentType.optional(),
449
+ form_requirement_group_id: z2.number(),
450
+ form_template_id: z2.number(),
451
+ form_template: z2.object({
452
+ id: z2.number(),
453
+ name: z2.string(),
454
+ slug: z2.string().nullable().optional()
455
+ }).optional(),
401
456
  logical_group: z2.string().nullable().optional(),
402
457
  group_operator: z2.enum(["AND", "OR"]).nullable().optional(),
403
458
  metadata: z2.object({
@@ -419,9 +474,11 @@ var documentRequirementGroup = z2.object({
419
474
  is_default_template: z2.boolean().default(false),
420
475
  is_active: z2.boolean().default(true),
421
476
  requirements: z2.array(documentRequirement).optional(),
477
+ // Backend uses 'requirements'
422
478
  documentRequirements: z2.array(documentRequirement).optional(),
479
+ // Frontend compatibility
423
480
  group_operator: z2.enum(["AND", "OR"]).default("AND"),
424
- requirements_count: z2.number().optional(),
481
+ documentRequirements_count: z2.number().optional(),
425
482
  assignments_count: z2.number().optional(),
426
483
  created_by: z2.number().nullable().optional(),
427
484
  updated_by: z2.number().nullable().optional(),
@@ -437,9 +494,10 @@ var documentRequirementGroupAssignment = z2.object({
437
494
  id: z2.number(),
438
495
  assignable_type: z2.string(),
439
496
  assignable_id: z2.number(),
440
- document_requirement_group_id: z2.number(),
497
+ requirement_group_id: z2.number(),
441
498
  requirement_group: documentRequirementGroup.optional(),
442
499
  requirementGroup: documentRequirementGroup.optional(),
500
+ // Frontend compatibility
443
501
  created_at: z2.string(),
444
502
  updated_at: z2.string()
445
503
  });
@@ -542,11 +600,19 @@ var flightLogSchema = z2.object({
542
600
  etdZ: z2.string(),
543
601
  etaZ: z2.string(),
544
602
  duration_minutes: z2.number(),
545
- crew: z2.array(z2.any()).nullable().optional(),
546
- attendants: z2.array(z2.any()).nullable().optional(),
603
+ crew_assignments: z2.array(
604
+ z2.object({
605
+ id: z2.number().optional(),
606
+ membership_id: z2.number(),
607
+ role: z2.string(),
608
+ is_pic: z2.boolean().optional(),
609
+ membership: z2.any().optional()
610
+ })
611
+ ).optional(),
547
612
  total_landings: z2.number().nullable().optional(),
548
613
  full_stop_landings: z2.number().nullable().optional(),
549
614
  touch_and_gos: z2.number().default(0),
615
+ low_approaches: z2.number().default(0),
550
616
  flight_rule: z2.string().nullable().optional(),
551
617
  flight_time_type: z2.string().nullable().optional(),
552
618
  dep_airport_id: z2.number().nullable().optional(),
@@ -597,6 +663,7 @@ var invoiceSchema = z2.object({
597
663
  recipient_zip: z2.string().nullable().optional(),
598
664
  recipient_state: z2.string().nullable().optional(),
599
665
  recipient_country: z2.string().nullable().optional(),
666
+ recipient_vat_id: z2.string().nullable().optional(),
600
667
  issuer_name: z2.string().nullable().optional(),
601
668
  issuer_address_street_1: z2.string().nullable().optional(),
602
669
  issuer_address_street_2: z2.string().nullable().optional(),
@@ -681,6 +748,13 @@ var courseSchema = z2.object({
681
748
  enroll: zNullableBool
682
749
  }).optional()
683
750
  });
751
+ var courseEnrollmentMetricsSchema = z2.object({
752
+ last_flight_at: z2.string().nullable(),
753
+ next_flight_at: z2.string().nullable(),
754
+ total_flight_minutes: z2.number().default(0),
755
+ flags: z2.record(z2.string(), z2.union([z2.boolean(), z2.number(), z2.string()])).default({}),
756
+ calculated_at: z2.string().nullable()
757
+ });
684
758
  var courseEnrollmentSchema = z2.object({
685
759
  type: z2.literal("course_enrollment").optional(),
686
760
  id: z2.number(),
@@ -692,7 +766,11 @@ var courseEnrollmentSchema = z2.object({
692
766
  enrollment_date: z2.string(),
693
767
  completion_date: z2.string().nullable().optional(),
694
768
  progress_percentage: z2.number().default(0),
769
+ milestone_count: z2.number().optional(),
695
770
  comments: z2.string().nullable().optional(),
771
+ initial_payment_generated: z2.boolean().optional(),
772
+ initial_payment_removable: z2.boolean().optional(),
773
+ metrics: courseEnrollmentMetricsSchema.optional(),
696
774
  created_at: z2.string(),
697
775
  updated_at: z2.string(),
698
776
  course: courseSchema.optional(),
@@ -740,6 +818,7 @@ var addressSchema = z2.object({
740
818
  state: z2.string().nullable().optional(),
741
819
  country: z2.string().nullable().optional(),
742
820
  additional_info: z2.string().nullable().optional(),
821
+ vat_id: z2.string().nullable().optional(),
743
822
  created_at: z2.string(),
744
823
  updated_at: z2.string()
745
824
  });
@@ -817,20 +896,25 @@ var settingSchema = z2.object({
817
896
  var postSchema = z2.object({
818
897
  type: z2.literal("post"),
819
898
  id: z2.number(),
820
- postable_type: z2.string(),
821
- postable_id: z2.number(),
899
+ company_id: z2.number(),
900
+ postable_type: z2.string().nullable().optional(),
901
+ postable_id: z2.number().nullable().optional(),
822
902
  author_id: z2.number(),
823
903
  author: userSchema.optional(),
824
- title: z2.string(),
904
+ title: z2.string().nullable().optional(),
825
905
  content: z2.string(),
826
- published: z2.boolean().default(false),
827
- published_at: z2.string().nullable().optional(),
906
+ sticky: z2.boolean().default(false),
907
+ public: z2.boolean().default(false),
908
+ media: mediaCollection.optional(),
828
909
  created_at: z2.string(),
829
910
  updated_at: z2.string(),
830
911
  can: z2.object({
912
+ view: zNullableBool,
831
913
  update: zNullableBool,
832
914
  delete: zNullableBool,
833
- publish: zNullableBool
915
+ setFlags: zNullableBool,
916
+ restore: zNullableBool,
917
+ forceDelete: zNullableBool
834
918
  }).optional()
835
919
  });
836
920
  var commentSchema = z2.object({
@@ -843,7 +927,6 @@ var commentSchema = z2.object({
843
927
  body: z2.string(),
844
928
  author_id: z2.number().optional(),
845
929
  author: userSchema.optional(),
846
- resolved_at: z2.string().optional().nullable(),
847
930
  created_at: z2.string(),
848
931
  updated_at: z2.string().optional(),
849
932
  children: z2.lazy(() => commentSchema.array()).optional(),
@@ -851,12 +934,45 @@ var commentSchema = z2.object({
851
934
  view: z2.boolean().optional(),
852
935
  update: z2.boolean().optional().nullable(),
853
936
  delete: z2.boolean().optional().nullable(),
854
- resolve: z2.boolean().optional(),
855
937
  reply: z2.boolean().optional(),
856
938
  viewComments: z2.boolean().optional(),
857
939
  createComments: z2.boolean().optional()
858
940
  }).optional()
859
941
  });
942
+ var airplaneIssueSeverityEnum = z2.enum([
943
+ "minor",
944
+ "major",
945
+ "grounding"
946
+ ]);
947
+ var airplaneIssueStatusEnum = z2.enum(["open", "deferred", "resolved"]);
948
+ var airplaneIssueSchema = z2.object({
949
+ type: z2.literal("airplaneIssue"),
950
+ id: z2.number(),
951
+ airplane_id: z2.number(),
952
+ title: z2.string().nullable().optional(),
953
+ body: z2.string(),
954
+ severity: airplaneIssueSeverityEnum,
955
+ ata_chapter: z2.string().nullable().optional(),
956
+ status: airplaneIssueStatusEnum,
957
+ reporter: userSchema.optional(),
958
+ resolver: userSchema.optional(),
959
+ deferred_at: z2.string().nullable().optional(),
960
+ deferred_until: z2.string().nullable().optional(),
961
+ deferral_notes: z2.string().nullable().optional(),
962
+ resolved_at: z2.string().nullable().optional(),
963
+ resolution_notes: z2.string().nullable().optional(),
964
+ attachments: z2.array(mediaSchema).optional(),
965
+ created_at: z2.string(),
966
+ updated_at: z2.string().optional(),
967
+ can: z2.object({
968
+ view: z2.boolean().nullable().optional(),
969
+ update: z2.boolean().nullable().optional(),
970
+ resolve: z2.boolean().nullable().optional(),
971
+ defer: z2.boolean().nullable().optional(),
972
+ reopen: z2.boolean().nullable().optional(),
973
+ delete: z2.boolean().nullable().optional()
974
+ }).optional()
975
+ });
860
976
  var specialFlightSchema = z2.object({
861
977
  type: z2.literal("specialFlight"),
862
978
  id: z2.number(),
@@ -1126,6 +1242,7 @@ export {
1126
1242
  feeSchema,
1127
1243
  courseFeeSchema,
1128
1244
  airplaneSchema,
1245
+ airplaneShareInviteSchema,
1129
1246
  airplanePermissionSchema,
1130
1247
  landingFeeSchema,
1131
1248
  aircraftRatingSchema,
@@ -1153,6 +1270,7 @@ export {
1153
1270
  qualificationSchema,
1154
1271
  expenseSchema,
1155
1272
  courseSchema,
1273
+ courseEnrollmentMetricsSchema,
1156
1274
  courseEnrollmentSchema,
1157
1275
  eventSchema,
1158
1276
  addressSchema,
@@ -1163,6 +1281,9 @@ export {
1163
1281
  settingSchema,
1164
1282
  postSchema,
1165
1283
  commentSchema,
1284
+ airplaneIssueSeverityEnum,
1285
+ airplaneIssueStatusEnum,
1286
+ airplaneIssueSchema,
1166
1287
  specialFlightSchema,
1167
1288
  prePaidPackageSchema,
1168
1289
  expenseItemSchema,