31 lines
670 B
Dart
31 lines
670 B
Dart
import 'alarm.dart';
|
|
|
|
class RelativeTimeAlarm implements Alarm {
|
|
@override
|
|
final String id;
|
|
|
|
final Duration triggerAt;
|
|
|
|
@override
|
|
final AlarmType alarmType;
|
|
|
|
const RelativeTimeAlarm({required this.id, required this.triggerAt})
|
|
: alarmType = AlarmType.timeRelative;
|
|
|
|
factory RelativeTimeAlarm.fromJson(Map<String, dynamic> json) {
|
|
return RelativeTimeAlarm(
|
|
id: json['id'] as String,
|
|
triggerAt: Duration(minutes: int.tryParse(json['triggerAt']) ?? 0),
|
|
);
|
|
}
|
|
|
|
@override
|
|
Map<String, dynamic> toJson() {
|
|
return {
|
|
'id': id,
|
|
'triggerAtMinutes': triggerAt.inMinutes,
|
|
'alarmType': alarmType.toJson(),
|
|
};
|
|
}
|
|
}
|