import { City } from "@/database/entities/city.entity"; import { Flight } from "@/database/entities/flight.entity"; import { Collection, Entity, ManyToOne, OneToMany, PrimaryKey, Property, type Rel, Unique, } from "@mikro-orm/core"; @Entity() export class Airport { @PrimaryKey({ type: "varchar", length: 30 }) id!: string; @Property({ type: "varchar", length: 10 }) @Unique() code!: string; @Property({ type: "varchar", length: 200 }) @Unique() slug!: string; @Property({ type: "varchar", length: 100 }) name!: string; @ManyToOne(() => City) city!: Rel; @Property({ type: "timestamp", onCreate: () => new Date(), }) createdAt!: Date; @Property({ type: "timestamp", onCreate: () => new Date(), onUpdate: () => new Date(), }) updatedAt!: Date; // Collections @OneToMany(() => Flight, (flight) => flight.departureAirport) departureFlights = new Collection(this); @OneToMany(() => Flight, (flight) => flight.arrivalAirport) arrivalFlights = new Collection(this); }