bod-api
Interfaces
User
interface User {
name: string;
}
Primary
interface Exercise {
id?: number;
name: string; // tuck planche hold
push?: boolean; // true
pull?: boolean; // false
intensities: string[];
leftRight?: boolean;
}
interface SessionItem {
id?: number;
exerciseId: number;
sessionId: number;
reps: number; // 8
AMRAP: boolean; // true
leftRight?: boolean; // false
sets: number; // 3
weight: number; // '10 kilos', '25 lbs'
weightUnit: string;
intensity: string; // 'tuck to straddle'
tempo: string; // '5s eccentric, 2s hold at bottom'
}
interface Session {
id?: number;
weekId: number;
name: string; // 'PULL A'
order: number; // 1 (refers to placement with in a Week)
}
interface Week {
id?: number;
programId: number;
number: number; // 6
}
interface Program {
id?: number;
name: string; // 'Program 1'
}
interface PlaylistFeedback {
playlist: Playlist;
notes: string; // 'awesome job, your first HSPU and it was strong!'
}
Statistics
interface SessionItemStatistic {
id?: number;
sessionItemId?: number; // SessionItem
setStatistics?: number[], // SetStatistic[]
rpe: number; // 8
notes: string; // 'not at my full strength'
}
interface SetStatistic {
id?: number;
set: number; // 1
reps: number; // 8
weight: number; // 35
sessionItemStatisticId?: number;
}
interface SessionStatistic {
id?: number;
session: number; // Session
sessionItemStatistics?: number[]; // SessionItemStatistic[]
}
interface WeekStatistic {
id?: number;
week: number; // Week
sessionStatistics: number[]; // SessionStatistic[]
}
interface ProgramStatistic {
id?: number;
program: number; // Program
weekStatistics: number[]; // WeekStatistic[]
}
interface MaxAttemptItem {
id?: number;
exercise: number;
reps: number;
bestAttempt: boolean; // Percieved potential for better try
leftRight?: boolean;
weight: number;
intensity: string;
}