diff --git a/src/models/Destination.ts b/src/models/Destination.ts new file mode 100644 index 0000000..8e9f5b3 --- /dev/null +++ b/src/models/Destination.ts @@ -0,0 +1,37 @@ +import { + Entity, + Column, + PrimaryGeneratedColumn, + CreateDateColumn, + UpdateDateColumn, + ManyToOne, + JoinColumn, +} from 'typeorm'; +import Itinerary from './Itinerary'; + +@Entity('destinations') +class Destination { + @PrimaryGeneratedColumn('increment') + id_destination: number; + + @ManyToOne(() => Itinerary, itinerary => itinerary.destinations) + @JoinColumn({ name: 'itinerary_id' }) + itinerary: Itinerary; + + @Column() + name: string; + + @Column() + latitude: number; + + @Column() + longitude: number; + + // @CreateDateColumn() + // created_at: Date; + + // @UpdateDateColumn() + // updated_at: Date; +} + +export default Destination; diff --git a/src/models/Itinerary.ts b/src/models/Itinerary.ts index 457768d..ceda8f0 100644 --- a/src/models/Itinerary.ts +++ b/src/models/Itinerary.ts @@ -5,7 +5,10 @@ import { CreateDateColumn, UpdateDateColumn, OneToMany, + JoinColumn, } from 'typeorm'; +import Destination from './Destination'; +import NeighborhoodServed from './NeighborhoodServed'; import Vehicle from './Vehicle'; @Entity('itineraries') @@ -37,6 +40,12 @@ class Itinerary { @Column() itinerary_nickname: string; + @OneToMany(() => NeighborhoodServed, neighborhoodServed => neighborhoodServed.itinerary, { eager: true, cascade: true, nullable: true }) + neighborhoodsServed?: NeighborhoodServed[]; + + @OneToMany(() => Destination, destination => destination.itinerary, { eager: true, cascade: true, nullable: true }) + destinations?: Destination[]; + // @CreateDateColumn() // created_at: Date; diff --git a/src/models/NeighborhoodServed.ts b/src/models/NeighborhoodServed.ts new file mode 100644 index 0000000..f7404b7 --- /dev/null +++ b/src/models/NeighborhoodServed.ts @@ -0,0 +1,37 @@ +import { + Entity, + Column, + PrimaryGeneratedColumn, + CreateDateColumn, + UpdateDateColumn, + ManyToOne, + JoinColumn, +} from 'typeorm'; +import Itinerary from './Itinerary'; + +@Entity('neighborhoods_served') +class NeighborhoodServed { + @PrimaryGeneratedColumn('increment') + id_neighborhood: number; + + @ManyToOne(() => Itinerary, itinerary => itinerary.neighborhoodsServed) + @JoinColumn({ name: 'itinerary_id' }) + itinerary: Itinerary; + + @Column() + name: string; + + @Column() + latitude: number; + + @Column() + longitude: number; + + // @CreateDateColumn() + // created_at: Date; + + // @UpdateDateColumn() + // updated_at: Date; +} + +export default NeighborhoodServed;