import DocumentDetector

struct MessageSettingsDeserializer: Decodable {
    private let messageSettings: MessageSettingsStruct?
    
    private enum CodingKeys: String, CodingKey {
        case messageSettings
    }
    
    public struct MessageSettingsStruct: Decodable {
        let waitMessage:  String?
        let fitTheDocumentMessage: String?
        let verifyingQualityMessage: String?
        let lowQualityDocumentMessage: String?
        let uploadingImageMessage: String?
        let popupDocumentSubtitleMessage: String?
        let unsupportedDocumentMessage: String?
        let wrongDocumentMessage: String?
        let sensorLuminosityMessage: String?
        let sensorOrientationMessage: String?
        let sensorStabilityMessage: String?
        let predictorScanDocumentMessage: String?
        let predictorGetCloserMessage: String?
        let predictorCentralizeMessage: String?
        let predictorMoveAwayMessage: String?
        let predictorAlignDocumentMessage: String?
        let predictorTurnDocumentMessage: String?
        let predictorCapturedMessage: String?
    }
    
    init(from decoder: Decoder) throws {
        let container = try decoder.container(keyedBy: CodingKeys.self)
        
        messageSettings = try container.decodeIfPresent(MessageSettingsStruct.self, forKey: .messageSettings)
    }
    
    var getMessageSettings: MessageSettingsStruct? {
        messageSettings
    }
}