import { WorkoutSession, ExerciseDef, ExerciseType, WorkoutSet, WorkoutPlan } from '../types'; import { api } from './api'; export const getSessions = async (userId: string): Promise => { try { return await api.get('/sessions'); } catch { return []; } }; export const saveSession = async (userId: string, session: WorkoutSession): Promise => { await api.post('/sessions', session); }; export const deleteSession = async (userId: string, id: string): Promise => { await api.delete(`/sessions/${id}`); }; export const deleteAllUserData = (userId: string) => { // Not implemented in frontend }; export const getExercises = async (userId: string): Promise => { try { return await api.get('/exercises'); } catch { return []; } }; export const saveExercise = async (userId: string, exercise: ExerciseDef): Promise => { await api.post('/exercises', exercise); }; export const getLastSetForExercise = async (userId: string, exerciseId: string): Promise => { // This requires fetching sessions or a specific endpoint. // For performance, we should probably have an endpoint for this. // For now, let's fetch sessions and find it client side, or implement endpoint later. // Given the async nature, we need to change the signature to Promise. // The caller needs to await this. const sessions = await getSessions(userId); for (const session of sessions) { for (let i = session.sets.length - 1; i >= 0; i--) { if (session.sets[i].exerciseId === exerciseId) { return session.sets[i]; } } } return undefined; } export const getPlans = async (userId: string): Promise => { try { return await api.get('/plans'); } catch { return []; } }; export const savePlan = async (userId: string, plan: WorkoutPlan): Promise => { await api.post('/plans', plan); }; export const deletePlan = async (userId: string, id: string): Promise => { await api.delete(`/plans/${id}`); };