diff --git a/lib/model/alarm.dart b/lib/model/alarm.dart index e730c92..1f73729 100644 --- a/lib/model/alarm.dart +++ b/lib/model/alarm.dart @@ -2,6 +2,7 @@ import 'location_alarm.dart'; import 'time_alarm.dart'; abstract class Alarm { + String get id; String get taskId; Map toJson(); diff --git a/lib/model/location_alarm.dart b/lib/model/location_alarm.dart index 6fda109..0d8d10a 100644 --- a/lib/model/location_alarm.dart +++ b/lib/model/location_alarm.dart @@ -2,6 +2,9 @@ import 'alarm.dart'; import 'location.dart'; class LocationAlarm implements Alarm { + @override + final String id; + @override final String taskId; @@ -10,6 +13,7 @@ class LocationAlarm implements Alarm { final int radiusMeters; const LocationAlarm({ + required this.id, required this.taskId, required this.location, required this.radiusMeters, @@ -17,6 +21,7 @@ class LocationAlarm implements Alarm { factory LocationAlarm.fromJson(Map json) { return LocationAlarm( + id: json['id'] as String, taskId: json['taskId'] as String, location: Location.fromJson(json['location'] as Map), radiusMeters: json['radiusMeters'] as int, @@ -26,6 +31,7 @@ class LocationAlarm implements Alarm { @override Map toJson() { return { + 'id': id, 'taskId': taskId, 'location': location.toJson(), 'radiusMeters': radiusMeters, diff --git a/lib/model/time_alarm.dart b/lib/model/time_alarm.dart index b806543..f7aabc5 100644 --- a/lib/model/time_alarm.dart +++ b/lib/model/time_alarm.dart @@ -1,15 +1,23 @@ import 'alarm.dart'; class TimeAlarm implements Alarm { + @override + final String id; + @override final String taskId; final DateTime triggerAt; - const TimeAlarm({required this.taskId, required this.triggerAt}); + const TimeAlarm({ + required this.id, + required this.taskId, + required this.triggerAt, + }); factory TimeAlarm.fromJson(Map json) { return TimeAlarm( + id: json['id'] as String, taskId: json['taskId'] as String, triggerAt: DateTime.parse(json['triggerAt'] as String), ); @@ -17,6 +25,10 @@ class TimeAlarm implements Alarm { @override Map toJson() { - return {'taskId': taskId, 'triggerAt': triggerAt.toIso8601String()}; + return { + 'id': id, + 'taskId': taskId, + 'triggerAt': triggerAt.toIso8601String(), + }; } }