Atomize model classes

This commit is contained in:
2024-10-11 17:42:21 +02:00
parent 8e7c9a949d
commit 8f0de99634
59 changed files with 432 additions and 356 deletions

View File

@@ -8,10 +8,11 @@ import { getUserOrders } from "../api/orderApi";
import { BannerStateEnum } from "../enums/bannerStateEnum";
import { AddressModel } from "../models/user/addressModel";
import { PaymentModel } from "../models/user/paymentModel";
import { AccountApiModel } from "../models/user/accountApiModel";
export const useAccountStore = defineStore("accountStore", {
state: () => ({
userAccount: useLocalStorage("hackmycart/accountStore/userAccount", new AccountModel())
userAccount: useLocalStorage("hackmycart/accountStore/userAccount", new AccountApiModel())
}),
actions: {

View File

@@ -8,6 +8,8 @@ import { PaymentModel } from "../models/user/paymentModel";
import { ref } from "vue";
import { SelectedSeatModel } from "../models/ordering/selectedSeatModel";
import { calcPrice } from "@/scripts/concertScripts";
import { EventModel } from "../models/acts/eventModel";
import { BandModel } from "../models/acts/bandModel";
export const useBasketStore = defineStore('basketStore', {
state: () => ({
@@ -49,7 +51,7 @@ export const useBasketStore = defineStore('basketStore', {
)
},
moveSeatSelectionsToBasket() {
moveSeatSelectionsToBasket(event: EventModel, band: BandModel) {
for (let selectedSeat of this.selectedSeats) {
let itemInBasket: BasketItemModel = this.itemsInBasket.find((basketItem: BasketItemModel) => {
return basketItem.concert.id == selectedSeat.concert.id
@@ -59,7 +61,13 @@ export const useBasketStore = defineStore('basketStore', {
itemInBasket.seats.push(selectedSeat.seat)
} else {
this.itemsInBasket.push(
new BasketItemModel(selectedSeat.concert, selectedSeat.seat, selectedSeat.concert.price)
new BasketItemModel(
selectedSeat.concert,
event,
band,
selectedSeat.seat,
selectedSeat.concert.price
)
)
}
}

View File

@@ -1,18 +1,18 @@
import { defineStore } from "pinia";
import { ref } from "vue";
import { EventModel } from "../models/acts/eventModel";
import { fetchEvents } from "../api/eventApi";
import { fetchAllCities } from "../api/cityApi";
import { CityModel } from "../models/locations/cityModel";
import { GenreModel } from "../models/acts/genreModel";
import { fetchAllGenres } from "../api/genreApi";
import { useFeedbackStore } from "./feedbackStore";
import { CityApiModel } from "../models/locations/cityApiModel";
import { EventApiModel } from "../models/acts/eventApiModel";
import { GenreApiModel } from "../models/acts/genreApiModel";
export const useShoppingStore = defineStore("shoppingStore", {
state: () => ({
events: ref<Array<EventModel>>([]),
cities: ref<Array<CityModel>>([]),
genres: ref<Array<GenreModel>>([]),
events: ref<Array<EventApiModel>>([]),
cities: ref<Array<CityApiModel>>([]),
genres: ref<Array<GenreApiModel>>([]),
cityFilterName: ref<string>(),
genreFilterName: ref<string>()
}),