From 10ae8df73751fef1af28935f0f8af563e6949a68 Mon Sep 17 00:00:00 2001 From: marco Date: Thu, 18 Jun 2026 18:21:36 +0200 Subject: [PATCH] created alarm models --- lib/model/alarm.dart | 3 +++ lib/model/location_alarm.dart | 33 +++++++++++++++++++++++++++++++++ lib/model/time_alarm.dart | 21 +++++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 lib/model/alarm.dart create mode 100644 lib/model/location_alarm.dart create mode 100644 lib/model/time_alarm.dart diff --git a/lib/model/alarm.dart b/lib/model/alarm.dart new file mode 100644 index 0000000..a149adf --- /dev/null +++ b/lib/model/alarm.dart @@ -0,0 +1,3 @@ +abstract class Alarm { + String get id; +} diff --git a/lib/model/location_alarm.dart b/lib/model/location_alarm.dart new file mode 100644 index 0000000..b97b388 --- /dev/null +++ b/lib/model/location_alarm.dart @@ -0,0 +1,33 @@ +import 'alarm.dart'; +import 'location.dart'; + +class LocationAlarm implements Alarm { + @override + final String id; + + final Location location; + + final int radiusMeters; + + const LocationAlarm({ + required this.id, + required this.location, + required this.radiusMeters, + }); + + factory LocationAlarm.fromJson(Map json) { + return LocationAlarm( + id: json['id'] as String, + location: Location.fromJson(json['location'] as Map), + radiusMeters: json['radiusMeters'] as int, + ); + } + + Map toJson() { + return { + 'id': id, + 'location': location.toJson(), + 'radiusMeters': radiusMeters, + }; + } +} diff --git a/lib/model/time_alarm.dart b/lib/model/time_alarm.dart new file mode 100644 index 0000000..39108f7 --- /dev/null +++ b/lib/model/time_alarm.dart @@ -0,0 +1,21 @@ +import 'alarm.dart'; + +class TimeAlarm implements Alarm { + @override + final String id; + + final DateTime triggerAt; + + const TimeAlarm({required this.id, required this.triggerAt}); + + factory TimeAlarm.fromJson(Map json) { + return TimeAlarm( + id: json['id'] as String, + triggerAt: DateTime.parse(json['triggerAt'] as String), + ); + } + + Map toJson() { + return {'id': id, 'triggerAt': triggerAt.toIso8601String()}; + } +}