refactored alarm models

This commit is contained in:
2026-07-17 16:57:55 +02:00
parent a33c4bbb12
commit c7ff39e55c
7 changed files with 82 additions and 20 deletions
+38
View File
@@ -0,0 +1,38 @@
import 'alarm.dart';
class RelativeTimeAlarm implements Alarm {
@override
final String id;
@override
final String taskId;
final DateTime triggerAt;
@override
final AlarmType alarmType;
const RelativeTimeAlarm({
required this.id,
required this.taskId,
required this.triggerAt,
}) : alarmType = AlarmType.timeRelative;
factory RelativeTimeAlarm.fromJson(Map<String, dynamic> json) {
return RelativeTimeAlarm(
id: json['id'] as String,
taskId: json['taskId'] as String,
triggerAt: DateTime.parse(json['triggerAt'] as String),
);
}
@override
Map<String, dynamic> toJson() {
return {
'id': id,
'taskId': taskId,
'triggerAt': triggerAt.toIso8601String(),
'alarmType': alarmType,
};
}
}