diff --git a/software/backend/data/cities.json b/software/backend/data/cities.json index 736561d..8cbb223 100644 --- a/software/backend/data/cities.json +++ b/software/backend/data/cities.json @@ -9,6 +9,7 @@ "name": "Swiss Life Hall", "address": "Ferdinand-Wilhelm-Fricke-Weg 8", "image": "locations/swiss-life-hall.jpg", + "logo": "locations/capitol.logo.png", "seatGroups": [ { "name": "A", @@ -58,6 +59,7 @@ "name": "Capitol", "address": "Schwarzer Bär 2", "image": "locations/capitol.jpg", + "logo": "locations/capitol-logo.png", "seatGroups": [ { "name": "A", @@ -72,6 +74,7 @@ "name": "ZAG Arena", "address": "EXPO-Plaza 7", "image": "locations/zag-arena.jpg", + "logo": "locations/capitol.logo.png", "seatGroups": [ { "name": "A", @@ -121,6 +124,7 @@ "name": "Kulturzentrum Faust", "address": "Zur Bettfedernfabrik 3", "image": "locations/faust-hannover.jpg", + "logo": "locations/faust-logo.png", "seatGroups": [ { "name": "A", @@ -141,6 +145,7 @@ "name": "Olympiahalle München", "address": "Spiridon-Louis-Ring 21", "image": "locations/olympiahalle-munich.jpg", + "logo": "locations/capitol.logo.png", "seatGroups": [ { "name": "A", @@ -155,6 +160,7 @@ "name": "Schlachthof München", "address": "Zenettistraße 9", "image": "locations/schlachthof-munich.jpg", + "logo": "locations/capitol.logo.png", "seatGroups": [ { "name": "A", @@ -169,6 +175,7 @@ "name": "Muffatwerk", "address": "Zellstraße 4", "image": "locations/muffatwerk.jpg", + "logo": "locations/capitol.logo.png", "seatGroups": [ { "name": "A", @@ -189,6 +196,7 @@ "name": "Elbphilharmonie Hamburg", "address": "Platz der deutschen Einheit", "image": "locations/elbphilharmonie-hamburg.jpg", + "logo": "locations/capitol.logo.png", "seatGroups": [ { "name": "A", @@ -203,6 +211,7 @@ "name": "Volksparkstadion", "address": "Sylvesterallee 7", "image": "locations/volksparkstadion-hamburg.jpg", + "logo": "locations/capitol.logo.png", "seatGroups": [ { "name": "A", @@ -217,6 +226,7 @@ "name": "Barclays Arena", "address": "Sylvesterallee 10", "image": "locations/barclays-arena.jpg", + "logo": "locations/capitol.logo.png", "seatGroups": [ { "name": "A", @@ -231,6 +241,7 @@ "name": "Stage Theater im Hafen Hamburg", "address": "Norderelbestraße 6", "image": "locations/stage-theater-hamburg.jpg", + "logo": "locations/capitol.logo.png", "seatGroups": [ { "name": "A", @@ -251,6 +262,7 @@ "name": "Waldbühne Berlin", "address": "Am Glockenturm", "image": "locations/waldbuehne-berlin.jpg", + "logo": "locations/capitol.logo.png", "seatGroups": [ { "name": "A", @@ -265,6 +277,7 @@ "name": "Olympiastadion Berlin", "address": "Olympischer Platz 3", "image": "locations/olympiastadion-berlin.jpg", + "logo": "locations/capitol.logo.png", "seatGroups": [ { "name": "A", @@ -279,6 +292,7 @@ "name": "Uber Arena Berlin", "address": "Uber-Platz 1", "image": "locations/uber-arena-berlin.jpg", + "logo": "locations/capitol.logo.png", "seatGroups": [ { "name": "A", @@ -293,6 +307,7 @@ "name": "Columbiahalle", "address": "Columbiadamm 13-21", "image": "locations/columbiahalle.jpg", + "logo": "locations/capitol.logo.png", "seatGroups": [ { "name": "A", @@ -307,6 +322,7 @@ "name": "Astra Kulturhaus", "address": "Revaler Straße 99", "image": "locations/astra-kulturhaus.jpg", + "logo": "locations/capitol.logo.png", "seatGroups": [ { "name": "A", @@ -321,6 +337,7 @@ "name": "Deutsche Oper Berlin", "address": "Bismarckstraße 35", "image": "locations/deutsche-oper-berlin.jpg", + "logo": "locations/capitol-logo.png", "seatGroups": [ { "name": "A", diff --git a/software/backend/database.ts b/software/backend/database.ts index cc5b00a..401c808 100644 --- a/software/backend/database.ts +++ b/software/backend/database.ts @@ -41,7 +41,7 @@ export const sequelize = new Sequelize({ }) export function startDatabase() { - let force = false + let force = true // Create database and tables sequelize.sync({ force: force }) diff --git a/software/backend/images/locations/capitol-logo.png b/software/backend/images/locations/capitol-logo.png new file mode 100644 index 0000000..6787f32 Binary files /dev/null and b/software/backend/images/locations/capitol-logo.png differ diff --git a/software/backend/images/locations/faust-logo.png b/software/backend/images/locations/faust-logo.png new file mode 100644 index 0000000..392ab59 Binary files /dev/null and b/software/backend/images/locations/faust-logo.png differ diff --git a/software/backend/models/locations/location.model.ts b/software/backend/models/locations/location.model.ts index 7eb3f16..c08e447 100644 --- a/software/backend/models/locations/location.model.ts +++ b/software/backend/models/locations/location.model.ts @@ -18,6 +18,9 @@ export class Location extends Model { @Column image: String + @Column + logo: String + // Relations diff --git a/software/backend/routes/band.routes.ts b/software/backend/routes/band.routes.ts index a1f3beb..4b0018b 100644 --- a/software/backend/routes/band.routes.ts +++ b/software/backend/routes/band.routes.ts @@ -7,6 +7,7 @@ import { Event } from "../models/acts/event.model"; import { Concert } from "../models/acts/concert.model"; import { Location } from "../models/locations/location.model"; import { City } from "../models/locations/city.model"; +import { Op } from "sequelize"; export const band = Router() @@ -58,8 +59,11 @@ band.get("/", (req: Request, res: Response) => { }) // Get all information about one band -band.get("/:id", (req: Request, res: Response) => { - Band.findByPk(req.params.id, { +band.get("/:name", (req: Request, res: Response) => { + Band.findOne({ + where: { + name: { [Op.like]: req.params.name } + }, include: [ { model: Member, @@ -73,6 +77,29 @@ band.get("/:id", (req: Request, res: Response) => { exclude: [ "bandId" ] } }, + { + model: Event, + include: [ + { + model: Concert, + include: [ + { + model: Location, + include: [ City ], + attributes: { + exclude: [ "id" ] + } + } + ], + attributes: { + exclude: [ "id", "tourId", "locationId" ] + } + } + ], + attributes: { + exclude: [ "id", "bandId" ] + } + }, Genre ], attributes: { diff --git a/software/src/components/pageParts/concertListItem.vue b/software/src/components/pageParts/concertListItem.vue index 01e6d8b..d1f7ea6 100644 --- a/software/src/components/pageParts/concertListItem.vue +++ b/software/src/components/pageParts/concertListItem.vue @@ -5,7 +5,6 @@ defineProps({ image: String, title: String, description: String, - price: String, loading: Boolean }) @@ -35,7 +34,7 @@ defineProps({ size="x-large" /> - {{ price }} + diff --git a/software/src/components/pageParts/heroImage.vue b/software/src/components/pageParts/heroImage.vue index f27fe39..95f4797 100644 --- a/software/src/components/pageParts/heroImage.vue +++ b/software/src/components/pageParts/heroImage.vue @@ -6,52 +6,78 @@ defineProps({ logo: String, title: String, chips: Array, - description: String + description: String, + loading: Boolean }) \ No newline at end of file + + + \ No newline at end of file diff --git a/software/src/data/models/acts/bandModel.ts b/software/src/data/models/acts/bandModel.ts index e72f9e9..3947b00 100644 --- a/software/src/data/models/acts/bandModel.ts +++ b/software/src/data/models/acts/bandModel.ts @@ -10,13 +10,13 @@ export class BandModel { images: Array imageMembers: string logo: string - ratings: Array + ratings: Array = [] members: Array<{ name: string, image: string }> genres: Array<{ name: string - }> + }> = [] events: Array } \ No newline at end of file diff --git a/software/src/data/models/locations/locationModel.ts b/software/src/data/models/locations/locationModel.ts index 5654149..901da21 100644 --- a/software/src/data/models/locations/locationModel.ts +++ b/software/src/data/models/locations/locationModel.ts @@ -9,6 +9,7 @@ export class LocationModel { address: string image: string seatSchema: string + logo: string city: { name: string country: string diff --git a/software/src/locales/de.json b/software/src/locales/de.json index a74fcb3..d0ff4dc 100644 --- a/software/src/locales/de.json +++ b/software/src/locales/de.json @@ -143,5 +143,8 @@ "city": "Stadt", "seatPlan": "Saalplan", "stage": "Bühne", - "filtering": "Filtern" + "filtering": "Filtern", + "bandMember": "Band Mitglieder", + "rating": "Bewertung | Bewertungen", + "image": "Foto | Fotos" } diff --git a/software/src/locales/en.json b/software/src/locales/en.json index 11707fb..d196f89 100644 --- a/software/src/locales/en.json +++ b/software/src/locales/en.json @@ -143,5 +143,8 @@ "city": "City", "seatPlan": "Seat Plan", "stage": "Stage", - "filtering": "Filtering" + "filtering": "Filtering", + "bandMember": "Band members", + "rating": "Rating | Ratings", + "image": "Image | Images" } diff --git a/software/src/pages/events/bandDetailPage/bandMemberSection.vue b/software/src/pages/events/bandDetailPage/bandMemberSection.vue index 7e52689..50c8c19 100644 --- a/software/src/pages/events/bandDetailPage/bandMemberSection.vue +++ b/software/src/pages/events/bandDetailPage/bandMemberSection.vue @@ -1,7 +1,9 @@