import { defineStore } from 'pinia' import { useLocalStorage } from '@vueuse/core' interface ExerciseData { workingSet: { workingSetReps: number[]; workingSetWeight: number[] }[] warmUpSet: { warmSetReps: number[]; warmSetWeight: number[] }[] } interface MuscleExercises { [muscle: string]: { [selectedExercise: string]: ExerciseData } } interface DateExercises { [date: string]: MuscleExercises } export const useWeightInputStore = defineStore('weightInput', () => { const exercises = useLocalStorage('exercises', {}) function addWorkingSet(date: string, muscle: string, selectedExercise: string) { if (!exercises.value[date]) exercises.value[date] = {} if (!exercises.value[date][muscle]) exercises.value[date][muscle] = {} if (!exercises.value[date][muscle][selectedExercise]) { exercises.value[date][muscle][selectedExercise] = { workingSet: [], warmUpSet: [], } } exercises.value[date][muscle][selectedExercise].workingSet.push({ workingSetReps: [], workingSetWeight: [], }) console.log('Added working set:', exercises.value[date][muscle][selectedExercise]) } function addWarmUpSet(date: string, muscle: string, selectedExercise: string) { if (!exercises.value[date]) exercises.value[date] = {} if (!exercises.value[date][muscle]) exercises.value[date][muscle] = {} if (!exercises.value[date][muscle][selectedExercise]) { exercises.value[date][muscle][selectedExercise] = { workingSet: [], warmUpSet: [], } } exercises.value[date][muscle][selectedExercise].warmUpSet.push({ warmSetReps: [], warmSetWeight: [], }) } function removeWorkingSet(date: string, muscle: string, selectedExercise: string) { if (!exercises.value[date]?.[muscle]?.[selectedExercise]) return exercises.value[date][muscle][selectedExercise].workingSet.pop() } function removeWarmUpSet(date: string, muscle: string, selectedExercise: string) { if (!exercises.value[date]?.[muscle]?.[selectedExercise]) return exercises.value[date][muscle][selectedExercise].warmUpSet.pop() } function getWorkingSetCount(date: string, muscle: string, selectedExercise: string) { if (exercises.value[date]?.[muscle]?.[selectedExercise]) return exercises.value[date][muscle][selectedExercise].workingSet.length return 1 } function getWarmUpSetCount(date: string, muscle: string, selectedExercise: string) { if (exercises.value[date]?.[muscle]?.[selectedExercise]) return exercises.value[date][muscle][selectedExercise].warmUpSet.length return 1 } function initSetsInputs(date: string, muscle: string, selectedExercise: string) { if (!exercises.value[date]) exercises.value[date] = {} if (!exercises.value[date][muscle]) exercises.value[date][muscle] = {} if (!exercises.value[date][muscle][selectedExercise]) { exercises.value[date][muscle][selectedExercise] = { workingSet: [], warmUpSet: [], } } console.log('Init sets inputs:', exercises.value[date][muscle][selectedExercise], selectedExercise) } return { exercises, addWorkingSet, removeWorkingSet, addWarmUpSet, removeWarmUpSet, getWorkingSetCount, getWarmUpSetCount, initSetsInputs, } })