Adding Seat plan component and database tables

This commit is contained in:
2024-10-01 15:37:08 +02:00
parent 142d574f78
commit 6c8d8dadaf
33 changed files with 880 additions and 204 deletions

View File

@@ -0,0 +1,17 @@
import { Column, HasMany, Model, Table } from "sequelize-typescript";
import { Location } from "./location.model";
@Table({ timestamps: false })
export class City extends Model {
@Column
name: String
@Column
country: String
// Relations
@HasMany(() => Location)
locations: Location[]
}

View File

@@ -0,0 +1,32 @@
import { BelongsTo, Column, ForeignKey, HasMany, Model, Table } from "sequelize-typescript";
import { Concert } from "./../acts/concert.model";
import { City } from "./city.model";
import { SeatGroup } from "./seatGroup.model";
@Table({ timestamps: false })
export class Location extends Model {
@Column
name: String
@Column
address: String
@ForeignKey(() => City)
@Column
cityId: Number
@Column
image: String
// Relations
@HasMany(() => Concert)
concerts: Concert[]
@HasMany(() => SeatGroup)
seatGroups: SeatGroup[]
@BelongsTo(() => City)
city: City
}

View File

@@ -0,0 +1,18 @@
import { BelongsTo, Column, ForeignKey, Model, Table } from "sequelize-typescript";
import { SeatRow } from "./seatRow.model";
@Table({ timestamps: false })
export class Seat extends Model {
@Column
seatNr: number
@ForeignKey(() => SeatRow)
@Column
seatRowId: Number
// Relations
@BelongsTo(() => SeatRow)
seatRow: SeatRow
}

View File

@@ -0,0 +1,32 @@
import { BelongsTo, Column, Default, ForeignKey, HasMany, Model, Table } from "sequelize-typescript";
import { Location } from "./location.model";
import { SeatRow } from "./seatRow.model";
@Table({ timestamps: false })
export class SeatGroup extends Model {
@Column
name: String
@Column
surcharge: Number
@Column
capacity: Number
@Default(false)
@Column
standingArea: Boolean
@ForeignKey(() => Location)
@Column
locationId: Number
// Relations
@BelongsTo(() => Location)
location: Location
@HasMany(() => SeatRow)
seatRows: SeatRow[]
}

View File

@@ -0,0 +1,22 @@
import { BelongsTo, Column, ForeignKey, HasMany, Model, Table } from "sequelize-typescript";
import { SeatGroup } from "./seatGroup.model";
import { Seat } from "./seat.model";
@Table({ timestamps: false })
export class SeatRow extends Model {
@Column
row: number
@ForeignKey(() => SeatGroup)
@Column
seatGroupId: number
// Relations
@BelongsTo(() => SeatGroup)
seatGroup: SeatGroup
@HasMany(() => Seat)
seats: Seat[]
}