import Foundation struct Filter { var searchString = "" var brand: String? var model: String? var color: String? var regions: [Int]? var addedBy: AddedBy? var fromDate: Date? var toDate: Date? mutating func clear() { self.brand = nil self.model = nil self.color = nil self.regions = nil self.addedBy = nil self.fromDate = nil self.toDate = nil } func queryDictionary() -> [String: String] { var dict: [String: String] = ["query": self.searchString] if let brand = self.brand { dict["brand"] = brand } if let model = self.model { dict["model"] = model } if let color = self.color { dict["color"] = color } if let regions = self.regions { dict["regions"] = regions.map(String.init).joined(separator: ",") } if let addedBy = self.addedBy { dict["addedBy"] = addedBy.rawValue } if let fromDate = self.fromDate { dict["fromDate"] = String(fromDate.timeIntervalSince1970) } if let toDate = self.toDate { dict["toDate"] = String(toDate.timeIntervalSince1970) } return dict } }