added id to alarms

This commit is contained in:
2026-06-18 22:59:47 +02:00
parent e645081204
commit 82a74a66b5
3 changed files with 21 additions and 2 deletions
+1
View File
@@ -2,6 +2,7 @@ import 'location_alarm.dart';
import 'time_alarm.dart'; import 'time_alarm.dart';
abstract class Alarm { abstract class Alarm {
String get id;
String get taskId; String get taskId;
Map<String, dynamic> toJson(); Map<String, dynamic> toJson();
+6
View File
@@ -2,6 +2,9 @@ import 'alarm.dart';
import 'location.dart'; import 'location.dart';
class LocationAlarm implements Alarm { class LocationAlarm implements Alarm {
@override
final String id;
@override @override
final String taskId; final String taskId;
@@ -10,6 +13,7 @@ class LocationAlarm implements Alarm {
final int radiusMeters; final int radiusMeters;
const LocationAlarm({ const LocationAlarm({
required this.id,
required this.taskId, required this.taskId,
required this.location, required this.location,
required this.radiusMeters, required this.radiusMeters,
@@ -17,6 +21,7 @@ class LocationAlarm implements Alarm {
factory LocationAlarm.fromJson(Map<String, dynamic> json) { factory LocationAlarm.fromJson(Map<String, dynamic> json) {
return LocationAlarm( return LocationAlarm(
id: json['id'] as String,
taskId: json['taskId'] as String, taskId: json['taskId'] as String,
location: Location.fromJson(json['location'] as Map<String, dynamic>), location: Location.fromJson(json['location'] as Map<String, dynamic>),
radiusMeters: json['radiusMeters'] as int, radiusMeters: json['radiusMeters'] as int,
@@ -26,6 +31,7 @@ class LocationAlarm implements Alarm {
@override @override
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
return { return {
'id': id,
'taskId': taskId, 'taskId': taskId,
'location': location.toJson(), 'location': location.toJson(),
'radiusMeters': radiusMeters, 'radiusMeters': radiusMeters,
+14 -2
View File
@@ -1,15 +1,23 @@
import 'alarm.dart'; import 'alarm.dart';
class TimeAlarm implements Alarm { class TimeAlarm implements Alarm {
@override
final String id;
@override @override
final String taskId; final String taskId;
final DateTime triggerAt; 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<String, dynamic> json) { factory TimeAlarm.fromJson(Map<String, dynamic> json) {
return TimeAlarm( return TimeAlarm(
id: json['id'] as String,
taskId: json['taskId'] as String, taskId: json['taskId'] as String,
triggerAt: DateTime.parse(json['triggerAt'] as String), triggerAt: DateTime.parse(json['triggerAt'] as String),
); );
@@ -17,6 +25,10 @@ class TimeAlarm implements Alarm {
@override @override
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
return {'taskId': taskId, 'triggerAt': triggerAt.toIso8601String()}; return {
'id': id,
'taskId': taskId,
'triggerAt': triggerAt.toIso8601String(),
};
} }
} }