// // GeoZoneModel.swift // Runner // // Created by ZiKambrani on 13/12/2020. // import UIKit import CoreLocation class GeoZoneModel{ var geofenceId:Int = -1 var description:String = "" var descriptionN:String? var latitude:String? var longitude:String? var radius:Int? var type:Int? var projectID:Int? var imageURL:String? var isCity:String? func identifier() -> String{ return "\(geofenceId)_hmg" } func message() -> String{ return description } func toRegion(locationManager:CLLocationManager) -> CLCircularRegion?{ if let rad = radius, let lat = latitude?.removeSpace(), let long = longitude?.removeSpace(), let radius_d = Double("\(rad)"), let lat_d = Double(lat), let long_d = Double(long){ let coordinate = CLLocationCoordinate2D(latitude: lat_d, longitude: long_d) let validatedRadius = min(radius_d, locationManager.maximumRegionMonitoringDistance) let region = CLCircularRegion(center: coordinate, radius: validatedRadius, identifier: identifier()) region.notifyOnExit = true region.notifyOnEntry = true return region } return nil } class func from(json:[String:Any]) -> GeoZoneModel{ let model = GeoZoneModel() model.geofenceId = json["GEOF_ID"] as? Int ?? 0 model.radius = json["Radius"] as? Int model.projectID = json["ProjectID"] as? Int model.type = json["Type"] as? Int model.description = json["Description"] as? String ?? "" model.descriptionN = json["DescriptionN"] as? String model.latitude = json["Latitude"] as? String model.longitude = json["Longitude"] as? String model.imageURL = json["ImageURL"] as? String model.isCity = json["IsCity"] as? String return model } class func list(from jsonString:String) -> [GeoZoneModel]{ let value = dictionaryArray(from: jsonString) let geoZones = value.map { GeoZoneModel.from(json: $0) } return geoZones } }