import SwiftUI

struct RemasterModelOverrideData: Codable {
    static let empty: RemasterModelOverrideData = .init(overrideMap: [:])

    var overrideMap: [String: RemasterModelMetaData] = [:]

    init(overrideMap: [String: RemasterModelMetaData]) {
        self.overrideMap = overrideMap
    }

    var asJSONData: Data? {
        let encoder = JSONEncoder()
        return try? encoder.encode(self)
    }

    static func fromData(_ data: Data?) -> RemasterModelOverrideData {
        guard let data else { return .empty }
        let decoder = JSONDecoder()
        return (try? decoder.decode(RemasterModelOverrideData.self, from: data)) ?? .empty
    }
}
