Geofence.fromMap constructor
Implementation
factory Geofence.fromMap(JsonMap map) {
final identifier = map['identifier'];
final radius = map['radius'];
final latitude = map['latitude'];
final longitude = map['longitude'];
final extrasData = map['extras'];
// Log warning for invalid data
if (identifier is! String || identifier.isEmpty) {
debugPrint('[Geofence] Warning: Invalid or missing identifier');
}
if (radius is! num || radius <= 0) {
debugPrint('[Geofence] Warning: Invalid or missing radius');
}
if (latitude is! num) {
debugPrint('[Geofence] Warning: Invalid or missing latitude');
}
if (longitude is! num) {
debugPrint('[Geofence] Warning: Invalid or missing longitude');
}
return Geofence(
identifier: identifier is String ? identifier : '',
radius: radius is num ? radius.toDouble() : 0.0,
latitude: latitude is num ? latitude.toDouble() : 0.0,
longitude: longitude is num ? longitude.toDouble() : 0.0,
notifyOnEntry: map['notifyOnEntry'] as bool? ?? true,
notifyOnExit: map['notifyOnExit'] as bool? ?? true,
notifyOnDwell: map['notifyOnDwell'] as bool? ?? false,
loiteringDelay: (map['loiteringDelay'] as num?)?.toInt(),
extras: extrasData is Map ? Map<String, dynamic>.from(extrasData) : null,
);
}