package de.avalax.fitbuddy.port.adapter.service;
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import de.avalax.fitbuddy.domain.model.exercise.Exercise;
import de.avalax.fitbuddy.domain.model.set.Set;
import de.avalax.fitbuddy.domain.model.workout.Workout;
public class WorkoutToJsonAdapter {
private Gson gson = new Gson();
public String fromWorkout(Workout workout) {
Collection<Object> collection = new ArrayList<>();
collection.add(workout.getName());
List<Object> exercises = new ArrayList<>();
for (Exercise exercise : workout.getExercises()) {
exercises.add(fromExercise(exercise));
}
collection.add(exercises);
return gson.toJson(collection);
}
private List<Object> fromExercise(Exercise exercise) {
List<Object> exportedExercise = new ArrayList<>();
exportedExercise.add(exercise.getName());
List<Object> sets = new ArrayList<>();
for (Set set : exercise.getSets()) {
sets.add(fromSet(set));
}
exportedExercise.add(sets);
return exportedExercise;
}
private List<Object> fromSet(Set set) {
List<Object> s = new ArrayList<>();
s.add(set.getWeight());
s.add(set.getMaxReps());
return s;
}
}