Created basic Timer class and TimerEntity

Signed-off-by: Andreas Fahrecker <AndreasFahrecker@gmail.com>
This commit is contained in:
Andreas Fahrecker 2020-10-12 10:35:18 +02:00
parent d498c2e100
commit 161d39aedc
2 changed files with 65 additions and 0 deletions

33
lib/models/timer.dart Normal file
View File

@ -0,0 +1,33 @@
import 'package:meta/meta.dart';
import 'package:time_progress_calculator/persistence/timer_entity.dart';
@immutable
class Timer {
final DateTime startTime;
final DateTime endTime;
Timer(this.startTime, this.endTime);
Timer copyWith({DateTime startTime, DateTime endTime}) {
return Timer(startTime ?? this.startTime, endTime ?? this.endTime);
}
@override
int get hashCode => startTime.hashCode ^ endTime.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is Timer &&
runtimeType == other.runtimeType &&
startTime == other.startTime &&
endTime == other.endTime;
TimerEntity toEntity() {
return TimerEntity(startTime, endTime);
}
static Timer fromEntity(TimerEntity entity) {
return Timer(entity.startTime, entity.endTime);
}
}

View File

@ -0,0 +1,32 @@
class TimerEntity {
final DateTime startTime;
final DateTime endTime;
TimerEntity(this.startTime, this.endTime);
@override
int get hashCode => startTime.hashCode ^ endTime.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is TimerEntity &&
runtimeType == other.runtimeType &&
startTime == other.startTime &&
endTime == other.endTime;
Map<String, Object> toJson() {
return {
"startTime": startTime.millisecondsSinceEpoch,
"endTime": startTime.millisecondsSinceEpoch
};
}
static TimerEntity fromJson(Map<String, Object> json) {
DateTime startTime =
DateTime.fromMillisecondsSinceEpoch(json["startTime"] as int);
DateTime endTime =
DateTime.fromMillisecondsSinceEpoch(json["endTime"] as int);
return TimerEntity(startTime, endTime);
}
}