34 lines
848 B
Dart
34 lines
848 B
Dart
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);
|
|
}
|
|
}
|