-
-
Save houen/9118968 to your computer and use it in GitHub Desktop.
How about this as a format for session_plan (written in Pseudo-JSON) | |
session_plan: | |
session_plan_exercises: | |
[ | |
{ | |
number_in_set: int | |
position: int | |
station: Station (if locked to one) | |
exercise: Exercise (no adjustments) | |
}, | |
{ | |
etc... | |
} | |
] | |
Then, to get the adjustments for that exercise in this session plan for this member, you could call something like: | |
exercise_adjustments?session_plan_exercise_id=122&member_id=42 | |
And adjustments for all exercises for this session_plan and member: | |
exercise_adjustments?session_plan_id=122&member_id=42 | |
(I am a little uncertain of the member part here, but since adjustments can be scoped to: session_plan_exercise, session_plan, workout, and member+exercise, I think including it makes the most sense, as then you are sure to get whatever is defined for this member. If you do not want member settings to interfere, for example for configuring a public workout, you can exclude it. Amine and I should discuss this I think, in order to find the best way) |
[
adjustment:{
id: ... ,
exercise_id: 4 ,
duration: ...
adjustable_id: 13,
adjustable_type: 'SessionPlanExercise',
},
adjustment:{
id: ... ,
exercise_id: 4 ,
duration: ...
adjustable_id: 15,
adjustable_type: 'SessionPlanExercise',
}
]
[
adjustment:{
id: ... ,
exercise_id: 4 ,
duration: ...
adjustable_id: 23,
adjustable_type: 'Member',
},
adjustment:{
id: ... ,
exercise_id: 5 ,
duration: ...
adjustable_id: 23,
adjustable_type: 'Member',
}
]
session_plans/3545/adjustments
[
adjustment:{
id: ... ,
exercise_id: 4 ,
duration: ...
repetion_goal: ...
set_duration: ...
session_plan_id: 5,
session_plan_exercise_id: 13,
},
adjustment:{
id: ... ,
exercise_id: 42 ,
duration: ...
repetion_goal: ...
set_duration: ...
session_plan_id: 5,
session_plan_exercise_id: 14,
},
]
Amine had a good suggestion on the format of adjustments. We have talked on it and simplified heavily into something I think we can all be happy with:
adjustments:[
adjustment:{
id: ... ,
exercise_id:... ,
duration: ...
(adjustable_id: 42,) #maybe
(adjustable_type: 'Member',) #maybe
}
]
We will start with adjustments on only two levels: Member&Exercise, and SessionPlanExercise (not member scoped)
Sascha, we will need to talk on whether we need to tell you, and if so, how, where the adjustments came from.