import client from './client'; import type { KettlebellSession, KettlebellSetLog, DraftSession } from '../types/kettlebell'; export interface GenerateSessionRequest { focus: string; duration_minutes: number; available_weights: number[]; } export interface RefineRequest { draft: DraftSession; feedback: string; focus: string; duration_minutes: number; available_weights: number[]; } export interface SaveDraftRequest { draft: DraftSession; } export interface LogSetRequest { exercise_order: number; set_number: number; actual_reps: number; actual_weight_kg: number; actual_duration_seconds: number; perceived_effort: number; } export interface CompleteSessionRequest { notes?: string; } export const generateSession = (data: GenerateSessionRequest) => client.post('/kettlebell/generate', data).then(r => r.data); export const getSessions = () => client.get('/kettlebell/').then(r => r.data); export const getSession = (id: number) => client.get(`/kettlebell/${id}`).then(r => r.data); export const startSession = (id: number) => client.patch(`/kettlebell/${id}/start`).then(r => r.data); export const logSet = (id: number, data: LogSetRequest) => client.post(`/kettlebell/${id}/sets`, data).then(r => r.data); export const getSets = (id: number) => client.get(`/kettlebell/${id}/sets`).then(r => r.data); export const completeSession = (id: number, data: CompleteSessionRequest = {}) => client.patch(`/kettlebell/${id}/complete`, data).then(r => r.data); export const retrySession = (id: number) => client.post(`/kettlebell/${id}/retry`).then(r => r.data); export const abandonSession = (id: number) => client.patch(`/kettlebell/${id}/abandon`).then(r => r.data); export const deleteSession = (id: number) => client.delete(`/kettlebell/${id}`); export const generateDraft = (data: GenerateSessionRequest) => client.post('/kettlebell/generate-draft', data).then(r => r.data); export const refineDraft = (data: RefineRequest) => client.post('/kettlebell/refine', data).then(r => r.data); export const saveDraft = (data: SaveDraftRequest) => client.post('/kettlebell/save-draft', data).then(r => r.data);