mirror of
https://github.com/wger-project/flutter.git
synced 2026-02-18 23:42:00 +01:00
66 lines
1.5 KiB
Dart
66 lines
1.5 KiB
Dart
import 'package:json_annotation/json_annotation.dart';
|
|
import 'package:wger/models/exercises/exercise.dart';
|
|
import 'package:wger/models/workouts/setting.dart';
|
|
|
|
part 'set.g.dart';
|
|
|
|
@JsonSerializable()
|
|
class Set {
|
|
static const DEFAULT_NR_SETS = 4;
|
|
|
|
@JsonKey(required: true)
|
|
int id;
|
|
|
|
@JsonKey(required: true)
|
|
int sets;
|
|
|
|
@JsonKey(required: false, name: 'exerciseday')
|
|
int day;
|
|
|
|
@JsonKey(required: true)
|
|
int order;
|
|
|
|
//@JsonKey(required: true)
|
|
List<Exercise> exercisesObj = [];
|
|
|
|
@JsonKey(required: false, name: 'exercises')
|
|
List<int> exercisesIds = [];
|
|
|
|
@JsonKey(required: false)
|
|
List<Setting> settings = [];
|
|
|
|
/// Computed settings
|
|
@JsonKey(required: false)
|
|
List<Setting> settingsComputed = [];
|
|
|
|
Set({
|
|
this.id,
|
|
sets,
|
|
this.day,
|
|
this.order,
|
|
exercises,
|
|
settings,
|
|
settingsComputed,
|
|
}) {
|
|
this.sets = sets ?? DEFAULT_NR_SETS;
|
|
this.exercisesObj = exercises ?? [];
|
|
this.exercisesIds = exercisesObj.map((e) => e.id).toList();
|
|
this.settings = settings ?? [];
|
|
this.settingsComputed = settingsComputed ?? [];
|
|
}
|
|
|
|
void addExercise(Exercise exercise) {
|
|
exercisesObj.add(exercise);
|
|
exercisesIds.add(exercise.id);
|
|
}
|
|
|
|
void removeExercise(Exercise exercise) {
|
|
exercisesObj.removeWhere((e) => e.id == exercise.id);
|
|
exercisesIds.removeWhere((e) => e == exercise.id);
|
|
}
|
|
|
|
// Boilerplate
|
|
factory Set.fromJson(Map<String, dynamic> json) => _$SetFromJson(json);
|
|
Map<String, dynamic> toJson() => _$SetToJson(this);
|
|
}
|