class Challenge { final List exercises; final int bonusExercise; const Challenge({ required this.exercises, required this.bonusExercise, }); factory Challenge.fromMap(Map data) { return Challenge( exercises: _getExercise(data["list_exercises"]), bonusExercise: data["bonus_exercise"], ); } static List _getExercise(List> exercises) { return exercises.map((exercise) => Exercise.fromMap(exercise)).toList(); } } class Exercise { final String description; final Difficulty difficulty; final String name; final int repetitions; final int sets; const Exercise({ required this.description, required this.difficulty, required this.name, required this.repetitions, required this.sets, }); factory Exercise.fromMap(Map data) { return Exercise( description: data["description"], difficulty: Difficulty.values[data["difficulty"]], name: data["name"], repetitions: data["repetitions"], sets: data["sets"], ); } } enum Difficulty { easy, normal, hard, }