import { MarketOrderHistory, MarketType, MarketTypePrice, getHistory, jitaId } from "@/market"; import { marbasAxiosInstance } from "@/service"; import { defineStore } from "pinia"; import { computed, ref } from "vue"; export type TrackingResult = { type: MarketType; history: MarketOrderHistory[]; buy: number, sell: number, orderCount: number, } type MarketTracking = { id: number, type: number }; const endpoint = '/api/types_tracking/'; export const useMarketTrackingStore = defineStore('marketTracking', () => { const trackedTypes = ref([]); const types = computed(() => trackedTypes.value ?? []); const addType = async (type: number) => { if (!trackedTypes.value.includes(type)) { await marbasAxiosInstance.post(endpoint, { type }); } } const removeType = async (type: number) => { if (trackedTypes.value.includes(type)) { await marbasAxiosInstance.delete(`${endpoint}${type}`); } } marbasAxiosInstance.get(endpoint).then(res => trackedTypes.value = res.data.map(item => item.type)); return { types, addType, removeType }; }); export const createResult = async (id: number, price: MarketTypePrice): Promise => ({ history: await getHistory(jitaId, id), ...price });