airport.model.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
  2. import { Document } from 'mongoose';
  3. import { ArrivalRoute, ArrivalRouteSchema } from './arrivalroute.model';
  4. import { Constraint, ConstraintSchema } from './constraint.model';
  5. import { Planning, PlanningSchema } from './planning.model';
  6. import { RunwaySpacing, RunwaySpacingSchema } from './runwayspacing.model';
  7. import { Waypoint } from '../../models/waypoint.model';
  8. export type AirportDocument = Airport & Document;
  9. @Schema()
  10. export class Airport {
  11. @Prop({
  12. required: true,
  13. index: true,
  14. type: String,
  15. })
  16. icao: string;
  17. @Prop({
  18. required: true,
  19. type: Waypoint,
  20. })
  21. location: Waypoint;
  22. @Prop({
  23. required: true,
  24. type: Number,
  25. })
  26. elevation: number;
  27. @Prop({
  28. type: [ConstraintSchema],
  29. })
  30. upperConstraints: Constraint[];
  31. @Prop({
  32. required: true,
  33. type: [ArrivalRouteSchema],
  34. })
  35. arrivalRoutes: ArrivalRoute[];
  36. @Prop({
  37. required: true,
  38. type: [RunwaySpacingSchema],
  39. })
  40. spacings: RunwaySpacing[];
  41. @Prop({
  42. required: true,
  43. type: PlanningSchema,
  44. })
  45. planning: Planning;
  46. }
  47. export const AirportSchema = SchemaFactory.createForClass(Airport);