import Foundation import CoreData public struct Vehicle: Decodable { let number: String let currentNumber: String? let brand: VBrand? // TODO: Remove code duplication public var unrecognized: Bool { return self.brand == nil } public var outdated: Bool { if let current = self.currentNumber { return current != self.number } else { return false } } } extension CDVehicle { convenience init(vehicle: Vehicle, context: NSManagedObjectContext) { self.init(context: context) self.number = vehicle.number self.currentNumber = vehicle.currentNumber if let vbrand = vehicle.brand { self.brand = CDVBrand(vbrand: vbrand, context: context) } } public var unrecognized: Bool { return self.brand == nil } public var outdated: Bool { if let current = self.currentNumber { return current != self.number } else { return false } } }