Redesign seat map layout

This commit is contained in:
2024-10-10 14:11:09 +02:00
parent 23b9fa3dd2
commit 8d78a9eeb7
14 changed files with 1967 additions and 90 deletions

View File

@@ -10,6 +10,7 @@
"address": "Ferdinand-Wilhelm-Fricke-Weg 8",
"imageIndoor": "locations/swiss-life-hall-indoor.jpg",
"imageOutdoor": "locations/swiss-life-hall-outdoor.jpg",
"layout": 2,
"seatGroups": [
{
"name": "A",
@@ -60,6 +61,7 @@
"address": "Schwarzer Bär 2",
"imageIndoor": "locations/capitol-indoor.jpg",
"imageOutdoor": "locations/capitol-outdoor.jpg",
"layout": 1,
"seatGroups": [
{
"name": "A",
@@ -75,6 +77,7 @@
"address": "EXPO-Plaza 7",
"imageIndoor": "locations/zag-arena-indoor.jpg",
"imageOutdoor": "locations/zag-arena-outdoor.jpg",
"layout": 2,
"seatGroups": [
{
"name": "A",
@@ -116,6 +119,27 @@
"standingArea": false,
"rows": 3,
"capacity": 12
},
{
"name": "G",
"surcharge": 10,
"standingArea": false,
"rows": 3,
"capacity": 30
},
{
"name": "H",
"surcharge": 10,
"standingArea": false,
"rows": 3,
"capacity": 12
},
{
"name": "I",
"surcharge": 10,
"standingArea": false,
"rows": 3,
"capacity": 12
}
]
},
@@ -125,6 +149,7 @@
"address": "Zur Bettfedernfabrik 3",
"imageIndoor": "locations/faust-hannover-indoor.jpg",
"imageOutdoor": "locations/faust-hannover-outdoor.jpg",
"layout": 1,
"seatGroups": [
{
"name": "A",
@@ -146,6 +171,7 @@
"address": "Spiridon-Louis-Ring 21",
"imageIndoor": "locations/olympiahalle-munich-indoor.jpg",
"imageOutdoor": "locations/olympiahalle-munich-outdoor.jpg",
"layout": 2,
"seatGroups": [
{
"name": "A",
@@ -196,6 +222,7 @@
"address": "Zenettistraße 9",
"imageIndoor": "locations/schlachthof-munich-indoor.jpg",
"imageOutdoor": "locations/schlachthof-munich-outdoor.jpg",
"layout": 1,
"seatGroups": [
{
"name": "A",
@@ -211,6 +238,7 @@
"address": "Zellstraße 4",
"imageIndoor": "locations/muffatwerk-indoor.jpg",
"imageOutdoor": "locations/muffatwerk-outdoor.jpg",
"layout": 1,
"seatGroups": [
{
"name": "A",
@@ -232,19 +260,20 @@
"address": "Sylvesterallee 7",
"imageIndoor": "locations/volksparkstadion-hamburg-indoor.jpg",
"imageOutdoor": "locations/volksparkstadion-hamburg-outdoor.jpg",
"layout": 3,
"seatGroups": [
{
"name": "A",
"surcharge": 20,
"surcharge": 30,
"standingArea": true,
"capacity": 50
},
{
"name": "B",
"surcharge": 10,
"surcharge": 20,
"standingArea": false,
"rows": 5,
"capacity": 25
"capacity": 50
},
{
"name": "C",
@@ -255,24 +284,45 @@
},
{
"name": "D",
"surcharge": 10,
"surcharge": 20,
"standingArea": false,
"rows": 3,
"capacity": 20
"rows": 5,
"capacity": 30
},
{
"name": "E",
"surcharge": 10,
"standingArea": false,
"rows": 3,
"capacity": 16
"rows": 5,
"capacity": 25
},
{
"name": "F",
"surcharge": 20,
"standingArea": false,
"rows": 5,
"capacity": 50
},
{
"name": "G",
"surcharge": 10,
"standingArea": false,
"rows": 3,
"capacity": 16
"rows": 5,
"capacity": 25
},
{
"name": "H",
"surcharge": 20,
"standingArea": false,
"rows": 5,
"capacity": 30
},
{
"name": "I",
"surcharge": 10,
"standingArea": false,
"rows": 5,
"capacity": 25
}
]
},
@@ -282,6 +332,7 @@
"address": "Sylvesterallee 10",
"imageIndoor": "locations/barclays-arena-indoor.jpg",
"imageOutdoor": "locations/barclays-arena-outdoor.jpg",
"layout": 2,
"seatGroups": [
{
"name": "A",
@@ -317,6 +368,7 @@
"address": "Am Glockenturm",
"imageIndoor": "locations/waldbuehne-berlin-indoor.jpg",
"imageOutdoor": "locations/waldbuehne-berlin-outdoor.jpg",
"layout": 2,
"seatGroups": [
{
"name": "A",
@@ -346,6 +398,7 @@
"address": "Olympischer Platz 3",
"imageIndoor": "locations/olympiastadion-berlin-indoor.jpg",
"imageOutdoor": "locations/olympiastadion-berlin-outdoor.jpg",
"layout": 3,
"seatGroups": [
{
"name": "A",
@@ -396,6 +449,7 @@
"address": "Uber-Platz 1",
"imageIndoor": "locations/uber-arena-berlin-indoor.jpg",
"imageOutdoor": "locations/uber-arena-berlin-outdoor.jpg",
"layout": 2,
"seatGroups": [
{
"name": "A",
@@ -446,6 +500,7 @@
"address": "Columbiadamm 13-21",
"imageIndoor": "locations/columbiahalle-indoor.jpg",
"imageOutdoor": "locations/columbiahalle-outdoor.jpg",
"layout": 2,
"seatGroups": [
{
"name": "A",
@@ -475,6 +530,7 @@
"address": "Revaler Straße 99",
"imageIndoor": "locations/astra-kulturhaus-indoor.jpg",
"imageOutdoor": "locations/astra-kulturhaus-outdoor.jpg",
"layout": 1,
"seatGroups": [
{
"name": "A",
@@ -496,6 +552,7 @@
"address": "Willy-Brandt-Platz",
"imageIndoor": "locations/lanxess-arena-indoor.jpg",
"imageOutdoor": "locations/lanxess-arena-outdoor.jpg",
"layout": 3,
"seatGroups": [
{
"name": "A",
@@ -546,6 +603,7 @@
"address": "Schanzenstraße 40",
"imageIndoor": "locations/palladium-indoor.jpg",
"imageOutdoor": "locations/palladium-outdoor.jpg",
"layout": 1,
"seatGroups": [
{
"name": "A",
@@ -561,6 +619,7 @@
"address": "Schanzenstraße 37",
"imageIndoor": "locations/e-werk-indoor.jpg",
"imageOutdoor": "locations/e-werk-outdoor.jpg",
"layout": 1,
"seatGroups": [
{
"name": "A",

View File

@@ -7,7 +7,7 @@ import { SeatGroup } from "./seatGroup.model";
export class Location extends Model {
@Column
urlName: string
@Column
name: String
@@ -24,6 +24,15 @@ export class Location extends Model {
@Column
imageOutdoor: String
/**
* Layout identifier of the location
* 1 = Stage with simple stay area
* 2 = Stage with front stay area and seat places around
* 3 = Stage in the middle of the stay area, seat places all around
*/
@Column
layout: Number
// Relations

View File

@@ -7,7 +7,6 @@ import { Band } from "../models/acts/band.model";
import { SeatGroup } from "../models/locations/seatGroup.model";
import { Seat } from "../models/locations/seat.model";
import { SeatRow } from "../models/locations/seatRow.model";
import { Op } from "sequelize";
export const location = Router()
@@ -107,6 +106,15 @@ location.get("/:urlName", (req: Request, res: Response) => {
})
}
for (let seatGroup of location.dataValues.seatGroups) {
for (let seatRow of seatGroup.dataValues.seatRows) {
for (let seat of seatRow.dataValues.seats) {
seat.dataValues["state"] = 0
}
}
}
res.status(200).json(location)
})
})