import { api } from 'src/boot/axios'; import { defineStore } from 'pinia'; export const usePricelistStore = defineStore({ id: 'pricelist', state: () => ({ drinkTypes: [] as Array, drinks: [] as Array, }), actions: { async getDrinkTypes(force = false) { if (force || this.drinks.length == 0) { const { data } = await api.get>('/pricelist/drink-types'); this.drinkTypes = data; } return this.drinkTypes; }, async addDrinkType(name: string) { const { data } = await api.post('/pricelist/drink-types', { name: name }); this.drinkTypes.push(data); }, async removeDrinkType(id: number) { await api.delete(`/pricelist/drink-types/${id}`); const idx = this.drinkTypes.findIndex((val) => val.id == id); if (idx >= 0) this.drinkTypes.splice(idx, 1); }, async changeDrinkTypeName(drinkType: FG.DrinkType) { await api.put(`/pricelist/drink-types/${drinkType.id}`, drinkType); const itm = this.drinkTypes.filter((val) => val.id == drinkType.id); if (itm.length > 0) itm[0].name = drinkType.name; }, async getDrinks(force = false) { if (force || this.drinks.length == 0) { const { data } = await api.get>('/pricelist/drinks'); this.drinks = data; } return this.drinks; }, async createDrink(drink: FG.Drink) { await api.post('/pricelist/drinks', drink); this.drinks.push(drink); }, }, });