Files
goumrah-api/src/database/entities/airport.entity.ts
2025-11-04 18:02:28 +07:00

54 lines
1.0 KiB
TypeScript

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<City>;
@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<Flight>(this);
@OneToMany(() => Flight, (flight) => flight.arrivalAirport)
arrivalFlights = new Collection<Flight>(this);
}