Geofence.fromMap constructor

Geofence.fromMap(
  1. JsonMap map
)

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,
  );
}