session-ios/SessionMessagingKit/Database/Models/SharedConfigDump.swift

38 lines
999 B
Swift
Raw Normal View History

// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved.
import Foundation
import GRDB
import SessionUtilitiesKit
public struct ConfigDump: Codable, Equatable, Hashable, Identifiable, FetchableRecord, PersistableRecord, TableRecord, ColumnExpressible {
public static var databaseTableName: String { "configDump" }
public typealias Columns = CodingKeys
public enum CodingKeys: String, CodingKey, ColumnExpression {
case variant
case data
}
public enum Variant: String, Codable, DatabaseValueConvertible, CaseIterable {
case userProfile
}
public var id: Variant { variant }
/// The type of config this dump is for
public let variant: Variant
/// The data for this dump
public let data: Data
}
// MARK: - Convenience
public extension ConfigDump.Variant {
var configMessageKind: SharedConfigMessage.Kind {
switch self {
case .userProfile: return .userProfile
}
}
}