import Foundation import RealmSwift public class AudioRecord: Object, Identifiable, Cloneable { @Persisted public var path: String = "" @Persisted public var number: String? @Persisted public var rawText: String = "" @Persisted private var addedDate: TimeInterval = 0 @Persisted public var duration: TimeInterval = 0 @Persisted public var event: VehicleEvent? public var identifier: TimeInterval = 0 public var id: TimeInterval { if self.identifier == 0 { self.identifier = self.addedDate } return self.identifier } public var differenceIdentifier: TimeInterval { id } public func isContentEqual(to source: AudioRecord) -> Bool { return self == source } public init(path: String, number: String?, raw: String, duration: TimeInterval, event: VehicleEvent?) { self.path = path self.number = number self.duration = duration self.rawText = raw self.event = event self.addedDate = Date().timeIntervalSince1970 } required override init() { super.init() } public override static func primaryKey() -> String? { return "path" } public override class func ignoredProperties() -> [String] { return ["id", "identifier", "differenceIdentifier"] } public func getAddedDate() -> TimeInterval { if self.identifier == 0 { self.identifier = self.addedDate } return self.addedDate } // MARK: - Cloneable required public init(copy: AudioRecord) { self.path = copy.path self.number = copy.number self.rawText = copy.rawText self.addedDate = copy.addedDate self.duration = copy.duration self.event = copy.event?.clone() } }