|
|
|
|
@ -13,8 +13,6 @@ open class ModelObject: NSObject { |
|
|
|
|
|
|
|
|
|
public var store: Store? = nil |
|
|
|
|
|
|
|
|
|
var storeId: String? = nil |
|
|
|
|
|
|
|
|
|
public override init() { } |
|
|
|
|
|
|
|
|
|
open func deleteDependencies() { |
|
|
|
|
@ -26,47 +24,65 @@ open class ModelObject: NSObject { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static var relationshipNames: [String] = [] |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
open class BaseModelObject: ModelObject, Codable { |
|
|
|
|
|
|
|
|
|
public var storeId: String? = nil |
|
|
|
|
|
|
|
|
|
// // MARK: - Codable |
|
|
|
|
// |
|
|
|
|
// enum CodingKeys: CodingKey { |
|
|
|
|
// case storeId |
|
|
|
|
// } |
|
|
|
|
// |
|
|
|
|
// public required init(from decoder: any Decoder) throws { |
|
|
|
|
// let decoder = try decoder.container(keyedBy: CodingKeys.self) |
|
|
|
|
// self.storeId = try decoder.decodeIfPresent(String.self, forKey: CodingKeys.storeId) |
|
|
|
|
// } |
|
|
|
|
// |
|
|
|
|
// public func encode(to encoder: any Encoder) throws { |
|
|
|
|
// var container = encoder.container(keyedBy: CodingKeys.self) |
|
|
|
|
// try container.encodeIfPresent(self.storeId, forKey: .storeId) |
|
|
|
|
// } |
|
|
|
|
public override init() { } |
|
|
|
|
|
|
|
|
|
// Coding Keys to map properties during encoding/decoding |
|
|
|
|
enum CodingKeys: String, CodingKey { |
|
|
|
|
case storeId |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Required initializer for Decodable |
|
|
|
|
required public init(from decoder: Decoder) throws { |
|
|
|
|
let container = try decoder.container(keyedBy: CodingKeys.self) |
|
|
|
|
self.storeId = try container.decodeIfPresent(String.self, forKey: .storeId) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Required method for Encodable |
|
|
|
|
open func encode(to encoder: Encoder) throws { |
|
|
|
|
var container = encoder.container(keyedBy: CodingKeys.self) |
|
|
|
|
try container.encode(self.storeId, forKey: .storeId) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
open class SyncedModelObject: ModelObject { |
|
|
|
|
open class SyncedModelObject: BaseModelObject { |
|
|
|
|
|
|
|
|
|
public var lastUpdate: Date = Date() |
|
|
|
|
public var shared: Bool? |
|
|
|
|
|
|
|
|
|
public override init() { |
|
|
|
|
super.init() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
enum CodingKeys: String, CodingKey { |
|
|
|
|
case lastUpdate |
|
|
|
|
case shared = "_shared" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// enum CodingKeys: CodingKey { |
|
|
|
|
// case lastUpdate |
|
|
|
|
// } |
|
|
|
|
// |
|
|
|
|
// public override init() { |
|
|
|
|
// super.init() |
|
|
|
|
// } |
|
|
|
|
// |
|
|
|
|
// public required init(from decoder: any Decoder) throws { |
|
|
|
|
// try super.init(from: decoder) |
|
|
|
|
// let decoder = try decoder.container(keyedBy: CodingKeys.self) |
|
|
|
|
// self.lastUpdate = try decoder.decode(Date.self, forKey: CodingKeys.lastUpdate) |
|
|
|
|
// } |
|
|
|
|
// |
|
|
|
|
// open override func encode(to encoder: any Encoder) throws { |
|
|
|
|
// try super.encode(to: encoder) |
|
|
|
|
// var container = encoder.container(keyedBy: CodingKeys.self) |
|
|
|
|
// try container.encodeIfPresent(self.lastUpdate, forKey: .lastUpdate) |
|
|
|
|
// } |
|
|
|
|
// Required initializer for Decodable |
|
|
|
|
required public init(from decoder: Decoder) throws { |
|
|
|
|
let container = try decoder.container(keyedBy: CodingKeys.self) |
|
|
|
|
self.lastUpdate = try container.decodeIfPresent(Date.self, forKey: .lastUpdate) ?? Date() |
|
|
|
|
self.shared = try container.decodeIfPresent(Bool.self, forKey: .shared) |
|
|
|
|
|
|
|
|
|
try super.init(from: decoder) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Required method for Encodable |
|
|
|
|
open override func encode(to encoder: Encoder) throws { |
|
|
|
|
var container = encoder.container(keyedBy: CodingKeys.self) |
|
|
|
|
try container.encode(lastUpdate, forKey: .lastUpdate) |
|
|
|
|
if self.shared == true { |
|
|
|
|
try container.encodeIfPresent(shared, forKey: .shared) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
try super.encode(to: encoder) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|