83 lines
2 KiB
Dart
83 lines
2 KiB
Dart
class TrainingSession {
|
|
final int? id;
|
|
final DateTime date;
|
|
final int sets;
|
|
final double weightLeft;
|
|
final double weightRight;
|
|
final int repsPerSet;
|
|
final int duration; // in seconds
|
|
final String program;
|
|
final int blockDay;
|
|
|
|
TrainingSession({
|
|
this.id,
|
|
required this.date,
|
|
required this.sets,
|
|
required this.weightLeft,
|
|
required this.weightRight,
|
|
required this.repsPerSet,
|
|
required this.duration,
|
|
required this.program,
|
|
required this.blockDay,
|
|
});
|
|
|
|
// Convert a TrainingSession into a Map. The keys must correspond to the names of the
|
|
// columns in the database.
|
|
Map<String, dynamic> toMap() {
|
|
return {
|
|
'id': id,
|
|
'date': date.toIso8601String(),
|
|
'sets': sets,
|
|
'weightLeft': weightLeft,
|
|
'weightRight': weightRight,
|
|
'repsPerSet': repsPerSet,
|
|
'duration': duration,
|
|
'program': program,
|
|
'blockDay': blockDay,
|
|
};
|
|
}
|
|
|
|
// Implement fromMap
|
|
factory TrainingSession.fromMap(Map<String, dynamic> map) {
|
|
return TrainingSession(
|
|
id: map['id'],
|
|
date: DateTime.parse(map['date']),
|
|
sets: map['sets'],
|
|
weightLeft: map['weightLeft'],
|
|
weightRight: map['weightRight'],
|
|
repsPerSet: map['repsPerSet'],
|
|
duration: map['duration'],
|
|
program: map['program'] ?? 'giant_1.0',
|
|
blockDay: map['blockDay'] ?? 1,
|
|
);
|
|
}
|
|
|
|
TrainingSession copyWith({
|
|
int? id,
|
|
DateTime? date,
|
|
int? sets,
|
|
double? weightLeft,
|
|
double? weightRight,
|
|
int? repsPerSet,
|
|
int? duration,
|
|
String? program,
|
|
int? blockDay,
|
|
}) {
|
|
return TrainingSession(
|
|
id: id ?? this.id,
|
|
date: date ?? this.date,
|
|
sets: sets ?? this.sets,
|
|
weightLeft: weightLeft ?? this.weightLeft,
|
|
weightRight: weightRight ?? this.weightRight,
|
|
repsPerSet: repsPerSet ?? this.repsPerSet,
|
|
duration: duration ?? this.duration,
|
|
program: program ?? this.program,
|
|
blockDay: blockDay ?? this.blockDay,
|
|
);
|
|
}
|
|
|
|
@override
|
|
String toString() {
|
|
return 'TrainingSession{id: $id, date: $date, sets: $sets}';
|
|
}
|
|
}
|