50 lines
1.4 KiB
TypeScript
50 lines
1.4 KiB
TypeScript
// import { useMyFetch } from '#imports'
|
|
|
|
import type { CalculatorOutput, GenericResponse } from '~/types'
|
|
|
|
export const useInvestmentStore = defineStore('investmentStore', () => {
|
|
const store = useStore()
|
|
// const monthlySavings = ref(store.monthlySavings || 100)
|
|
// const yearsNumber = ref(store.storagePeriod || 10)
|
|
|
|
const calculationResult = ref<CalculatorOutput>({} as CalculatorOutput)
|
|
|
|
const minYear = 1
|
|
const maxYear = 20
|
|
|
|
const { $session: session } = useNuxtApp()
|
|
watch(session.cookieData, async () => {
|
|
await getCalculator()
|
|
}, { deep: true })
|
|
|
|
const getCalculator = async () => {
|
|
const query = new URLSearchParams({
|
|
monthly_deposit: String(store.monthlySavings),
|
|
years: String(store.storagePeriod),
|
|
format: 'svg',
|
|
grid: 'false',
|
|
legend: 'false',
|
|
title: 'false',
|
|
ingots_bought_dots: 'true',
|
|
draw_linear: 'true',
|
|
annotations: 'false',
|
|
show_real_value: 'false',
|
|
series_stroke_width: '1',
|
|
// colors: '#004f3d,#004f3d,#004f3d,#004f3d,#000',
|
|
colors: '#9a7f62,#9a7f62,#9a7f62,#9a7f62,#000',
|
|
})
|
|
|
|
const { data } = await useMyFetch<GenericResponse<CalculatorOutput>>(`/api/public/plan-prediction/easy/chart?${query.toString()}`)
|
|
calculationResult.value = data
|
|
}
|
|
|
|
return {
|
|
// monthlySavings,
|
|
// yearsNumber,
|
|
minYear,
|
|
maxYear,
|
|
calculationResult,
|
|
getCalculator,
|
|
}
|
|
})
|