Files
trainhub-flutter/lib/models/training_models.dart
Kazimierz Ciołek 782986a632 Initial commit
2026-02-19 02:49:29 +01:00

108 lines
2.3 KiB
Dart

class TrainingPlanModel {
String id;
String name;
List<TrainingSectionModel> sections;
TrainingPlanModel({
required this.id,
required this.name,
required this.sections,
});
factory TrainingPlanModel.fromJson(Map<String, dynamic> json) {
return TrainingPlanModel(
id: json['id'] ?? '',
name: json['name'] ?? '',
sections:
(json['sections'] as List<dynamic>?)
?.map((e) => TrainingSectionModel.fromJson(e))
.toList() ??
[],
);
}
Map<String, dynamic> toJson() {
return {
'id': id,
'name': name,
'sections': sections.map((e) => e.toJson()).toList(),
};
}
}
class TrainingSectionModel {
String id;
String name;
List<TrainingExerciseModel> exercises;
TrainingSectionModel({
required this.id,
required this.name,
required this.exercises,
});
factory TrainingSectionModel.fromJson(Map<String, dynamic> json) {
return TrainingSectionModel(
id: json['id'] ?? '',
name: json['name'] ?? '',
exercises:
(json['exercises'] as List<dynamic>?)
?.map((e) => TrainingExerciseModel.fromJson(e))
.toList() ??
[],
);
}
Map<String, dynamic> toJson() {
return {
'id': id,
'name': name,
'exercises': exercises.map((e) => e.toJson()).toList(),
};
}
}
class TrainingExerciseModel {
String instanceId;
String exerciseId;
String name;
int sets;
int value; // Reps or Seconds
bool isTime;
int rest;
TrainingExerciseModel({
required this.instanceId,
required this.exerciseId,
required this.name,
required this.sets,
required this.value,
required this.isTime,
required this.rest,
});
factory TrainingExerciseModel.fromJson(Map<String, dynamic> json) {
return TrainingExerciseModel(
instanceId: json['instanceId'] ?? '',
exerciseId: json['exerciseId'] ?? '',
name: json['name'] ?? '',
sets: json['sets'] ?? 3,
value: json['value'] ?? 10,
isTime: json['isTime'] ?? false,
rest: json['rest'] ?? 60,
);
}
Map<String, dynamic> toJson() {
return {
'instanceId': instanceId,
'exerciseId': exerciseId,
'name': name,
'sets': sets,
'value': value,
'isTime': isTime,
'rest': rest,
};
}
}