AutoCat/AutoCatCore/Models/AudioRecord.swift

67 lines
1.8 KiB
Swift

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()
}
}