Files
flutter/lib/models/workouts/setting.dart
2021-04-06 20:41:44 +02:00

98 lines
2.2 KiB
Dart

import 'package:json_annotation/json_annotation.dart';
import 'package:wger/helpers/json.dart';
import 'package:wger/models/exercises/exercise.dart';
import 'package:wger/models/workouts/repetition_unit.dart';
import 'package:wger/models/workouts/weight_unit.dart';
part 'setting.g.dart';
@JsonSerializable()
class Setting {
static final possibleRiRValues = ['1', '1.5', '2', '2.5', '3', '3.5'];
static final defaultRiR = '2';
@JsonKey(required: true)
int? id;
@JsonKey(required: true, name: 'set')
late int setId;
@JsonKey(required: true)
late int order;
@JsonKey(ignore: true)
late Exercise exerciseObj;
@JsonKey(required: true, name: 'exercise')
late int exerciseId;
@JsonKey(required: true, name: 'repetition_unit')
late int repetitionUnitId;
@JsonKey(ignore: true)
late RepetitionUnit repetitionUnitObj;
@JsonKey(required: true)
int? reps;
@JsonKey(required: true, fromJson: toNum, toJson: toString)
num? weight;
@JsonKey(required: true, name: 'weight_unit')
late int weightUnitId;
@JsonKey(ignore: true)
late WeightUnit weightUnitObj;
@JsonKey(required: true)
late String comment = '';
@JsonKey(required: true)
String? rir = '';
// Generated by Server
@JsonKey(ignore: true)
late String repsText = '';
Setting({
this.id,
required this.setId,
required this.order,
required this.exerciseId,
required this.repetitionUnitId,
required this.reps,
required this.weightUnitId,
required this.comment,
required this.rir,
});
Setting.empty();
// Boilerplate
factory Setting.fromJson(Map<String, dynamic> json) => _$SettingFromJson(json);
Map<String, dynamic> toJson() => _$SettingToJson(this);
void setExercise(Exercise exercise) {
exerciseObj = exercise;
exerciseId = exercise.id;
}
void setWeightUnit(WeightUnit weightUnit) {
weightUnitObj = weightUnit;
weightUnitId = weightUnit.id;
}
void setRepetitionUnit(RepetitionUnit repetitionUnit) {
repetitionUnitObj = repetitionUnit;
repetitionUnitId = repetitionUnit.id;
}
void setRir(String rir) {
if (possibleRiRValues.contains(rir)) {
this.rir = rir;
} else {
throw Exception('RiR value not allowed');
}
}
}