flexinai / bod-api

0 stars 0 forks source link

bod-api

LoopBack

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;
}