From 8f0de996343b76889b9b81c0c84bdd4f32840aff Mon Sep 17 00:00:00 2001 From: TobiZog Date: Fri, 11 Oct 2024 17:42:21 +0200 Subject: [PATCH] Atomize model classes --- software/backend/routes/city.routes.ts | 12 ++-- software/backend/routes/location.routes.ts | 36 ++++-------- .../src/components/navigation/footerItems.vue | 2 +- .../components/pageParts/concertListItem.vue | 31 +++++----- .../components/pageParts/eventListItem.vue | 33 ++++++++--- .../src/components/pageParts/heroImage.vue | 29 ++++++++-- .../components/pageParts/locationListItem.vue | 14 ++++- .../components/pageParts/ticketListItem.vue | 38 ++++++++++--- .../components/seatPlanMap/seatPlanMap.vue | 4 +- software/src/data/api/accountApi.ts | 2 +- software/src/data/api/eventApi.ts | 17 +++++- software/src/data/api/orderApi.ts | 3 +- software/src/data/models/acts/bandApiModel.ts | 12 ++++ software/src/data/models/acts/bandModel.ts | 28 +++------- .../src/data/models/acts/concertApiModel.ts | 8 +++ software/src/data/models/acts/concertModel.ts | 20 +------ .../src/data/models/acts/eventApiModel.ts | 8 +++ software/src/data/models/acts/eventModel.ts | 13 ++--- .../src/data/models/acts/genreApiModel.ts | 6 ++ software/src/data/models/acts/genreModel.ts | 14 +---- software/src/data/models/acts/memberModel.ts | 4 ++ software/src/data/models/acts/ratingModel.ts | 7 +-- software/src/data/models/acts/tourModel.ts | 14 ----- .../models/exercises/exerciseGroupApiModel.ts | 6 ++ .../models/exercises/exerciseGroupModel.ts | 4 +- .../data/models/exercises/exerciseModel.ts | 1 + .../src/data/models/locations/cityApiModel.ts | 12 ++++ .../src/data/models/locations/cityModel.ts | 18 ------ .../data/models/locations/locationApiModel.ts | 13 +++++ .../data/models/locations/locationModel.ts | 36 ++---------- .../data/models/locations/seatGroupModel.ts | 8 +-- .../src/data/models/locations/seatModel.ts | 4 +- .../src/data/models/locations/seatRowModel.ts | 2 +- .../data/models/ordering/basketItemModel.ts | 11 +++- .../src/data/models/ordering/orderApiModel.ts | 12 ++++ .../src/data/models/ordering/orderModel.ts | 8 --- .../data/models/ordering/ticketApiModel.ts | 8 +++ .../src/data/models/ordering/ticketModel.ts | 15 ----- .../src/data/models/user/accountApiModel.ts | 10 ++++ software/src/data/models/user/accountModel.ts | 7 --- software/src/data/stores/accountStore.ts | 3 +- software/src/data/stores/basketStore.ts | 12 +++- software/src/data/stores/shoppingStore.ts | 12 ++-- .../src/pages/account/ordersPage/index.vue | 8 ++- .../pages/account/ordersPage/orderItem.vue | 17 +++--- software/src/pages/basketPage/index.vue | 2 - .../src/pages/basketPage/ticketsTable.vue | 8 +-- .../bandDetailPage/bandMemberSection.vue | 4 +- .../events/bandDetailPage/concertSection.vue | 56 +++++++++---------- .../src/pages/events/bandDetailPage/index.vue | 12 ++-- .../events/bandDetailPage/ratingSection.vue | 20 +++---- .../src/pages/events/eventsPage/index.vue | 7 ++- .../pages/events/ticketOrderPage/index.vue | 16 +++--- software/src/pages/homePage/index.vue | 9 +-- .../locations/locationDetailPage/index.vue | 19 +++---- .../pages/locations/locationsPage/index.vue | 7 ++- software/src/pages/searchPage/index.vue | 12 +++- software/src/scripts/concertScripts.ts | 20 +++++-- software/src/scripts/dateTimeScripts.ts | 14 +++++ 59 files changed, 432 insertions(+), 356 deletions(-) create mode 100644 software/src/data/models/acts/bandApiModel.ts create mode 100644 software/src/data/models/acts/concertApiModel.ts create mode 100644 software/src/data/models/acts/eventApiModel.ts create mode 100644 software/src/data/models/acts/genreApiModel.ts create mode 100644 software/src/data/models/acts/memberModel.ts delete mode 100644 software/src/data/models/acts/tourModel.ts create mode 100644 software/src/data/models/exercises/exerciseGroupApiModel.ts create mode 100644 software/src/data/models/locations/cityApiModel.ts create mode 100644 software/src/data/models/locations/locationApiModel.ts create mode 100644 software/src/data/models/ordering/orderApiModel.ts create mode 100644 software/src/data/models/ordering/ticketApiModel.ts create mode 100644 software/src/data/models/user/accountApiModel.ts diff --git a/software/backend/routes/city.routes.ts b/software/backend/routes/city.routes.ts index 7ddea96..893c645 100644 --- a/software/backend/routes/city.routes.ts +++ b/software/backend/routes/city.routes.ts @@ -15,12 +15,12 @@ city.get("/", (req: Request, res: Response) => { ] }) .then(cities => { - for (let city of cities) { - for (let location of city.dataValues.locations) { - location.dataValues.nrOfConcerts = location.dataValues.concerts.length - delete location.dataValues.concerts - } - } + // for (let city of cities) { + // for (let location of city.dataValues.locations) { + // location.dataValues.nrOfConcerts = location.dataValues.concerts.length + // delete location.dataValues.concerts + // } + // } res.status(200).json(cities) }) }) \ No newline at end of file diff --git a/software/backend/routes/location.routes.ts b/software/backend/routes/location.routes.ts index 0782544..209c787 100644 --- a/software/backend/routes/location.routes.ts +++ b/software/backend/routes/location.routes.ts @@ -20,7 +20,12 @@ location.get("/", (req: Request, res: Response) => { City, { model: Concert, - include: [ Event ], + include: [ + { + model: Event, + include: [ Band ] + } + ], attributes: { exclude: [ "locationId", "tourId" ] } @@ -40,18 +45,6 @@ location.get("/", (req: Request, res: Response) => { } }) .then(async locations => { - for (let location of locations) { - for (let concert of location.dataValues.concerts) { - let event = concert.dataValues.event - - await Band.findByPk(event.dataValues.bandId) - .then(band => { - event.dataValues.bandName = band.dataValues.name - delete event.dataValues.bandId - }) - } - } - if (sort != undefined) { locations.sort((location1, location2) => { if (sort == "desc") { @@ -77,7 +70,12 @@ location.get("/location/:urlName", (req: Request, res: Response) => { City, { model: Concert, - include: [ Event ], + include: [ + { + model: Event, + include: [ Band ] + } + ], attributes: { exclude: [ "locationId", "tourId" ] } @@ -97,16 +95,6 @@ location.get("/location/:urlName", (req: Request, res: Response) => { } }) .then(async location => { - for (let concert of location.dataValues.concerts) { - let event = concert.dataValues.event - - await Band.findByPk(event.dataValues.bandId) - .then(band => { - event.dataValues.bandName = band.dataValues.name - delete event.dataValues.bandId - }) - } - for (let seatGroup of location.dataValues.seatGroups) { for (let seatRow of seatGroup.dataValues.seatRows) { for (let seat of seatRow.dataValues.seats) { diff --git a/software/src/components/navigation/footerItems.vue b/software/src/components/navigation/footerItems.vue index 954b934..471a038 100644 --- a/software/src/components/navigation/footerItems.vue +++ b/software/src/components/navigation/footerItems.vue @@ -1,5 +1,5 @@ @@ -21,6 +30,7 @@ defineProps({ >
+ + + - {{ title }} + + {{ title }} + + -

{{ description }}

+ + +

+ {{ description }} +

-

+

diff --git a/software/src/components/pageParts/locationListItem.vue b/software/src/components/pageParts/locationListItem.vue index e20df46..ef7772b 100644 --- a/software/src/components/pageParts/locationListItem.vue +++ b/software/src/components/pageParts/locationListItem.vue @@ -1,12 +1,20 @@ @@ -17,7 +25,7 @@ defineProps({ @click="router.push('locations/' + location.name.replaceAll(' ', '-').toLowerCase())" >
- {{ location.concerts.length }} {{ $t('concert', location.concerts.length) }} + {{ concerts.length }} {{ $t('concert', concerts.length) }}
\ No newline at end of file diff --git a/software/src/components/pageParts/ticketListItem.vue b/software/src/components/pageParts/ticketListItem.vue index d6157f2..9b7fd50 100644 --- a/software/src/components/pageParts/ticketListItem.vue +++ b/software/src/components/pageParts/ticketListItem.vue @@ -1,17 +1,41 @@