from opcua_tools.ua_data_types import (
    UABoolean,
    UAByte,
    UAByteString,
    UADataValue,
    UADateTime,
    UADiagnosticInfo,
    UADouble,
    UAExpandedNodeId,
    UAExtensionObject,
    UAFloat,
    UAGuid,
    UAInt16,
    UAInt32,
    UAInt64,
    UALocalizedText,
    UANodeId,
    UAQualifiedName,
    UASByte,
    UAStatusCode,
    UAString,
    UAUInt16,
    UAUInt32,
    UAUInt64,
    UAVariant,
    UAXMLElement,
    VariantType,
)

DATA_TYPES_MAPPING = {
    VariantType.Boolean.name: UABoolean,
    VariantType.SByte.name: UASByte,
    VariantType.Byte.name: UAByte,
    VariantType.Int16.name: UAInt16,
    VariantType.UInt16.name: UAUInt16,
    VariantType.Int32.name: UAInt32,
    VariantType.UInt32.name: UAUInt32,
    VariantType.Int64.name: UAInt64,
    VariantType.UInt64.name: UAUInt64,
    VariantType.Float.name: UAFloat,
    VariantType.Double.name: UADouble,
    VariantType.String.name: UAString,
    VariantType.DateTime.name: UADateTime,
    VariantType.Guid.name: UAGuid,
    VariantType.ByteString.name: UAByteString,
    VariantType.XmlElement.name: UAXMLElement,
    VariantType.NodeId.name: UANodeId,
    VariantType.ExpandedNodeId.name: UAExpandedNodeId,
    VariantType.StatusCode.name: UAStatusCode,
    VariantType.QualifiedName.name: UAQualifiedName,
    VariantType.LocalizedText.name: UALocalizedText,
    VariantType.ExtensionObject.name: UAExtensionObject,
    VariantType.DataValue.name: UADataValue,
    VariantType.Variant.name: UAVariant,
    VariantType.DiagnosticInfo.name: UADiagnosticInfo,
}
