class PlaceGate { final String nameAr; final String? nameEn; final double latitude; final double longitude; final bool isMainGate; const PlaceGate({ required this.nameAr, this.nameEn, required this.latitude, required this.longitude, this.isMainGate = false, }); factory PlaceGate.fromJson(Map json) { return PlaceGate( nameAr: json['name_ar']?.toString() ?? json['gate_name_ar']?.toString() ?? 'بوابة', nameEn: json['name_en']?.toString() ?? json['gate_name_en']?.toString(), latitude: (json['latitude'] as num?)?.toDouble() ?? (json['lat'] as num?)?.toDouble() ?? double.tryParse(json['latitude']?.toString() ?? '0.0') ?? 0.0, longitude: (json['longitude'] as num?)?.toDouble() ?? (json['lng'] as num?)?.toDouble() ?? double.tryParse(json['longitude']?.toString() ?? '0.0') ?? 0.0, isMainGate: json['is_main_gate'] as bool? ?? false, ); } Map toJson() => { 'name_ar': nameAr, if (nameEn != null) 'name_en': nameEn, 'latitude': latitude, 'longitude': longitude, 'is_main_gate': isMainGate, }; }